ESP8266 WiFi – Firmware backup maken
Voordat je nieuwe firmware op de ESP8266 module zet, is het wellicht handig om een backup te hebben, mocht er iets fout gaan, deze pagina beschrijft hoe je een backup van de firmware kan maken onder windows en linux.
Wat heb je nodig?
1) Python 2.7
2) PySerial bibliotheek voor Python
3) ESPtool
Aan de slag:
1) Installeer Python en de PySerial bibliotheek
2) Pak het bestand esptool.py uit het esptool archief en plaats het in de root van de python folder.
Ps. zet de module in “flash mode” door de pin GPIO 0 “laag” te maken, dat doe je door deze aan te sluiten op de GND.
3) Het commando om de firmware van de module af te halen is:
1 |
python.exe esptool.py --port [POORT] --baud [BAUDRATE] read_flash [OFFSET] [GROOTTE] [BESTAND.BIN] |
Voorbeeld:
1 |
python.exe esptool.py --port COM10 --baud 115200 read_flash 0x000 1048576 backup.bin |
voor 512KB geheugen gebruik: 524288
voor 1MB geheugen gebruik: 1048576
Het downloaden kan even duren…
esptool V2
Nu heb je succesvol een backup gemaakt van het flash geheugen van de ESP8266 module!
Hier is een voorbeeld script om bepaalde stukken te back-uppen, het zal waarschijnlijk niet voor elke firmware gelden, maar het is ter info!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#!/bin/bash # sizes (from file system of files from [some] downloaded firmware) and addresses (from [some] flash readme): # 28080 Sep 18 21:34 eagle.flash.bin # 241896 Sep 18 21:34 eagle.irom0text.bin # 4096 Aug 7 19:56 blank.bin # 128 Sep 18 20:18 esp_init_data_default.bin # eagle.flash.bin 0x00000 # eagle.irom0text.bin 0x40000 # blank.bin 0x7e000 & 0xfe000 # esp_init_data_default.bin 0xfc000 echo starting backup part 1 of 5... esptool --port /dev/ttyUSB0 --baud 115200 read_flash 0x00000 28080 eagle.flash_backup.bin echo backup of part 1 of 5 finished read -p "please reset board again into flash mode...[Enter] when done." echo starting backup part 2 of 5... esptool --port /dev/ttyUSB0 --baud 115200 read_flash 0x40000 241896 eagle.irom0text_backup.bin echo backup of part 2 of 5 finished read -p "please reset board again into flash mode...[Enter] when done." # not necessary just to be complete echo starting backup part 3 of 5... esptool --port /dev/ttyUSB0 --baud 115200 read_flash 0x7e000 4096 blank_backup.bin echo backup of part 3 of 5 finished read -p "please reset board again into flash mode...[Enter] when done." # not necessary just to be complete echo starting backup part 4 of 5... esptool --port /dev/ttyUSB0 --baud 115200 read_flash 0xfe000 4096 blank_backup.bin echo backup of part 4 of 5 finished read -p "please reset board again into flash mode...[Enter] when done." # not necessary just to be complete echo starting last part of backup... esptool --port /dev/ttyUSB0 --baud 115200 read_flash 0xfc000 128 esp_init_data_default_backup.bin echo backup completed! |
Informatie (ENG):
The not so fine thing about it is that I have to “reset” the board back into “flash mode” after each step.
Maybe esptool is not closing the connection after a read_flash?
And unfortunately esptool does not support (at least I could not find out) a “multiple read” like in write_flash (when flashing the board).
Bronnen:
www.esp8266.com