# BMW iDrive: interpreting F44 controller CAN messages

> 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.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-08
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/LeanWasTaken/iDrive>
- Primary source: <https://github.com/LeanWasTaken/iDrive/blob/d9789d168dd91f99570be4ccb33d8a4d67233001/README.md>
- Catalog page: <https://awesomerea.org/resources/bmw-idrive-can-case/>
- Record JSON: <https://awesomerea.org/resources/bmw-idrive-can-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/bmw-idrive-can-case/index.md)

## Requirements & limits

- **Prerequisites:** An Adafruit QT Py ESP32-C3, TJA1441A/B transceiver, and BMW F44 iDrive controller are specified.
- **Limits:** The touchpad stream is not decoded and CAN wake-up is not working.
- **License:** MIT license.

## Primary sources

1. <https://github.com/LeanWasTaken/iDrive/blob/d9789d168dd91f99570be4ccb33d8a4d67233001/README.md>

## More in Protocols

- [ESP32 Controller for Charlton & Jenrick Fireplace: reconstructing remote control](https://awesomerea.org/resources/esp32-fireplace-controller-case/index.md) · Case study
- [GMK87 Configurator: reconstructing Zuoya keyboard USB HID control](https://awesomerea.org/resources/gmk87-configurator-case/index.md) · Case study
- [Ajazz AK820 Pro: reconstructing keyboard lighting control on Linux](https://awesomerea.org/resources/ajazz-keyboard-software-linux-case/index.md) · Case study
- [OPUS-QUAD Pro DJ Link Reverse Engineer Packet Analysis: mapping device traffic](https://awesomerea.org/resources/opus-quad-pro-dj-link-analysis-case/index.md) · Case study
- [MiraBox StreamDock: reconstructing USB device control](https://awesomerea.org/resources/mirabox-streamdock-node-case/index.md) · Case study
- [SiriRemote-Linux: decoding Siri Remote Bluetooth input](https://awesomerea.org/resources/siriremote-linux-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.
