Skip to content

Releases: openxc/vi-firmware

VI Firmware 8.2.1

Choose a tag to compare
  • FIX: Fix for bootstrap failure

VI Firmware 8.2.0

Choose a tag to compare
  • Removed: messagepack format removed
  • Feature: get_vin command added and is accessible from openxc-control python and from Android and iOS clients
  • Update: Improvements to diagnostic response communication
  • Update: sonarqube support updates
  • Build: build moved from travis to github actions for Travis decommision
  • Fix: 7DF Broadcast messaging

VI Firmware 8.1.0

Choose a tag to compare
  • BREAKING: VI-Firmware 8.1.0 is not backwards compatible due to stitched diagnostic responses and must be used with OpenXC-Python 2.1.0 or greater.
  • Fix: Crash with C5 BLE
  • Fix: Modem Configuration fixed set proper baud rate for C5 Cellular
  • Fix: Updates to ISOTP and UDS libraries to support diagnostic response stitch release
  • Feature: Large Diagnostic Responses are now passed up as smaller messages and stitched by clients
  • Feature: Vin messages added to Emulator mode
  • Feature: Sonarqube support added

VI Firmware 8.0.0

Choose a tag to compare


  • BREAKING: This version requires updates to the virtual machine. 'vagrant up --provision' must be run after 'git pull'.
  • BREAKING: VI-Firmware 8.0.0 is not backwards compatable due to memory management updates and must be used with OpenXC-Python 2.0.0 or greater.
  • Update: Update Travis to Bionic.
  • Update: Update Vagrant to Bionic.
  • Update: Update Vagrant to dynamically allocate vcpus based on host cpu count.
  • Update: Update vm to use python3.
  • Fix: Out of memory error, drastically reduced memory cost per message.
  • Fix: Fix gitdir for submodules allowing host machine to still use git on vi-firmware.
  • Fix: Cleaned up multiple imports of the isotp and uds-c.
  • Fix: Fix bug with ignition detection.
  • 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.

C5 fixes, Environment update, PLATFORM command, Emulator updates

Choose a tag to compare
  • BREAKING: Removed fine_odometer_since_restart from emulator.
  • Feature: Added sending evented messages from emulator. Evented messages will come at a slower rate then other messages to simulate real world frequency
  • Fix: When building emualtor, obd2, or translated_obd2 firmware, those designations will now be indicated in the version number instead of the type number in signals.cpp.
  • Feature: Add support for multi-frame diagnostic responses (currently just for receiving, not sending)
  • Feature: VIs running emulator firmware will now respond to basic diagnostic requests from enabler and the command line. The response will mimic the request's bus, message ID, mode, and PID (if sent). The response will also include a randomly generated value between 0 and 100. Recurring diagnostic messages when running emulator firmware are currently not supported.
  • Update: Moved Vagrant VM to xenial64. Several updated packages.
  • Fix: Fixed a few bugs with C5 support from initial release:
    • BLE Broadcast name and MAC
    • CAN2 access
    • UART debug access
    • Updated flash instructions
  • Feature: Add PLATFORM command


Choose a tag to compare
  • BREAKING: This version requires updates to bootstrap. 'vagrant up --provision' must be run after 'git pull'.
  • Feature: Support for C5 BLE
  • Feature: Support for SD cards & RTC (real-time-clock) for C5 devices
  • Feature: TEST_MODE_ONLY compile option for hardware tests on C5
  • Feature: Support for MessagePack in addition to JSON & ProtoBuf


Choose a tag to compare
  • Fix: Update nanpb repo location to Git.
  • Fix: Keep same setuptools version.
  • Fix: Update ChipKIT digitlent URL (requires disable SSL cert checks).
  • Fix: Minor doc updates.


Choose a tag to compare
  • Feature: Added support for new CrossChasm C5 Cellular platform. Includes new http-parser submodule. Requires new v0.5+ of openxc-message-format
  • BREAKING: Update platform variable names from CROSSCHASM_C5 to CROSSCHASM_C5_BT or CROSSCHASM_C5_CELLULAR (fab c5bt or c5cell)
  • Improvement: Improved automatic release process.


Choose a tag to compare

Fix: Delay at startup to allow timers to stabilize, to avoid shutting down too soon when using OBD2_IGNITION_CHECK power mode with DEBUG=0;


Choose a tag to compare
  • BREAKING: Update to latest OpenXC message format, including updated binary
  • BREAKING: Deprecate USB control commands for version and device ID - use
    generic control command type instead, with the same payload format as if
    sent via UART/BT.
  • BREAKING: Refactor tire and door handlers for use as signal decoders.
    DEFAULT_LOGGING_OUTPUT to be able to use UART, USB, or both for logging.
  • Feature: Support setting explicit CAN frame format when writing messages
  • Feature: Support control command to enable/disable passthrough of CAN messages
    on each CAN controller.
  • Feature: Support control command to dynamically change the status of the CAN
    acceptance filter (#301).
  • Feature: Support control command to dynamically change the payload format
    (#302). Note that binary commands sent to the VI are not yet supported,
    there are still bugs.
  • Feature: Support new action field of diagnostic requests from OpenXC message
  • Feature: Add a loopback property to CAN buses to support self-testing.
  • Improvement: Return a command response with a status for all diagnostic
    request commands.
  • Improvement: Update required GNU for ARM version to -4_8-2014q2-20140609
  • Improvement: Update required MPIDE version to 20140821 with associated updates
    to Arduino-Makefile
  • Improvement: Update to latest version of chipKIT peripheral libraries.
  • Improvement: Update required nanopb version to v0.3.1 (#269).
  • Improvement: Compile test with LLVM's Clang, which provides much better
    warnings. Fix a lot of minor but important things that it found.
  • Improvement: Use new self-receive capabilities in VI for a functional test
    suite that runs on actual hardware. See fab functionaltest.
  • Fix: Don't let defined CAN messages interfere with normal operation when the
    CAN AF is disabled (#260).
  • Fix: Pass a valid Pipeline object to signal handler (#263).
  • Fix: Fix double de-reference that caused the VI to crash when receiving
    commands while using the binary payload format.
  • Fix: Match diagnostic request command name to the OpenXC message format.
  • Fix: Improve build process to make sure stray signals definitions are not
    unintentionally included (#249).
  • Fix: Work around lack of symlinks in Windows when setting up development
    environment (#259).
  • Fix: Calculate correct payload size when receiving data via USB endpoint 0 on
  • Fix: Respect configuration of raw write permissions for I/O interfaces (#274).
  • Fix: Use blocking UART writes on LPC17xx to work around a race condition