E46 BMW Social Directory E46 FAQ 3-Series Discussion Forums BMW Photo Gallery BMW 3-Series Technical Information E46 Fanatics - The Ultimate BMW Resource BMW Vendors General E46 Forum The Tire Rack's Tire Wheel Forum Forced Induction Forum The Off-Topic The E46 BMW Showroom For Sale, For Trade or Wanting to Buy

Welcome to the E46Fanatics forums. E46Fanatics is the premiere website for BMW 3 series owners around the world with interactive forums, a geographical enthusiast directory, photo galleries, and technical information for BMW enthusiasts.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

Go Back   E46Fanatics > Tuning & Tech > DIY: Do It Yourself

DIY: Do It Yourself
Post here to share or improve your wrench turning skills! All BMW E46 DIY tips, tales, and projects discussed inside. Learn to work on your car and know the right BMW parts you will need!

Reply
 
Thread Tools Search this Thread Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
Old 05-29-2014, 09:24 PM   #1
gumanov
Registered User
 
Join Date: Aug 2011
Location: USA
Posts: 50
My Ride: 2001 325Ci 5-speed
Arduino and BMW I/K-bus integration

Hi all,

I've been doing quite a bit of research on interfacing with the BMW I/K-bus with an Arduino UNO board.

The I/K-bus is used on BMW's for non-critical systems communication and control; accessories, radios, some parts of the instrument cluster, steering wheel radio control buttons, window status and controls, seat adjustment controls, sunroof controls, rain+light sensor status, etc.. the list goes on. The bus is very similar to a typical serial bus. All modules transmit and receive on a single wire at ~9600 bits/s.

Most of my research has led to articles, and tutorials which refer to the steering wheel radio control buttons in particular - it seems to be a popular DIY. In those articles people have successfully used Arduinos to read I/K-bus HEX messages that relate to the button presses and then use that information for whatever purposes they had in mind.

I have a project in mind where I will need the rain/light sensor data specifically. The rain/light sensor (RLS) is an optional module mounted to the windshield on most E46's, behind the rear view mirror mount cover.
It serves two functions:
1) Monitor ambient(external) light in order to turn on the headlights when the lighting switch is in the "auto" position and it gets dark outside.
2) Detect water on the windshield in order to control the wipers when the wiper selector is in the first notch "auto" position.

I would like to use the external ambient light information to control an external device when it gets dark. I need the Arduino to put out 12V on one of it's outputs so that can power a relay to turn on my device.
Also would like to use the "rain detected" messages to have the Arduino respond with a I/K-bus message of "close sunroof".

I realize I can simply buy a light sensitive relay circuit and throw that into the car somewhere.. but I prefer the Arduino method because I plan on expanding the "features" at some point. There are many possibilities when you have access to this bus, I can think of many other uses I'd like to add later on, once I get more familiar with the bus messages.

I should mention I've very new to the world of Arduino and "hardware" programming in general. I understand bus systems and serial communication in theory, but I have no experience physically working with that sort of thing.
I'm asking anyone that's familiar with Arduino or has any knowledge of the BMW bus systems to please contribute to this thread; anyone that's ever successfully connected an Arduino to the I/K-bus would be of great help.

As a starting point, I obviously need to find a way to physically connect the Arduino to the K-bus line in my E46. I have a few ideas which I have found from my research, but maybe someone here has something better in mind.
Tomorrow I will sort through all of my research so far and post the information here for reference. I have a lot of the bus message ID's and data in my notes - including what I believe to be the rain/light sensor module ID in HEX format.
I'll include schematics I plan to use for the connection. I have also found several Arduino sketches(code) that others have used, mostly for the steering wheel button stuff - it'll be a great starting point for me; but I'll worry about the coding after I take care of the hardware first.
I'd like to eventually turn this into a tutorial - so I'll be keeping notes, schematics, code, and taking photos as I go

TL;DR
Calling anyone who has experience with interfacing an Arduino with the BMW I/K-bus.. looking for tips/suggestions on hardware implementation.
__________________

2001 325Ci 5spd
2004 330Ci ZHP 6spd :)

Last edited by gumanov; 05-29-2014 at 09:27 PM.
gumanov is offline   Reply With Quote
Ads by Google

Guests, get your FREE E46Fanatics.com membership to remove this ad.
Old 05-30-2014, 12:08 PM   #2
kd7iwp
Registered User
 
Join Date: Jan 2012
Location: Abbotsford, BC
Posts: 204
My Ride: 2001 325i
It potentially could be helpful looking into the code for the Car Kracker. There was a guy on here who was actively developing a kit (I bought one myself) which is based on the Parallax Propellor (similar idea to the Arduino but is a multi-core CPU) and he plugged it into the CD changer plug in the trunk to get onto the network in the car. I wondering if the light sensor will actually do anything when the car is off though since most sensors in the car go to sleep when the car is off.
kd7iwp is offline   Reply With Quote
Old 05-30-2014, 01:11 PM   #3
gumanov
Registered User
 
Join Date: Aug 2011
Location: USA
Posts: 50
My Ride: 2001 325Ci 5-speed
Quote:
Originally Posted by kd7iwp View Post
It potentially could be helpful looking into the code for the Car Kracker. There was a guy on here who was actively developing a kit (I bought one myself) which is based on the Parallax Propellor (similar idea to the Arduino but is a multi-core CPU) and he plugged it into the CD changer plug in the trunk to get onto the network in the car. I wondering if the light sensor will actually do anything when the car is off though since most sensors in the car go to sleep when the car is off.
Yeah I was considering buying a Car Kracker 3, it would be able to do exactly what I need.. but it looks like it's no longer being sold. And I couldn't get in touch with the owner of the website.

Update for references:
Best source of information I've been able to find:
http://www.northamericanmotoring.com...-r53-mfsw.html
__________________

2001 325Ci 5spd
2004 330Ci ZHP 6spd :)
gumanov is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Censor is ON





All times are GMT -5. The time now is 04:07 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
(c) 1999 - 2011 performanceIX Inc - privacy policy - terms of use