Before you can use a vehicle interface (VI), it has to be programmed with a firmware that understands data sent by your car. You have a few options:

On-board Diagnostics (OBD-II) Data from CAN

To read standard OBD-II diagnostics data from a CAN bus, use the open source OBD-II OpenXC firmware. You can download the latest compiled version of that firmware from the vi-firmware releases page. The OBD-II build will output a subset of OBD-II data that your car supports over USB and Bluetooth just like normal OpenXC data. Note that it’s not much data - most likely only RPM, vehicle speed and intake manifold pressure. Your car must also support OBD-II via CAN, which is only required since 2008. Otherwise, you’ve reached the limits of the federal standard - call your congressman if you want more!

Emulated Data

If you don’t have access to a car and you want to verify the connection to the VI from your host device (or it’s winter in Michigan and you’d just rather stay inside), you can use a simple emulator firmware. The emulator firmware will be a part of the firmware zip file that you will find on the vi-firmware release page. It generates fake vehicle data and continuously sends it over USB and Bluetooth as if it were live data. It’s completely random data, so don’t try and build an app against it.

Expanded Proprietary Data

To read expanded data from a particular car, look for firmware distributed as pre-compiled binaries by your car’s manufacturer. Check the list of supported vehicles for your car’s make and model and for links to download the firmware.

Flash the Firmware

If you have a Ford Reference VI, then follow these instructions to upload the firmware. For other versions of VIs, look up the instructions for uploading the firmware to your VI on the supported VI hardware page - it’s different for each.

If you would like to make changes to the firmware, proceed to Advanced Firmware Development.