espruino / BangleApps

Bangle.js App Loader (and Apps)
https://banglejs.com/apps
MIT License
478 stars 1.14k forks source link

Firmware updater app updated invalid Bangle.js firmware #2309

Open tompusey opened 1 year ago

tompusey commented 1 year ago

Affected hardware version

Bangle 2

Your firmware version

2v16

The bug

Just updated firmware to 2v16 using firmware update app on https://banglejs.com/apps, when the watch reboots after updating it's now stuck looping the following text on screen. I can no longer connect via bluetooth and when I try to boot into DFU mode the same thing happens.

WATCHDOG DFU 2V12

CHECK STORAGE NO NEW FW

BOOTING...

then it loops over and over

tompusey commented 1 year ago

also tried resetting without loading any code instructions on https://www.espruino.com/Bangle.js2#resetting-without-loading-any-code still boot loops

gfwilliams commented 1 year ago

Hi - sorry about this, but it sounds like somehow the main Bangle.js firmware has got corrupted during the update, and you'll have to use the 'fallback' firmware update method.

Please can you follow the instructions at http://www.espruino.com/Firmware+Update#nrf52 - you'll need to update from an (ideally Android) phone or tablet.

tompusey commented 1 year ago

That was so much easier to fix than I was expecting. Everything is working now. Thanks for the rapid response.

gfwilliams commented 1 year ago

Great! Glad it's sorted now!

I'll leave this issue open though and I'll take another look at the code - very rarely it seems this does happen (that the firmware updater can update with invalid data). There are a bunch of checks in there to avoid it, and I've never been able to reproduce it here, but I'll see if there's anything else I can do to make problems even less likely.