The Bangle.js 2 is an open, hackable smartwatch - successor to the original Bangle.js.
The latest Bangle improves on the original with 4x the RAM, 2x the flash, better Bluetooth signal strength, a new air pressure sensor, a smaller, lighter body, SWD debug ports and an always-on screen and a full touchscreen!
The Bangle.js 2 is waterproof and AI-enabled and comes with Bluetooth Low Energy, GPS, a heart rate monitor, accelerometer and more!
Lithium Battery Shipping: Due to courier restrictions, this product can only be shipped within England/Wales. With this item in your cart your shipping options will be limited and may cost more than our usual rates. Why?
- IP67 Water-resistant (up to 1 meter for 30 minutes - everyday use, not swimming)
- Nordic 64MHz nRF52840 ARM Cortex-M4 processor with Bluetooth LE
- 256kB RAM 1024kB on-chip flash, 8MB external flash
- 1.3" 176x176 always-on 3-bit colour LCD display (LPM013M126)
- Full touchscreen
- GPS/Glonass receiver (AT6558)
- Heart rate monitor (Vcare VC31)
- 3 Axis Accelerometer (Kionix KX023)
- 3 Axis Magnetometer
- Air Pressure/Temperature sensor (Bosch BMP280)
- Vibration motor
- 200mAh battery, 4 weeks standby time
- 36mm x 43mm x 12mm watch body, with standard 20mm watch straps
In general, most tutorials related to Bangle.js 1 should work on Bangle.js 2, as long as you're aware that you only have one button and the screen resolution is different - see below under Information.
- For general help with Bangle.js, see the Bangle.js Getting Started Guide
- To get your computer connected, check out the Espruino Getting Started Guide
- To get started with development see the Bangle.js Development page
- There is more technical information below about using the LCD and onboard peripherals
- Tutorials using Bangle.js
- Bangle.js Forum
Check out the Bangle.js 2 Getting Started Guide!
Quick Usage Notes
There are a few things to know that'll help you get started quickly:
- Long-pressing the button (~2 seconds) will take you back to the default clock app
- When the lock symbol is displayed in the top left-hand corner, the touchscreen is not active. Unlocking can be configured in several ways via the settings app, but by default pressing the button will unlock the Bangle and allow you to use the touchscreen.
- In the default App Launcher (which you get to by pressing the button while on the clock), drag the screen to scroll through apps, and tap the icon you want to launch
- In text menus, you don't need to tap on the text line to select it. Instead, drag your finger up and down to change the selected entry, and then tap anywhere to select.
- Please also check out The Bangle.js Wiki for more hints and common questions.
This video shows you how to get started using the menu and App Loader:
The supplied charge cable connects to a USB port to charge Bangle.js (despite there being 4 wires, those are for SWD programming and there is no USB data connection).
The cable is magnetic and the wires are connected to USB power. While the cable in Bangle.js 2 does have short circuit protection, please do not leave your cable plugged in or it might attract itself to the nearest magnetic (probably conductive) object and short out.
DO NOT CONNECT A BANGLE.JS 1 CHARGE CABLE TO BANGLE.JS 2 - there are a different number of pins and connecting it could cause damage to your device.
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) is entirely free and open. We’ll never share your data with third parties or make your use of our apps dependent on third-party cloud services. So far there are over 100 great apps including games, navigation and fitness aids, watch faces, spirit levels, QR code displays and more - and new apps get added weekly!
Apps are provided by the same Bangle.js app loader as for Bangle.js 1, you just need to select Bangle.js 2 when prompted (or from the drop-down in the top left)
- Enter the launcher by pressing the button to unlock, then pressing it again to enter the launcher (while showing a clock)
- Tap on Settings
- Scroll down to Turn off and tap again
- Long-press the button for about 6 seconds until the screen displays some pixellated text on the top line
- Release the button
- Bangle.js will boot as if it just turned on normally
If you the button too late you'll enter bootloader mode, in which case you need to wait for 30 seconds for the watch to automatically exit.
Resetting without loading any code
If you uploaded some code that runs at startup and breaks Bangle.js you may need to do this.
It won’t delete anything, so unless you fix/remove the broken code (see "Deleting all Code") Bangle.js will remain broken next time it restarts.
- Hold the button down. After around 6 seconds the screen goes blank and displays some pixellated text
- Keep pressing the button while ==== goes across the screen
- Keep holding the button while Bangle.js boots
- You should now have the Bangle.js logo, version, and MAC address on screen, and you can release the button
Deleting all code
You can do this either while your watch is in its normal state, or if you have reset it without loading any code (above).
- Go to https://banglejs.com/apps
- Click More... -> Install default apps
- This will erase everything and install just the default apps.
- Go to https://banglejs.com/apps
- Go to More... -> Remove All Apps
- Re-install Bootloader and a Clock from Library
- If you can access the menus on your device and the App Manager app is installed, you can delete apps using the App Manager
- You can go to https://banglejs.com/apps and click Connect. Under My Apps your installed apps are listed, and you can click the 'Bin' icon next to them to remove them
- If you hit any issues with installed apps and can't access the menus on your device, then follow the instructions above for "Resetting without loading any code" above.
- For detailed technical information about Bangle.js, check out the Bangle.js Technical Information page
- There's a Bangle.js API reference here - however, this is currently missing some Bangle.js 2 functionality
- Links to CE, FCC ID 2AILG-F18 and RoHS Certifications
- Links to shipping documentation: Classification, Battery UN38.3 and Battery MSDS
- Power Consumption
- LCD screen
- The Bangle.js Wiki and FAQ
- Bangle.js Troubleshooting
- Bluetooth Espruino Troubleshooting
- General Espruino Troubleshooting
Contact Corrosion / Skin Irritation
The Bangle.js 2 has 4 contacts on the rear, with the middle two covered.
The two on the ends are used for charging and are not powered, however the middle two are SWD debug/programming pins connected straight to the IC. One has a weak resistor connecting it to 3.3v. At most, 0.0001A of current at 3.3v can be provided, however if exposed to salty water (eg sweat) or other conductive conditions, the contacts will corrode and it is possible that in extreme cases there could be some skin irritation.
The pre-fitted covering for these pins protects against this. If you remove this tape to use the debug pins you may want to reapply your own tape/covering.