- Wed Oct 29, 2014 4:23 am
#2028
Well unfortunately I too wasn't able to come up with official english docs.
I think there may be some in the cinese docs, but well, code is english

Basically, what happens is this:
1. Module calls out to iot.espresssif.cn ("Host") with a key and asks for available versions.
2. Host tells the module which versions are available
3. Module requests the newest (i.e. first) version. Depending on which user bin (1 or 2) is currently active, the *other* bin is requested from the server
4. When receiving the binary, the module will flash it to either 0x40101000 (user bin 1) or 0x40141000
5. When the transfer is finished, the module boots into the newly flashed bin
There are some prerequisites: You need the boot loader (boot_v1.1.bin) at 0x40100000, you need to use the eagle.app.v6.app1.ld/eagle.app.v6.app2.ld ldscripts to build the bins and you need to make sure that there are no user settings that might corrupt the boot loader (i.e. make sure you flash the blank.bin at 0x7E000.
Aside from the clunky setup, this is actually the fastest way to flash the module. I can flash a whole binary (~250kb) in < 5s, including transfer and reboot. This is awesome