Hi.
Ive been trying to get OTA downloads working using ArduinoOTA/examples/Advanced/OTASketchDownload/
I have a HTTP server running, and can see the .bins there, but the MKR just keeps reporting 404;
Check for update file -v2.bin
Update status code: 404
I think the issue is with the path, and I need some help with an explanation of this part of the code;
const char* SERVER = "192.168.1.108"; // must be string for HttpClient
const unsigned short SERVER_PORT = 80;
const char* PATH = "/update-v%d.bin";
Can you please explain the workings of the path..../update-v%d.bin?;
I guess /update can be any path that choose to place the bins right?
What is the -v%d mean?
Perhaps this is a way to capture all(both) .bin files?
Why do I get a 404..I can see the files from another computer just fine, so the http server is working.
If I place the files at Macintosh/users/myname/OTASketch.....what do I need to write into that const char* PATH = ?
The serialmon reports "Check for update file -v2.bin"....is there a connection here to the -v?
I feel very close to getting this working...just missing something basic here I think....help!
Thanks
kb
you must somehow ensure for the update to not to download again. a version number is used for that.
the example uses simplest possible versioning, because the goal is to show the usage of InternalStorage, not how to download the update.
Hi. Thanks for your reply!
Ok so I see now that %d is for a decimal integer value..the version number as a varible.
Ive been trying hard to get the download working but not there yet.
Error 404 has gone and now I get "Update status code: -2". What is code 2 meaning?
Serial monitor is looping with;
Check for update file /update-v2.bin
Update status code: -2
When I export my Sketch, called update-v2, I get two resultant binaries landing in the webserver folder. these are update-v2.ino.mkrwifi1010.bin, and update-v2.ino.with_bootloader.mkrwifi1010.bin.
Will this work?, do we need them both or just one? Is this file naming going to work, or do I need to rename the right file as update-v2.
What am I missing here?
I see in the code there is a constant as const short VERSION = 1;....Do I need to mess with this each time thee is a new version or is this for the first time. And therefore I assume I need to make the next version as update-v2?
// This call was made when the HttpClient class wasn't expecting it
// to be called. Usually indicates your code is using the class
// incorrectly
static const int HTTP_ERROR_API =-2;
every new bin prepared to publish for updatte should have a new version number in code and in file name. the only reason is to prevent downloading it more the once
However in my case I've uploaded the new .bin to an Azure Storage "Containers" with public access enabled. https://xxxxx..blob.core.windows.net/ct-iot-ota-repo/update-v2.bin
In addition to the above, strangely, after the function handleSketchDownload() runs twice the Wifi connection is lost and no longer able to reconnect "Attempting to connect to SSID: xxxxx". After commenting the function the sketch works fine.
After some new attempts now it's working fine. In case of the Azure Storage I removed https:// from the hostname and for the Wifi issue reset the WiFi connection with WiFi.end().
After some new attempts now it's working fine. In case of the Azure Storage I removed https:// from the hostname and for the Wifi issue reset the WiFi connection with WiFi.end().