Feb 18, 17: found an accesible CAN Bus, type and it's data rate. In the Instrument Cluster there is an NXP TJA1041 transceiver, pulled HI and LO wires following datasheet's pin out.

Two options that I have available to receive CAN messages are a Beaglebone Black with a 3.3V complaint transceiver or an Arduino with a CAN Controller and Transceiver (MCP2515/MCP2551)... both options are well documented in different sites.

Update: The Beaglebone can read the messages of the CAN bus, just don't put termination resistors on the sniffer side as the bus already had one!That's why it made the car to behave strange before....

The configuration I used is:

echo BB-DCAN1 > /sys/devices/bone_capemgr.*/slots

modprobe can

modprobe can-dev

modprobe can-raw

ifconfig can0 down

ip link set can0 up type can bitrate 500000 loopback off triple-sampling on

ifconfig can0 up

(Note: the loopback off or on and triple-sampling on or off made no difference)

Tried the Arduino with the MCP_CAN Library and now I can read and write data on the bus without having weird behavior of the indicators and the car...

Feb 20, 17: sniff CAN messages, move the car, push all buttons and try to decode it's function by ID:

0x423 seems to come from the IPC:

  • D0 is the state of the Ignition Key
  • D1 state of the Turn Lights
  • D2 are the doors (0x00 all close, 0x01 driver open, 0x02 passenger open, etc)
  • D3 state of the Headlamps, etc

0x0C2 has steering wheel angle and possibly accelerometer data

0x212 are the RPM at D2 and D3 [ concatenate with (D2<<8)|D3 ]

0x23A is the Speed at D0 and D1 [ concatenate with (D0<<8)|D1 ]

0x418 is the transmission

...these are assumptions so far. Will program something to decode above IDs, data in real time and find out if it is accurate.

Feb 24, 17: will work with the Beaglebone only. cansniffer can0 is great to find out CAN IDs and Messages...

Feb 28,17: worked with SocketCAN and a GUI with Allegro library, now can read and write to the bus at low level C, thanks again to other sources.

Uploaded the code to https://github.com/dvelazquez/CarDataLogger mainly as a personal backup and future reference...

March 5th, 2017: after a weekend out of the city, connected the Beaglebone to the OBD II port and found out that the CAN messages may be the same at the diagnostics port and at the instrument panel. Will look at them later...

March 6th, 2017: confirmed, the data at the OBDII port has the same information as the CAN bus inside the car. No gateway? Can access directly to all the data through the OBD port... can I re-program or re-set parameters from the outside?

Attached are the CAN IDs and notes on the IDs / Data Frames and their function on the car, am gonna do more testing like Killian did.