Observe BLE traffic and turn unknown packets into documented, testable protocol knowledge.
Personal / hardware protocol research
Fiido Air BLE Tools
Understand the protocol first. Write to the bike only when the evidence is strong.
01 / Purpose
A tool with a reason to exist.
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
The interesting part is why.
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
A deliberate path through the system.
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 / State & roadmap
What is real now—and what comes next.
- 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 build still needs a physical-phone, stationary bike smoke test.
- Continue read-only mapping for unresolved protocol fields.
- Run stationary Android connection and interaction verification.
- Promote only repeatedly confirmed fields into the control surface.
- Keep safety-sensitive and manufacturer-update paths excluded.