Bangle.js: the hackable Smart Watch

An open source, AI-enabled smart watch that can be easily customised

Gordon Williams

Oxford, UK


£ 47

Add To Wishlist

Bangle.js is an open, hackable smartwatch. 

You can easily install new apps from the web or develop your own using JavaScript or a graphical programming language (Blockly). All you need is a Web Browser (Chrome, Edge or Opera) and you can upload apps or write code to run on your watch wirelessly! Bangle.js is waterproof and AI enabled and comes with bluetooth low energy, GPS, a heart rate monitor, accelerometer and more.

Want to know more?

 Nearform gave out pre-release Bangle.js watches to everyone at the NodeConf EU conference – See what they’re saying on Twitter! You can also check out the documentation put together by the Nearform for the conference, which covers getting started with the watches – bear in mind that these are still pre-release watches! Hackster has an interview and article about Bangle.js  Gordon was a guest on the SAP Labs Talk Podcast has an article (in German) about Bangle.js too There are also articles in Computer Weekly, FOSSBytes and IT Knowledge Exchange 

Hardware Specs 

IP68 Waterproof: up to 10m underwater Nordic 64MHz nRF52832 ARM Cortex-M4 processor with Bluetooth LE 64kB RAM 512kB on-chip flash, 4MB external flash 1.3 inch 240×240 16 bit LCD display with 2 zone touch GPS/Glonass receiver (UBlox) Heart rate monitor 3 Axis Accelerometer (with Pedometer and Tap detect) 3 Axis Magnetometer Piezo speaker and Vibration motor 350mAh battery, 1 week standby time 5 x 5 x 1.7 cm case, plastic with stainless steel ring Can be disassembled with just 4 screws  

Software Specs

Easy to code and debug wirelessly using JavaScript or our graphical editor (based on Blockly) Pre-programmed with the Espruino Open Source JavaScript interpreter  Vast majority of JavaScript ES5 features and many ES6 features including: Regular Expressions, Promises, Arrow Functions, Template Literals 40kB RAM for program memory/variables Bluetooth 4.2 Advertising, Central and Peripheral mode support with built-in Nordic UART service Graphics library with Vector fonts, bimap rotate & scale Tensorflow Lite for Microcontrollers AI Wear-levelled flash filesystem Heatshrink compression Upload functions written in C or ARM Assembler Built-in wireless debugging VT100 Terminal support on LCD Program with Web-based Web Bluetooth IDE or Node.js-based command line tools  


Because Bangle.js is entirely open, you can upload the apps we’ve already developed, create your own, or upload apps created by the online community.

Our app store (at will be entirely free. We’ll never share your data with third parties or make your use of our apps dependent on third party cloud services. So far we’ve created some great apps including games, a compass, map, spirit level, QR code display and heart rate monitor (to name a few) and we have lots more to come.

We already have a great online community (our forum has over 35,000 posts!) and we’re excited to see what apps you come up with!

Who are we?

I’m Gordon Williams, the creator of Bangle.js. I’m a software engineer who loves tinkering with hardware. 7 years ago I became frustrated with the steep learning curve required to create software for microcontrollers and started working on Espruino. I’ve been working full-time on it since the end of the first Espruino KickStarter campaign in 2013. My work is Open Source and funded by sales of my Espruino devices and the support of the online community via Patreon.

Since Espruino’s first KickStarter campaign, I (with a bit of help from family and friends) have:

Shipped over 30,000 official Espruino devices Developed 5 further Espruino devices (including the wifi board, Pico, Puck.js, Pixl.js and the MDBT42Q breakout board) Launched and successfully delivered two more KickStarter campaigns Written over 11,000 forum posts Produced over 100 online tutorials and over 90 YouTube videos for Espruino Fixed over 1500 GitHub issues for the Espruino project Made over 3700 GitHub commits in Espruino, and many more in other Espruino-related projects like the IDE.  

Several others have provided a huge amount of help with Bangle.js: Nearform Research has done a lot of work on the AI, apps, documentation, testing and publicity for their Nodeconf EU conference, and Fanoush’s work on nRF52-based smart bands was instrumental when figuring out how to replace Bangle.js’s factory firmware.

Why Bangle.js?

It feels great to use things you’ve made, but even if you are an experienced hardware designer it’s difficult to make yourself a watch that is reliable and useful long term, let alone waterproof and affordable.There’s some amazing hardware already out there, but it’s usually crippled by bad software and isn’t supported of upgraded.

That’s why we decided to take a powerful, well-designed Smartwatch that already exists, completely reverse engineer it and replace all of its firmware with our Open Source software to really unlock its capabilities.

Why JavaScript?

Developing software for embedded devices can be a real pain. You normally need wires attached to the device you’re developing for, and you need to install and set up a complex toolchain. Anything more than a few lines of code can take a minute or more to compile and upload to the chip, and this applies to every change you make. Many tools don’t even allow for debugging.

Bangle.js has none of those problems. The Espruino JavaScript interpreter allows you to upload code and debug wirelessly out of the box using just a Web Browser, with no need to install software on your computer.

Tensorflow Lite AI

Tensorflow Lite for Microcontrollers is built into  Bangle.js’s firmware so you can run machine learning models wirelessly on your wrist! This allows you to detect gestures using the accelerometer. If you’re feeling adventurous you can customise the data you collect and create or update machine learning models without even having to reboot your watch!

Simply train and test your model on your PC with Tensorflow, then create a tflite model and upload it to your watch.

Open Source

Bangle.js uses the Open Source (MPLv2) Espruino JavaScript interpreter. All source code, tools and documentation are provided under an Open Source licence.

We’re using an existing watch so we can’t provide original schematics (we don’t have any!), however the information we have gained from reverse engineering the watches will be made Open Source.

What do you get?

If your reward contains a Bangle.js, you’ll get a box containing:

A Bangle.js Smartwatch A Magnetic USB charge cord Getting Started instructions

Depending on which reward you chose, you may get other Espruino Bluetooth boards as well. These all run JavaScript, can communicate with Bangle.js, and are programmed with the Espruino Web IDE. From left to right:

 Espruino Puck.js – a small, self-contained Bluetooth button with 3 axis magnetometer  Espruino MDBT42Q breakout board – a tiny, low power Bluetooth board that can run off a wide range of voltages and fit on a breadboard  Espruino Pixl.js – a low power Bluetooth LCD with Arduino pinout

Current Status

We’ve just purchased and programmed 400 watches for the attendees of the Nodeconf EU Conference running from 10th-13th November 2019, so we’re confident in our ability to source and program the hardware. While the firmware is very capable right now (as shown in the video), there is still a lot that we’re planning  to do:

More applications Documentation, examples and tutorials Adding features to the firmware (pedometer, etc) Power usage profiling and improvements Testing and bug fixing  

We’re confident that we can get this done  and ship your rewards in time, as we have with our previous KickStarter campaigns. As with our other Espruino devices, Bangle.js will continue to receive software updates long after this campaign ends.

Production Timeline

Because we’re using existing hardware, our timeline is a lot easier than it has been for previous products, but we’re trying to set realistic deadlines with some wiggle room in case there’s a delay in production at the factory.

 Now: further development of Bangle.js firmware, documentation and apps  End of November: KickStarter finishes  Mid December: funds clear, watches ordered, beta test watches programmed and shipped  Early February: watches arrive  February/March: watch programming, packing and shipping  


The Pixelmaster is a graphical representation of all the amazing support we receive during this KickStarter campaign. Every Bangle.js will have an ‘About’ screen built into the firmware, and everyone who buys a Bangle.js will get to choose the colour of 9 pixels on the screen from the 16 colour Mac palette:

 Backers who pledge additional support will get an extra pixel per £1 pledged. But which pixels? You get to choose! Those with most pixels chose first, and if you have the same number of pixels as someone else, you get first dibs if you pledged first.

Stretch Goals

£40,000 : You can write simple code graphically right now, but if we reach this stretch goal we’ll be extending our graphical editor with support for Graphics, Menus and Images. This will make it even easier to create good-looking apps without any coding knowledge.

£75,000 : We’ll add an online file system to the Espruino Web IDE so you don’t need to save your apps or code you’re working on to your computer. This means you’ll be able to develop, access and save your apps easily from anywhere at any time.

… : If we reach any of our earlier stretch goals we’ll add more here. Let us know in the comments if you’ve got any suggestions!

Small Print

We pride ourselves on being open – not just with Open Source software, but about everything. Bangle.js is a pretty awesome piece of hardware, and is great value at this price, but there are a few things that aren’t perfect. So that you’re not disappointed, we think you ought to know that:

We’re shipping from the UK – if you are not in Europe you may be liable to import taxes. The touchscreen is two zone (not full touch) The piezo speaker is pretty quiet The heart rate monitor doesn’t always read accurately when you’re moving around We’ll be adding support for notifications from GadgetBridge on Android, but don’t have any plans to support iOS. Web Bluetooth works on Windows 10, Mac OS, Chromebook, Android and Linux. iOS requires a cheap paid app (WebBLE). While we have a native application for programming Bangle.js in Windows 8 and earlier, there is currently no Web Bluetooth support.  

Add To Wishlist
Close Menu


Welcome ,Our New Friend!

register your account

Welcome Back

Featured Your Project
On Gadget Launching

    Log In | Lost Password

Sign up for our Newsletter

Play Video