Skip to content

Latest commit

 

History

482 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  1. Applicable Models
  2. Glossary
  3. Device Index
    1. K/I-Bus
    2. D-Bus
  4. Command Index
  5. Features
    1. Sensors
    2. OBC
    3. Redundant Data Storage
    4. Controls
    5. Radio
    6. Telephone
    7. TCU and BMW Assist
    8. Navigation
    9. Lighting
    10. 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 distribution 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 0x80 is 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 Abbreviation Description Vehicles
0x00 K ZKE General Body Electronics
0x08 K SHD Tilt/Slide Sunroof
0x18 K/I CDC CD Changer
0x24 K HKM Trunk Lid Module E38, E39
0x28 I RCC Radio Clock Control E38
0x2e K EDC Electronic Damper Control E38, E39
0x30 I CCM Check Control Module E38
0x3b I GT Graphics Stage
0x3f K/I Diagnostics (via gateway)
0x40 K FBZV Remote Control for Central Locking E31
0x43 I GTF Rear Graphics Stage E38
0x44 K EWS Drive Away Protection System
0x45 K DWA Anti-Theft System
0x46 I CID Central Information Display E83, E85
0x47 I FMBT Rear Control Panel E38
0x48 I JBIT Telephone (Japan)
0x50 K/I MFL Multifunction Steering Wheel
0x51 K SPMBT Mirror Memory: Passenger E46
0x53 K/I Unconfirmed: Multicast 📣
0x5b K IHKA Automatic Heating/Air Conditioning
0x60 K/I PDC Park Distance Control
0x66 K ALC Active Light Control
0x67 K/I ONL General Module logical GATS/service interface
0x68 K/I RAD Radio
0x69 K EKM Electronic Body Module E31
0x6a K/I DSP Digital Sound Processor
0x6b K STH Auxiliary Heater
0x70 K RDC/DWS Tire Pressure Control & Deflation Warning System
0x71 K SMF Seat Memory: Driver E31
0x72 K SMF Seat Memory: Driver E46, E53
0x73 I SDRS Sirius Satellite Radio
0x76 K CDC CD Changer (DIN?)
0x7f K/I NAV Navigation
0x80 K/I KMB/IKE Instrument Cluster
0x9a K/I ALWR Automatic Headlight Vertical Aim Control
0x9b K CVM Convertible Soft Top Module E36
0x9b K SPMFT Mirror Memory: Driver E46
0x9c K CVM Convertible Soft Top Module E46
0x9d K ETS Electronic Disconnecting Switch E38
0xa0 I FID Rear Multi-functional Display E38, E39
0xa4 K MRS Multiple Restraint System
0xa7 K FHK Rear Compartment Heating/Air Conditioning E38
0xac K EHC Electronic Height Control
0xb0 K/I SES Speech Input System
0xb9 K RF/IR Compact Remote Control
0xbb I TV TV (in Video Module)
0xbf K/I Global Broadcast 📣
0xc0 K/I MID Multi-functional Display E38, E39, E53
0xc8 K/I TEL Telephone logical interface
0xca I TCU BMW Assist / telematics interface
0xcd K MID Multi-functional Display E31
0xda K SMB Seat Memory: Passenger E46
0xd0 K/I LCM/LSZ Lamp Check Module & Light Switch Center
0xe0 K IRIS Integrated Radio and Information System E39
0xe7 K/I Multicast: Displays 📣
0xe8 K RLS Rain/Light Sensor
0xea I DSPC DSP Controller E38
0xed I VID Video Module
0xf0 I BMBT On-board Computer Control Panel
0xf5 K LKM2 Lamp Control Module 2 E31
0xf5 K SZM Center Console Switch Center
0xff K/I Local 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
0x00 ONL Service
0x01 Ping
0x02 Pong & Announce
0x05 BMBT Service Mode Request
0x06 Service Reply: BMBT / VID
0x10 Ignition Request
0x11 Ignition
0x12 Sensors Request
0x13 Sensors
0x14 Language & Region Request
0x15 Language & Region
0x16 Odometer Request
0x17 Odometer
0x18 Speed / RPM
0x19 Temperature
0x1a Check Control Message
0x1b IKE Text Status
0x1d Temperature Request
0x1f GPS Time
0x20 MID Button
0x21 Menu Text
0x22 Text Display Confirmation
0x23 Title Text
0x24 Property Text
0x27 MID Display Request
0x2a OBC Status
0x2b Telephone LEDs
0x2c Telephone Status
0x2d Telephone Direct Dial
0x31 Menu Button
0x32 Volume: BMBT / MFL / DSP
0x34 DSP Equalizer Button
0x35 DSP Status
0x36 Radio EQ / DSP Control
0x37 Radio Tone/Select
0x38 CDC Request
0x39 CDC Status
0x3b MFL Buttons
0x3f CDC ID3 Text
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 BMBT Tape/LED Control
0x4b BMBT Tape Status
0x4d Video Module State
0x4e Radio Source / Navigation Volume
0x4f BMBT Monitor Control & Video Module Source
0x50 Check Control Status Request
0x51 Check Control Status
0x52 Check Control Message Relay
0x53 Redundant Data Request
0x54 Redundant Data
0x55 Replicate Data
0x56 Rain/Driving-Light Status Request
0x57 Cluster Buttons
0x58 RLS Wiper Interval Data
0x59 Rain/Driving-Light Status
0x5a Cluster Indicators Request
0x5b Cluster Indicators
0x5c Instrument Backlight (58G)
0x5d Instrument Backlight (58G) Request
0x61 EHC Status
0x62 RDC Status
0x70 MRS Status
0x71 Rain Sensor Status Request
0x72 Remote Key Buttons & Status & Status
0x73 Immobiliser Status Request
0x74 Immobiliser Status
0x75 Wiper Status Request
0x76 Visual Indicators
0x77 Wiper Status
0x78 Memory
0x79 Door/Lid Status Request
0x7a Door/Lid Status
0x7c Sunroof Status
0x7d Sunroof Control
0x82 IHKA Status
0x83 IHKA A/C Control
0x86 Rear Defroster Status
0x87 Rear Defroster Status Request
0x9e Rear Monitor Control
0x9f Rear Monitor Status
0xa0 TCU Emergency-Call Status / Telephone Data
0xa2 Telematics Coordinates
0xa4 Telematics Location
0xa5 Body Text
0xa6 SMS Icon
0xa7 Traffic Management Channel Request
0xa8 Traffic Management Channel
0xa9 BMW Assist Data
0xaa Navigation Control: SES / GTF
0xab GTF Remote Control Status
0xaf SES Navigation Status
0xd4 NG-Radio Station List
0xd5 CID Display Status

Features

Sensors

  1. 0x10 Ignition Request
  2. 0x11 Ignition
  3. 0x12 Sensors Request
  4. 0x13 Sensors
  5. 0x16 Odometer Request
  6. 0x17 Odometer
  7. 0x18 Speed / RPM
  8. 0x19 Temperature
  9. 0x1d Temperature Request

OBC

  1. 0x14 Language & Region Request
  2. 0x15 Language & Region
  3. 0x24 Property Text: IKE
  4. 0x2a OBC Status
  5. 0x40 OBC Input
  6. 0x41 OBC Control
  7. 0x42 Remote Control

Redundant Data Storage

  1. 0x53 Redundant Data Request
  2. 0x54 Redundant Data
  3. 0x55 Replicate Data

Controls

  1. 0x20 MID Button: Telephone
  2. 0x31 BMBT/MID Menu Button
  3. 0x32 MFL Volume
  4. 0x3b MFL Buttons
  5. 0x32 BMBT Volume Dial
  6. 0x48 BMBT Buttons
  7. 0x47 BMBT "Soft" Buttons (i.e. INFO)
  8. 0x49 Navigation Dial
  9. 0x57 Cluster Buttons

Radio

  1. 0x21 Menu Text: Radio
  2. 0x23 Title Text: Radio
  3. 0x24 Property Text: Radio
  4. 0x32 DSP Volume
  5. 0x34 DSP Equalizer Button
  6. 0x35 DSP Status
  7. 0x36 Radio EQ / DSP Control
  8. 0x37 Radio Tone/Select
  9. 0x38 CDC Request
  10. 0x39 CDC Status
  11. 0x3f CDC ID3 Text
  12. 0x46 Request Radio UI
  13. 0x4a BMBT Tape/LED Control
  14. 0x4e Radio Source / Navigation Volume
  15. 0xa5 Body Text: Radio
  16. 0xa7 Traffic Management Channel Request
  17. 0xa8 Traffic Management Channel
  18. 0xd4 NG-Radio Station List

Telephone

TEL 0xc8 is the logical telephone interface. It may be provided by a dedicated telephone module or by a TCU. An Everest TCU uses 0xc8 for the normal telephone UI/data path and may simultaneously use TCU address 0xca for its BMW Assist/telematics path.

  1. 0x02 Announce: Telephone
  2. 0x2b Telephone LEDs
  3. 0x2c Telephone Status
  4. 0x2d Telephone Direct Dial
  5. 0x21 Menu Text: Telephone
  6. 0x23 Title Text: Telephone
  7. 0x24 Property Text: Telephone
  8. 0xa0 Telephone Data
  9. 0xa5 Body Text: Telephone
  10. 0xa6 SMS Icon
  11. 0xa9 BMW Assist Data

Displays

  1. Default
  2. Pin-Code
  3. Dial
  4. Last Numbers
  5. Directory
  6. Top 8
  7. Info
  8. Bluetooth Pairing
  9. SMS Index
  10. SMS Message
  11. SOS/Emergency

TCU and BMW Assist

TCU 0xca is the additional BMW Assist/telematics interface. It does not replace TEL 0xc8; a TCU that also provides telephone service can use both logical addresses.

  1. 0x02 Announce: TCU
  2. 0x23 Title Text: TCU
  3. 0xa0 TCU Emergency-Call Status

Navigation

  1. 0x02 Announce: BMBT
  2. 0x02 Announce: GT
  3. 0x02 Announce: Nav.
  4. 0x1f GPS Time
  5. 0x4f Monitor Control
  6. 0xaa GTF Navigation Control
  7. 0xab GTF Remote Control Status

Telematics

  1. 0xa2 Telematics Coordinates
  2. 0xa4 Telematics Location
  3. 0xa9 BMW Assist Data

Speech Input System

  1. 0xaa SES Navigation Control
  2. 0xaf SES Navigation Status

Lighting

  1. 0x56 Rain/Driving-Light Status Request
  2. 0x59 Rain/Driving-Light Status
  3. 0x5a Cluster Indicators Request
  4. 0x5b Cluster Indicators
  5. 0x5c Instrument Backlight (58G)
  6. 0x5d Instrument Backlight (58G) Request

Body

  1. 0x58 RLS Wiper Interval Data
  2. 0x71 Rain Sensor Status Request
  3. 0x72 Remote Key Buttons & Status
  4. 0x73 Immobiliser Status Request
  5. 0x74 Immobiliser Status
  6. 0x75 Wiper Status Request
  7. 0x76 Visual Indicators
  8. 0x77 Wiper Status
  9. 0x78 Memory
  10. 0x79 Door/Lid Status Request
  11. 0x7a Door/Lid Status

About

BMW I/K-Bus Documentation

Topics

Resources

Contributing

Stars

147 stars

Watchers

16 watching

Forks

Releases

Used by

Contributors