Bangle.js: the hackable Smart Watch


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

Story

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?

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

Apps

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 banglejs.com/apps) 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!

DroidScript support

We’ll also be working with David from DroidScript to make sure that there’s a nice, easy way for you to write Android phone apps in JavaScript that will talk to Bangle.js. While Bangle.js can work completely independently (and we’ll have Gadgetbridge for notifications from your phone), DroidScript provides a fast, easy way to use your phone’s internet connection to push data to Bangle.js in the background using the same JavaScript language.

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:

Multiple Rewards?

Want something that there isn’t a reward for? You can select one reward and then pledge extra – for instance if you wanted two Bangle.js and a MDBT42 board (above), you could select the ‘Hackers Edition’ and pledge £117 (£60 + £10 + £47), the cost of the Hackers edition with postage, plus a single Bangle.js.

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

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 (ACHIEVED): 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 (ACHIEVED) : 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.

£100,000 (ACHIEVED) : Optimised graphics mode for games. Bangle.js already has an unbuffered 240x240x16 bit graphics mode, as well as a double-buffered 240x160x16 bit mode. With this stretch goal we’ll be adding low-resolution 8 bit buffered graphics which will make it much easier to write full-colour, fast moving games (and other graphics).

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.

We offer competitive prices on large volume orders and super fast turnaround time.

Kindly write your requirements we can discuss further in more details based on your needs.

You can also email us at eeenew.com@gmail.com directly for Special Inquiry.

Category: