Milestone 5 Update

Automotive Protocols on Litex

Universal Measurement and Calibration Protocol

The CAN Calibration Protocol (CCP) is an interface that enables read/write access to an Electronic Control Unit (ECU). It enables calibration, data measurement, flashing and more.

The Universal Measurement and Calibration Protocol (XCP) is the successor to CCP with various improvements including support for more transport layers such as Ethernet, FlexRay and SxL.

XCP provides direct access to the inner workings of an ECU. This lets you request high-frequency parameter data that may otherwise only be known to the ECU. Further, it also lets you modify the ECU algorithms and variables, making it easy to test and calibrate ECUs.

The CCP/XCP protocol is based on a single-master/multi-slave concept. An external measurement & calibration tool (e.g. a PC/device/data logger) serves as the master and is able to read/write from one or more ECUs aka slaves.

Opensource implementation of XCP is available at :

To enable basic XCP on Litex, a small demo implementation is mirrored at :

As part of this milestone this is now integrated in buildroot :

The below image shows the demo working with creating a dummy XCP Server which talks to XCP slave on Litex over localhost via UDP to measure variables at fixed memory address.


Show Comments