BMW I-BUS Protocol Overview — How It Works

A complete technical introduction to the BMW I-BUS (Infotainment Bus) protocol: architecture, message format, key module addresses, and how to start working with it.

By OpenBMW Team · 2026-05-21 · 18 views

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:

AddressModuleDescription
0x00BroadcastMessage sent to all modules
0x18CDWCD changer
0x3BGTNavigation computer
0x44EWSImmobilizer
0x50MFLSteering wheel controls
0x68RAD/CD53Head unit / radio
0x76CDW (K-BUS)Rear CD changer
0x7FBroadcast (K-BUS)K-BUS broadcast
0xBFLCMLight control module
0xC0MIDMulti-info display
0xD0PDCPark distance control
0xF0IKE/KOMBIInstrument cluster
0xFFBroadcastFunctional 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:

  1. A USB K+DCAN cable with genuine FTDI chip
  2. INPA 5.0.2 or an Arduino-based bus logger
  3. 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.

FAQ

#I-BUS #K-BUS #protocol #message format #addresses
Frequently Asked Questions
What cars have I-BUS?
BMW E31, E38, E39, E46, E53, and MINI R50 all use I-BUS or a K-BUS variant.
Can I read I-BUS messages with an Arduino?
Yes. An Arduino with a logic-level shifter or a dedicated L9637D transceiver IC can interface directly with the I-BUS wire.
What baud rate does I-BUS use?
9600 baud, 8 data bits, no parity, 1 stop bit (8N1).