Using the new Arduino IDE for ESP8266 and found bugs, report them here

Moderator: igrr

User avatar
By pidloop
#86954 Hello!

I have about 2000 IoT devices world-wide built with 2.4.0. I have pushed a dozen or more updates to them over the past few years and the updates have always worked perfectly. I use ESPhttpUpdate.update.

Today I thought it was time I tried 2.7.0. I have discovered that the platforms built with 2.4.0 hang forever in ESPhttpUpdate.update() when installing a system built with 2.7.0. However, if the device is manually reset, the new version has indeed been loaded and funs fine. Unfortunately, it is very awkward for users of my device to access the reset button themselves so this effectively prevents me from using 2.7.0.

I also tested with a device loaded with a 2.7.0 build and it can load another version built with 2.7.0 without a problem.

My application size is very close to the limit. The 2.4.0 size is 959391 and the 2.7.0 size is 972333. I always take care to set FLASH Size 4M (1M SPIFFS) to insure this size will work with OTA. I have metrology in place to monitor free dynamic memory on running systems and neither version ever falls below 20k free.

So my question is: how can I push a 2.7.0 build onto existing systems built with 2.4.0?


Many thanks for your time.
User avatar
By btidey
#86958 I have updated devices that had 2.4 builds and 2.5 builds to 2.7 builds successfully using OTA without any reset issues.

However, 2 significant differences. I use the browser OTA method and my binaries are nowhere near the 1MB limit.

It maybe worth doing a test update with a much smaller test build to see whether it is the bin size that is the critical factor.