OpenXC CAN Translator



The CAN translation module code runs on an Arduino-compatible microcontroller connected to one or more CAN buses. It receives either all CAN messages or a filtered subset, performs any unit conversion or factoring required and outputs a generic version to a USB interface.

The firmware supports multiple microcontrollers.

Pre-built Binary

If you’ve downloaded a pre-built binary for a specific vehicle, see the Flashing a Pre-compiled Binary section for instructions on how to flash your CAN translator. Most users do not need to set up the full development described in these docs.

A Windows driver for the USB interface is available in the conf/windows-driver folder. The driver supports both 32- and 64-bit Windows. The driver is generated using the libusb-win32 project.

Output Interfaces & Format

The OpenXC message format is specified and versioned separately from any of the individual OpenXC interfaces or libraries, in the OpenXC Message Format repository.


Please see our Contributing Guide.

Mailing list

For discussions about the usage, development, and future of OpenXC, please join the OpenXC mailing list.

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to our issue tracker at


Copyright (c) 2012-2013 Ford Motor Company

Licensed under the BSD license.