{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "BMW iDrive Controller CAN Bus Interpreter decodes controls from an F44 iDrive controller using an ESP32-C3 and TJA1441A/B CAN transceiver. It reports knob rotation, joystick directions, button and touch states, and brightness commands at 500 kbps. The README also records unresolved touchpad decoding and CAN wake-up behavior.",
  "description_zh": "BMW iDrive Controller CAN Bus Interpreter 使用 ESP32-C3 和 TJA1441A/B CAN 收发器解码 F44 iDrive 控制器。它在 500 kbps 总线上识别旋钮转动、摇杆方向、按键及触摸状态和亮度命令；文档也列出触控板解码与 CAN 唤醒的未解问题。",
  "entry_url": "https://awesomerea.org/resources/bmw-idrive-can-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/bmw-idrive-can-case/",
  "evidence_url": "https://github.com/LeanWasTaken/iDrive/blob/d9789d168dd91f99570be4ccb33d8a4d67233001/README.md",
  "group": "cases",
  "id": "bmw-idrive-can-case",
  "json_url": "https://awesomerea.org/resources/bmw-idrive-can-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/bmw-idrive-can-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/bmw-idrive-can-case/index.md",
  "name": "BMW iDrive: interpreting F44 controller CAN messages",
  "name_zh": "BMW iDrive：解析 F44 控制器 CAN 消息",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "An Adafruit QT Py ESP32-C3, TJA1441A/B transceiver, and BMW F44 iDrive controller are specified.",
    "The touchpad stream is not decoded and CAN wake-up is not working.",
    "MIT license."
  ],
  "requirements_zh": [
    "指定硬件为 Adafruit QT Py ESP32-C3、TJA1441A/B 收发器和 BMW F44 iDrive 控制器。",
    "触控板数据流尚未解码，CAN 唤醒尚不可用。",
    "采用 MIT 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/LeanWasTaken/iDrive",
  "verification": "source-reviewed",
  "verified_at": "2026-11-08"
}
