Observe BLE traffic and turn unknown packets into documented, testable protocol knowledge.
Independent / hardware protocol research
Fiido Air BLE Tools
Understand the protocol first. Write to the bike only when the evidence is strong.
01 / Purpose
Purpose and scope.
A Python research toolkit and native Android controller for inspecting, documenting and cautiously controlling understood Fiido Air e-bike Bluetooth Low Energy features.
Expose understood read-only bike state through a terminal dashboard and Android interface.
Allow only deliberately enabled, confirmed writes for narrowly understood settings.
Preserve unknown bits and exclude firmware, braking and other safety-critical control areas.
02 / Decisions
Engineering decisions.
Observation before writes
Reverse engineering becomes dangerous when a plausible guess is treated as a proven control.
Preserve packed bits
Changing one known setting must not overwrite neighbouring fields whose meaning is still unknown.
Unsafe domains excluded
Firmware, braking, controller internals and bypass-style behaviour stay outside the tool’s scope.
Two interfaces, one protocol model
Python accelerates investigation while the Android app tests whether the understood subset can become a useful native controller.
03 / Architecture
How it works.
Observe
Scan, connect and capture notifications without assuming that an unknown field is safe to interpret.
Model
Translate repeatable frames into parsers while unknown and candidate fields remain visibly labelled.
Confirm
Cross-check a proposed meaning through repeated stationary observations and protocol tests.
Control carefully
A write requires explicit enablement and preserves unrelated packed bits rather than replacing a whole setting byte.
04 / Technology
The working parts.
05 / Project status & roadmap
Current state and next steps.
- The Python toolkit has automated checks and live protocol evidence.
- The terminal tooling provides inspection and a bounded control surface.
- A native Android application exists using standard platform BLE APIs.
- The Android app still needs its first test on a real phone with the bike standing still.
- Continue read-only mapping for unresolved protocol fields.
- Test the Android app’s connection and controls on the stationary bike.
- Promote only repeatedly confirmed fields into the control surface.
- Keep safety-sensitive and manufacturer-update paths excluded.