Skip to content
Francisco Gorina edited this page Feb 24, 2016 · 5 revisions

Welcome to the NinebotClientTest wiki!

Ninebot One wheels allow an application to connect to the wheel and get information about its state like voltage, battery level or current and statistics like Total Distance to Total Time Used and set some values such as limit speed, it the speed limit is enabled, the color of the lights and also to update the wheel firmware.

Some of this information is accessible through the Ninebot (or Ninedroid) application, which runs in Android and iOS but has some limitations :

  • It is very slow to connect to the wheel and sometimes needs many retries
  • Doesn't store a log of the values so you may analyze them
  • It is not the best to look when riding. Battery level is really small

The inability to store logs of the rides is specially annoying because they may help a lot to solve some of the questions that have surfaced when having some faceplant accidents. Essentially the questions are

  • Did the wheel cut the power?
  • What was the rider doing then?
  • In which conditions may we face such a problem?

These questions may help to have better security but are very difficult to answer just from the memories of this who has face planted. All goes very fast and is very difficult to interpret.

Also some of this information may be interesting to the rider in real time without having to risk his/her iPhone or Android phone or limiting his hand freedom.

So the idea of having an application that may work as a blackbox to store the riding log and present the most useful information in AppleWatch was born.

But first of all the protocol must be unraveled so we may communicate with the wheel.

This Wiki has the results of the research about all this.

It is structured as:

  • How to unravel the protocol
  • Low level communication (BLE services and characteristics)
  • Medium level communication (blocks, checksums)
  • High level Commands and variables

Clone this wiki locally