Changelog¶
All notable changes to this documentation project.
2026-04-04¶
Fixed¶
- Critical: BLE header correction — All BLE protocols (Protocol 2, Encryption2, Encryption3) use
0x5A 0xA5. The0x5A 0xB5header is exclusively used by WiFi v2 transport (WifiEncryptionProtocol2). Previous documentation incorrectly stated Encryption2 uses0x5AB5. Confirmed by decompilation ofBleEncryption2Protocol.java(FRAME_BEGIN = -91, i.e.0xA5) andWifiEncryptionProtocol2.java(FRAME_BEGIN = -75, i.e.0xB5).
Added¶
- Per-device protocol map — All 71 devices now show their BLE protocol class (Proto1, Proto2, Enc2) on the Board Addressing page, derived from
backup_config.nbscan configuration. - Protocol column in device tables — The Device Command Reference tables now include a Protocol column, auto-generated from
generate_device_pages.py. - Protocol class hierarchy — Full class hierarchy documented (BleProtocol1 → BleProtocol2 → BleEncryption2Protocol → BleEncryption3Protocol2), including WiFi variants.
- Encryption3 / V3Auth — Added documentation for the newest protocol variant (
BleEncryption3Protocol2), which uses a different handshake flow. - Protocol version selection logic — Documented
DynamicDevice.createBleProtocol()selection rules and BLE advertisement manufacturer data (0x4E42/0x4E43). - Gear profile commands — MCU board registers for reading/writing gear profiles (top speed, acceleration, TCS, nitro, energy recovery, speed safety lock).
- Vehicle action commands —
power-on,power-off,open-seatCLI commands with--identflag for E-series mopeds (cmd 0x64, target VCU 0x09). - Sound preset control — DIS register 0x75 (rWarn) bit 8 for sound effect toggling, volume control, alarm settings.
- Gen2/Gen3 protocol support — BLE client now supports both Gen2 (E-series mopeds) and Gen3 (newer kick scooters) protocol variants via
--genflag. - Changelog — This page.
Changed¶
- WiFi v2 documentation clarified — WiFi v2 section now explicitly states it is the only protocol using
0xB5. - Device count updated — 71 devices documented (was 66), including newer models from updated scan config.
2026-03-28¶
Added¶
- Initial release — Full protocol documentation published.
- 66 device command tables — Auto-generated from decrypted device configuration packages.
- Python BLE client — Reference implementation of Encryption2 protocol.
- Encryption algorithm — Complete AES-128 CTR + CBC-MAC documentation with Python reference code.
- Authentication handshake — 3-phase PRE_COMM / SET_PWD / AUTH sequence.
- BLE transport — Service UUIDs, characteristics, MTU handling.
- Board addressing — Module IDs and routing for all device families.
- Command reference — Register-based read/write commands for speed, battery, lights, security.
- Firmware update protocol — IAP (In-Application Programming) documentation.