BangleJS 2 died after exposure to saltwater

Posted on
  • At least, this is what it looks like. I was wearing my banglejs 2 when I went for a brief swim in the Baltic Sea at Eckernförde yesterday. First, the watch still showed the time, but didn‘t progress. After pressing the button, it booted, but didn‘t show the clockface any more.

    At home I tried to reflash it. It was listed on bluetooth, but didn‘t connect. Then, the vibration motor started to shake arbitrarily, finally the display went black. The watch now does not show on bluetooth any more, charging does not help.

    Is there hope to revive it?
    Best,
    — Olav

  • Hi Olav,

    Sorry to hear that - did you get your Bangle from the shop recently, or was it a KickStarter one?

    We do say you're not meant to go swimming with the Bangle - while it's designed to withstand some immersion in water, if it's on your arm and moving through the water then there's quite a lot more water pressure on it than if it was just sitting under a foot of water not moving around.

    I'd say, don't try and recharge it yet - leave it somewhere warm for maybe even a week and hopefully it will dry out - then it may start working again.

    But salt water is really bad for electronics, so I wouldn't hold out much hope. You could open it up, rinse it out with clear water and dry it and it's much more likely to be ok, but opening it is quite difficult - you have to warm up and remove the display, much like you would on an iPhone. It's quite tricky but I guess if the alternative is that it doesn't work at all, it could be worth a try.

  • Hi Gordon,

    thank you for your kind help. I bought the watch from the shop in March.
    I will leave it alone for a week and see what happens.

    Best,
    -- Olav

  • 20 days later, the watch boots again :)
    It complains about a corrupted storage and erases it.

    I can switch it to DFUe mode.
    However, trying to update the firmware, the app connects (with a message on the watch), but then fails with a message in the nRF Toolbox, saying that "SD version check fails".

    Any tip how I can work around this?


    1 Attachment

    • IMG_4825 2.PNG
  • That's great!

    For the version check, is it possible you're just trying to update a Bangle.js 1 firmware onto Bangle.js 2?

  • Oh! This may have well be the reason for the version mismatch; stupid me.

    I have loaded the 2v15 firmware for BangleJS 2 and tried again. Again, the nRF Toolbox is able to connect, but unable to transfer the firmware.

    Outside of DFUe mode, the watch just cycles an error message every minute or so.

    There is probably nothing else I can try, or is there?


    3 Attachments

    • IMG_4860.jpg
    • IMG_4858.jpg
    • IMG_4859.PNG
  • Is this on an iPhone? Because as mentioned on https://www.espruino.com/Bangle.js2#andr­oid-ios-app

    Note: It has been reported that on modern iOS devices the NRF Toolbox app disconnects from the Bangle after performing only part of the update process (iOS 12.5 works flawlessly). If this happens to you, you'll have to manually click to start the update multiple times (it will start from where it left off) in order to complete the update.

    So that might just be your problem?

  • Wow! From an Android phone, the firmware installation worked - thank you!
    However (back in Chrome on my Mac), the installation of the default apps hangs in the bootloader:

    What else could I try?
    Thank you for your patience,
    -- Olav


    2 Attachments

    • 20220815_203208.jpg
    • 20220815_203833.jpg
  • What happens if you go to the IDE at https://www.espruino.com/ide/# and connect (top left)

    Then on the left-hand side, paste in:

    • require("Storage").eraseAll() - could take a while
    • require("Storage").write("hello","World"­)
    • require("Storage").read("hello") - should write ="World" on the console

    It could be the camera, but it looks to me like some water even got into your display. My gut feeling is maybe the flash chip has ended up with salt water on it and has broken - so Bangle.js will work, but it can't write any data any more.

    Realistically if that's the case, it's probably time for a new Bangle. The main microcontroller does itself have 1MB of memory internally (about 500k of which is free) so I could do you a firmware build that uses just that internal memory, and you'd be able to use your Bangle again (as long as you didn't need to store too much data on there), however if enough salt water got in there to mess with the flash chip there's no guarantee that it won't corrode further and stop working altogether.

  • Oh well, there we have it, the flash memory is broken.
    I will pull out my BangleJS 1 for the time being and wait for the next christmas or birthday.

    I could do you a firmware build that uses just that internal memory

    This would of course be fantastic.

    Thanks again for your time.
    -- Olav


    1 Attachment

    • SCR-20220820-vi6.png
  • Please can you give the attached a go? You'll have to update it via the old DFU method, but once done, it'll use 400kB of internal flash instead of the 8MB external flash.

    Should be a bit faster, but it should also now work on your Bangle :)


    1 Attachment

  • So awesome, it works!
    Thank you,
    -- Olav


    1 Attachment

    • IMG_5009.jpg
  • That's great! Glad it's all working again :)

    I'm not planning on automatically making new builds for each release, but if you do need a new build it's easy to follow the normal build steps for https://github.com/espruino/Espruino and run RELEASE=1 BOARD=BANGLEJS2_NOFLASH make

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

BangleJS 2 died after exposure to saltwater

Posted by Avatar for olav @olav

Actions