Introducing Bangle.js

You have no idea how difficult it has been to keep this under wraps. After the huge successes of the 2017 *and* 2018 NodeConf EU digital badges, we knew we were going to have to come up with something completely different for 2019. So the NearForm Research team along with Gordon Williams from Espruino and Agata Surgot, our legendary Graphic Designer, put our heads together and decided to do, drumroll please, a hackable smartwatch called Bangle.js!

Learn more about how Bangle.js / NodeWatch in our latest post here which goes into more detail on how the watch came about, how to use it and of course, plenty of links to code too!

It’s the software that makes Bangle.js very special. Not only do you have all the Espruino features you loved in 2017 and 2018, but you also have full access to all of the new hardware through its simple JavaScript APIs. And just like previous years, you can connect to it over Bluetooth from the Espruino IDE in Google Chrome and program it yourself. All the information you need is over on NodeWatch.dev.

From a hardware perspective, the first Bangle.js device is an off-the-shelf unit that happens to be jam-packed with features including an NRF52832 processor, GPS, accelerometer, 3-axis compass, heart rate monitor, Bluetooth LE, 32 Mbit flash and a 240×240 colour LCD with 2-zone touch. You can also open it with just a screwdriver so you can fix or replace parts like the battery. Try that with your Apple Watch or Airpods ;-)

But we decided that Espruino on its own wasn’t enough. Not by a long shot. When Google announced TensorFlow Lite for Microcontrollers at the TensorFlow Dev event in March, I immediately asked the team if we could use it and they said yes! They quickly got TensorFlow running smoothly on Bangle.js and blew all our minds. We now had the world’s first hackable open source JS-powered and TensorFlow-powered smartwatch.

But simple example Machine Learning apps were also not enough for NodeConf EU. Enter the NearForm Research data science team led by Andreas Madsen, fresh from their success with TensorFlow.js in our Clinic.js project.

We needed a really approachable example and James Snell, our Head of Research, came up with a fantastic idea which we’ll tell you all about tomorrow morning at the event kickoff.

Attendees will be taking part in a Workshop which walks through a Google Colab and shows you how our model was created and can be modified or trained with your data. Anything you can do with TF Micro you can do on Bangle.js. But without all the palaver of C compilers etc. However, you should note that it’s highly experimental.

Of course, we didn’t stop there and built a set of JS apps for the watch including

GPS Time

Compass

Speedometer

Beer Compass for Kilkenny

Games: T-Rex is back and Asteroids has touch control

5k Fun Run

Heart Rate Monitor

Google Plus Codes

Settings including Privacy

Spirit Level

plus many more.

We installed a small set of these on the conference device but users can install a much bigger range using the simple Bluetooth App Store that the Espruino team has created for Bangle.js. Anyone can submit a PR for their App to be included in the App Store. That includes whatever cool watch faces you develop.

Everything is Open Source of course.

Lapsed and non-programmers can also interact with Bangle.js using Blockly which is built into the Espruino Chrome Web IDE. We also hope to have an experimental BLE-MQTT bridge stood up during the event which can be accessed both in code and via Node-RED. Everyone can easily install and use the JavaScript apps developed by the community both during and after the event.

Whilst Bangle.js at NodeConf EU is mostly about fun and experimentation, it is backed by very serious intent. NearForm believes deeply in sustainable Open Source, Open APIs and your right to your data. Bangle.js has the potential to kickstart a community-driven open health platform where anyone can build or use any compatible device and everyone owns their own data.

As always with the NodeConf EU badge, we’d like to thank all of the people behind the scenes who helped to make it happen. In addition to the NearForm and Espruino teams, we really appreciated all the support from the Google TensorFlow team, in particular, Pete Warden and Ian Nappier. And of course, shout-out to Myles Borins!

I’d like to leave you with a few quotes from some of those involved.

Conor O’Neill, Chief Product Officer of NearForm said “Each year we ask ourselves how we can further promote the idea that Open Source is Art. And each year the look of pure delight on the attendees’ faces, as they receive their badges, makes all the work worthwhile.”.

Gordon Williams, creator of Espruino said “The NodeConf EU badge has enabled us to push the envelope each year in what’s possible with embedded JavaScript. I’m very pleased to add TensorFlow to that list.”.

James Snell, Head of Research in NearForm said “Bangle.js is the first major new project involving the recently formed NearForm Research group. You can expect to hear much more about our activities in the coming months.”.

Andreas Madsen, Data Science Specialist in NearForm Research said: “I normally work on a $10M supercomputer, so to squeeze a machine learning model down on 10kb and an MHz processor was a refreshing challenge, to say the least :)”

Pete Warden, Technical Lead of the Mobile and Embedded TensorFlow group in Google said: “It’s great to see the Micro version of TensorFlow Lite powering the gesture detection on this really cool device, it’s been a fantastic collaboration.”

Ian Nappier, Product Manager of TensorFlow Lite in Google said: “Community and developer engagement are an incredibly important aspect of the overall TensorFlow project and it makes me so happy to see TensorFlow Lite for Microcontrollers running on the NodeConf EU watch.”

And finally, Agata Surgot, NearForm’s Graphic Designer said: “See, I told you a smartwatch was the way to go”.

Conor O’Neill is Chief Product Officer at NearForm and is responsible for all productization activities and works closely with NearForm’s Open Source and R&D team to evolve the web platform. Some of the projects he has responsibility for in NearForm are Clinic.js and the NodeConf EU Digital badge.

Feel free to connect with him on LinkedIn.