R09 Receiver
Last updated
Last updated
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.
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
x86_64
insanely cheap, standard device we use
✅
Raspberry Pi 3B+
aarch64
resolvable problems with bootloader on nixos
✅
Raspberry Pi 4
aarch64
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.
Everything that isn't x86_64 or aarch64
Everything without a wired Ethernet connection