Wgrywanie firmware do ESP8266 przez Arduino

Wgrywanie firmware do ESP8266 przez Arduino Uno

Instrukcja wgrywania firmware do modułu WiFi ESP8266 poprzez Arduino Uno.

Co będzie potrzebne do „nafleszowania” układu ESP8266:

  1. Arduino Uno bez układu Atmel. Arduino posłuży tutaj jako interfejs USB-UART, dlatego wyciągamy układ scalony. Mój FT232RL nie działał jak należy, a Arduino sprawdza się w zupełności.
  2. Moduł Wi-Fi ESP8266 w wersji ESP-01 z 1024KB pamięci.
  3. Firmware ze strony nodemcu-build.com. Najprostszym sposobem na pobranie firmware jest zbudowanie go na tej stronie.
  4. Oprogramowanie do wgrywania firmware esptool ze strony github.com/espressif/esptool.

To co nas czeka to przygotowanie środowiska do pracy. Najpierw instalujemy niezbędne oprogramowanie. Pierwszym narzędziem, które będzie potrzebne do pracy to esptool. Jest to program, który posłuży do wgrywania softwu do naszego modułu Wi-Fi. Mając zainstalowany Python, wpisujemy w terminalu:

pip install esptool

Następnie podpinamy nasz układ ESP8266 do Arduino wg poniższego schematu:

Schemat połączenia ESP8266 z Arduino Uno

Schemat łączenia ESP8266 z Arduino Uno na potrzeby wgrywania firmware

Czyli:

Arduino ESP-01
GND GND, GPIO0
TXD TX
RXD RXD
3V3 VCC, CH_PD

 

Pomiędzy GND a GPIO0 w ESP-01 wpinamy włącznik. Posłuży on do przełączania się między trybami „pracy” a „fleszowania” naszego modułu. Schemat pinów dla ESP-01 można znaleźć pod tym adresem.

Piny esp8266 esp-01

Piny esp8266 esp-01

Mając już przygotowane w ten sposób środowisko pracy można pobrać firmware do modułu ESP8266. Na stronie nodemcu-build.com można zbudować właściwe oprogramowanie. Do naszych potrzeb wystarczą domyślnie wybrane moduły, więc nie trzeba nic zmieniać. Podajemy adres email na który mają przyjść powiadomienia oraz linki do zbudowanego firmware.

Podpinamy Arduino z ESP do komputera poprzez kabel USB. Należy pamiętać aby wyjąć układ Atmel z Arduino. Trzeba również pamiętać, aby piny GND i GPIO0 były zwarte podczas wpinania układu do komputera. Do tego można użyć przełącznika, albo po prostu zewrzeć je przewodem. W ten sposób uruchamiamy moduł w trybie wgrywania firmware. Sprawdzamy, czy sprzęt jest widoczny:

ls /dev/ttyACM0

W moim przypadku jest wykryty jako ttyACM0. Jeśli wszystko gra to wgrywamy pobrany przed chwilą firmware:

esptool.py --port /dev/ttyACM0 --baud 115200 write_flash 0x00000 ./nodemcu-master-7-modules-2017-01-23-21-15-49-integer.bin

Możliwe problemy jakie mogą tutaj wystąpić to źle dobrana szybkość transmisji –baud 115200 (spróbuj 9600), inny adres urządzenia ttyACM0, albo brak zwartego GPIO0 do masy.

Do czyszczenia pamięci służy polecenie

esptool.py --port /dev/ttyACM0 --baud 115200 erase_flash

A pomoc można uzyskać poprzez:

esptool.py --help

Jeśli wszystko przebiegło sprawnie zobaczymy komunikat:

Wgrywanie NodeMCU do ESP8266

Kasowanie i wgrywanie firmware NodeMCU do ESP8266

 

W dalszej części opiszę jak sprawdzić, czy wgrany firmware działa oraz jak można wgrywać napisane przez nas oprogramowanie.

 

Linki:

  1. http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-01 informacje o wersji ESP-01 modułu ESP8266
  2. https://nodemcu-build.com/
  3. https://github.com/espressif/esptool

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *