Flash Bangle firmware without phone?

Posted on
  • Hello,

    quick question: Is there any other way to update the Bangle firmware than through an Android or Apple smartphone?


  • You can update the JS firmware from pretty much any device, but the actual Espruino firmware is a bit more tricky.

    There is a Web Bluetooth firmware updated built into the Web IDE (settings->flasher) but I've heard of mixed results from using it. On some OSes is works, others it doesn't.

    It's based on https://thegecko.github.io/web-bluetooth­-dfu/examples/web.html which should be basically the same as well.

  • So which is the one I find here ? I wasn't aware there are two different types of firmware. But I assume at one point I will want to update the firmware for whatever reason.

    The firmware flashing part on the Web IDE clearly says it does only work with USB devices, so does the command line version here. So to me that sounds like a no-go, at least I wouldn't take the off-chance that it works although it says it doesn't.

  • That link looks to be the actual Espruino firmware. It allows the watch to interpret and run javascript.

    You can also have your own JS firmware which you might call as "apps" and you can update or upload that via the Web IDE (the Bangle bootloader, clock, basically anything you see on the watch are just apps running on top of Espruino).

    The Web IDE can also update the Espruino firmware on the watch, although not all browsers support Web Bluetooth (as far as I can tell the best success comes with Google Chrome). I've updated my watch and various other bluetooth Espruinos via the Web IDE. I'm not sure where you found where it says it only works with USB devices though.

    The command line version should also be able to connect via bluetooth, I just haven't tried it yet. See for example the bluetooth mentioned in one of the commandline arguments:

    -p,--port /dev/ttyX      : Connect to a serial port
      -p,--port aa:bb:cc:dd:ee : Connect to a Bluetooth device by addresses
      -p,--port tcp:// : Connect to a network device (port 23 default)
      -d deviceName            : Connect to the first device with a name containing deviceName
  • Hi, thanks for the feedback.

    Yes, I suspected what Gordon called "JS firmware" is what I would call the apps. I understand that it wouldn't be a problem to flash those from different platforms. I use Linux by the way.

    I'm not sure where you found where it says it only works with USB devices though.

    In the Web IDE when you go to Settings -> Flasher, it says it only works with boards with the Espruino USB bootloader.

    In the command line version, I assumed it is the -f argument I need to use to upload a firmware, and this one explicitly says as well that it has to be a USB Espruino and Bluetooth is not supported.

    All that taken together makes me think that it does not work with a Bangle. So are you saying you actually did update the Espruino firmware that way, although it says it doesn't work? Did you use the Flasher tool in the Web IDE for that?

  • Ah, I didn't notice that. I guess @Gordon needs to update this text :P

    Yes, I use the Web IDE to flash the Espruino firmware. I attached a screenshot.

    1 Attachment

    • Annotation 2020-11-14 190330.jpg
  • Aha, that's good news then. I guess the command line version should work too then.

    Thanks for the info!

  • Yes, the text needs updating - however until I get it reliable on all platforms I don't want to make it too obvious :)

    I guess the command line version should work too then.

    Unfortunately not at the moment :( The flashing code uses different APIs which means it's harder for me to get it to work on the command-line.

    Having said that you can run this one on the command-line: https://www.npmjs.com/package/web-blueto­oth-dfu

  • OK, I see. I would really prefer to avoid installing Chrome on my PC, but I guess the stand-alone Web IDE is another option.

    I just ordered a Bangle, so I will see how all that goes. Looks like there should be one way or another to do everything I need.

  • Ok, great! If you're on Windows then the Edge web browser will work too.

    There's also a second option - the Web IDE relay: https://www.youtube.com/watch?v=H8L8ft83­0hI

    At some point soon the process will get a bit more streamlined, but it still works. You can go to the relay page on your phone, and can then program via your desktop, without needing any special browser.

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

Flash Bangle firmware without phone?

Posted by Avatar for Sebastian @Sebastian