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.

Observe BLE traffic and turn unknown packets into documented, testable protocol knowledge.

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.

01

Observe

Scan, connect and capture notifications without assuming that an unknown field is safe to interpret.

02

Model

Translate repeatable frames into parsers while unknown and candidate fields remain visibly labelled.

03

Confirm

Cross-check a proposed meaning through repeated stationary observations and protocol tests.

04

Control carefully

A write requires explicit enablement and preserves unrelated packed bits rather than replacing a whole setting byte.

04 / Technology

The working parts.

Python 3BleakBluetooth LEProtocol parsersNative Android JavaAndroid BLE APIsSDK 35Automated tests

05 / Project status & roadmap

Current state and next steps.

Current
  • 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.
Planned
  • 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.