What is the BMW I-BUS?
The BMW I-BUS (Infotainment Bus) is a single-wire serial communication bus used in BMW vehicles from the mid-1990s through the mid-2000s. It connects the infotainment and body-control modules — head unit, amplifier, steering-wheel controls, climate control, light control module, and many more — using a simple 9600 baud, 8N1 protocol over a single wire with a 0–12 V signal level.
Bus Architecture
The I-BUS is a single-master, multi-slave bus in practice, though technically any module can initiate communication. Key characteristics:
- Single wire, open-collector, 9600 baud, 8N1, 0–12 V logic levels
- Collision detection via bus-busy sensing (module waits if the wire is active)
- Up to ~30 modules on the same bus
- No bus termination resistors required
Message Format
Every I-BUS message follows a fixed structure:
[SOURCE] [LENGTH] [DESTINATION] [DATA...] [XOR_CHECKSUM]
Where LENGTH is the number of bytes that follow (including destination, data, and checksum). The XOR checksum is calculated over all bytes including source and length.
Common Module Addresses
Below are the most important module addresses you will encounter:
| Address | Module | Description |
|---|---|---|
| 0x00 | Broadcast | Message sent to all modules |
| 0x18 | CDW | CD changer |
| 0x3B | GT | Navigation computer |
| 0x44 | EWS | Immobilizer |
| 0x50 | MFL | Steering wheel controls |
| 0x68 | RAD/CD53 | Head unit / radio |
| 0x76 | CDW (K-BUS) | Rear CD changer |
| 0x7F | Broadcast (K-BUS) | K-BUS broadcast |
| 0xBF | LCM | Light control module |
| 0xC0 | MID | Multi-info display |
| 0xD0 | PDC | Park distance control |
| 0xF0 | IKE/KOMBI | Instrument cluster |
| 0xFF | Broadcast | Functional broadcast |
I-BUS vs K-BUS
The K-BUS (Body Bus) is a slower 9600 baud bus that handles lower-priority body functions (windows, mirrors, interior lights). In most E-series cars the K-BUS and I-BUS share the same physical wire but operate independently via addressing. The Protocol section has a dedicated comparison guide.
Getting Started
To start reading I-BUS messages you need:
- A USB K+DCAN cable with genuine FTDI chip
- INPA 5.0.2 or an Arduino-based bus logger
- The correct COM port settings (9600 baud, 8N1, no parity, no flow control)
See the INPA Complete Beginner's Guide or the Arduino I-BUS Interface project for next steps.