ESP8266 WiFi – Firmware flashen
Je kan relatief eenvoudig nieuwe firmware op de ESP8622 WiFi module plaatsen door middel van software (flasher) om het firmware bestand op de chip te plaatsen, hieronder een voorbeeld bij de ESP-01 module.
Wat heb je nodig?
Een firmware flasher:
1) NodeMCU flasher
2) ESP Flash Download Tool (flasher)
3) esptool (bootloader communicatie)
Firmware:
1) AT Firmware
2) NodeMCU Firmware
3) esp-link Firmware
Verschillende flash chips
Er zijn meerdere modellen in omloop met verschillende SPI Flash chips, hiervoor moet je de SPI mode indien nodig op aanpassen:
Flash Chip: 25Q80A > SPI mode = DIO
1 2 3 4 |
get flash id : 0xc21420c2 manufacturer_id: 0xc2 device_id: 0x2014 vendor: 194 |
MX25L8006 > SPI mode = DOUT
(eerst flash software laten zoeken naar COM poort, daarna pas ESP aanzetten (in boot mode) om te kunnen flashen!)
1 2 3 4 |
get flash id : 0x051440e0 manufacturer_id: 0xe0 device_id: 0x4014 vendor: 224 |
Gebruik je een verkeerde SPI mode bijvoorbeeld DIO op een DOUT Flash type dan krijg je deze foutmelding in de bootloader te zien:
1 2 3 4 5 6 |
load 0x00000000, len 0, room 0 tail 0 chksum 0xef csum 0xef csum err ets_main.c |
Firmware flashen met NodeMCU flasher
Zet de WiFi module in flash modus en reset het door de spanning even te onderbreken, open het programma en selecteer de juiste COM poort.
In de TAB “Advanced” stel de volgende instellingen in:
Baudrate: 230400
Flash size: 4Mbyte
Flash speed: 40Mhz
SPI Mode: DIO (25Q80A) / DOUT (MX25L8006)
In de TAB “Config” selecteer je het firmware bestand:
Ps. Heb je een “heel” firmware bestand (met bootloader, instellingen, e.d.) begin dan bij adres (offset) 0x00000.
In de TAB “Operation” klik op FLASH om de firmware weg te schrijven:
Upload voltooid:
Ps. Vergeet niet om de GPIO 0 los te koppelen van de MIN nadat de upload is voltooid, zo werkt de module weer in “normale” modus.
Firmware flashen met ESP Flash Download Tool
Zet de WiFi module in flash modus en reset het door de spanning even te onderbreken, open het programma en stel de volgende instellingen in:
1) Selecteer het firmware bestand BIN of IMG
2) SPI Speed 40Mhz
3) SPI Mode: DIO (25Q80A) / DOUT (MX25L8006)
4) Flash Size: 8Mbit
5) de juiste COM poort
6) Baudrate: 345600
Ps. Heb je een “heel” firmware bestand (met bootloader, instellingen, e.d.) begin dan bij adres (offset) 0x00000.
Eenmaal alles ingesteld, klik je op “START” om de firmware weg te schrijven:
Shell screen:
Nieuwste firmware flashen vanuit de SDK
Het is mogelijk om zelf een firmware die uit “stukken” bestaat te uploaden naar de chip, bijvoorbeeld de laatste versie van de AT firmware:
Neem bijvoorbeeld het SDK archief: AT_v0.51_on_esp_iot_sdk_v1.5.0_15_11_27
Pak het archief uit naar een folder en gebruik de volgende bestanden daaruit:
1 2 3 4 |
atesp_init_data_default.bin atblank.bin atboot_v1.4(b1).bin at512+512user1.1024.new.2.bin |
Let op!: Je hebt van de ESP-01 twee versies, één met 512KB (de oude “blauwe”) en één met 1MB (de “zwarte”), beide modules hebben verschillende geheugen offsets om de firmware in te laden:
Hier is nog een overzicht, welke meer informatie geeft:
Open de software en vul de gegevens in, eenmaal alles ingesteld, klik je op “START” om de firmware weg te schrijven:
Ps. als je op de “CombineBin” knop drukt, worden alle bestanden samengevoegd in een “compleet” firmware bestand!
Firmware flashen met esptool.py
Het commando om firmware op de flash chip te zetten is als volgt:
python.exe esptool.py --port /dev/tty.usbserial-ABC12345 write_flash 0x000000 "v0.9.2.2 AT Firmware.bin"
Wanneer voltooid:
1 2 3 4 5 |
Connecting... Erasing flash... Writing at 0x0007ec00... (100 %) Leaving... |
Bronnen:
14core.com
allaboutcircuits.com