OTA update problem on Arduino RP2040

I am currently unable to update the firmware of my devices over the air. The procedure seems to go fine, I can see the devices online, I can push the update and I see bar progressing, but after that the device just reboots in its previous state. This happens on the devices already shipped and installed remotely.

To give some context, I am using Arduino RP2040 in stock condition. My code doesn’t do anything special, just collects some data from the sensors. It used to work perfectly fine until few months ago, but I am now stuck with OTA.

I did some tests on some devices here with me. Tried uploading via USB and if I start from scratch the device get stuck and never boots correctly. That means it doesn’t reach even the Serial.print at the very beginning of the setup. The only way to make it work is to exclude the ThingerMbedOTA.h from the code. In this case the device works as intended, but clearly there’s no OTA anymore.

I also tried reverting to the thinger library version 2.21.0, and with this I can indeed upload with the OTA extension active. The system works then as intended but again when I update remotely the device just reboots in its previous state.

Since the devices I have shipped probably have an old thinger library version, this leads me to think there’s an bug/incompatibility with the OTA thinger later versions.

Please advise.

Thanks,
Antonio

I identified a similar problem in an Arduino-Thinger version (already fixed) when testing the OTA with the ESP8266 (see post link below) . But I don’t know if it’s a similar bug on Arduino RP2040.

Seems like it’s a different problem. With the later OTA libraries it just gets stuck, not even loading the Serial. Resetting doesn’t help at all. With the previous OTA libraries, it works but you can just update via usb, which makes OTA useless.
Not really sure what to do at this stage, we need OTA as updating via usb is not possible with our remote devices.

1 Like