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.

May 2020

This update includes vi-firmware major refactoring that frees up memory to allow for more functionality, such as Multi-frame CAN read. There are also some fixes and updates to a few tools available for OpenXC. OpenXC now supports iOS 13 and Android 10. Some of the specific updates include:

  • vi-firmware
    • Fix: Out of memory error, drastically reduced memory cost per message.
    • Fix: Cleaned up multiple imports of the isotp and uds-c.
    • Feature: Added code to remove signals.cpp when compiling emulator firmware.
    • Feature: Added checks to vm for old python and vm versions.
    • Feature: Added the ability for the user to set the pin on the Bluetooth module.
  • openxc-python
    • Enhancement: new browser-based flask update for openxc-dashboard.
    • Feature: Add dashboard on message change highlighting.
    • Feature: Add more verbosity to libusb errors.
    • Fix: Fix more python 3 migration byte bugs.
  • openxc-android
    • New Feature: Populating devices with name openxc-vi only to the Bluetooth device list.
    • Improvement: dweet endpoint switched from http to https.
    • Improvement: Tracefile playing disable while recording is on and vice versa.
    • Improvement: Updated the protobuf version.
    • Improvement: Push Notifications to Enabler app.
    • Improvement: Enabler able to handle more than 60 signals.
    • Improvement: More complexed diagnostic responses for Emulator.
    • Enhancement: Support Android 10.
  • openxc-ios-library
    • Enhancement: iOS 13 support.
    • Enhancement: Updated to Protobuf 3.
    • Feature: Upload trace data to URL.
    • Fix: Set defaults for missing signal values in dashboard.

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.