Smartwatch variants for sandeepmistry's Nordic Semiconductor nRF5 core
This work piggy backs on previous work by many people, mainly : @goran-mahovlic, @rogerclarkmelbourne, @curtpw, @Gordon
Most of these watches are made by idoosmart and can be purchased from their aliexpress company site.
Be careful when purchasing from a third party reseller as there have been instances where the received watch does not contain a nRF5 chip, or you purchase a ID107HR Plus and receive a ID107HR instead.
Note : I have no affiliation with idoosmart / Shenzhen DO Intelligent Technology Co,. Ltd, nor any aliexpress or smartwatch retailer.
Included smartwatches:
Included Generic development boards: 6. Taida Century nRF52 mini board / nRF52832 Gold Core 7. Waveshare BLE400
I am happy to accept pull requests for any nRF51 or nRF52 based smartwatch, but will be unable to test anything except for the ID107HR (v2.4) and T28 unless you are feeling generous and want to send me one :wink:.
The following libraries (which work with this core) have been added as submodules:
My Squix78 based OLED library also works.
To get these libraries without using the board manager:
git clone https://github.com/micooke/arduino-nRF5-smartwatches.git
git submodule update --init --recursive
Im not sure about the ID100HR variant. The pin mapping has been taken from posts about the ID100HR, as well as posts on the ID107HR which appeared to have the same pin mapping.
My ID107HR is a v2.4 and it does not match the pin mapping of the ID100HR. So if you have a ID107HR that is a v2.3 or earlier you will need to use the ID100HR (at this stage).
These watches can be programmed by soldering directly to the SWDIO, SWCLK and GND pins. You can also connect to the TX and RX pins for debugging.
The T28 and ID107HR Plus do not label these pads by silkscreen so please see ID107HR Plus pads, , for these pins.
The ID107HR+ UART Tx,Rx were chosen to be on p23,p24 because the pads are next to the programming pins.
The T28 UART Tx,Rx were chosen to be on p26,p25 as their pads are near the OLED ribbon.
Progamming is via a SWD programmer (J-Link, ST-Link etc.) using sandeep's core.
https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json
as an "Additional Board Manager URL"
4.3 Install arduino-nRF5-smartwatches
4.4 Add https://micooke.github.io/package_nRF5_smartwatches_index.json
as an "Additional Board Manager URL"The nRF52 based T28 is quite different. Its pin allocation table is located here @fanoush has done a great job on getting the DS-D6 pin allocation. It is hosted here
peripheral type | name | pin | IDO003 | ID100HR | ID107HR | ID107HR Plus |
---|---|---|---|---|---|---|
accelerometer | Kx022 | SCL | 14 | 14 | 14 | 5 |
SDA | 16 | 16 | 16 | 3 | ||
INT | --- | --- | --- | 6 | ||
ADDR | --- | --- | --- | 4 | ||
NCS | --- | --- | --- | 7 | ||
optical HR sensor | Si1143 | SCL | --- | 26 | 22 | 18 |
SDA | --- | 28 | 23 | 10 | ||
INT | --- | --- | 24 | 8 | ||
LED | --- | --- | --- | 9 | ||
SPI flash memory | MX25L | MISO | --- | --- | --- | 27 |
MOSI | --- | --- | --- | 31 | ||
SCK | --- | --- | --- | 30 | ||
CE | --- | --- | --- | 28 | ||
side tactile button | --- | BUTTON1 | 4 | 4 | 4 | --- |
capacitive touch button | RH6015C | BUTTON2 | 4 | 7 | 7 | ? |
capacitive touch screen | IQS263 | --- | --- | --- | --- | ? |
vibrate motor | --- | VIBRATE -or- | 7 | 8 | 6 | ? |
LED_BUILTIN | ||||||
serial UART | --- | Tx | 18 | 18 | 18 | 23 |
Rx | 17 | 17 | 17 | 24 | ||
OLED | --- | MISO | 31 | 3 | 3 | ? |
--- | MOSI | 29 | 2 | 2 | ? | |
--- | SCK | 30 | 1 | 1 | ? | |
--- | RST | 1 | 30 | 30 | ? | |
--- | CS | 2 | 29 | 29 | ? | |
--- | DC | 0 | 0 | 0 | ? | |
battery voltage level | --- | --- | ? | ? | * | ? |