Knowledge Base

Everything you need to know and understand to develop V2X applications.

denm-generator.py
msg = self.generate_denm()
future = self.send_request(msg)
future.add_done_callback(self.request_completed)

Radio Settings

The cube:evk supports dual-mode V2X communication, allowing operation in both DSRC (ITS-G5) and C-V2X (LTE-V2X) modes. You can easily switch between these two radio technologies using the provided command-line utility cube-v2xconfig.


1. V2X Radio Control Tool

The tool cube-v2xconfig provides unified control over the DSRC and C-V2X services. It allows starting, stopping, enabling, or disabling automatic startup of either mode.

To view all available options:

cube:~$ cube-v2xconfig --help
usage: cube-v2xconfig [-h] [--verbose [VERBOSE]] {start,stop,enable,disable,restart,status} ...
V2X Radio Control CLI
examples:
cube-v2xconfig start dsrc # Start the DSRC service
cube-v2xconfig stop cv2x # Stop the CV2X service
cube-v2xconfig status # Show status of active service
cube-v2xconfig enable dsrc # Enable autostart for DSRC
cube-v2xconfig disable dsrc # Disable autostart for DSRC
options:
-h, --help show this help message and exit
--verbose [VERBOSE] set verbose for console output (default: info)
actions:
{start,stop,enable,disable,restart,status}
start start a V2X service for a given mode (dsrc or cv2x)
stop stop the currently running service or for a specific mode
enable enable autostart for a given mode (dsrc or cv2x)
disable disable autostart for a given mode (dsrc or cv2x)
restart restart the currently active V2X service
status show status of active or all V2X services

Common Commands

Start the DSRC service:

cube:~$ cube-v2xconfig start dsrc

Start the C-V2X service:

cube:~$ cube-v2xconfig start cv2x

Stop the active service:

cube:~$ cube-v2xconfig stop

Enable DSRC to autostart on boot:

cube:~$ cube-v2xconfig enable dsrc

Check which service is running:

cube:~$ cube-v2xconfig status

Manage your Radio Services

The cube-v2xconfig utility provides an easy command-line interface to start, stop, or manage V2X radio services. It simplifies switching between DSRC (ITS-G5) and C-V2X without manual reconfiguration.


2. ITS-G5 Configuration

For ITS-G5 operation, radio parameters follow the ETSI EN 302 663 standard (versions V1.2.1 and V1.3.1) as defined in the C2C Vehicle C-ITS Station Profile, Table 3. The DSRC radio is configured automatically when the service starts. To modify parameters such as frequency, data rate, or transmit power, the Radio API can be used.

Note: In upcoming releases, cube-v2xconfig will support direct adjustment of key ITS-G5 parameters (frequency, power, data rate).


3. C-V2X Configuration

For C-V2X (LTE-V2X) operation, radio parameters are configured according to ETSI EN 303 613, specifically Annex B. The Radio-Resource-Control (RRC) configuration file for the C-V2X firmware is stored in:

/usr/bin/ccu/cv2x/cv2x_rrc_config.txt

This file defines key parameters such as:

  • Carrier frequency
  • Bandwidth
  • Transmission power
  • Subframe resource allocations

Example: Changing the C-V2X Carrier Frequency

By default, the C-V2X carrier frequency is 5880 MHz. To change it to 5900 MHz, edit the field carrierFreq-r12 inside the configuration file.

carrierFreq-r12 = 54290

The frequency field uses E-UTRA Absolute Radio Frequency Channel Numbers (EARFCN) as defined in ETSI EN 303 613 Annex B. After changing the text configuration, the binary file used by the modem must be regenerated. Run the following command inside the /usr/bin/ccu/cv2x/ directory:

cube:~$ cd /usr/bin/ccu/cv2x/
cube:~$ ./rrc_uper_gen

This tool reads the cv2x_rrc_config.txt and automatically generates the corresponding binary file:

cv2x_rrc_config.uper

The .uper file is the compiled ASN.1 encoded version required by the radio firmware. Finally, restart the C-V2X service for the new configuration to apply:

cube:~$ cube-v2xconfig restart

GNSS Dependency

C-V2X operation requires a valid GNSS fix. Message scheduling and frame generation rely on precise timing derived from the GNSS Pulse-Per-Second (PPS) signal. If no GNSS signal is available, the C-V2X service will not transmit nor receive or may fall back into standby mode until synchronization is restored.

In Summary

C-V2X parameters are defined in /usr/bin/ccu/cv2x/cv2x_rrc_config.txt following ETSI EN 303 613 Annex B. After editing, regenerate the binary .uper configuration with rrc_uper_gen and restart the service. A valid GNSS PPS signal is required for C-V2X message timing and transmission.


4. Testing the Radio

Once the desired V2X mode (DSRC or C-V2X) is active, you can verify radio functionality using the built-in test tools cube-radio-transmit and cube-radio-receive. These utilities allow quick validation of the V2X data path by transmitting and receiving simple test messages between two cube:evk devices or within a controlled lab setup.

Transmitting a Test Message

The cube-radio-transmit tool sends a single data packet over the currently active radio interface. It takes one argument — the message payload to be transmitted.

cube:~$ cube-radio-transmit --radio dsrc --power 20 "Hello V2X World"

This example sends the text string Hello V2X World over the air. If successful, you will see a short confirmation such as:

[INFO] run attached to radio 'dsrc'
[INFO] run connected to ITS-G5 radio with CBR reports
TX settings:
- payload: 15 bytes
- content (hex): 48 65 6C 6C 6F 20 56 32 58 20 57 6F 72 6C 64
- content (ASCII): Hello V2X World
- power: 20.0 dBm
[INFO] transmit_g5 transmitted ITS-G5 frame

Receiving a Test Message

On another cube:evk device, use the cube-radio-receive tool to listen for incoming data.

cube:~$ cube-radio-receive --radio dsrc

Example output:

[INFO] run attached to radio 'dsrc'
[INFO] run connected to ITS-G5 radio with CBR reports
[INFO] receive_g5 received ITS-G5 frame
From: 2:2:3:4:5:6
To: FF:FF:FF:FF:FF:FF
Power: -64 dBm
Payload: 48 65 6C 6C 6F 20 56 32 58 20 57 6F 72 6C 64
ASCII: Hello V2X World

If no data is received within a few seconds, ensure that:

  • Both devices are configured to use the same mode (DSRC or C-V2X),
  • They operate on the same frequency and transmit power,
  • The antennas are properly connected and unobstructed.

5. Notes on Regulatory Compliance

Both DSRC (ITS-G5) and C-V2X operate in the 5.9 GHz ITS band, which is regulated differently across regions. Always ensure that:

  • Frequency settings comply with local regulations (e.g., 5.875–5.905 GHz in Europe).
  • Transmit power and duty cycle adhere to the corresponding ETSI or FCC limits.
  • Test transmissions are performed in controlled environments if outside licensed operation zones.