avr online flasher programowanie avr arduino przez przeglądarkę

AVR Online Flasher to narzędzie do wgrywania firmware do mikrokontrolerów AVR wyposażonych w bootloader.

AVR Flasher Online to darmowe narzędzie pozwalające wgrywać firmware do mikrokontrolerów AVR wyposażonych w bootloader bezpośrednio z poziomu przeglądarki internetowej. Nie musisz instalować Arduino IDE, AVRDUDE ani dodatkowego programu do flashowania mikrokontrolera.

Wystarczy podłączyć urządzenie do komputera przez USB lub konwerter USB–UART, wybrać odpowiedni mikrokontroler albo płytkę Arduino, wskazać plik Intel HEX i rozpocząć programowanie.

Narzędzie zostało przygotowane przez ELNODO z myślą o elektronikach, programistach systemów embedded, serwisach urządzeń elektronicznych oraz osobach pracujących z mikrokontrolerami AVR.

Programowanie mikrokontrolerów AVR bezpośrednio z przeglądarki

Standardowo wgranie programu do mikrokontrolera AVR kojarzy się z koniecznością instalacji Arduino IDE, konfiguracją AVRDUDE albo użyciem zewnętrznego programatora ISP. Jeżeli jednak mikrokontroler posiada już odpowiedni bootloader, firmware może zostać przesłany przez port szeregowy. AVR Flasher Online upraszcza cały proces i umożliwia wykonanie go bezpośrednio w przeglądarce. Narzędzie wykorzystuje komunikację szeregową z urządzeniem i obsługuje popularne protokoły bootloaderów stosowane w płytkach Arduino oraz innych urządzeniach opartych o mikrokontrolery AVR.

Dzięki temu możesz wykorzystać je m.in. do:

  • wgrywania gotowych plików .hex do Arduino,
  • aktualizacji firmware urządzeń wykorzystujących AVR,
  • programowania ATmega328P przez bootloader,
  • aktualizacji oprogramowania urządzenia bez udostępniania kodu źródłowego,
  • szybkiego testowania kolejnych wersji firmware,
  • serwisowania urządzeń elektronicznych,
  • wgrywania oprogramowania produkcyjnego do gotowych urządzeń.

Cały proces odbywa się lokalnie pomiędzy przeglądarką a podłączonym urządzeniem.

Obsługiwane mikrokontrolery i płytki Arduino

AVR Flasher został przygotowany jako narzędzie uniwersalne, dlatego nie ogranicza się wyłącznie do jednej płytki Arduino. Wbudowane profile pozwalają szybko skonfigurować parametry dla popularnych urządzeń, między innymi:

  • Arduino Uno – ATmega328P
  • Arduino Nano – ATmega328P
  • Arduino Nano Old Bootloader
  • Arduino Pro Mini – ATmega328P
  • Arduino Nano / Diecimila – ATmega168
  • Arduino Mega – ATmega1280
  • Arduino Mega 2560 – ATmega2560
  • Arduino Leonardo – ATmega32U4
  • Arduino Micro – ATmega32U4

Dostępny jest również tryb Custom AVR, który pozwala ręcznie określić parametry komunikacji i bootloadera. Dzięki temu narzędzie może być wykorzystane także z własnymi urządzeniami elektronicznymi wykorzystującymi mikrokontrolery AVR.

Obsługiwane bootloadery AVR

Różne płytki i mikrokontrolery mogą korzystać z różnych sposobów komunikacji z bootloaderem. AVR Flasher Online został zaprojektowany tak, aby obsługiwać kilka najpopularniejszych protokołów.

STK500v1 / Arduino / Optiboot

To jeden z najczęściej spotykanych sposobów programowania mikrokontrolerów AVR przez bootloader. Jest wykorzystywany między innymi w urządzeniach bazujących na:

  • ATmega328P,
  • ATmega168,
  • Arduino Uno,
  • Arduino Nano,
  • Arduino Pro Mini.

Narzędzie umożliwia ustawienie odpowiedniej prędkości transmisji i automatyczne wykonanie resetu przed rozpoczęciem programowania.

STK500v2 / Wiring

Protokół wykorzystywany między innymi przez większe mikrokontrolery AVR oraz płytki takie jak Arduino Mega 2560. AVR Flasher uwzględnia sposób programowania dużych pamięci FLASH oraz odpowiednią obsługę stron pamięci.

AVR109 / Caterina

Protokół spotykany między innymi w płytkach wykorzystujących mikrokontroler ATmega32U4, takich jak:

  • Arduino Leonardo,
  • Arduino Micro.

W przypadku tych urządzeń dostępna jest również funkcja uruchamiania bootloadera przy wykorzystaniu mechanizmu 1200 bps touch.

Jak wgrać plik HEX do Arduino online?

Obsługa AVR Flashera została zaprojektowana tak, aby cały proces programowania można było wykonać w kilku krokach.

1. Podłącz urządzenie do komputera

Podłącz płytkę Arduino lub własne urządzenie AVR do komputera. W zależności od konstrukcji urządzenia komunikacja może odbywać się przez:

  • wbudowany interfejs USB,
  • konwerter USB–UART,
  • układ CH340,
  • FT232,
  • CP2102,
  • inny interfejs portu szeregowego.

Mikrokontroler musi posiadać działający bootloader umożliwiający programowanie przez interfejs szeregowy.

2. Wybierz płytkę lub mikrokontroler

W sekcji Wybierz urządzenie wybierz odpowiedni profil. Przykładowo dla standardowego Arduino Uno wybierz:

Arduino Uno / ATmega328P (Optiboot)

Program automatycznie ustawi między innymi:

  • protokół bootloadera,
  • prędkość transmisji,
  • wielkość strony pamięci FLASH,
  • maksymalny obszar programu,
  • oczekiwaną sygnaturę mikrokontrolera.

Jeżeli korzystasz z własnego urządzenia, możesz wybrać Custom AVR i ręcznie skonfigurować wymagane parametry.

3. Wybierz port COM

Kliknij:

Wybierz port COM

Przeglądarka wyświetli listę dostępnych urządzeń szeregowych. Wybierz port odpowiadający programowanemu urządzeniu. AVR Flasher komunikuje się z urządzeniem bezpośrednio z przeglądarki. Nie jest wymagane instalowanie dodatkowej aplikacji do programowania.

4. Wczytaj firmware HEX

Przeciągnij plik .hex do pola Wczytaj firmware albo kliknij przycisk wyboru pliku. Obsługiwany jest standardowy format:

Intel HEX

Jest to format bardzo często generowany przez kompilatory i środowiska przeznaczone dla mikrokontrolerów AVR. Po wczytaniu pliku aplikacja analizuje jego zawartość oraz wyświetla informacje takie jak:

  • nazwa pliku,
  • ilość danych przeznaczonych do zapisania,
  • zakres adresów pamięci,
  • procent zajętości pamięci programu.

Dodatkowo wyświetlany jest wykres kołowy zajętości pamięci FLASH, dzięki któremu można szybko ocenić, jak dużą część dostępnej pamięci zajmuje firmware.

5. Sprawdź zajętość pamięci FLASH

Przed rozpoczęciem programowania AVR Flasher porównuje firmware z limitem pamięci określonym dla wybranego urządzenia. Wizualizacja pokazuje:

  • ilość danych zapisanych przez firmware,
  • wolne miejsce w pamięci,
  • procent wykorzystania dostępnej przestrzeni,
  • najwyższy używany adres programu.

Jeżeli firmware przekracza dozwolony zakres pamięci, aplikacja zgłosi błąd jeszcze przed rozpoczęciem programowania. Pozwala to zmniejszyć ryzyko wybrania niewłaściwego pliku lub profilu mikrokontrolera.

6. Wybierz opcje programowania

Przed flashowaniem możesz wybrać dodatkowe opcje.

Automatyczny reset

Aplikacja może wykorzystać linie DTR/RTS, aby automatycznie uruchomić bootloader przed rozpoczęciem programowania. Jest to standardowy sposób wykorzystywany przez wiele płytek Arduino.

Weryfikacja po zapisie

Po zakończeniu programowania pamięć FLASH może zostać ponownie odczytana i porównana z plikiem firmware. Pozwala to sprawdzić, czy program został zapisany prawidłowo.

Pomijanie pustych stron

Jeżeli jest to obsługiwane przez wybrany protokół, aplikacja może pominąć strony pamięci zawierające wyłącznie wartości 0xFF. Może to przyspieszyć proces programowania.

Sprawdzenie sygnatury mikrokontrolera

AVR Flasher może odczytać sygnaturę podłączonego mikrokontrolera i porównać ją z wybranym profilem. Jeżeli przykładowo wybrano ATmega328P, a urządzenie zgłosi inną sygnaturę, programowanie może zostać zatrzymane. Jest to dodatkowe zabezpieczenie przed przypadkowym użyciem niewłaściwego profilu.

7. Kliknij „Flashuj mikrokontroler”

Jeżeli port, firmware i konfiguracja są poprawne, aktywowany zostanie przycisk:

Flashuj mikrokontroler

Po jego wybraniu aplikacja:

  1. otworzy port szeregowy,
  2. uruchomi bootloader,
  3. wykona synchronizację,
  4. sprawdzi mikrokontroler,
  5. zapisze pamięć FLASH,
  6. opcjonalnie zweryfikuje zapisane dane.

Postęp operacji jest prezentowany na bieżąco. Podczas programowania nie należy odłączać przewodu USB ani zasilania urządzenia.

Jak uzyskać plik HEX z Arduino IDE?

AVR Flasher nie kompiluje kodu Arduino. Do programowania potrzebny jest wcześniej przygotowany plik .hex. Jeżeli korzystasz z Arduino IDE, możesz skompilować swój projekt i wyeksportować wynikową wersję programu. Następnie uzyskany plik HEX można wykorzystać w AVR Flasher. Takie rozwiązanie jest szczególnie wygodne, gdy chcesz przekazać gotowe firmware innej osobie. Użytkownik nie potrzebuje wtedy:

  • kodu źródłowego,
  • zainstalowanego Arduino IDE,
  • bibliotek użytych w projekcie,
  • skonfigurowanego środowiska programistycznego.

Wystarczy przekazać mu gotowy plik .hex.


Czy AVR Flasher zastępuje programator ISP?

Nie.

AVR Flasher komunikuje się z mikrokontrolerem poprzez bootloader znajdujący się już w pamięci mikrokontrolera.

Jeżeli mikrokontroler:

  • nie posiada bootloadera,
  • ma uszkodzony bootloader,
  • posiada nieprawidłowo skonfigurowane fuse bity,
  • nie uruchamia interfejsu komunikacyjnego,

może być konieczne wykorzystanie zewnętrznego programatora ISP.

Programator ISP jest również wymagany podczas pierwszego wgrywania bootloadera do nowego mikrokontrolera.


AVR Flasher a AVRDUDE

AVRDUDE jest bardzo popularnym i rozbudowanym narzędziem do obsługi mikrokontrolerów AVR.

Wymaga jednak uruchomienia lokalnej aplikacji oraz odpowiedniej konfiguracji parametrów programowania.

AVR Flasher Online został przygotowany do innego zastosowania.

Jego zadaniem jest maksymalne uproszczenie procesu wgrywania gotowego firmware przez bootloader.

Użytkownik korzysta z graficznego interfejsu, wybiera urządzenie oraz plik HEX, a aplikacja przeprowadza pozostałe etapy programowania.


Najczęstsze problemy podczas flashowania AVR

Flasher nie może połączyć się z bootloaderem

Najczęstsze przyczyny to:

  • wybrany niewłaściwy port COM,
  • niewłaściwy baud rate,
  • wybrany zły bootloader,
  • brak automatycznego resetu,
  • bootloader nie znajduje się w mikrokontrolerze.

W przypadku Arduino Nano warto również sprawdzić, czy urządzenie korzysta z nowego czy starego bootloadera.


Arduino Nano nie chce się programować

Starsze wersje Arduino Nano mogą korzystać z innego bootloadera i innej prędkości transmisji niż nowsze egzemplarze.

W AVR Flasherze dostępne są dlatego dwa osobne profile:

  • Arduino Nano – nowy bootloader,
  • Arduino Nano – Old Bootloader.

Jeżeli jeden profil nie działa, sprawdź drugi.


Leonardo lub Micro zmienia port COM

Arduino Leonardo i Micro wykorzystują mikrokontroler ATmega32U4 i bootloader Caterina.

Po uruchomieniu bootloadera urządzenie może ponownie zgłosić się do systemu jako inny port szeregowy.

W takim przypadku po uruchomieniu trybu bootloadera może być konieczne ponowne wskazanie portu.


Firmware jest zbyt duży

Jeżeli plik HEX przekracza maksymalny obszar programu dostępny dla wybranego profilu, AVR Flasher nie pozwoli rozpocząć programowania.

Sprawdź:

  • czy wybrano właściwy mikrokontroler,
  • czy firmware został skompilowany dla właściwej płytki,
  • czy rozmiar programu nie przekracza dostępnej pamięci.

Bezpieczeństwo i prywatność

AVR Flasher komunikuje się bezpośrednio z portem szeregowym udostępnionym przez przeglądarkę.

Użytkownik sam wybiera urządzenie, do którego strona otrzyma dostęp.

Firmware jest analizowany lokalnie przez aplikację.

Narzędzie zostało przygotowane przede wszystkim do wygodnego programowania urządzeń poprzez bootloader i nie umożliwia zmiany fuse bitów ani lock bitów mikrokontrolera.


Najczęściej zadawane pytania – AVR Flasher Online

Czy mogę wgrać plik HEX do Arduino bez Arduino IDE?

Tak. Jeżeli posiadasz gotowy plik Intel HEX i płytka posiada kompatybilny bootloader, możesz wykorzystać AVR Flasher Online bez uruchamiania Arduino IDE.

Czy potrzebuję programatora USBasp?

Nie, jeżeli mikrokontroler posiada działający bootloader i może być programowany przez port szeregowy.

USBasp lub inny programator ISP będzie potrzebny między innymi wtedy, gdy bootloader nie jest jeszcze wgrany.

Czy AVR Flasher działa z ATmega328P?

Tak. Narzędzie posiada gotowe profile między innymi dla Arduino Uno, Nano i Pro Mini wykorzystujących ATmega328P.

Czy można programować Arduino Mega 2560?

Tak. Dostępny jest profil Arduino Mega 2560 wykorzystujący protokół STK500v2/Wiring.

Czy można programować Arduino Leonardo?

Tak. Obsługiwany jest ATmega32U4 oraz bootloader Caterina/AVR109.

Czy mogę używać własnej płytki AVR?

Tak. Tryb Custom AVR umożliwia ręczne skonfigurowanie podstawowych parametrów bootloadera i pamięci.

Czy można wgrać bootloader tym narzędziem?

Nie. AVR Flasher wykorzystuje bootloader już znajdujący się w mikrokontrolerze. Do pierwszego wgrania bootloadera zazwyczaj potrzebny jest programator ISP i narzędzie np. avrdude.

Czy narzędzie działa na telefonie?

Do działania wymagane jest środowisko przeglądarki umożliwiające bezpośrednią komunikację z portem szeregowym urządzenia. Najlepszym rozwiązaniem jest korzystanie z komputera i kompatybilnej przeglądarki Chromium.


Darmowe narzędzia dla elektroników od ELNODO

AVR Flasher Online jest częścią zestawu darmowych narzędzi przygotowanych przez ELNODO dla elektroników, programistów embedded i osób zajmujących się projektowaniem urządzeń elektronicznych.

ELNODO zajmuje się profesjonalnym projektowaniem elektroniki – od koncepcji i schematu, poprzez PCB i firmware, aż po wykonanie prototypów oraz przygotowanie urządzenia do produkcji.

Jeżeli tworzysz własne urządzenie elektroniczne i potrzebujesz wsparcia w zaprojektowaniu elektroniki, oprogramowania mikrokontrolera lub przygotowaniu produktu do produkcji, zapraszamy do kontaktu.