nRF52840 for Bangle.js?

Posted on
  • The 832 is a great chip but I'm intrigued at the possibility for a connectable smartwatch at long-range. I'm familiar with the 52840 and would be happy to work on a long range version of any applicable engineering files for the Bangle. If someone at Espruino gave me the pcb files and source code, I can even work on a long range solution (with other benefits from the 840) to give to Espruino if there's interest. Let me know,

  • The Bangle is a DT NO1 F18 watch reflashed, not custom hardware, so Gordon doesn't have the PCB files, but there is a lot of info in a recent thread. You can find some more info in the forum and the docs.

    The source code is up at Github, main firmware with build instructions is at but check the other repos there as well. Everything is there Bangle apps, docs, PCB files for other Espruinos...

    Personally I would love if long range BLE would work with Espruino. Not for a Bangle, but for home automation. Did some testing with Nordic's demo and has a pretty impressive range for 2.4GHz and PCB antenna. Tried to port to Espruino, but not enough time & skill yet. Even "just" advertising and scanning would be useful for tiny sensor nodes.

  • Thanks - but as noted I'm afraid I don't have the design files. However if you were redesigning the PCB IMO you'd be better starting from scratch and seeing if you could get a circular LCD screen on it as well. If you gave up on GPS I think it would actually be reasonably straightforward to get something working as you could re-use the existing flex PCB with the HRM, charge point and buttons on.

    However the more sensible option would be to find another pre-existing smartwatch that had a nRF52840 in it and that also fixed a bunch of the things that the Bangle.js hardware doesn't really do right.

    It's something I'm actively looking at for the future and I have a very solid candidate in mind, but I've got another 3000 Bangle.js watches arriving here in the next few weeks, and somehow I need to sell those first!

    wrt nRF52840: I've actually done a bunch of work on that recently, and advertising/scanning works nicely. While the long range stuff hasn't been enabled, it should be relatively easy to add code to set the required flags to get it working.

  • Thanks for all the info here! Good points were made, I actually did not realize you were modding shelf products, whoops - but that's cool!

    I am working on a small breakout for a certified 840 module that will go the distance, and I've already written firmware (modded from the SDK) that enables long distance on the extra PHY channels (incorporating GPS and all the other goodies is on my to do list). But let me tell you, I CANNOT walk far enough to get the connection to break between two devices, it's insanely solid. I've confirmed 200+ meters with LEDs blinking on Button events from the other device and I would not be surprised if the sucker went for a mile. Would be happy to share :)

  • That's great! I'd love to see your code for the long range stuff. Ideally we could integrate something into Espruino (when running on nRF52840).

    I'm pretty excited about the extra range - there'd be loads of fun stuff you could do (like advertising GPS location so you could find each other if you were both within a ~1km area)

  • You bet. If you're looking at the 840 SoC alone then you wouldn't have to look any further than attached blinky examples with Coded PHY enabled (found them on the Nordic DevZone - SDK16), there's a few nuances with the extended advertising that I've already had the pleasure of struggling through. So if I can save you some time, please don't hesitate.

    Additionally if you're interested in examples with PA/LNA configuration, I have some custom-tweaked examples of a few different long-range modules as well. In my experience, if you really want to cut through all the noise I'd definitely recommend this option. I tested the firmware with two PA/LNA enabled boards in the middle of a crowded Chicago neighborhood and, like I mentioned I could not walk far enough to break the connection. Boards without it broke in less than 20m even with extended PHY channels. Let me know and I can drop those here as well (I'll have to clean them up a bit lol).

    1 Attachment

  • @Gordon Just out of curiosity, how do you reflash 3000 No1 F18 watches? Or do they arrive flashed with your firmware from the manufacturer?

  • @user115332 Thanks! I'll have to see how easy it'll be to add some flags to existing Espruino functions to allow it to be enabled.

    @tbondar sadly they don't, no! With the help of @fanoush I managed to download their bootloader, patch it, and then come up with a setup that'll flash them wirelessly. However it takes ~10 mins per device and isn't 100% reliable, so there are still a few percent of devices we have to open up and physically flash.

    Honestly for an order of 3000pcs the watch manufacturer really should pre-flash them, but I haven't had any luck convincing them. Plus especially for the KickStarter batch the firmware was changing so quick that if they'd have pre-flashed them with the firmware I had when I ordered I'd have had to manually flash them again anyway!

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

nRF52840 for Bangle.js?

Posted by Avatar for user115332 @user115332