Soft launch: OTA updates stretch goal

All ESP8266 boards running MicroPython.
Official boards are the Adafruit Huzzah and Feather boards.
Target audience: MicroPython users with an ESP8266 board.
Post Reply
pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Soft launch: OTA updates stretch goal

Post by pfalcon » Sun Apr 09, 2017 9:17 pm

Unfortunately, this stretch goal took much longer than expected, and follows a pattern of being "soft launched" without being fully tested and/or having user-facing documentation. Long story short, I spent Xmas/NY holidays to elaborate, test, and implementation various features in OTA bootloader (which was worked on since last autumn, tracked at https://github.com/micropython/micropython/issues/2535). But when it came to the actual "production mode" testing with a smarthome device out of easy reach, it literally busted (be careful with those 110/220V things!). Then I had several travels, and then some personal issues which keep me less productive than I'd want.

That said, we've setup all the basic infrastructure, and I know that some people tried it. So, it only makes sense to announce it, even if in "soft launch" mode, so more advanced of the users tried it and shared their opinion whether it work at all or not ;-).

So, at the end of ESP8266 section at http://micropython.org/download#esp8266, you will find official daily (not release!) builds of OTA-enabled firmware. There're 2 types of OTA-related images:
Currently available documentation is at the ticket mentioned above, https://github.com/micropython/micropython/issues/2535, and yaota8266 README at https://github.com/pfalcon/yaota8266 . Thus, as mentioned above, it's more suitable for advanced users. As an additional hint, to enter OTA update mode, you need to press any GPIO-attached button (except for GPIO16) soon after board reset. Almost every board has "Flash" button connected to GPIO0, so you should be covered. But of course, you should remember that "Flash" button pressed with Reset enters the serial bootloader. You should press it *after* reset, there's a 3 second window to enter an OTA bootloader. For a few initial OTA updates, you of course want to be connected via serial, to see the diagnostic output and get a feel how it all works. After that, it might even work without a serial connection (as I mentioned above, that's exactly where I stopped in my testing, so maybe it won't work so well in practice and will require various tweaks).

Please share your experiences here.

If you find OTA updates useful - already, or would like it to be elaborated further, don't forget to star yaota8266 project on Github - relative priority among other tasks will be judged based on that ;-).
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/


Post Reply