Curious-Ninja Logo
  • Home
  • Projects
    • Aviation
      • King Air Guides
    • BMW E46
      • K/I-Bus Interface
    • IT
      • UserLogos
  • Blog
  • About me
  • Contact
Curi0us Ninja Logo

Arduino & BMW K/I-Bus Interface

  • Project Table of Contents:
  • Intro
  • I/K-Bus Technical Details
  • Schematic Descriptions
  • Project Downloads
  • Arduino Programming
  • Vehicle Integration
  • Operation & Testing
  • I/B-Bus Messages
31 Jul2015

Arduino & BMW I/K Bus Interface – Schematic Descriptions

July 31, 2015. Written by ninja. Posted in Blog, BMW E46, E46 K-bus, Projects

*** Project: Arduino & BMW K/I-Bus Interface ***
** Intro located here ***

Below are the schematics for my Arduino & BMW I/K-Bus Interface that I created using Eagle PCB software – they are based on schematics from reslers’ interface as well as from Neiland, and with some help from ian332isport.

The TH3122 chip is an I/K-Bus Transceiver, which translates the +/- 12V K-Bus messages to/from +/- 5V TTL level serial messages.
The TTL level serial data can then be interfaced to either an Arduino/Teensy device, RS-232 (via MAX232 chip), or to USB (via CP2102 chip or a cheap commercial TTL to USB converter device).

Schematic:  TH3122 to ARDUINO UNO R3

Schematic TH3122 To ARDUINO

• K-Bus Line Input to TH3122
The BMW K-Bus wire passes through an RC filter and then connects to pin 6 (BUS) on TH3122.
The RC filter minimizes EMI on the BUS line, and is recommended per TH3122 datasheet.
The RC filter is a 10 ohm resistor and a 100pF non-polarized capacitor.

• Voltage Supply to TH3122
+12V supply voltage passes through a diode (D1), and connects to pin 1 (VS) which powers the TH3122.
The circuit has a 47uF capacitor on the +12V line to reduce short time voltage drops.

• Regulated Voltage from TH3122
VCC (Pin 16) provides the arduino with +5V; It is also connected to a 1uF capacitor (C5) to reduce short time voltage drops.
Capacitor C5 is suggested to be above 2uF in the TH3122 datasheet. I stuck with 1uF for flexibility (smaller variety of parts), due to the MAX232 datasheet specifying 1uF – for the RS232 interface.
Pin 2 (EN) enables the +5 Voltage regulator output on pin 16 (VCC).
We will use this in the arduino programming to shut down the arduino when there is no activity on the I/K-Bus after a certain time period. The TH3122 will automatically re-enable VCC (Pin 16) once it sees activity on the I/K-Bus – which will wake up our arduino.

• TTL Serial data to/from TH3122
Pin 11 (TX) is connected to the Arduino’s transmit pin.
Pin 10 (RX) is connected to the Arduino’s receive pin.
Pin 9 (SEN/STA) is connected to the Arduino’s digital input pin 3.
The SEN/STA signal stays High while there is data/activity on the K-Bus, and goes Low when there is no
activity. This is used in the Arduino programming to tell when it’s safe to send data onto the K-Bus.

• Misc
Pin 3 (VTR) is connected to VCC; It sets reset timing (See TH3122 Datasheet).
Pins 7 (SO) and 8 (SI) on the TH3122 can be used as a universal comparator.
We do not need this feature, so we ground pin 8 (SI), the comparator input.
Pins 14 (RESET) and 15 (SENSE) are not used for this project.
Pins 4, 5, 12, and 13 are all Grounds.

Optional debug schematic:

The Arduino programming includes optional debugging via Software Serial. This allows us to use a USB-TTL converter to monitor what the Arduino is seeing and doing. For the UNO R3 we use pins 7 (Rx) and 8 (Tx) for our Software Serial. Use your favorite serial monitoring software – I personally prefer PuTTy. See latest Arduino sketch code for more details (debug comments). Instructions on setting up the debug environment are available in the Operation and Testing section.

Schematic TH3122 To ARDUINO with Debug

 

Schematic: TH3122 to USB TTL Converter (for NavCoder testing)

Schematic TH3122 To USB TTL

Description coming soon.. 
Last updated… Nov 19th, 2017

Schematic: TH3122 to RS-232 Serial

Schematic TH3122 To RS232

Description coming soon.. 
Last updated… Nov 19th, 2017

 Project Continued:
• Intro
• Technical Details
• Schematic Description
• Resources & Downloads
• Programming
• Integration
• Messages

Sharing is caring 🙂 Share this page with your friends!
  • Total7
  • Facebook
  • Twitter
  • Reddit
  • LinkedIn
  • Pinterest

Tags: arduino, bmw, bmw e46, bmw i-bus, bmw k-bus, communications, diy, e46, electronics, i-bus, k-bus, projects, schematic, serial, technical, wiring

Arduino & BMW K/I-Bus Interface

  • Project Table of Contents:
  • Intro
  • I/K-Bus Technical Details
  • Schematic Descriptions
  • Project Downloads
  • Arduino Programming
  • Vehicle Integration
  • Operation & Testing
  • I/B-Bus Messages
NEW POSTS
  • King Air quickGuides December 29, 2018
  • Arduino & BMW I/K Bus Interface – Operation & Testing November 19, 2017
  • Arduino & BMW I/K Bus Interface – Programming – v0.1.0 beta April 11, 2016
  • Arduino & BMW I/K Bus Interface – Programming – v0.0.1 alpha April 10, 2016
  • UserLogos & Fast Dial August 10, 2015
ARCHIVES
  • December 2018
  • November 2017
  • April 2016
  • August 2015
  • July 2015
  • May 2015
TAGS
arduino bmw bmw e46 bmw i-bus bmw k-bus c++ chrome communications c plus plus details diy downloads e46 electronics fast dial firefox i-bus integration k-bus messages navcoder programming projects schematic serial speed dial technical testing userlogos wiring
Built with HTML5 and CSS3 - Curious.Ninja
  • Home
  • Projects
    • Aviation
      • King Air Guides
    • BMW E46
      • K/I-Bus Interface
    • IT
      • UserLogos
  • Blog
  • About me
  • Contact