Logging OBD2 data

In this section we outline how to log OBD2 data with your CANedge.


Configure your device - quickstart

For a quickstart, use this OBD2 Configuration File for the CANedge2 (FW 01.06, 500K).

Download the Configuration File to your SD card (replace the original) and safely eject the SD.


Configure your device - transmit list

If you already have a Configuration File you prefer to use, you can alternatively load a JSON list to configure your device to transmit OBD2 ‘request messages’:

  1. Load your Configuration File in a config editor

  2. For CAN CH1, set the mode to normal and the bit-rate to simple (typically 500K for cars)

  3. Download the OBD2 PID transmit list

  4. In the editor, click the “+” icon in the toolbar to load the transmit list

  5. Download the updated Configuration File to your SD card (replace the original)


Record data from your car

  1. Connect the CANedge to the OBD2 connector in your car via the DB9-OBD2 adapter1

  2. Verify that the device turns on and logs data (see the LED section of the CANedge Docs)

  3. Disconnect the device and use e.g. an MDF4 converter to view the raw data

  4. If your car responds2 you should see CAN frames with ID 7E83 in your data

  5. Once confirmed, you can optionally optimize your Configuration File4


Analyze & plot your OBD2 data

The asammdf GUI intro details how you can convert raw data from the CANedge into human-readable form - and e.g. perform plots. You can use our free ODB2 DBC.

OBD2 data logger

Cars vs. vans/trucks

Practically all cars communicate via 11-bit CAN IDs at a 500K bit rate. Here, your OBD2 Configuration File should utilize the 11-bit request ID 7DF and a 500K bit rate as per our ‘quickstart’ config above.

However, in e.g. vans, light trucks or heavy duty trucks, you will typically find that CAN 2.0B is used, meaning that identifiers are 29-bit. Here, the OBD2 request ID should be 18DB33F1 and responses will come via IDs 18DAF1xx (where xx may vary). Further, you’ll need to determine if the bit rate used is 250K or 500K before deploying the CANedge.

Below we provide quick start Configuration Files for 29-bit OBD2 requests. We also provide an Extended variant of our OBD2 DBC for decoding the responses.

For 29-bit, use this OBD2 Configuration File for the CANedge2 (FW 01.06, 500K).


OBD2 & battery consumption

The CANedge consumes <1W, which is not an issue for your car battery in practical use cases. In most cases, the device also turns off with your car (or 10-20 min after). However, if this is not the case and you’re requesting OBD2 data, the device may “wake up” the car sensors.

In such scenarios, there are a couple of options:

  1. You can simply disconnect the device between trips

  2. You can re-wire your vehicle’s OBD2 connector so that the power pin is linked to the ignition

  3. You can use a DB9-DC splitter and a cigarette-to-DC adapter to power the device

  4. You can turn the OBD2 transmit list on/off via a control signal as outlined in the CANedge Docs

The last option is least invasive, but requires some work. Below we illustrate how it can be done:

  1. Log raw CAN data with your OBD2 data over a period where the vehicle is on/off a few times

  2. Note down the period timings for when the vehicle is on/off

  3. Convert your raw data to CSV and import it into e.g. Excel for analysis

  4. Add a column to mark when the vehicle is on/off (verify via the timestamps & OBD2 data)

  5. Look for consistent systematic changes in one of the raw CAN frames

  6. If an ID only exists when the car is on, you can use it to create a simple control signal trigger

  7. Or, if a data byte shows a consistent & correlated pattern you can e.g. follow this approach


1

We recommend using one of our DB9-OBD2 adapters. If using a 3rd party cable, it’s important to verify the pin-out.

2

Note that some older cars do not support OBD2 data acquisition via CAN bus, while some newer cars block CAN access via the OBD2 connector. For cars that do support OBD2 data, the extent of coverage varies. The “supported PID” single-shot requests can help provide information on what PIDs are supported. If your car does not respond to the OBD2 requests, we recommend to test in other cars to determine if the issue is specific to the car or e.g. the Configuration File

3

In some cases you’ll see IDs like 7E9. In this case, you may need to modify the OBD2 DBC to use alternative CAN IDs

4

For example, you may want to add filters to only record OBD2 responses. Also, you may want to add custom OBD2 PID requests - see our simple intro to OBD2 and the OBD2 PID Wikipedia page for details on this