{
  "added_at": "2026-11-06",
  "additional_evidence_urls": [
    "https://github.com/Knight1/vanmoof-ble/blob/173b4c4fdf77b9f47d0aeea1f9ee1379e2aa0e92/README.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "VanMoof BLE implements a Python client for the S5, A5 and S6 bicycle BLE protocols. It authenticates with an Ed25519 certificate, reads and writes documented topics, decodes captured messages, and exposes controls and telemetry according to each model's message format.",
  "description_zh": "VanMoof BLE 用 Python 实现 VanMoof S5、A5 和 S6 自行车的 BLE 协议客户端。它使用 Ed25519 证书认证，读写文档化的主题、解码抓取的消息，并按不同车型的消息格式提供控制与遥测功能。",
  "entry_url": "https://awesomerea.org/resources/vanmoof-ble-protocol-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/vanmoof-ble-protocol-case/",
  "evidence_url": "https://github.com/Knight1/vanmoof-ble/blob/173b4c4fdf77b9f47d0aeea1f9ee1379e2aa0e92/docs/PROTOCOL.md",
  "group": "cases",
  "id": "vanmoof-ble-protocol-case",
  "json_url": "https://awesomerea.org/resources/vanmoof-ble-protocol-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/vanmoof-ble-protocol-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/vanmoof-ble-protocol-case/index.md",
  "name": "VanMoof BLE: a client for S5, A5 and S6 bicycle protocols",
  "name_zh": "VanMoof BLE：S5、A5 与 S6 自行车协议客户端",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "scope",
    "license"
  ],
  "requirements": [
    "A VanMoof S5, A5 or S6, a BLE-capable device, Python 3.8+, and the bike certificate and private key.",
    "Region changes, streaming telemetry and module status are listed for S5/A5 only.",
    "No licence file in the repository."
  ],
  "requirements_zh": [
    "需要 VanMoof S5、A5 或 S6、自带 BLE 的设备、Python 3.8+，以及自行车证书和私钥。",
    "区域设置、流式遥测和模块状态仅列为 S5/A5 功能。",
    "仓库中没有许可证文件。"
  ],
  "targets": [
    "firmware",
    "protocol"
  ],
  "url": "https://github.com/Knight1/vanmoof-ble",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
