Giter Club home page Giter Club logo

smartband's Introduction

smartband

ID107 heartrate nordic nrf51822 smartwatch arduino

This work piggy backs on previous work by many people, mainly : @goran-mahovlic, @rogerclarkmelbourne, @curtpw, @Gordon, @micooke

Note : I have no affiliation with idoosmart / Shenzhen DO Intelligent Technology Co,. Ltd, nor any aliexpress or smartwatch retailer

ID107HR

recently I bought this watch for 10 euro (!!) on gearbest This watch contains a nrf51822 nordic microcontroller, which support BLE (bluetooth), an oled display, a heart rate sensor from Silicon Labs SI1142, an Accelerometer (Kx022), a battery ...

I use an "ST LINK V2" connector. ( Connect swdio swclk and ground (3 wires) to the watch) (need battery charged)

an arduino programming environment Arduino ide 1.8.5, which needs some extras ....

Under File/Preferences

in field : Additional Boards Manager URLs -> https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json -> https://micooke.github.io/package_nRF5_smartwatches_index.json

Open the Boards Manager from the Tools -> Board menu and install "Nordic Semiconductor nRF5 Smartwatches" Select your nRF5 smartwatch from the Tools -> Board menu (ID107HR)

In order to be able to use bluetooth, you need to flash a softdevice to the nrf51822. The procedure is explained on https://github.com/sandeepmistry/arduino-nRF5 (Flashing a SoftDevice)

Using the Arduino IDE Library Manager Choose Sketch -> Include Library -> Manage Libraries... Type BLEPeripheral into the search box. Click the row to select the library. Click the Install button to install the library.

NOTE :

by flashing the Arduino script, you overwrite the firmware (the watch as you knew it, is no more ...)

This is work in progress, and I'm a lousy programmer ....

I cut a few corners (in the si114 library), by commenting out stuff in the libraries (eg //#include <avr/sleep.h> #include <util/atomic.h>)

My intention is to monitor heart rate. For now I use the "Nordic nrf Connect App" to read out data from the watch, but I guess soldering the serial port is an easier option ...

There exist different versions of this watch, mine is 2.4 (e.g. version 2.3 has a different pinout for si1142 ( SDA pin 26, SCL pin 28) -- this means you might have to change the si114 library hardcoded pins

For reference, @sanpii has the same board as mine ID107 ver2.4 in his repo https://github.com/sanpii/open-id107

sda, scl = 14,16 for kx022 and = 22,23 for Si1142. Kx022 scans as 0x1F (7b address) (modified SI114.h hardcoded ;))

I found a lot of usefull information on https://gitter.im/nRF51822-Arduino-Mbed-smart-watch/Lobby

You can have look at the inside of the watch on https://fccid.io/2AHFTID107/Internal-Photos/Internal-Photos-3028344

I used the PSO2 demo, but the output was erratic

https://moderndevice.com/news/pulse-sensor-i/

I modified some parameters (see : BPM_simple.ino). I used the biggest IR sensor and only the ps1-mux.

I get to see the heartbeat (heartbeat.jpg)


I use a raspberry pi to program the watch -- see openocd for howto


it is possible to program via CLI on the raspberry pi, using platformio -> see directory platformio on how to setup -> directory platformio-id107 for an example


there is a way to use DFU (device firmware update) -- programming the watch over the air, while it is still on your wrist -- see https://github.com/najnesnaj/ota-dfu-smartband


the libraries necessary to the included in the example, are copied under this repository


The watch sends the values on the serial bluetooth; (script in KX022_getAcc) see blue-py directory for howto readout data on raspberry pi


smartband's People

Contributors

najnesnaj avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.