../Volvo C30 1.6d DRIVe

Volvo adventures with OBD-II and the CAN bus

A CANBUS B frame consists of a four byte header (containing a 29-bit identifier), followed by up to 8 data bytes

Creating the correct converters to interface 8 Devices' USB2CAN product to both the high (500k) and low speed CAN buses in the OBD-II port.


  • OBD-II pin 16 (12v) -> DB9 pin 9
  • OBD-II pin 14 High speed CANL > DB9 pin 2
  • OBD-II pin 11 Low speed CANL > DB9 pin 2
  • OBD-II pin 6 High speed CANH > DB9 pin 7
  • OBD-II pin 5 Ground > DB9 pin 6 & 3
  • OBD-II pin 3 Low speed CANH > DB9 pin 7

Confuring the device if connected to the high speed bus:

]# ip link set can0 up type can bitrate 500000

CAN bus

cansniffer doesn't work, this is apparently a known issue with 29bit CAN bus ids unless you use coryjfowler's can-utils [ https://github.com/coryjfowler/can-utils ]

CanBus PIDs




0x1B700030 Boost pressure control
0x0110483C MAF Air flow rate 0110483C#08E422209466DC53 184.92
0x02104136 MAF Air flow rate 02104136#BB003FFF06E00000 166.94

0x0617ff8 0x0110483C # accelerator 0x19000026 # left and right indicator stalk
19000026#00FF014030118D00 car driving, no indicators
19000026#00FF01403011ED00 car driving, indicating right
19000026#00FF01403011AD00 car driving, indicating left

19000026#00FF000000000500 car stopped

0x0300410E # revcounter and brake

OBD-II Codes

  • P1103 (Mass Airflow Sensor in Range But Higher Than Expected)

I've owned this car since 2019 and am using it to investe CAN bus interfacing.

OBDIII'm using 8 Devices USB2CAN product and the can-utils software on Debian 8, with a custom DB9<>OBD-II cable using the pinout adjacent. [USB2CAN pinout]

To access both high and low speed buses you need 2 OBD-II to DB9 converters..

I also have a Bluedriver OBD-II Scantool