In April, 2018, Nike finished to support some old products, so it is no longer possible to download data from old running watches, such as Nike + Sportband.
I still use Nike+ Sportband and I am a Linux user, so I looked for an alternative solution. I have found two old open source projects (~2011), written in C/C ++, for Linux users. These two projects are a complete reverse engineering of the Nike+ Sportband protocol.
The first project [1] allows to download data in hex format and convert it in clear text. The second project [2] is a complete reverse engineering of the protocol: it is possible to edit nickname, time, weight, other information and extract the data of the runs in hex format, but it does not read them in clear text.
Using the PyUSB [3] I have translated these two codes into Python to extract data from my Sportband. This work is not finished, but I have decided to publish the code written so far. This is good failure.
To download data from Nike+ Sportband on Windows I had to use Nike + Connect. It downloaded the data and uploaded it to my own Nike profile. Now the online service is offline, so Nike+ Connect doesn't work. The only useful features of Sportband are:
- date
- time
- weight
So I worked on these features, the Python code can:
- read and set the weight
- set date and time, by reading the date of the computer
- extract data in hex format
For now the Python code can not:
- reset the device
- read the dumped data
This last feature is the most important, it is possible to use the project [1] to read the data. The developer did an awesome reverse engineering work! I hope to finish this script soon.
The script is written in Python 2.7.x.