# KuKirin G4: decoding BLE ride-mode notifications

> The KuKirin G4 BLE Mode Monitor parses observed FFF2 notifications from a scooter and prints changes between ECO, SPORT, and RACE modes. Its Python client validates frame length and a gate byte before decoding the mode field; the documented mapping comes from one scooter and firmware combination.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/maksdoner/Kukirin-G4-Bluetooth-Control>
- Primary source: <https://github.com/maksdoner/Kukirin-G4-Bluetooth-Control/blob/9927f41b0224e147a759da1c86d9bd7b4bb80e4a/README.md>
- Catalog page: <https://awesomerea.org/resources/kukirin-g4-ble-mode-case/>
- Record JSON: <https://awesomerea.org/resources/kukirin-g4-ble-mode-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/kukirin-g4-ble-mode-case/index.md)

## Requirements & limits

- **Prerequisites:** Python 3.10+, Bluetooth access, and a KuKirin G4 for the hardware path; that path is documented for macOS.
- **Limits:** The mapping comes from one scooter and firmware combination; no raw captures or formal protocol specification are included.
- **License:** MIT license.

## Primary sources

1. <https://github.com/maksdoner/Kukirin-G4-Bluetooth-Control/blob/9927f41b0224e147a759da1c86d9bd7b4bb80e4a/README.md>

## More in Protocols

- [Mutant Brain: mapping its SysEx configuration format](https://awesomerea.org/resources/reveng-mutantbrain-case/index.md) · Case study
- [TBBT A9 mini camera: reconstructing PPPP video login](https://awesomerea.org/resources/tbbt-a9-pppp-ha-case/index.md) · Case study
- [loxone-link-dotnet: implementing Loxone Link NAT-over-CAN devices](https://awesomerea.org/resources/loxone-link-dotnet-case/index.md) · Case study
- [Polycab PSIS-3K-SM1: recovering Bluetooth telemetry for MQTT](https://awesomerea.org/resources/polycab-solar-inverter-to-mqtt-case/index.md) · Case study
- [aquacomputer-quadro-control: reconstructing Quadro USB configuration](https://awesomerea.org/resources/aquacomputer-quadro-control-case/index.md) · Case study
- [HT2000Lib: reconstructing an HT2000 logger's USB HID interface](https://awesomerea.org/resources/ht2000lib-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
