Its-g5: Difference between revisions
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{Project | {{Project | ||
|Name=ITS-G5 | |Name=ITS-G5 | ||
|Picture= | |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. | ||
| Line 34: | Line 36: | ||
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 | ||
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:
- Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map
- 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
- 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. 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:
- 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 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.
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.
