Traffic lights are controlled by radio links of buses and trams. This page will focus on the VDV420 standard (also R09) which is widely deployed in Germany.
This data can be received by a Software Defined Radio and an antenna. The signal is usually in or near the 2m band. However, commercial receivers also support different frequencies. See here for more information.
Waterfall of the Transmission
Waterfall of the Transmission (Zommed In)
The modulation is a special AFSK modulation with one half-wave 1200Hz as a logical 1 and a full-wave 2400Hz as a logical 0. The modulation does not have phase jumps.
The demodulation is done in gnuradio-decoder which passes the logical 1s and 0s to telegram-decoder, in turn parsing the R09 telegrams and sending them off to a server.
An actual receiver can look something like this (minimal hardware setup):
We recommend using any NixOS compatible x86_64 thin client. The software also supports aarch64, but getting everything to work on those devices is always tricky at best.
We tested the following devices and are running them in productions:
Dell Wyse 3040
insanely cheap, standard device we use
Raspberry Pi 3B+
resolvable problems with bootloader on nixos
Raspberry Pi 4
very nice with POE hat
We discourage from using any of the following devices:
Raspberry Pi 0,1,2: are old 32bit architectures for which cross compiling gets increasingly difficult.
Everything that doesn't have at least one USB-3 Port + Another USB Port for supplying power to the hardware filter.