Skip to content
/ I-K_Bus Public

BMW I-Bus / K-Bus communication and control with microcontrollers (ESP32, Arduino, etc.).

License

Notifications You must be signed in to change notification settings

muki01/I-K_Bus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚙BMW I/K Bus

GitHub forks GitHub Repo stars GitHub Issues or Pull Requests GitHub License GitHub last commit

Unlock the full potential of your BMW's communication network. This project provides a comprehensive solution for interfacing with the BMW I-Bus (Instrumentation Bus) and K-Bus (Body Bus) using microcontrollers like Arduino, ESP32, or STM32.

With this project, you can sniff bus traffic, read real-time sensor data, and send custom commands to control lights, windows, locks, and multimedia systems.

I will share more information about I/K Bus protocol and communication later. Stay tuned 😉.

You can also see my other car projects:

  1. Тhis project is for BMW with I/K bus system.
  2. Тhis project is for Cars with CAN Bus.
  3. Тhis project is for Cars with ISO9141 and ISO14230 protocols.
  4. Тhis is my OBD2 CAN Bus Communication Library for Arduino IDE.
  5. Тhis is my OBD2 K-Line Communication Library for Arduino IDE.
  6. Тhis project is for VAG Cars with KW1281 protocol.

Warning

I am not responsible for any issues or damages that may occur during your testing. Please proceed with caution and at your own risk.

🌟 Overview

The I/K-Bus is a single-wire, serial communication protocol used in classic BMW models (E38, E39, E46, E53, etc.). It operates at 9600 baud, 8E1 (Even Parity). This repository contains the source code and hardware schematics needed to bridge this automotive protocol with modern development boards.

🚀 Key Features

  • Real-time Sniffing: Monitor every message sent across the bus.
  • Bi-directional Control: Not just reading; you can inject packets to control car modules.
  • Multi-Platform Support: Tested on Arduino Nano, but compatible with ESP32, STM32, and Teensy.
  • Hardware Flexibility: Includes schematics for Optocouplers, TH3122, and MCP2025.

📡Supported BMW 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

🔌 Where Can We Connect to the K-Bus? (BMW E46 Example)

There are several locations in a BMW E46 where you can tap into the K-Bus wiring. Below are common and practical connection points.

  • CD Changer connector – Trunk
  • Radio K-Bus wiring
  • K-Bus junction block (above fuse box)

1. CD Changer Connector

This is the easiest place to connect an Arduino or similar interface.

  • Provides +12V, GND, and K-Bus in one connector
  • CD Changer is optional, but the wiring is usually present
  • Located in the trunk, driver’s side, behind trim

Connector: X18180 (BMW WDS)
K-Bus wire color: White / Red with Yellow dots
Ground wire color: Brown
12V wire color: Red/ Green

📷 Photos below:

2. K-Bus junction block (above fuse box)

The K-Bus line can also be accessed at the junction block located above the fuse box.

  • Used as a central distribution point for the K-Bus
  • K-Bus wire color: White / Red with Yellow dots

From this point, you can tap the K-Bus line. +12V and GND must be taken from another location.

📷 Photos below:

🔧 Installation

  1. Clone this repository or download the .zip file
  2. Open the .ino file with Arduino IDE
  3. Select your board (e.g., Arduino Nano, ESP32)
  4. Set the correct COM port and upload the code

🛠️Schematics for communication

Interfacing a 5V/3.3V microcontroller with a 12V bus requires level shifting. I have provided three verified methods:

🔹Schematic with Optocouplers

🔹Schematic with TH3122.4 or ELMOS 10026B

🔹Schematic with MCP2025


☕ Support My Work

If you enjoy my projects and want to support me, you can do so through the links below:

Buy Me A Coffee PayPal GitHub Sponsors


📬 Contact

For information, job offers, collaboration, sponsorship, or purchasing my devices, you can contact me via email.

📧 Email: [email protected]


About

BMW I-Bus / K-Bus communication and control with microcontrollers (ESP32, Arduino, etc.).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published