Table of Contents

Flash FOTA Firmwares

In order to flash ESP8266 the GPIO0 should be connected to GND. This is D3 on Wemos D1 Mini Pro.


Initial Flash

Initially when ESP is new/blank use esptool.py to flash boot_v1.6.bin and create the user1.bin (with 32m-c1) option. Needs to be flashed with 32m-c1 to get 1024×1024. Connect ESP to the USB port. Steps are:

  1. erase_flash
  2. 0x00000 firmware/boot_v1.6.bin
  3. 0x3FC000 firmware/esp_init_data_default.bin
  4. 0x3FE000 firmware/blank.bin
  5. 0x01000 firmware/user1.bin
  6. 0x101000 firmware/user2.bin (optional not necessary)
esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x0 firmware/boot_v1.6.bin 
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x3FC000 firmware/esp_init_data_default.bin 
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x3FE000 firmware/blank.bin 
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x01000 firmware/user1.bin 
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x101000 firmware/user2.bin  (optional not necessary)

Or all in once:

esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x0 firmware/boot_v1.6.bin 0x3FC000 firmware/esp_init_data_default.bin 0x3FE000 firmware/blank.bin 0x01000 firmware/user1.bin 0x101000 firmware/user2.bin

MAKE OTA UPDATES

First generate BIN file using esptool.py:

esptool.py elf2image --version=2 -o user1.bin espmodule
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode qio --flash_size 32m-c1 0x01000 user.bin

Make OTA bin update file

After that we need to user the makefile with gen_appbin.py to generate proper formated user1.bin/user2.bin. Because ota updates created with “esptool.py elf2image –version=2 -o user1.bin espmodule” give checksum mismatch

Upload to webserver

scp firmware/user2.bin root@192.168.178.82:/media/storage1/www/homesite/public/firmware

Dump memory Block

esptool.py --port /dev/ttyUSB0 --baud 115200 read_flash 0x3fe000 2048 flash-3fe.bin