Before you can use a vehicle interface (VI), it must be programmed with a firmware that understands the data sent by your car. All of the below are available from the vi-firmware releases page or can be built on your own by following the build configurations.

The following are the standard build configurations:


Named “vi-default-firmware-PLATFORM-version.hex” in releases.

These are built with the default compile options. It likely will not get data from your vehicle, but are used for some testing. It is a good check of your build environment.

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

Named “vi-obd2-firmware-PLATFORM-version.hex” in releases.

This firmware is ready to received OBD2 requests over USB or Bluetooth (see the message format) but does not have any pre-defined recurring requests. You probably want this build if you are sending your own, custom diagnostic requests.

Translated OBD-II data from CAN

Named “vi-translated-obd2-firmware-PLATFORM-version.hex” in releases.

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

Named “vi-emulator-firmware-PLATFORM-version.hex” in releases.

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. 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. Also, the VI will NOT go to sleep with this firmware so don’t leave it plugged into your vehicle, unless you want to drain the battery.

Expanded Proprietary Data

Available via download from, these provide vehicle specific CAN 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.