This page tracks the high level capabilities of the OpenXC platform. Sub-components like the Android library or vehicle interface firmware may have incremental updates between major platform updates which are tracked in their respective changelogs.

The versions listed in each release section should be considered the compatible versions. It is recommended to update to all new versions as a group.

November 2019

  • Vehicle Interface Firmware - v7.3.0
  • Python Library - v0.15.0
  • Android Library and Enabler - v7.0.6
  • iOS Framework and Demo App - v5.0.0
  • OpenXC Message Format Specification - v0.7.0

This update includes several new major features, fixes, and security updates requiring simultaneous updates to the firmware, client libraries, and the vagrant virtual machine. Some of the highlights include:

  • VI-firmware: removes the fine_odometer_since_restart from the emulator, adds sending evented messages from emulator, adds emulator firmware diagnostics support, and adds CAN2 and UART debug access to the CrossChasm C5.
  • Python: security fixes and adds “platform” command support.
  • Android: adds sending control commands on demand, integration, BLE VI support and gradle.
  • iOS: initial library release for iOS, adds cocoapods library, adds AppCenter crash analytics, and support for iOS 12.
  • OpenXC message format: adds increasing the diagnostic response payload size, and adds a command to get the device platform.

May 2016

  • Vehicle Interface Firmware - v7.2.0
  • Python Library - v0.13.0
  • Android Library and Enabler - v6.1.6
  • OpenXC Message Format Specification - v0.6.0

This update supports new VIs from CrossChasm that are available for use. The first is the CrossChasm C5 Cellular device which provides GSM connectivity. The second is a CrossChasm C5 Bluetooth Low Energy (BLE) device to allow access from an iOS device. Note the iOS framework is currently under development and should be released by the end of the year. All C5 devices now support timstamping the message on the VI. The BT & Cellular devices support local storage to an SD card.

The openxc-message-format and python updates include new commands to support these devices.

The openxc-android library remains functionally the same, but has been updated to use Android Studio instead of Eclipse.

November 2014

  • Vehicle Interface Firmware - v7.0.1
  • Python Library - v0.12.0
  • Android Library and Enabler - v6.0.6
  • OpenXC Message Format Specification - v0.4.0

This platform update brings a major refactoring of the message format, so a simultaneous update of the firmware and client libraries is required. The vi-firmware project now has a functional test suite to help guard against regressions in future releases, and it supports a number of new run-time configuration options.

For example, the VI can be configured at runtime to:

  • Enable or disable the CAN message acceptance filters.
  • Enable or disable passing low-level CAN messages from the car to the connected client (i.e. “passthrough mode”).
  • Change the payload format between JSON and Protocol Buffers
  • Enable or disable the built-in set of recurring OBD-II PID requests

The internals of the Android library are significantly refactored to enable greater flexibility to deal with different types of messages from the vehicle. The public API for the VehicleManager, using in OpenXC Android apps, is backwards compatible so no significant changes are required for developers (potentially only no longer needing to catch a certain exception thrown by the library, as it is now handled internally). For example, this commit in the openxc-starter project updates it to be compatible with the v6.0 Android library.

The OpenXC Enabler Android app is now available through the Google Play store, and also has an enhanced user interface to expose many of the new features of the vehicle interface and library. You can see a preview of the new screens in this thread in the Google Group.

Known Issues

This section describes known issues related to the new updates for the platform. See the issues on for each project for other know issues.

  • The VI firmware does not yet support receive commands serialized using the protocol buffer format. It only supports outputting data using this format (see #313).
  • The run-time configuration options for the VI are not persistent - if the VI is power cycled, it will reset to the compile-time defaults in your firmware build (see #316).
  • The modem_configuration command from Python is not working currently. See #80 and #350.