Skip to content

Latest commit

 

History

History
51 lines (30 loc) · 2.6 KB

README.md

File metadata and controls

51 lines (30 loc) · 2.6 KB

Nike+ Sportband Reverse Engineering

Premise

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.

Useful links

How it works

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.