Its-g5: Difference between revisions

From RevSpace

No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Project
{{Project
   |Name=ITS-G5
   |Name=ITS-G5
   |Picture=yunopicture.png
   |Picture=its-g5.png
   |Omschrijving=Investigating ITS-G5 signals
   |Omschrijving=Investigating ITS-G5 signals
   |Status=In progress
   |Status=In progress
Line 17: Line 17:
* Crowd-sourced live map of messages received: https://opentrafficmap.org/
* Crowd-sourced live map of messages received: https://opentrafficmap.org/
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen


In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.
Line 26: Line 27:
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html


It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don't know yet.
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don't know yet.


Connect your USB-C cable to the "UART" port.
Connect your USB-C cable to the "UART" port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.


== Software ==
== Software ==
See https://github.com/bertrik/its-g5-receiver
See https://github.com/bertrik/its-g5-receiver


=== Compiling ===
=== Compiling the firmware ===
Needs python.
Needs python.


Line 40: Line 42:
* If you didn't have a python venv, create it:
* If you didn't have a python venv, create it:
   python -m venv .venv
   python -m venv .venv
* Activate the venv:
  bash source .venv/bin/activate
* Install platformio into the venv:
* Install platformio into the venv:
   python pip install platformio
   python pip install platformio
* Finally activate the venv:
  bash source .venv/bin/activate


Compile and upload:
Compile and upload:
Line 56: Line 58:
Then viewed in wireshark:
Then viewed in wireshark:
   wireshark message.pcap
   wireshark message.pcap
=== opentraffic map interface ===
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.

Latest revision as of 10:34, 21 June 2026

Project ITS-G5
Investigating ITS-G5 signals
Status In progress
Contact bertrik
Last Update 2026-06-21

Introduction

This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.

An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.

Stuff to investigate:

In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP. You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it. Interesting project: https://github.com/idkmanLool9/Verkeerslicht

Hardware

I got this board, and it worked for me:

It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don't know yet.

Connect your USB-C cable to the "UART" port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.

Software

See https://github.com/bertrik/its-g5-receiver

Compiling the firmware

Needs python.

Preparation:

  • If you didn't have a python venv, create it:
 python -m venv .venv
  • Activate the venv:
 bash source .venv/bin/activate
  • Install platformio into the venv:
 python pip install platformio

Compile and upload:

 pio run -t upload

Watch packets come in:

 pio device monitor

Packets are logged as a 'hexdump'.

The can be converted for wireshark, for example:

 text2pcap -l 105 message.txt message.pcap

Then viewed in wireshark:

 wireshark message.pcap

opentraffic map interface

See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.