Can't update firmware

Posted on
  • Tried many times to update to latest firmware (espruino_2v15_banglejs2) with no success. Have tried all the methods:

    • Firmware updater gets the Bangle's attention for a moment, but then the watch goes back to the clock while the App Loader page just shows a constant whirling arrow, which goes on indefinitely until I disconnect. (Same behaviour on Android and Windows (10, Edge) ).
    • DFU app on Android fails showing Error: The device does not support nRF5 DFU
    • IDE/Flash page reports NotFoundError: Web Bluetooth API globally disabled
      If there's a setting on the Bangle that has disabled the Web Bluetooth API, I can't find it. In any case I can connect and load/update apps via the App Loader.

    Grateful for any advice.

  • If you haven't already, I'd suggest:

    1. Maybe activate one of the debug options in the settings app under Utils.
    2. Connect to the web IDE
    3. Try updating the firmware again via the app loader in a new browser tab.
    4. Go back to web IDE tab, if you see some error message or strange output in the console window after a while copy and paste in a new comment here.
    5. Cancel the update when you feel you've waited enough.
    6. Reload the app loader and do a backup under the "More..." tab (maybe attach it to a comment here for possible debugging)
    7. Mark all installed apps as favourites.
    8. Do a factory reset of the Bangle either via the settings app, or by entering Bangle.factoryReset() in the console window of the web IDE when connected to the watch.
    9. When the watch is finished resetting, connect to app loader and try updating the firmware again.
    10. If updating worked, choose "Install favourite apps" under the "More..." tab on the app loader.
    11. If the problem wasn't solved, restore the backup from step 5 to get all your stuff back.
  • Getting the firmware updater in the app loader working would be the first thing to try. I'd assume that you may have some app installed that is forcing Bangle.js to reload when it's in the middle of the update.

    What I'd suggest is that you long-press the button (~10 seconds or so) until you see the Bangle.js boot up showing just the Bangle.js logo. Then you could try connecting with the app loader and doing the update and see if that helps. Failing that doing a 'factory reset' on the Bangle would help (although it would remove any custom settings you have).

    DFU app on Android fails showing Error: The device does not support nRF5 DFU

    I'd only try this if you can't get the App Loader working, but I think the issue is you're not connecting to the Bangle when it's in DFU mode (you'll know because the text shown on the display is very blocky) - take a look at https://www.espruino.com/Firmware+Update#android-ios-app

  • Thank you both for advice. Unfortunately nothing I have tried so far has made any difference.
    I'm not sure if I understood exactly what you intended by
    " you long-press the button (~10 seconds or so) until you see the Bangle.js boot up showing just the Bangle.js logo. Then you could try connecting with the app loader "
    but I had a go at disconnecting and reconnecting once the Bangle.js logo was showing on the watch. When I eventually managed a connection the Firmware update failed in the same manner.
    I made a backup as Gamblejs suggested.
    Mindful of "some app installed that is forcing Bangle.js to reload " I deleted all apps and tried the Firmware update. No change.
    Then I did a Factory reset and tried to update the firmware. Same result.

    Life is short and none of this is quick so I've just restored from the backup for now. Any further thoughts on this mystery would be welcome.

  • When I eventually managed a connection the Firmware update failed in the same manner.

    What's that? You mean what you said before about:

    • Firmware updater gets the Bangle's attention for a moment, but then the watch goes back to the clock while the App Loader page just shows a constant whirling arrow, which goes on indefinitely until I disconnect. (Same behaviour on Android and Windows (10, Edge) ).

    That is a strange one... And you definitely left the firmware update window in the forground (not minified or moved to a background tab)?

    If you really can't get it going then try the instructions on https://www.espruino.com/Firmware+Update­#android-ios-app about using the Android app and DFU mode. I think the issue you had before is just that the watch wasn't in the proper bootloader mode (even if you put it in, it times out after ~30s so you've got to be quick)

  • Yes, I have left the firmware update window undisturbed and in the foreground until I gave up waiting and did something to abort.
    Have tried again on a different computer, (W10, Chrome). This set up got the Bangle to stick on the message [loading] but the progress bar didn't move. I waited for 6+ minutes without any change.
    Tried this both before and after deleting all apps.
    (Original set up still switched straight back to the clock.)
    As far as the Android/DFU method goes I am sure the watch was in bootloader mode. The screen shows
    DFV start
    BTN1 reboot
    until the error message in the DFU app appears and the watch reloads the clock.

  • As far as the Android/DFU method goes I am sure the watch was in bootloader mode.

    Please could you try disabling Bluetooth in your phone and re-enabling it, then trying again?

    The 'The device does not support nRF5 DFU' error can just be because the Android phone hasn't properly updated the services that the device offers

  • Did that. No change, I'm afraid.

  • I have now managed to update the firmware, so the problem is fixed, for the moment, if not resolved.

    Just so you know, this is the sequence of events. I can't see it being of much diagnostic value, though.

    I tried updating the firmware via the app loader using another phone, mindful of what you said about the problem possibly being with the phone's BT, however the result was the same. The app loader was complaining that the Bootloader was old (although it was already updated to the latest version.) Tried updating that: no change.

    Then I did another factory reset and updated the bootloader. After that the firmware update succeeded.

    None of this makes any sense to me.

  • Glad it's sorted, and thanks for the update!

    The app loader was complaining that the Bootloader was old (although it was already updated to the latest version.)

    Ahh - right. I think the wording in the Firmware Updater a bit confusing. There are effectively two bootloaders - there's the one that you see as an app in the app loader (this is JavaScript that sets the watch up ready for apps), and there's the DFU bootloader which is some very low level code that runs as soon as the watch reboots. It's the latter that the firmware updater is talking about.

    I'll add some changes to the firmware updater so it only refers to the DFU bootloader as 'DFU', and has some more explanation in there to avoid this in the future.

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

Can't update firmware

Posted by Avatar for user150882 @user150882

Actions