Skip to content

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. The 0x5A 0xB5 header is exclusively used by WiFi v2 transport (WifiEncryptionProtocol2). Previous documentation incorrectly stated Encryption2 uses 0x5AB5. Confirmed by decompilation of BleEncryption2Protocol.java (FRAME_BEGIN = -91, i.e. 0xA5) and WifiEncryptionProtocol2.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.nb scan 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 commandspower-on, power-off, open-seat CLI commands with --ident flag 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 --gen flag.
  • 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.