en_alt:receivers
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| en_alt:receivers [2026/08/10 10:36] – Draft of the restructured page (community-approved structure) hajo | en_alt:receivers [2026/08/15 00:06] (current) – Renamed to The OpenTrafficMap server; Berlin coverage; imprint moved hajo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Receivers ====== | ====== Receivers ====== | ||
| - | What you need to actually hear C-ITS. There is one purpose-built receiver that most people use, and a growing number of independent projects that solve the same problem with different hardware. All of them end up in the same place: raw 802.11p frames on the [[en_alt:reporting|central MQTT broker]]. | + | What you need to actually hear C-ITS. There is one purpose-built receiver that most people use, and a growing number of independent projects that solve the same problem with different hardware. All of them end up in the same place: raw 802.11p frames on the [[en_alt:server|central MQTT broker]]. |
| Whatever you build, [[en_alt: | Whatever you build, [[en_alt: | ||
| Line 49: | Line 49: | ||
| ^ Antenna | Two build variants: the standard one uses the antenna printed on the module, the other has a u.FL connector for an external antenna — see [[en_alt: | ^ Antenna | Two build variants: the standard one uses the antenna printed on the module, the other has a u.FL connector for an external antenna — see [[en_alt: | ||
| - | {{: | + | {{: |
| - | {{: | + | {{: |
| The assembled receiver in its enclosure, front and back — the QR code on the back is the link to your [[en_alt: | The assembled receiver in its enclosure, front and back — the QR code on the back is the link to your [[en_alt: | ||
| - | {{: | + | {{: |
| - | {{: | + | {{: |
| Schematics, KiCad sources and the enclosure live in [[https:// | Schematics, KiCad sources and the enclosure live in [[https:// | ||
| Line 72: | Line 72: | ||
| * A rubber plug for the LAN cable | * A rubber plug for the LAN cable | ||
| - | {{:box.jpg?600|The receiver as shipped}} | + | {{:box.jpg?0x420|The receiver as shipped}} |
| ==== Power ==== | ==== Power ==== | ||
| Line 82: | Line 82: | ||
| For PoE, a jumper selects the mode: | For PoE, a jumper selects the mode: | ||
| - | {{: | + | {{: |
| ^ Power source ^ Jumper position ^ Notes ^ | ^ Power source ^ Jumper position ^ Notes ^ | ||
| Line 91: | Line 91: | ||
| **Do not supply USB and PoE at the same time.** | **Do not supply USB and PoE at the same time.** | ||
| - | {{: | + | {{: |
| - | {{: | + | {{: |
| If the receiver goes outdoors and the LAN cable runs back to a switch indoors, read [[en_alt: | If the receiver goes outdoors and the LAN cable runs back to a switch indoors, read [[en_alt: | ||
| Line 149: | Line 149: | ||
| Revision 2 of the receiver has been through an EMC test, as a prerequisite for CE marking. The test was carried out at the EMC laboratory of FH Villach. | Revision 2 of the receiver has been through an EMC test, as a prerequisite for CE marking. The test was carried out at the EMC laboratory of FH Villach. | ||
| - | {{: | + | {{: |
| - | {{: | + | {{: |
| **Radiated emissions, class B, 30 MHz to 1 GHz: passed.** | **Radiated emissions, class B, 30 MHz to 1 GHz: passed.** | ||
| - | {{: | + | {{: |
| We also programmed the receiver to **transmit** a C-ITS packet ten times per second on 5.9 GHz, to see how the module behaves as a sender: | We also programmed the receiver to **transmit** a C-ITS packet ten times per second on 5.9 GHz, to see how the module behaves as a sender: | ||
| - | {{: | + | {{: |
| - | {{: | + | {{: |
| The results look good, and the ESP32-C5 is very likely suitable for transmitting C-ITS packets. Note that the shipped firmware is receive-only: | The results look good, and the ESP32-C5 is very likely suitable for transmitting C-ITS packets. Note that the shipped firmware is receive-only: | ||
| Line 167: | Line 167: | ||
| - [[en_alt: | - [[en_alt: | ||
| - [[en_alt: | - [[en_alt: | ||
| - | - [[en_alt:reporting|Reporting to OTM]] — how the data actually leaves the node, and how to read along | + | - [[en_alt:server|The OpenTrafficMap server]] — how the data actually leaves the node, and how to read along |
| ===== Other receiver projects ===== | ===== Other receiver projects ===== | ||
| - | Several people have built their own receivers, and their work is worth knowing about even if you own the official board — one of these may fit your situation better. Each entry below is a self-contained project with its own hardware, its own firmware and its own way of getting online. | + | Several people have built their own receivers. Each entry below is a self-contained project with its own hardware, its own firmware and its own way of getting online. |
| - | They differ mainly in **what sits between the ESP32 and the internet**, and in whether they report to OpenTrafficMap at all. Some are designed to be carried around, one runs on a discarded router, and one is really | + | They differ mainly in **what sits between the ESP32 and the internet**, and in whether they report to OpenTrafficMap at all. Some are designed to be carried around, one runs on a discarded router, and one is a standalone tool with its own map. |
| ^ Project ^ Base hardware ^ Uplink ^ Reports to OTM ^ | ^ Project ^ Base hardware ^ Uplink ^ Reports to OTM ^ | ||
| Line 181: | Line 181: | ||
| | [[en_alt: | | [[en_alt: | ||
| | [[en_alt: | | [[en_alt: | ||
| - | | [[en_alt: | ||
| | [[en_alt: | | [[en_alt: | ||
| | [[en_alt: | | [[en_alt: | ||
| + | | [[en_alt: | ||
| ==== DIY Ethernet ==== | ==== DIY Ethernet ==== | ||
| - | The straightforward | + | The self-build |
| The firmware ships prepared configurations for the two common Ethernet chips, so this is a matter of copying the right '' | The firmware ships prepared configurations for the two common Ethernet chips, so this is a matter of copying the right '' | ||
| Line 206: | Line 206: | ||
| The answer to "I have no Ethernet where I want to mount this". The ESP32-C5 cannot do Wi-Fi while receiving C-ITS, so this setup adds a **second, small ESP32** that does nothing but Wi-Fi, and links the two over SPI. The second chip acts as a gateway: it joins your wireless network and forwards IP traffic to the receiver over the SPI link. | The answer to "I have no Ethernet where I want to mount this". The ESP32-C5 cannot do Wi-Fi while receiving C-ITS, so this setup adds a **second, small ESP32** that does nothing but Wi-Fi, and links the two over SPI. The second chip acts as a gateway: it joins your wireless network and forwards IP traffic to the receiver over the SPI link. | ||
| + | |||
| + | {{: | ||
| + | //What it looks like in practice: an ESP32-C5 development board with the ESP32-C3 gateway piggybacked on top, wired by hand.// | ||
| The mechanism is Espressif' | The mechanism is Espressif' | ||
| Line 217: | Line 220: | ||
| Practical warning: several people have hit SPI checksum errors that turned out to be wiring problems, and some GPIOs did not work as the datasheets suggested. If the link does not come up, try different pins before you suspect the software. | Practical warning: several people have hit SPI checksum errors that turned out to be wiring problems, and some GPIOs did not work as the datasheets suggested. If the link does not come up, try different pins before you suspect the software. | ||
| + | |||
| + | The temporaerhaus hackerspace in Ulm [[https:// | ||
| **TODO:** [[https:// | **TODO:** [[https:// | ||
| Line 225: | Line 230: | ||
| ^ Reports to OTM | yes, the same as the official board | | ^ Reports to OTM | yes, the same as the official board | | ||
| ^ Advantages | no cable to the mounting point; the '' | ^ Advantages | no cable to the mounting point; the '' | ||
| - | ^ Drawbacks | two boards and five SPI wires to get right; wiring problems are common; neither project documents a licence | + | ^ Drawbacks | two boards and five SPI wires to get right | |
| ^ Repositories | [[https:// | ^ Repositories | [[https:// | ||
| Line 234: | Line 239: | ||
| Useful for surveying a location before mounting anything permanently, | Useful for surveying a location before mounting anything permanently, | ||
| - | {{: | + | {{: |
| ^ Hardware | FireBeetle 2 ESP32-C5, W5500, power bank, ZTE MU5001 or any 5G router with an Ethernet port | | ^ Hardware | FireBeetle 2 ESP32-C5, W5500, power bank, ZTE MU5001 or any 5G router with an Ethernet port | | ||
| Line 247: | Line 252: | ||
| An alternative firmware for people who already run **Home Assistant**. It is an ESPHome external component that turns an ESP32-C5 into an ITS-G5 receiver, so the received frames become an ordinary ESPHome event you can do anything with. | An alternative firmware for people who already run **Home Assistant**. It is an ESPHome external component that turns an ESP32-C5 into an ITS-G5 receiver, so the received frames become an ordinary ESPHome event you can do anything with. | ||
| - | The component gives you an '' | + | The component gives you an '' |
| A complete example configuration, | A complete example configuration, | ||
| Line 253: | Line 258: | ||
| Because the component takes over the radio exclusively, | Because the component takes over the radio exclusively, | ||
| - | One caveat | + | One caveat: the author describes the patched Ethernet component needed for the official board' |
| ^ Hardware | the official board, or any ESP32-C5 with an Ethernet chip | | ^ Hardware | the official board, or any ESP32-C5 with an Ethernet chip | | ||
| Line 260: | Line 265: | ||
| ^ Reports to OTM | yes, with the supplied example configuration | | ^ Reports to OTM | yes, with the supplied example configuration | | ||
| ^ Advantages | frames become Home Assistant data; free choice of uplink and destination; | ^ Advantages | frames become Home Assistant data; free choice of uplink and destination; | ||
| - | ^ Drawbacks | no Wi-Fi; the KSZ8851SNL path is experimental; no licence stated in the repository | + | ^ Drawbacks | no Wi-Fi; the KSZ8851SNL path is experimental | |
| ^ Repository | [[https:// | ^ Repository | [[https:// | ||
| - | Note that this is a different thing from **monitoring** a node in Home Assistant, where the node runs on its own and Home Assistant simply reads its telemetry. That is described under [[en_alt:reporting# | + | Note that this is a different thing from **monitoring** a node in Home Assistant, where the node runs on its own and Home Assistant simply reads its telemetry. That is described under [[en_alt:server# |
| ==== USB to an Android phone ==== | ==== USB to an Android phone ==== | ||
| Line 269: | Line 274: | ||
| A portable receiver: a Seeed Studio XIAO ESP32-C5 plugged into an Android phone with a USB-C data cable. The phone supplies power, receives the frames over USB serial, and forwards them to the broker over its own mobile data. There is a companion app that does the work, and it can even flash the firmware onto the board for you, so no PC is needed at all. | A portable receiver: a Seeed Studio XIAO ESP32-C5 plugged into an Android phone with a USB-C data cable. The phone supplies power, receives the frames over USB serial, and forwards them to the broker over its own mobile data. There is a companion app that does the work, and it can even flash the firmware onto the board for you, so no PC is needed at all. | ||
| - | Beyond | + | Beyond forwarding, the app records PCAP files locally and can display received data. |
| It is also the only one that can **transmit**: | It is also the only one that can **transmit**: | ||
| Line 279: | Line 284: | ||
| ^ Uplink | USB to the phone, then the phone' | ^ Uplink | USB to the phone, then the phone' | ||
| ^ Reports to OTM | yes — the OTM broker is the app's default | | ^ Reports to OTM | yes — the OTM broker is the app's default | | ||
| - | ^ Advantages | genuinely | + | ^ Advantages | mobile; power and network from the phone; flashing without a PC; local PCAP recording | |
| - | ^ Drawbacks | ties up a phone and drains its battery; | + | ^ Drawbacks | ties up a phone and drains its battery; |
| ^ Licence | GPL-3.0 | | ^ Licence | GPL-3.0 | | ||
| ^ Repository | [[https:// | ^ Repository | [[https:// | ||
| - | |||
| - | ==== USB to a computer ==== | ||
| - | |||
| - | A deliberately minimal firmware: it receives 802.11p frames and writes them to USB serial with SLIP framing, and does nothing else. No Ethernet, no console, no configuration at runtime — the channel is a compile-time constant. The entire firmware is a single source file of about ninety lines, built with PlatformIO and the Arduino framework rather than ESP-IDF. | ||
| - | |||
| - | A small Python script is included that either prints the frames as hex or writes a valid PCAP file, which you can open directly in Wireshark. | ||
| - | |||
| - | **This project does not report to OpenTrafficMap.** Its README states plainly that there is currently no good way to publish from it to OTM: the obvious bridge only speaks MQTT v5, which does not work with our broker. Treat it as an analysis and hacking tool, not as a way to contribute data to the map. | ||
| - | |||
| - | ^ Hardware | ESP32-C5-DevKitC-1 or Seeed XIAO ESP32-C5 | | ||
| - | ^ Firmware | its own, PlatformIO / Arduino | | ||
| - | ^ Uplink | USB serial to a computer | | ||
| - | ^ Reports to OTM | **no** | | ||
| - | ^ Advantages | very small and readable code; straight to PCAP and Wireshark; no ESP-IDF toolchain needed | | ||
| - | ^ Drawbacks | no OTM upload, no Ethernet, no runtime configuration; | ||
| - | ^ Repository | [[https:// | ||
| ==== FritzBox 3390 ==== | ==== FritzBox 3390 ==== | ||
| - | The odd one out, and rather elegant: no ESP32 at all. An AVM FRITZ!Box 3390 has an Atheros AR9580 Wi-Fi chip, and with patches to the '' | + | No ESP32 at all. An AVM FRITZ!Box 3390 has an Atheros AR9580 Wi-Fi chip, and with patches to the '' |
| The image is zero-touch: after flashing, it configures its own WAN port and starts publishing captured frames to the OTM broker about a minute after boot, with no manual configuration. A small daemon captures frames with libpcap and publishes each one unmodified over MQTT — the same wire format the ESP32 firmware produces. It also keeps a rotating PCAP capture in RAM for local analysis, and repurposes a front-panel LED to blink on every received frame. | The image is zero-touch: after flashing, it configures its own WAN port and starts publishing captured frames to the OTM broker about a minute after boot, with no manual configuration. A small daemon captures frames with libpcap and publishes each one unmodified over MQTT — the same wire format the ESP32 firmware produces. It also keeps a rotating PCAP capture in RAM for local analysis, and repurposes a front-panel LED to blink on every received frame. | ||
| Line 325: | Line 314: | ||
| A complete standalone receiver with its own live map. The firmware is a fork of ours, adapted to the Waveshare ESP32-C5-WIFI6-KIT devboard; the board streams frames to an Android app over USB or Bluetooth LE, and the app decodes them **on the phone** and draws vehicles, traffic lights and warnings on an OpenStreetMap background. Nothing has to leave the device. | A complete standalone receiver with its own live map. The firmware is a fork of ours, adapted to the Waveshare ESP32-C5-WIFI6-KIT devboard; the board streams frames to an Android app over USB or Bluetooth LE, and the app decodes them **on the phone** and draws vehicles, traffic lights and warnings on an OpenStreetMap background. Nothing has to leave the device. | ||
| - | The app is the most elaborate piece of user interface in this list: offline map caching, a frame log grouped by station, a marker per vehicle with heading and speed, an indicator for whether a message was signed, PCAP recording, and a " | + | The app covers a lot of ground: offline map caching, a frame log grouped by station, a marker per vehicle with heading and speed, an indicator for whether a message was signed, PCAP recording, and a " |
| - | **Upload to OpenTrafficMap is optional and switched off by default.** If you enable it, the OTM broker is preconfigured. Whether it is listed here or treated as a separate project is a matter of taste — it is listed here because if you are asking "what can I receive with", you want to see it. | + | **Upload to OpenTrafficMap is optional and switched off by default.** If you enable it, the OTM broker is preconfigured. |
| ^ Hardware | Waveshare ESP32-C5-WIFI6-KIT, | ^ Hardware | Waveshare ESP32-C5-WIFI6-KIT, | ||
| Line 333: | Line 322: | ||
| ^ Uplink | USB or Bluetooth LE to a phone; USB to a PC | | ^ Uplink | USB or Bluetooth LE to a phone; USB to a PC | | ||
| ^ Reports to OTM | optional, **disabled by default** | | ^ Reports to OTM | optional, **disabled by default** | | ||
| - | ^ Advantages | immediate visible result with no server involved; works without a cable over BLE; beginner-friendly | + | ^ Advantages | immediate visible result with no server involved; works without a cable over BLE; Windows |
| ^ Drawbacks | tied to one specific devboard; needs a phone or PC alongside; no documented concept for unattended long-term operation | | ^ Drawbacks | tied to one specific devboard; needs a phone or PC alongside; no documented concept for unattended long-term operation | | ||
| ^ Licence | MIT | | ^ Licence | MIT | | ||
| ^ Repository | [[https:// | ^ Repository | [[https:// | ||
| + | ==== USB to a computer ==== | ||
| + | |||
| + | A deliberately minimal firmware: it receives 802.11p frames and writes them to USB serial with SLIP framing, and does nothing else. No Ethernet, no console, no configuration at runtime — the channel is a compile-time constant. The entire firmware is a single source file of about ninety lines, built with PlatformIO and the Arduino framework rather than ESP-IDF. | ||
| + | |||
| + | A small Python script is included that either prints the frames as hex or writes a valid PCAP file, which you can open directly in Wireshark. | ||
| + | |||
| + | **This project does not report to OpenTrafficMap.** Its README states plainly that there is currently no good way to publish from it to OTM: the obvious bridge only speaks MQTT v5, which does not work with our broker. Treat it as an analysis and hacking tool, not as a way to contribute data to the map. | ||
| + | |||
| + | ^ Hardware | ESP32-C5-DevKitC-1 or Seeed XIAO ESP32-C5 | | ||
| + | ^ Firmware | its own, PlatformIO / Arduino | | ||
| + | ^ Uplink | USB serial to a computer | | ||
| + | ^ Reports to OTM | **no** | | ||
| + | ^ Advantages | small, single-file code base; straight to PCAP and Wireshark; no ESP-IDF toolchain needed | | ||
| + | ^ Drawbacks | no OTM upload, no Ethernet, no runtime configuration; | ||
| + | ^ Repository | [[https:// | ||
en_alt/receivers.1786350975.txt.gz · Last modified: by hajo
