wilhelm-docs
wilhelm-docs copied to clipboard
BMW I/K-Bus Documentation
Wilhelm Documentation
Documentation for the I/K-Bus protocol found in BMW vehicles from 1989 to 2013.
Introduction
This documentation covers the common functions of the I-Bus and K-Bus.
P-Bus, and M-Bus are not covered. D-Bus is also not discussed, although it may be added in the future.
This is an ongoing project, and the documentation will be expanded as time allows.
Warning!
This documentation should not be considered authouratative. While great care, and effort has been taken in creating it, if you choose to use it, you do so at your own risk.
Contents
- Applicable Models
- Glossary
- Device Index
- K/I-Bus
- D-Bus
- Command Index
- Features
- Sensors
- OBC
- Redundant Data Storage
- Controls
- Radio
- Telephone
- Navigation
- Lighting
- Body
Applicable Models
This protocol applies to the bus system in the models listed below.
| Model | Series | Period | I-Bus | K-Bus |
|---|---|---|---|---|
| E31 | 8 Series | 1989 - 1999 | ✅ | |
| E38 | 7 Series | 1999 - 2001 | ✅ | ✅ |
| E39 | 5 Series | 1995 - 2004 | ✅ | ✅ |
| E46 | 3 Series | 1997 - 2006 | ✅ | |
| E52 | Z8 | 2000 - 2003 | ✅ | |
| E53 | X5 | 1999 - 2006 | ✅ | ✅ |
| E83 | X3 | 2003 - 2010 | ✅ | |
| E85 | Z4 | 2002 - 2008 | ✅ | |
| E87 | 1 series | 2004 - 2013 | ✅ |
MINI and Range Rover (early L322) implementations are not discussed.
Glossary
Body [Karosserie] Bus (K-Bus)
K-Bus was added to the E38 along with the I-Bus. Models without Navigation or IKE will use the K-Bus only. Both of these bus systems are technically identical, the only difference is their use by model.
Diagnosis Bus (D-Bus)
The D-Bus was introduced as TXD (and RXD) in 1987. The term D-Bus was adopted with the introduction of the E38 in 1995, however it is still referred to as TXD in the ETM [electrical troubleshooting manual].
All modules in the vehicle are not connected directly to the D-Bus, some systems are connected through a gateway such as the IKE or cluster. The gateway handles all diagnostic “traffic” and routes the necessary information to the correct bus system.
Gateway
On vehicles equipped with an I-Bus (E38, E39, E53 High) messages to be sent back and forth between the K-Bus and I-Bus have to be transferred via a Gateway. This Gateway is the IKE. The IKE determines by the address of the message recipient whether the message needs to be passed along to the other bus.
Instrument Bus (I-Bus)
I-Bus was introduced on the E31 as the information bus. The E31 version of the I-Bus was used for body electronics and driver information systems. With the introduction of the E38, the I-Bus is now referred to as the instrument bus.
M-Bus
The M-Bus is used exclusively in the climate control systems for the control of the “smart:” stepper motors. These stepper motors are used to control various air distribu- tion flaps.
The M-Bus was introduced on the E38 climate control system (IHKA). The M-Bus was also installed on subsequent models equipped with IHKA and IHKR.
Peripheral Bus (P-Bus)
The P-Bus is a single wire serial communications bus that is used exclusively on vehicle that are equipped with ZKE III. These vehicles are the E38, E39 and E53.
The P-Bus provides the Central Body Electronics system with a low speed bus for use by the General Module (GM) to control various functions.
Device Index
- 8-bit addressing (256 unique addressess).
- Multicast, and broadcast addresses.
- Addresses are preassigned, and static.
- All buses are within the 8-bit scope, i.e. an address is unique across the I, K, and D buses.
- Variants of a device will have the same address, e.g. the address
0x80is used by the low cluster (KOMBI), high clusters (IKE, IKI). - The adress pool is shared by all models that utilise this bus system. An address is rarely reallocated even if the originally allocated device is not applicable to a new model.
K/I-Bus
| Device | Bus | Description |
|---|---|---|
0x00 |
K | General Body Electronics (ZKE 3/4/5) |
0x08 |
K | Tilt/Slide Sunroof (SHD) |
0x18 |
K/I | CD Changer (CDC) |
0x24 |
K | Trunk Lid Module (HKM) [E38] |
0x28 |
I | Radio Clock Control (RCC) [E38] |
0x2e |
K | Electronic Damper Control (EDC) |
0x30 |
I | Check Control Module (CCM) [E38] |
0x3b |
I | Graphics Stage (GT) |
0x3f |
K/I | Diagnostics (via gateway) |
0x40 |
K | Remote Control for Central Locking (FBZV) [E31] |
0x43 |
I | Unconfirmed: Rear Graphics Stage (GT) [E38] |
0x44 |
K | Drive Away Protection System (EWS) |
0x45 |
K | Anti-Theft System (DWA) |
0x46 |
I | Central Information Display (CID) [E83, E85] |
0x47 |
I | Rear Control Panel (FONT_BT) [E38] |
0x48 |
? | Telephone (Japan) |
0x50 |
K/I | Multifunction Steering Wheel (MFL) |
0x51 |
K | Mirror Memory: Passenger [E46] |
0x53 |
K/I | Unconfirmed: Multicast 📣 |
0x5b |
K | Automatic Heating/Air Conditioning (IHKA) |
0x60 |
K/I | Park Distance Control (PDC) |
0x66 |
K | Active Light Control (ALC) |
0x68 |
K/I | Radio |
0x69 |
K | Electronic Body Module (EKM) [E31] |
0x6a |
K/I | Digital Sound Processor (DSP) |
0x6b |
K | Auxiliary Heater "Webasto" |
0x70 |
K | Tire Pressure Control (RDC), Deflation Warning System (DWS) |
0x71 |
K | Seat Memory: Driver [E31, E34] |
0x72 |
K | Seat Memory: Driver [E46, E53] |
0x76 |
K | CD Player (Business) |
0x7f |
K/I | Navigation |
0x80 |
K/I | Instrument Cluster (IKE/KOMBI) |
0x9a |
K/I | Automatic Headlight Vertical Aim Control (LWR) |
0x9b |
K | Mirror Memory: Driver [E46], Convertible soft top module (CVM) [E36] |
0x9c |
K | Convertible Soft Top Module (CVM) [E46] |
0x9d |
K | Electronic disconnecting switch (ETS) [E38] |
0xa0 |
I | Rear Multi-functional Display (MID) [E38] |
0xa4 |
K | Multiple Restraint System (MRS) |
0xa7 |
K | Rear Compartment Heating/Air Conditioning |
0xac |
K | Electronic Height Control (EHC) |
0xb0 |
K/I | Speech Input System (SES) |
0xb9 |
K | Compact Remote Control (RF/IR) |
0xbb |
K/I | Navigation (Japan) |
0xbf |
K | Broadcast 📣 |
0xc0 |
K/I | Multi-functional Display (MID) |
0xc8 |
K/I | Telephone |
0xcd |
K | Multi-functional Display (OBC) [E31] |
0xda |
K | Seat Memory: Passenger [E46] |
0xd0 |
K/I | Lamp Check Module (LCM), Light Switch Center (LSZ) |
0xe0 |
K | Integrated Radio and Information System (IRIS) |
0xe7 |
K/I | Multicast: Displays 📣 |
0xe8 |
K | Rain/Driving Light Sensor (RLS) |
0xea |
I | DSP Controler [E38] |
0xed |
I | Video Module |
0xf0 |
I | On-board Computer Control Panel (BMBT) |
0xf5 |
K | Center Console Switch Center (SZM), Lamp control module (LKM2) [E31] |
0xff |
K/I | Broadcast 📣 |
D-Bus
The shared address space might suggest it's possible to communicate with D-Bus devices from the K/I-Bus, however that's not the case. This is purely a function of diagnostics, in which all devices must be addressable from the D-Bus.
| Device | Bus | Description |
|---|---|---|
0x10 |
D | Engine Management |
0x11 |
D | Central Body Electronics (ZKE 1/2) [E31, E34] |
0x12 |
D | Engine Management |
0x13 |
D | Engine Management |
0x14 |
D | Engine Management |
0x15 |
D | Double Sunroof (DDSHD) [E34] |
0x16 |
D | Thermal Level Oil Sensor [E36] |
0x19 |
D | Range Rover |
0x20 |
D | Electronic Engine Power Control (EML) [M70] |
0x21 |
D | Central locking module [E34, E36] |
0x22 |
D | Electronic Engine Power Control (EML) [M73] |
0x31 |
D | MINI |
0x32 |
D | Gearbox Control |
0x35 |
D | Steering Column Memory (LSM) [E31/E32/E34] |
0x36 |
D | ABS/ASC (Concept 1/2) |
0x56 |
D | ABS/ASC/DSC (DS2) |
0x57 |
D | Steering Angle Sensor (LWS) |
0x59 |
D | Automatic Heating/Air Conditioning (IHKA) [E31, E36] |
0x5a |
D | Electric Steering Lock (ELV) [E52] |
0x65 |
D | Fuel Pump (EKP) |
0x6c |
D | Gearbox Control |
0x74 |
D | Seat Occupation Detection US (OC3) [E83, 85] |
0x81 |
D | MINI |
0x86 |
D | Active Rear Axle Kinematics (AHK) [E31] |
0x9e |
D | Rollover Sensor [E36] |
0xa6 |
D | Cruise Control |
0xc2 |
D | Servotronic (SVT) |
0xce |
D | Seat Occupancy Detection |
Command Index
| Command | Description |
|---|---|
0x01 |
Ping |
0x02 |
Pong & Announce |
0x10 |
Ignition Request |
0x11 |
Ignition |
0x12 |
Sensors Request |
0x13 |
Sensors |
0x14 |
Language & Region Request |
0x15 |
Language & Region |
0x16 |
Mileage Request |
0x17 |
Mileage |
0x18 |
Speed |
0x19 |
Temperature |
0x1a |
Check Control Message |
0x1b |
Check Control Priority |
0x1d |
Temperature Request |
0x1f |
GPS Time |
0x20 |
MID Button |
0x21 |
Menu Text: Telephone |
0x22 |
Menu Text Buffer |
0x23 |
Title Text: Radio / Telephone |
0x24 |
Property Text: IKE / Telephone |
0x27 |
IKE → MID (TBC) |
0x2a |
OBC Status |
0x2b |
Telephone LEDs |
0x2c |
Telephone Status |
0x31 |
Menu Button |
0x32 |
BMBT Volume & MFL Volume |
0x34 |
DSP Control |
0x36 |
Radio EQ |
0x37 |
Radio Tone/Select |
0x38 |
CDC Request |
0x39 |
CDC Status |
0x3b |
MFL Buttons |
0x40 |
OBC Input |
0x41 |
OBC Control |
0x42 |
OBC Remote Control |
0x45 |
Set Radio UI |
0x46 |
Request Radio UI |
0x47 |
BMBT "Soft" Buttons |
0x48 |
BMBT Buttons |
0x49 |
BMBT Navigation Dial |
0x4a |
Tape Control/Radio LED |
0x4b |
Tape Status |
0x4e |
GT → Radio (TBC) |
0x4f |
BMBT Monitor Control |
0x50 |
Check Control Status Request |
0x51 |
Check Control Status |
0x52 |
Check Control Message Relay |
0x53 |
Redundant Data Request |
0x54 |
Redundant Data |
0x55 |
Replicate Data |
0x57 |
Cluster Buttons |
0x58 |
RLS → GM (TBC) |
0x59 |
Rain/driving Lights Status |
0x5a |
Cluster Indicators Request |
0x5b |
Cluster Indicators |
0x5c |
Instrument Backlighting (58G) |
0x5d |
Instrument Backlighting (58G) Request |
0x61 |
EHC → GLO (TBC) |
0x70 |
MRS → GLO (TBC) |
0x71 |
Remote (Keyless) Entry Request |
0x72 |
Remote (Keyless) Entry |
0x73 |
Key Status Request |
0x74 |
Key Status |
0x75 |
RLS → GM (TBC) |
0x76 |
Visual Indicators |
0x77 |
GM → RLS (TBC) |
0x78 |
Memory |
0x79 |
Door/Lid Status Request |
0x7a |
Door/Lid Status |
0x7c |
SHD → GLO (TBC) |
0x7d |
GM → SHD (TBC) |
0x82 |
IHKA → GLO (TBC) |
0x83 |
IHKA → IKE (TBC) |
0x86 |
IHKA → Nav. (TBC) |
0x87 |
Nav. → IHKA (TBC) |
0x9e |
GT → RCM (TBC) |
0xa2 |
Telematics Coordinates |
0xa4 |
Telematics Location |
0xa5 |
Body Text: Telephone / Radio |
0xa6 |
SMS Icon |
0xa7 |
Traffic Management Channel Request |
0xa8 |
Traffic Management Channel |
0xa9 |
BMW Assist Data |
0xaa |
Rear Nav. Control |
0xab |
Forward Nav. Control |
0xaf |
Nav. → SES (TBC) |
Features
Sensors
0x10Ignition Request0x11Ignition0x12Sensors Request0x13Sensors0x19Temperature0x1dTemperature Request
OBC
0x14Language & Region Request0x15Language & Region0x24Property Text: IKE0x2aOBC Status0x40OBC Input0x41OBC Control0x42Remote Control
Redundant Data Storage
0x53Redundant Data Request0x54Redundant Data0x55Replicate Data
Controls
0x20MID Button: Telephone0x31BMBT/MID Menu Button0x32MFL Volume0x3bMFL Buttons0x32BMBT Volume Dial0x48BMBT Buttons0x47BMBT "Soft" Buttons (i.e. INFO)0x49Navigation Dial0x57Cluster Buttons
Radio
0x23Title Text: Radio0x36Radio EQ0x37Radio Tone/Select0x39CDC Status
Telephone
0x02Announce: Telephone0x2bTelephone LEDs0x2cTelephone Status0x21Menu Text: Telephone0x23Title Text: Telephone0x24Property Text: Telephone0xa5Body Text: Telephone0xa6SMS Icon
Displays
- Default
- Pin-Code
- Dial
- Last Numbers
- Directory
- Top 8
- Info
- Bluetooth Pairing
- SMS Index
- SMS Message
- SOS/Emergency
Navigation
0x02Announce: BMBT0x02Announce: GT0x02Announce: Nav.0x1fGPS Time0x4fMonitor Control
Telematics
0xa2Telematics Coordinates
Lighting
0x5aCluster Indicators Request0x5bCluster Indicators
Body
0x76Visual Indicators0x79Door/Lid Status Request0x7aDoor/Lid Status