MKR1010 OTA download from Http not working

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.

http://www.cplusplus.com/reference/cstdio/printf/

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?

Thanks
Keith

// 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

Hello, am facing same issue, HTTP_ERROR_API = -2!

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.

Any ideas?

Many thanks,
Alexandre

Hi,

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().

Thanks,
Alexandre

avfranco:
Hi,

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().

Thanks,
Alexandre

good job

Juraj:
good job

Thank you Juraj!