ESP32 – Firmware flashen

icon firmware download

Espressif logo vol

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) ESP Flash Download Tool (flasher)
2) esptool (bootloader communicatie)


ESP32 geheugen overzicht

Je kan offset 0x00 gebruiken voor de hele module, je kan ook specifieke partities downloaden, bij het uploaden vanaf de Arduino IDE (met het blink voorbeeld) zien we:


Firmware flashen met ESP Flash Download Tool

Zet de ESP32 module in flash modus en reset het door de spanning even te onderbreken, open het programma en stel de volgende instellingen in:

Ps. bovenstaande is niet nodig met de DEV module!

1) Selecteer het firmware bestand BIN of IMG
2) SPI Speed 40Mhz
3) SPI Mode: DIO
4) Flash Size: 32Mbit (8MB)
5) de juiste COM poort
6) Baudrate: 921600

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:


Flashen van specifieke geheugen adressen

Open de software en vul de gegevens in op de volgende adressen, voorbeeld:

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 “een volledige” firmware op de flash chip te zetten is als volgt:

python.exe esptool.py --chip esp32 --port COM4 --baud 921600 write_flash --flash_freq 80m --flash_mode dio --flash_size=4MB 0x000 esp32.bin

Output:

Je ziet een foutmelding, maar alles lijkt ok te werken!?

Ps. je kan het ook sneller uploaden met de optie -z of –compress, dan wordt de data gecomprimeerd overgeschreven:

python.exe esptool.py --chip esp32 --port COM4 --baud 921600 write_flash --compress --flash_freq 80m --flash_mode dio --flash_size=4MB 0x000 esp32.bin

Output:

Je ziet een foutmelding, maar alles lijkt ok te werken!?