ok great...here it goes...
Hardware Used for Sniffing
Arduino Uno Clone - interface to PC
SeeedStudio CANBUS Shield v1.2 - interface from PT-CAN to Arduino
Putty Terminal - dump all the Serial Output to a text file for review
Reference Links
http://www.loopybunny.co.uk/CarPC/k_can.html
http://www.e90post.com/forums/showthread.php?t=177272
https://www.bimmerforums.com/forum/showthread.php?2298830-E90-Can-bus-project-(E60-E65-E87-)
This is something I have put off for over a year as I planned to make a hardware gear position indicator (like sequential cars). I bought the hardware, I wrote the code, but I ended up using it for PC Sim Racing instead.
With the example provided by SeeedStudio, getting data to show seemed easy enough so I had a go at trying to get data from the OBD Port but after an hour I gave up. Went home, looked in Rheingold and found out only D-CAN signals exist so it's useless.
After looking around in Rheingold, I believe the PT-CAN should have what I need so I tapped the JBBF module as per the screenshot above. Setup the proper baudrate and...success!
After a 10 minute drive, I looked at the data and realized I was missing a lot of packets. More googling shows the Serial Output to be too slow sinces its only at 115200 baud but the PT-CAN runs at 500KBps. With overhead, I am only receiving maybe 5-10% of the packets that were on the PT-CAN. Since CANBUS is a priority based system where lower IDs have a higher priority, most of the data were 0x0??.
Count CAN-IDs from Data Dump, List goes on...
Using the packets I captured, I cross referenced it with
http://www.loopybunny.co.uk/CarPC/k_can.html and found a speed signal on CANBUS Id 0x1A0. With lots of driving around in the parking lot and some reverse engineering...
(Right Bit of Byte 1 + Byte 0) divided by 10 = Speed in km/h
Data for the steering angle sensor resides on CAN-ID 0x0c8 which calculates to raw value of 0 to 65535 going counter clockwise but I might not bother with it since I will need to figure out initial steering wheel angle to get anything meaningful (the wheel turns around and around....)
I have a 12v 10A pwm motor board on hand to generate the signal to drive the servotronic motor but since the PWM duty cycle (input control) is controlled using a knob (variable resistor pot), I will need to convert it so it can be controlled digitally. But before I test this...I want to make sure my servotronic motor and the motor board works... no point wasting time on this if I can't test it right?
One thing I should add... I am doing this to make slow maneuvers easier especially for my girlfriend even though she doesn't drive all that often. Parking spaces are a lot smaller in Hong Kong compared to other countries and with 255 front tires and -2.8 camber... I do sweat a little after parking my car...