Can’t Flash Firmware on Bangle.js 2

Posted on
  • Hi,

    I’ve been having trouble with my Bangle 2 since I got it. I tried to update the firmware by following the tutorial, but it seems like it wiped my OS or was corrupted. Now, when I try to reinstall the OS using nRF Toolbox, the watch gets instantly disconnected and I get this error: “[Callback] Central Manager did disconnect peripheral”.

    Any tips? I’m pretty stumped at the moment, after having tried various things like a different device, a different app, and different versions of the Bangle OS.

  • Hi,

    Did you try the first option under https://www.espruino.com/Bangle.js2#firm­ware-updates first? Or did you go straight to the 'fallback' method.

    What device(s) are you trying to flash the firmware from? Are they all iOS, or did you try and Android device?

    And what is the Bangle.js showing on the screen at the moment?

  • Hi!

    I got a Kickstarter Bangle, so I had to update its firmware manually via the second method in the link you sent.

    I’ve only tried from my iPhone. I could hunt around for another iOS device, but I don’t have any Android devices.

    The Bangle instantly gets disconnected when I try to update it. The first image below is after starting DFU, the second image is what it does after I try to install the firmware, and the third image is its “base” state it’s just sitting in all the time.


    3 Attachments

    • CC622BFE-EFE2-43D7-8B25-80A3DEE73323.jpeg
    • 537F3D88-92FD-4680-9875-A646C4DC11E0.jpeg
    • 38A80ED4-33DB-42E3-99B0-69B1DFC1B344.jpeg
  • I got a Kickstarter Bangle, so I had to update its firmware manually via the second method in the link you sent.

    Ahh - where did you read that? I should change the wording - you definitely don't need to do the second method ever now - the App Loader one works fine, you just need to click the 'upload bootloader' link the first time.

    Do you have an older iOS device you could try? I've got a 12.5 iPad here and that works fine. Recent iOS versions broke something on the nRF toolbox app - it does work, but as it mentions on https://www.espruino.com/Bangle.js2#firm­ware-updates you just have to keep trying and trying and trying and eventually it gets there.

  • Oh, gotcha! That would have been helpful to know, haha. I probably didn’t understand the wording of how to update it or something 😅

    Unfortunately the oldest thing I have is still like iOS 14. I guess I’ll give it a few tries and see if it starts working? I do have access to Mac and Windows computers, but I don’t think the watch can update that way.

    Come to think of it, I do have an old Android tablet somewhere. Maybe that would work, if my iPhone isn’t able to?

  • I tried to update the firmware via https://banglejs.com/apps/#fwupdate and got:

    Customise failed, Unexpected response "Uncaught Error: Expecting a string, got undefined"

    Firmware version is 2v11 and bootloader is 2v12. Trying to update to espruino_2v12_banglejs2.zip

  • Come to think of it, I do have an old Android tablet somewhere. Maybe that would work

    Yes, that's be perfect.

    It is possible to use mac/windows via espruino.com/ide but some people have reported issues with that recently as well!

    Customise failed, Unexpected response "Uncaught Error: Expecting a string, got undefined"

    Have you tried it more that once? And that happens every time?

    Is your Bangle very slow at the moment? It's been suggested that if it is, the firmware updater may time out.

  • I had tried it 5-15 times and it always had the same error at the loading bar being at the same spot (between 1/4 and a 1/3). Today I tried it again, but got different errors each time until it worked (after more then 10 tries). Strange, but \o/.

  • No luck, sadly. nRF toolbox crashes on the Android tablet when I try to add the firmware to flash, and my MacBook just sits on the Espruino IDE firmware update saying “Your firmware is now being updated…” and on the Bangle it says “connect” and then immediately “error”.

    Almost seems like the device is bricked, but maybe there’s more we can try?

  • nRF toolbox crashes on the Android tablet

    You could try and see if the nRF Connect app is any better?

    Do you have any friends you could ask to see if you can use their phones/devices?

    If the bootloader is there and accepting the connection I'd be pretty certain that the Bangle is fine, it's just somehow it seems the devices you have are all having issues connecting reliably to it with bluetooth.

  • Hi again,

    I tried using the nRF Connect app on both my iPhone and the Android tablet—no luck. Then I borrowed a friend’s Android device, still nothing. Is it possible to send the unit in, or get a refund for it or a replacement or something?

    Thanks for all the help so far!

  • Hi - do you think you could do a video of what's not working with the upload from Android?

    You're sure you are booted up to the bootloader (eg where it says DFU START?)

    What error message do you get from the NRF Toolbox app on Android when you try to connect to DfuTarg?

    If it really is broken then yes we can arrange a refund/return, but I don't think I have ever had a single device out of ~15,000 bluetooth Espruino devices where the bootloader actually started up like this and then wouldn't work, so I'd like to be absolutely sure first.

  • Quick thought - are you trying to connect to the Bangle.js (or similar) in nRF Toolbox, rather than DfuTarg?

  • Hi,

    @Gordon
    I tried to replicate the upload, but the Android tablet is quite old and is giving me trouble with its battery now. If it’s able to revive itself, I’ll be able to do a video with it.

    In the friend’s Android, the device said “DFU file not found” even though it was the latest file from the Espruino website.

    I didn’t get an exact error message with the Android version, it just crashed when I tried to select the firmware.

    I could do a video with my iPhone flashing it, but that might not really help.

    It’s definitely set to the bootloader when I try to flash the firmware (says DFU start), then quickly says “disconnect” and reverts back to its base “sw reset” screen.

    @ajkm
    When I go to connect to the watch, I get a ton of options, like 15, in the Bluetooth connection screen. However, as the guide says, I always pick DfuTarg from the list. None of the others are called Bangle.js, so I’m pretty sure that part’s working as intended.

    Thanks for all the suggestions!

  • In the friend’s Android, the device said “DFU file not found” even though it was the latest file from the Espruino website.

    This seems very odd - is it possible you'd just clicked the 'Download Espruino' link at the top of https://www.espruino.com/Download without going to 'Find a Binary' and 'Bangle.js 2'?

    The ZIP you get from 'Download Espruino' contains firmwares for every device, and NRF Connect won't know which one to use so will give you that error.

  • Yup, I just double checked and it was the file under “Find a Binary”. I’m double sure because my browser asked if I wanted to download the same file again.

    I tried flashing it again just in case, but the same error came up.

  • It'd be handy if you could do a video of the process - if only with what's happening on the iPhone. This update process has been done with well over 10,000 Espruino devices to date on all manner of phones, so I'm pretty amazed that you seem to have found not just one but a whole bunch of them that don't work.

    Is it possible you're behind some kind of firewall that is somehow modifying the zip file you download? Maybe you could open the zip file on your phone and check that it only contains espruino....bin, espruino......dat and manifest.json?

  • Yeah, it’s super weird. I recorded a video of the entire process using the Android tablet, but it’s too big to put in my post here. Do you have an email I can send it to?

    To answer your second question, I do use a VPN on my phone, but not on the Android tablet or my router or anything. I checked the contents of the zip file and they’re the exact 3 you listed, no others.

  • Yes, please send to gw@espruino.com - but the video may even be too big for an email. You could always just upload it to Google Drive/dropbox/etc and put a link here.

    Thanks for checking the zip! When you choose it in the NRC Toolbox app on the Android tablet, do you definitely choose the zip, and not the files inside it? I know on some earlier Android versions if you pressed on the zip it'd open it and show the files inside rather than selecting it, and you had to long-tap on the zip in order to select it properly.

  • Okay, here’s a link to the video via Google Drive. I guess it’s possible that the file browser is selecting the inner files, but it certainly looks like the whole zip file to me.

    https://drive.google.com/file/d/1cTLJFGd­zje-q9j_bP9-axPnt9UgtMZTp/view?usp=drive­sdk

    Thanks!

  • Thanks! That all looks fine to me so I'm not sure why there'd be an error... unless somehow Android got told to block access to internal storage for that app?

    Do you see DfuTar? in all apps, or is it just that particular Android Tablet where you see that rather than DfuTarg?

    I know you'd mentioned that you had tried the Web IDE upload method before, but please could you give it a go again? On Android and on Desktop.

    • Go to https://www.espruino.com/ide/
    • Click the gear in top right
    • Then 'Flasher'
    • Then the 'Flash Firmware' button
    • Then Choose 'Bangle.js 2' (the default is the first Bangle)
    • Then follow the steps

    When I try this on Android it seems the very first time it does fail with an error, but if I do it a second time it works fine, so it may be that's enough to get it flashed for you.

  • Hi,

    I tried using the IDE again, making sure to follow those exact steps, and it gave the same error (just says “error” on the watch) as it did the first time.

    The watch is called DfuTarg within the IDE and on my iPhone, so it looks like only the tablet is calling it DfuTar.

    Would it be possible to just get a refund for the watch at this point? Maybe returning this watch would help you figure out in person what’s up with it 🤔

  • Ok, thanks. Did you try it more than once from the IDE?

    I'm still not entirely convinced it's the watch that has an issue, but yes, if you can send it back here then I'll arrange a refund - although I normally don't offer refunds for the KickStarter. I can't find your email as a KickStarter backer but I'll drop you an email to confirm things now.

    A NOTE TO OTHERS - Please use the Firmware updater inside the App Loader It should avoid this kind of problem, since it uses the same connection that you'd normally use to update apps.

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

Can’t Flash Firmware on Bangle.js 2

Posted by Avatar for user140375 @user140375

Actions