====== 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 1024x1024. Connect ESP to the USB port. Steps are: - erase_flash - 0x00000 firmware/boot_v1.6.bin - 0x3FC000 firmware/esp_init_data_default.bin - 0x3FE000 firmware/blank.bin - 0x01000 firmware/user1.bin - 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