BangleJS boot loop/glitched

Posted on
  • Hey!

    I've had my BangleJS 2 for just over a year and for the most part it has been super reliable. Yesterday when plugging it in to charge the screen on my Bangle flickered quite drastically, and the Bangle started to heat up to a pretty hot temperature. I detached the watch from the charger and left it overnight to cool and see if it recovered, but now I can only get as far as the recovery menu - the test screen says all green other than "fw: boot undefined" and any other screens either glitch out or eventually present a mangled "loading' image and hang.

    I've tried reinstalling the firmware through DFU with no luck, it seems like nearly there's an issue with storage? In some instances while booting I see "check storage" followed by "too many files" but most of the time the watch either reboots back into recovery, or the screen flickers quite a bit and then the watch turns off.

    I haven't been able to reinstall any apps/factory reset either as it just displays the mangled loading screen or hangs on the "uploading app..." screen. The backlight also seems to have stopped functioning this morning.

    I tried factory resetting with the IDE attached and see the following:

    FW addr 0x0001b300 fail
    Status 0
    -
    Write complete.
    
    > 
    
    

    Has anyone hit an issue like this before? I've attached a photo of the glitched screen but I'm a little conscious of trying to boot it up and take more when it was heating up

    Thanks!


    2 Attachments

    • IMG20240914091027.jpg
    • IMG20240914105037.jpg
  • Wow, ok, that's a weird one. The LCD screen itself is only capable of displaying the basic 8 colors, and from that picture it looks like either you found a magic screen mode or there's a hardware issue with the screen. Does it run the battery down quick?

    When I see issues like this (screen, battery, flash, backlight all together) it feels like maybe it could have got water inside it? Were you doing anything where that might have been possible?

    If so I'd say try and put it somewhere warm and dry for a week and see if it'll try out, or I guess you could look at opening it up (but that's quite extreme). Ideally leave it uncharged while drying it out to ensure it doesn't deteriorate.

    ... or, is it possible the charger cable could have been pushed on the wrong way around (against the magnet) or that you used the charge cable from another device that might have been wired differently? That could potentially reverse-voltage the Bangle and cause all sorts of issues.

    FW addr 0x0001b300 fail

    This happens when it can't write reliably to the flash memory, which could also be an issue with the wires on the board being waterlogged.

    The good news though is if it doesn't deteriorate, and that is the only problem then there is a build of the Bangle.js firmware that will allow you to not use the external flash chip. It means less storage available (300k vs 8MB) but it's enough for most stuff and it's a lot faster

  • Hey, sorry for the slow reply on this! I got in touch with the retailer I purchased my Bangle from and they're going to arrange to replace it once they have more in stock since it was still within the 2 year warranty period. It was raining the day it happened, but I wouldn't have thought heavily enough to impact the Bangle, and I used my normal OnePlus charger with the default Bangle cable so no risk of a device being wired differently or the cable being pushed on incorrectly. I've left the Bangle inactive for a while but haven't seen much of an improvement.

    Is there somewhere I can get the binary for the firmware that doesn't use the flash chip? I'd like to try it in the meantime to see if I can recover the Bangle!

  • Also another note on the internal-flash firmware: there used to be a problem with the compacting storage feature (compacting is like "defragmenting" or rather a "full vacuum" if you know what I mean).

    Should you use the firmware, I recommend not installing your previous backup, but installing everything fresh so that there is as little lost space as possible. (Except if Gordon was able to track down this particular issue)

  • there used to be a problem with the compacting storage feature

    Wasn't that the firmware that used both internal and external flash? I thought the one that just used internal flash was fine? After all, we use that in every other non-Bangle.js Espruino board we sell and it seems to work fine?

  • Is it just a confusion on the nomenclature here - 'iflash' vs 'noflash'?

    Before we've talked about the one using both internal and external as 'iflash':

    And the one using only internal as 'noflash':

    EDIT: But it seems also the 'noflash' build had the same problem according to @devsnd:

  • Oh, damn. You're right. Sorry - don't try the iflash one I attached, I'll try and delete it.

    Try the noflash build I've attached below.

    And interesting - ok, I didn't realise @devsnd had issues. However I did just install the attached noflash build, did a factory reset, updated apps, then compacted, and it still seems to work fine so I'm hopeful.

    It's entirely likely that what happened was @devsnd restored a backup that was too big and then even though compaction kicked in there wasn't enough space for all the apps, so not all the files got copied in.

    If that happened you could always delete big files/apps from the backup zip until it got small enough and then try again.


    1 Attachment

  • I installed the iflash build yesterday and that did get me as far as "No Clock Found" and "No Launcher Found" when pressing the button on the Bangle (minus backlight and I wasn't able to get Gadgetbridge to connect to the watch), but I guess as it was still attempting to write to storage I couldn't install any apps from my Desktop.

    I just tried flashing the noflash build but the screen of the watch turned off mid-install and after a few seconds I started seeing console errors in devtools indicating writing to the device was failing. I'm going to leave it charging for a few hours just in case the battery ran out and will try again if it recovers

  • After leaving the watch to charge, I was able to flash the noflash build and, apart from the display occassionally flickering and the backlight having a mind of its own, boot the watch and install apps on it successfully.

    Unfortunately, I guess with the size of the internal flash, once I install anything more than the Android app, Messages and the Pebble++ clockface + dependencies (after uninstalling all stock apps I didn't need), it's far too easy to trigger storage compacting, which locks up the device at "updating boot0" and only "Install default apps" from the app manager can recover the device. I hit it just now updating LCD settings to try to work around the backlight issue

  • Ok, that's a shame. The whole compaction issue is surprising - I spent several hours yesterday trying to even reliably reproduce it but without success.

    It did make me wonder whether it was related to some of the optimisations we put in for external flash (like the filename table). So I've made another build (attached below) without these - I'd be really interested to see whether that works any better.

    You've still got 360k flash, so I'd hope that you could install a decent amount of stuff (especially with pretokenise enabled) - just not things like the extra fonts that do take up a chunk of space


    1 Attachment

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

BangleJS boot loop/glitched

Posted by Avatar for Bman @Bman

Actions