Getting Started

Welcome to your NodeConf EU 2019 digital "badge"

Surprise! It's a powerful hackable smartwatch! We think you're going to have lots of fun with this year's device, no matter what your level of hands-on technical experience.

On this site we'll explain what the device is, how you can interact with it and how you can re-program it.

If you haven't done so already, please read these three blogposts first:

Bangle.js and NodeWatch

Bangle.js is an all-new programmable smartwatch platform based on EspruinoJS embedded JavaScript and TensorFlow Lite for Microcontrollers.

NodeWatch is the specific implementation of Bangle.js for NodeConf EU 2019, co-developed by Espruino and NearForm Research. You'll see us use the terms Bangle.js, NodeWatch, watch and device interchangeably on this site and elsewhere.

Bangle.js Kickstarter

If you want to get your hands on a Bangle.js but you're not at NodeConf EU, then Gordon Williams from Espruino launched a KickStarter for it on Nov 11th 2019. All the details are on

Note that NearForm has no involvement in this crowdfunding campaign but we're excited to see Bangle.js launched to the world using Open Source Software that we co-developed.

Bangle.js Buttons and Touch

To use the watch you have three buttons and a simple two-zone touch screen with swipe. We currently don't use the touch screen for menu control but some of the apps use it.

The buttons, top to bottom, are BTN1,BTN2,BTN3

  • BTN1: Up/Previous in menus
  • BTN2: Select in menus, or bring up menu when in Clock
  • BTN3: Down/Next in menus
  • BTN4: Left-hand side of touchscreen. Used for some games, but not in menus
  • BTN5: Right-hand side of touchscreen. Used for some games, but not in menus

To exit any app and return to the clock, long-press BTN3 until the clock appears.

  • You can turn the watch off in Settings or very long press BTN1/BTN2 together.

(More advanced Button usage is on the Bangle Untangling page.)

Pre-installed applications

We have pre-installed the following apps and widgets:

  • Morphing Clock - the default watchface
  • GPS time - Set very accurate time
  • Heart Rate Monitor - simple HRM which requires you to not move
  • Stopwatch
  • Compass - Make sure to calibrate with the usual figure of eight motion
  • 5K Fun Run - The route of the NCEU 2019 Fun Run
  • Asteroids - The all-time classic, now with touch controls!
  • Settings
  • About
  • Battery/Charging widget
  • Bluetooth widget
  • NodeConf EU Widget

Enabling Bluetooth

To enable bluetooth and make use of the many connectivity based features described below, do the following:

  • Go to Settings > BLE
  • Enable Bluetooth

Setting the time

The fastest way to set the time is to pop outside for a minute and launch the GPStime app. It should get the correct time very quickly and you can then press "Set". You can alternatively go to this webapp and update the time by following the inistructions and clicking the button there.

Charging your device

The device has a magnetic charging cable which you can easy connect to the device. Check the charging indicator on the screen to ensure it is charging when it is connected. It is unfortunately not keyed so you may accidentally connect it the wrong way around. You can also refer to the diagram on the sticker attached to the charging cable.

Installing Applications from the App Store

Rather than fill NodeWatch with applications you are not interested in, you can make use of the new simple Bluetooth App Store for Bangle.js to select the ones you want. In some cases you just have to click the upload button beside the App. In other cases there may be an extra menu or webapp that you need to interact with first (e.g. uploading a KML route file). Note you need to use Google Chrome for this site to work correctly.

In order to upload the Apps you first have to make your device connectable over Bluetooth in the Settings menu on your device and check what the Bluetooth address is. Then, when you go to upload an app, you'll see a Web Bluetooth pop-up menu followed by a list of visible devices. Just pick your device from the list based on its Bluetooth address. If it's working, you'll see an "uploading" message on your watch screen.

Main features of this device

As we said in the announcement blogpost, the specific device we have chosen for NodeWatch does not define Bangle.js. It is simply one example of the many possible devices that could be a Bangle. Indeed, it's the fourth major (plus many minor) device that we tested over the past few months. You can read about the specific hardware details on the hardware page but at a high level, NodeWatch has:

  • An NRF52832 ARM-based microcontroller with Bluetooth LE 4.2. This is the same as the 2017 and 2018 badges - If it ain't broke.....
  • Colour touch screen
  • Accelerometer for motion/gesture detection
  • Compass
  • Simple Heart Rate Monitor
  • Buzzer
  • 3x buttons
  • 32 mbit Flash storage

Bluetooth Settings and Privacy

Most Bluetooth functionality is disabled by default. You have to re-enable it temporarily if you want to install applications, program it via the Web IDE or use it for HID/Music.

Music and keyboard control of your PC or phone

Please install the HID and Music Control Apps from the Bangle.js Appstore if you want to control your computer over Bluetooth. Also enable Bluetooth and HID in the Settings App. You can then use the three buttons to go up/down tracks and play/pause music in the music app or go up/down in a presentation etc in the HID app.

Note that you cannot use HID in any of the ways above and also use the Web IDE for programming. Follow the instructions here on how to switch quickly between the two modes.

Workshop at NodeConf

We ran a "badge" workshop at NodeConf EU in November 2019 so that attendees could learn how to program Bangle.js and how the entire gesture control code works and can be modified. The instructions for that workshop are now available here. This is the easiest way to learn how to interact with code on the watch.

Programming your NodeWatch

Details on programming your device with the Espruino Web IDE are here. We also had experimental support for a BLE to MQTT bridge for watch-to-watch comms here.

Non-Programmers programming your NodeWatch

As we said above, you do not have to be a programmer to take part in the workshop. If can't program then you can make use of the interactive visual programming language Blockly, by following the video on the main Espruino site.

Nick O'Leary gave a workshop at NodeConf EU on Node-RED which is another, much more powerful, graphical programming tool that can make use of the BLE to MQTT bridge to communicate with your watch.

Data Science and Machine Learning

One part of the Badge Workshop will walk you through a Google Colab created by our Data Science team. In it you'll see the model created to detect gestures and how to use your own training data for the gestures and how to add a gesture. You can find more details about the Colab on the software page.

Updating Bangle.js after the event

The Espruino team has always provided superb support for their devices and continue to release new versions of firmware for all officially supported devices, right back to the first one. If you want to get the latest and greatest firmware for Bangle.js, you can download it from the main Espruino site. Full instructions are on our Bangle Untangling page