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 Tools

The cube:evk includes a comprehensive suite of tools for testing, validating, and analyzing its dual-mode V2X radios. These utilities support both DSRC / ITS-G5 and C-V2X / LTE-V2X operation and are designed to simplify radio evaluation and performance testing.

Available tools:

  • cube-radio-transmit — send a single data frame
  • cube-radio-receive — listen for and display received frames
  • cube-radio-pcap — capture frames into a PCAP file for Wireshark analysis
  • cube-radio-duty-cycle — continuously transmit frames to test channel load and stability

1. Transmitting a Test Message

The cube-radio-transmit tool sends a single data packet over the selected radio interface. It takes one argument — the payload to transmit — plus optional parameters for power and interface selection.

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

Example output:

[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

2. Receiving a Test Message

Use cube-radio-receive on another cube:evk to verify reception. It connects to the selected radio interface and prints all received frames in hex and ASCII.

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 messages are received:

  • Ensure both devices operate in the same mode (DSRC or C-V2X).
  • Verify matching frequency and power settings.
  • Confirm antennas are properly connected.

3. Capturing Radio Traffic (PCAP)

The cube-radio-pcap tool records raw V2X frames into a PCAP file for analysis with tools such as Wireshark. This is especially useful for debugging, protocol inspection, or performance testing.

Command Overview

cube:~$ cube-radio-pcap --help
Usage: cube-radio-pcap [--help] [--version] --output FILE [--radio RADIO] [--log-level LVL]
Optional arguments:
-h, --help shows help message and exits
-v, --version prints version information and exits
-o, --output FILE PCAP output file [required]
--radio name of the radio to capture from [nargs=0..1] [default: "dsrc"]
--log-level logging verbosity [nargs=0..1] [default: "info"]```

Example Capture

cube:~$ cube-radio-pcap --radio dsrc -o cam-log.pcap

Example output:

[INFO] main using requested radio dsrc
[INFO] main connected to ITS-G5 radio with CBR reports
[INFO] capture_its_g5 writing received ITS-G5 frame with 6 bytes payload to pcap file
[INFO] capture_its_g5 writing received ITS-G5 frame with 6 bytes payload to pcap file
[INFO]^C main received SIGINT, quitting

Press Ctrl + C to stop recording. The resulting file (e.g., cam-log.pcap) can be opened in Wireshark for detailed inspection.


4. Continuous Transmission (Duty Cycle Test)

The cube-radio-duty-cycle tool is used to repeatedly transmit frames at defined intervals. This helps measure channel utilization, transmit power behavior, and radio stability under continuous load.

Command Overview

cube:~$ cube-radio-duty-cycle --help
sage: cube-radio-duty-cycle [--help] [--version] [--radio VAR] [--log-level VAR] [--interval VAR] [--power VAR] [--payload-length VAR]
Optional arguments:
-h, --help shows help message and exits
-v, --version prints version information and exits
--radio name of the radio to connect to [nargs=0..1] [default: "dsrc"]
--log-level logging verbosity [nargs=0..1] [default: "warn"]
--interval transmission interval in seconds [nargs=0..1] [default: 0.5]
--power transmission power in dBm [nargs=0..1] [default: 20]
--payload-length payload length in bytes [nargs=0..1] [default: 200]

Example: Duty Cycle Transmission

cube:~$ cube-radio-duty-cycle --radio dsrc --interval 0.2 --payload-length 433

Output:

TX duty cycle settings:
- payload: 433 bytes
- power: 20.0 dBm
- interval: 0.2 seconds
[cub ]^C

The tool continues transmitting frames at the defined interval until interrupted (Ctrl + C). This is useful for long-term radio testing, link robustness evaluation, or channel busy ratio measurements.


5. Typical Test Workflow

DeviceCommandPurpose
EVK #1cube-radio-transmit "Hello"Send single payload
EVK #2cube-radio-receiveDisplay incoming payload
EVK #3cube-radio-pcap -o test.pcapCapture all traffic
EVK #1cube-radio-duty-cycle --interval 0.2Continuous load test

Radio Tools

The radio tools suite enables full testing coverage — from single-frame transmission to continuous load and PCAP logging. Combine tools to validate reliability, throughput, and interoperability across DSRC and C-V2X.

Previous
Build Tools
Next
APIs