First byte is not the magic 0xE9 for OTA binaries

Posts: 31
Joined: Sat Mar 24, 2018 12:52 am

First byte is not the magic 0xE9 for OTA binaries

Postby Pato » Fri Aug 17, 2018 5:13 pm

Hey all,

I build my two applications for OTA upgrade user1.bin and user2.bin, one for each flash slot (for addresses 0x01000 and 0x81000 respectively).
The documentation says that the first byte of an application built for the ESP8266 is always 0xE9. This is the "magic byte" ( ... col_en.pdf).
The first byte of the bootloader is effectively 0xE9.

But when I look at the content of my binaries user1.bin and user2.bin, the firsrt byte is 0xEA in boh cases and not 0xE9.
I can flash them and both work as expected.
If I change the first byte to some random value like 0xEF, I get a "error magic" at boot (ok, seems logical)
If I change it for 0XE9 as in the doc, I got Fatal Exception 29 at boot (duh ?)

Is there a different magic number for OTA firmwares ?
Does this magic byte applies only for the booloader ?
What am I missing ?

Thanks for your help :)

I'm compiling with esp-open-sdk toolchain, NONOS-SDK_2.2.

Who is online

Users browsing this forum: Burtonbuh and 2 guests