en_alt:receivers
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en_alt:receivers [2026/08/10 14:23] – Image heights, wording and section cleanup (review feedback) hajo | en_alt:receivers [2026/10/12 15:04] (current) – LTE modem: name the module variant, unify the breakout name 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?413|The receiver as shipped}} | + | {{:box.jpg?0x420|The receiver as shipped}} |
| ==== Power ==== | ==== Power ==== | ||
| 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 ^ | ||
| | [[en_alt: | | [[en_alt: | ||
| | [[en_alt: | | [[en_alt: | ||
| + | | [[en_alt: | ||
| | [[en_alt: | | [[en_alt: | ||
| | [[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 207: | ||
| 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 221: | ||
| 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 231: | ||
| ^ 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:// | ||
| + | |||
| + | ==== LTE modem ==== | ||
| + | |||
| + | For a spot with no Ethernet and no Wi-Fi at all: a mast in a field, a rooftop without a cable run, a vehicle. Instead of bridging to somebody else's network, the receiver brings its own — a **SIMCom A7670E** cellular modem on the AND BKP-A7670E breakout, connected over UART and speaking PPP. | ||
| + | |||
| + | **Watch out when buying:** it comes in regional and feature variants that differ in the LTE bands and in whether GNSS is fitted — this one is an **A7670E-MASA**, | ||
| + | |||
| + | Wiring is three jumper wires and no soldering if the breakout' | ||
| + | |||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | {{: | ||
| + | //Three jumper wires link the modem breakout to the ESP32-C5; the orange cable is the modem' | ||
| + | |||
| + | **Power the modem separately.** This is the one thing that will bite you. Leave the breakout' | ||
| + | |||
| + | Configuration is two console commands, and both take effect on the next boot: | ||
| + | |||
| + | config set lteapn internet | ||
| + | config set ltesimpin 1234 | ||
| + | |||
| + | The APN can often be left alone — where the operator supplies one, the modem picks it up by itself. The SIM PIN is only needed if the card has one. Note that in this variant the console is on **USB-Serial/ | ||
| + | |||
| + | The modem also has **GNSS**, switched off by default because the antenna is optional. Enabled through '' | ||
| + | |||
| + | **Keep the LTE and GNSS antennas well away from the ESP32' | ||
| + | |||
| + | //Not in a release yet: this is [[https:// | ||
| + | |||
| + | ^ Hardware | an ESP32-C5 board, a SIMCom A7670E-MASA on the AND BKP-A7670E breakout, a SIM card, and a separate 5 V / 2 A supply for the modem | | ||
| + | ^ Firmware | official firmware with '' | ||
| + | ^ Uplink | LTE, PPP over UART | | ||
| + | ^ Reports to OTM | yes, the same as the official board | | ||
| + | ^ Advantages | completely independent of local infrastructure — power and a SIM are enough; no second chip and no router; optional GNSS gives the node its own position | | ||
| + | ^ Drawbacks | needs a SIM and a data plan; the second power supply is mandatory, not optional; the modem can desensitise the C-ITS receiver if the antennas sit close together; not merged, so you build it yourself | | ||
| + | ^ Repository | [[https:// | ||
| ==== Mobile 5G setup ==== | ==== Mobile 5G setup ==== | ||
| Line 234: | Line 278: | ||
| 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 291: | ||
| 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 297: | ||
| 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 304: | ||
| ^ 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 313: | ||
| 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 323: | ||
| ^ 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 353: | ||
| 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 361: | ||
| ^ 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.1786364588.txt.gz · Last modified: by hajo
