Ford Reference Vehicle interface

The Ford Reference VI is an open source hardware implementation of a VI, and the complete documentation is available at

To build for the Ford reference VI, compile with the flag PLATFORM=FORDBOARD.

Flashing a Pre-compiled Firmware

Pre-compiled binaries (built with the BOOTLOADER flag enabled, see all compiler flags) are compatible with the OpenLPC USB bootloader - follow the instructions for Flashing User Code to update the vehicle interface.


USB Bootloader

If you are running a supported bootloader, you don’t need any special programming hardware. Compile the firmware to run under the bootloader:

$ make clean
$ make -j4

The compiled firmware will be located at build/lpc17xx/vi-firmware-lpc17xx.bin. See reference VI programming instructions to find out how to re-flash the VI.

Bare Metal

Attach a JTAG adapter to your computer and the VI, then compile and flash:

$ export BOOTLOADER=0
$ make clean
$ make -j4
$ make flash

The config files in this repository assume your JTAG adapter is the Olimex ARM-USB-OCD unit. If you have a different unit, modify the src/lpc17xx/ Makefile to load your programmer’s OpenOCD configuration.


The software configuration is identical to the Blueboard. The reference VI includes an RN-41 on the PCB attached to the RX, TX, CTS and RTS pins, in addition to the UART status pin.

When a Bluetooth host pairs with the RN-42 and opens an RFCOMM connection, pin 0.18 will be pulled high and the VI will being streaming vehicle data over UART.

Debug Logging

In most cases the logging provided via USB is sufficient, but if you are doing low-level development and need the simpler UART interface, you can enable it with the UART_LOGGING Makefile flag.

Logging will be on UART0, which is exposed on the bottom of the board at J3, a 5-pin ISP connector.

LED Lights

The reference VI has 2 RGB LEDs. If the LEDs are a dim green and red, then the firmware was not flashed properly and the board is not running.


  • CAN activity detected - Blue
  • No CAN activity on either bus - Orange


  • USB connected, Bluetooth not connected - Green
  • Bluetooth connected, USB in either state - Blue
  • Neither USB or Bluetooth connected - Off


The OpenLPC USB bootloader is tested and working, and enables the LPC17xx to appear as a USB drive. See the documentation in that repository for instructions on how to flash the bootloader (a JTAG programmer is required). The reference VI from Ford is pre-programmed with this bootloader.