Saturday, January 6, 2018

E90 BSD

Awhile back I tried decoding E90 BSD data stream.  On the web I found a person that had sampled the data and with that I tried to capture the data stream. Never could get a baud rate and parity to get the data to make sense. Just looked like garbage.

For Christmas my son got a inexpensive oscilloscope. The BSD would be a great data stream to test on.  With that we can get the correct baud rate. After only a short time of looking at it my son says "it looks like PWM". Humm. I remember reading that BMW had used ibus in some cars for the BSD (think older 7 series). And our data stream doesn't look like the ibus to us.   Here is a wave form below.



According to the BMW specs the BSD is 1.2kBd or 1200 Baud. Which calculates out to be 0.8333ms per pulse.  Humm.   The cycle time of the PWM signal we captured 0.833ms (see in image to the left).  I think we are on the right track.








Here is some data from our test bench dme and our excel sheet breaking the PWM times into what we think is binary data.  Assuming 0.3ms is a 0 and 0.6 is a one.  It looks like the start of frame is a 0.3 as well.






Next step is to take some data from my E90 car.  But it is too cold for that today.








1 Jan 2018 update;
 Got a sample from the car.  Here is a graph of the timings of the pulses


Basically there are 3 groupings, Around 0.10 ms, 0.35 ms and 0.65 ms.   We also found that the number of pulses per message varied.  From 8 to something like 16 and just about everything in between.  Pretty complex.  Doubt we'll crack this easily.

Saturday, December 2, 2017

E90 Warning lights.


After way too long I finally found the message for the warning lights. It is on ARBID 592.  It is an 8 byte message.  Byte1 and the first bit of byte 2 are the "Error ID".


 
The error ID is referenced in documents for the "check control symbols" like this one.   Before I found one of the documents I just made a program that cycled through the error codes one at a time.  Found that not all the symbols are explained in the document.


 

Like this one to the right.  It is error ID 153 (0x99).  I expect this one is for a police version of the car.  Anyway it made me laugh.





ARBID 592 as far as I have made out so far is as follows
length - 8
B0 - set to 40 seems to be for errors
B1 - Low byte of Error ID
B2 - First bit is part of Error ID. Rest unknown
B3 - the first bit indicates on or off. 1 on, 0 off.  Other bits seem to effect how long it is on.
B4 through B7 are unknown. For the bulb check FF or 0 is there.  Expect it has something to do with
conditions when the error was set.

Anyway have fun.  Here is a video of my test bench showing a few of the symbols