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.