OTA updates via WX ESP8266 Wi-Fi module
TomZauli
Posts: 9
in Propeller 1
Hi all. Apologies as I'm not finding this anywhere.
The API guide 32420-Parallax-Wi-Fi-Module-API-v1.0.pdf located in the downloads file here: https://www.parallax.com/product/parallax-wx-esp8266-wifi-module-dip/ includes a command for performing an over the air update as follows:
POST /propeller/load?argument [&argument...]
Loads a small (< 2 KByte) Propeller .binary file to Propeller RAM over the HTTP connection.
Does anyone know where I can find the (< 2 KByte) Propeller .binary file referenced in this call?
Comments
That command should load any <2K P1 binary file. It has nothing to do with OTA firmware updates.
Hi David! Thanks for responding. Been reading your posts for years, so much appreciated. I wasn’t clear in my post. I built a board based on the P1. I’m serving pages from the WiFi chip up to an iPhone app. I have the iPhone app checking a NodeJS server on AWS for an update to the main .elf file. If it finds one, I want to retrieve it from the Node server and download it to the P1 via the API cmd I referenced. The way I read the API spec it seemed like I had to first load a boot loader program to the P1 before downloading the new .elf file. It seemed like this ‘(<2k) file was some standard thing that enabled the download of the main program, but I could be misreading. Apologies if a stupid question. I’m an EE but been away from it for a while.
Actually. I’m away from home but I’m going to take you literally and load any small program then the main and see if that works. Will try when I get back. Thought it was some kind of specific boot loader or something.
The way it works now is that a small binary image is loaded that intern loads the bigger program with error checking and faster serial speeds.
An ELF file is not a binary image that can be loaded. It must be in binary format.
An HTTP request has some limits as to what it can except.
Mike
Sorry, I didn't realize that the firmware you were interested in loading was your P1 code not the WX firmware. As someone else mentioned, PropLoader loads in two phases. First it loads a small helper program using the HTTP command you mentioned. It then communicates with that program to load the P1 binary. The code for all of this is in the PropLoader repository:
https://github.com/parallaxinc/PropLoader
Got it. Thanks all. I'm back home so will get into it tonight. Really appreciate the pointers.