Arduino on the ID100HR fitness tracker

Arduino on the ID100HR fitness tracker

posted in: BLE, Bluetooth, nRF51822 | 0

Some time ago…, Goran Mahovlic commented about how he was trying to run Arduino on an IDo 003, fitness tracker / smart watch which uses the nRF51822. As I’ve been interested in smart watches for some time, I thought I’d buy the same watch, and join in the fun.

Unfortunately the first watch I bought didn’t contain an nRF51822 (see my other post about nRF51 based smart watches), so I ordered 2 more of different types, and finally after another 2 weeks, an ID100HR arrived and to my relief it did use an nRF51822, even even better it was the QFAC variant which has 256k flash and 32k RAM.





The spec for this watch are:

MCU: Nordic nRF51822QFAC (256k flash , 32k RAM)

Operating clock frequency: 16Mhz

Realtime clock crystal : 32khz

Display: 0.49 inch OLED display (64×32 pixels) which uses the SSD1306 display controller

Motion sensor: Kionix kx022-1020

Heart rate sensor: Silicon labs Si1142

Battery: LiPo 60mAH

Charger: USB cable with 3 pins (5V, GND, 5V), (No PSU is supplied). The cable just connects 5V from the USB cable, so the battery charge controller must be inside the watch.

One push button and a vibration alert (motor)


Pin Assignments for the most of these watches seems to be as follows

RX pad P0.17
TX pad P0.18
Vibrate P0.07
Button P0.04 Needs input_pullup
Accelerometer (I2C)
P0.10-16 possible range of pins used
P0.16 SCL
P0.15 Possibly IRQ
P0.14 SDA
P0.0  Data/Command
P0.1 Reset
P0.2 Chip select



Whats great about this watch, is that they have labelled the SWDIO and SWCLK pads, and also that they have even broken out 2 pins to 2 pads labelled TX and RX.


So its easy to connect either a JLink or Blackmagic probe to the SWD pins to reprogram it.





I also like to thank Goran Mahovlic for his work on the ID003 smart watch, and in turn to thank the Espruino guys for giving Goran something to work from…

Leave a Reply