Bangle.js 2 stuck in boot loop

Posted on
  • Last night I took off my Bangle.js 2 and laid it on side table, so I could read in bed. I noticed out of the corner of my eye that some light was coming on and off from it - it was face down. I picked it up and saw that it was stuck in a boot loop. This morning when the battery had died, I tried charging it again and it started the loop once more.that

    I've not done much interesting with it yet - no firmware updates and just installing a few apps from the store. And I can't think of anything unusual that I have done with it - no jet skiing, scuba diving or having MRIs.

    I can't find any documentation about what to do. This is the type of thing I was hoping for, but it only applies to v1 - https://www.espruino.com/Bangle.js#reset­ting-without-loading-any-code

  • That's an odd one - but I'd imagine that there might be an issue with some app that got installed then.

    You found exactly the right instructions, just on the Bangle.js 1 page rather than the Bangle 2 page! https://www.espruino.com/Bangle.js2#rese­tting-without-loading-any-code

  • Thanks Gordon - no idea how I missed that...

    Unfortunately there is no way to take those steps. This is what happens while there is battery capacity (without touching the screen or button):

    1. White bootloader appears (is this right term?)
    2. Loading meter fills
    3. Black Bangle.js OS screen appears
    4. Checking storage...
    5. Storage Ok.
    6. Return to 1.

    Is there any lower level way to reset it? Bit worried it's bricked.

    EDIT
    Quick thought - could there be some kind of contact inside the button which gives it pressed state constantly? I was fine until I took it off my wrist - no idea how that could have caused it, but perhaps an option?

  • could there be some kind of contact inside the button which gives it pressed state constantly?

    Maybe... do you see the '====' going across the screen when the button is not pressed? If not then it'd show the button is working.

    Also, if you release the button when '====' is going across the screen, can you get the Bangle to stay showing a DFU screen? If so then that's great - new firmware can be uploaded so when we can work out what is causing this we can just do an update to fix it

  • I should have just recorded a video to start with. Always makes things much easier to debug.

    This shows what happens when the battery is completely dead and it is connected to the cable - https://streamwo.com/file/61af5a2262dbf

  • That definitely looks like a stuck button.

  • Yep, @johan_m_o is right - it's a stuck button.

    Please could you try pressing it gently and rocking the button up/down/left/right sideways? It's the first I've heard of one getting stuck but there were some cases where the button didn't register clicks and that seemed to fix it fine.

  • Thanks for thoughts. I've given it a go, but not had any luck. There is still good tactile feedback when I push the button, so I assume something tiny is inside making a contact. Maybe I'll try a vacuum cleaner.

  • I am in the same situation, also after a firmware update through the firmware app. The firmware update did not work, but after reboot , long press button, it came in this loop. DFU with nRF fails with an error. Button is not stuck because when pressing it, I get the loading===== part. Is it possible to load new firmware via serial?

  • I had some success with nRF - you need to download the firmware zip file to your phone, then connect to the DFUTarg. I found I had to keep clicking Retry every time there was a connection drop (which was like every 1-2% of the data transfer). It did incrementally pass the update to the watch, even though it didn't seem like it was doing that. Once I finally got to the 100% point, everything else happened as it's supposed to with the reboot.

  • Yes, it worked, thank you, with patience I got to 100% and then rebooted with the new firmware.

  • Excellent! It really shouldn't be this hard...

  • It normally isn't...

    Using the nRF tool to update isn't the most user friendly method, but the issues you experienced isn't normal and hopefully the issue should be fixed now that you've managed to update. Once Gordon gets the App loader firmware updater working it'll be a breeze...

  • Ha, yep! Thanks.

  • @ajkm @PeterS what devices were you using nRF toolbox/connect on? And was it nRF toolbox, or nRF connect? It all works fine here so if there's a specific type of phone it doesn't work properly on it'd be good to know!

  • nRF Toolbox on iPhone 11 Pro Max, iOS 15.1.

    The watch disconnected every 1% of the transfer, but clicking on Retry each time seemed to work to get it to advance in % until it finally reached 100%. When it rebooted it showed .244 and everything is now working just fine.

    I can't remember, is there an instruction that the first thing to when Bangle arrives is update the FW? That might have been the case, but I don't think the FW Update app was doing what it says on the tin at that point?

  • Yes, although to be fair the FW update app has only been like that since Friday morning. Before then it was labelled BETA (like it is again now) and points people at the NRF toolbox example.

    ... maybe the disconnects are an iPhone thing. What device do you have @PeterS?

  • nRF toolbox on iPhone SE on 15.1. I used this tool for my bangle.js 1 without issues before. Response and steps to solve as @ajkm has mentioned.

  • Honor 20 with Android 10 here, updated to 2v10.244 smoothly 2 days ago.
    I guess it's an iPhone issue only.

    Edit: I have an old gen iPhone SE laying around. If need be, I can try to flash newest firmware from that

  • Thanks @htky - well, it does sound a lot like an Apple issue. I just tried on an iPad mini with 12.5.5 and it works great though.

    It could be that in newer versions of iOS Apple have started automatically disconnecting Bluetooth devices if they're not bonded after a timeout - it'd explain this issue, and it's in line with Apple's general 'we know what's best for you' attitude to users/developers :(

    @PeterS / @ajkm you could try the 'NRF connect' (not toolbox) app instead I guess, just in case it happens to be any more reliable. Otherwise it is possible to do updates using the Web IDE as well.

  • Thanks, Gordon.

    I ended up using nRF Toolbox because I couldn't use the Web IDE - that was downloading the Hex file instead of the zip file, so kept returning the error.

    All's good for now though!

  • Just tried nRF connect, after 0 bytes it stops with error and there is no option to continue like with nRF toolbox.

  • Yep, @johan_m_o is right - it's a stuck button.

    Please could you try pressing it gently and rocking the button up/down/left/right sideways? It's the first I've heard of one getting stuck but there were some cases where the button didn't register clicks and that seemed to fix it fine.

    I've tried the suggested technique but had no luck. I can now feel that the "keycap" does not seem to be as well attached - sometimes pressing the button results in instant resistance, but others it slips slightly, or is mushy, before resisting. In both cases I can still register an audible click at the bottom of the travel.

    Is there anything else worth doing? Otherwise it's pretty disappointing to have only had a few weeks out of it.

  • @user101594 email sent

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Bangle.js 2 stuck in boot loop

Posted by Avatar for user101594 @user101594

Actions