How to unravel the protocol - fgorina/NinebotClientTest GitHub Wiki

First idea was to use a Bluetooth Scanner/Sniffer to look at the packets but some people suggested the protocol may be just BLE so probably all communication was through services and characteristics.

A simple scanner allowed to get the services and characteristics used and then an idea was born:

  • To use a Man in the Middle approach which will simulate a dumb client / wheel and with will sit in the middle. The wheel thinks the application is the Ninebot App and the Ninebot App thinks it is the wheel.

The application needs minimum knowledge of the protocol just sending the dat it receives from one end to the other. That way it has access to all the "clean" communication without having to bother with all the Bluetooth protocol.