Repository navigation
Test Setup
foonerd edited this page Oct 6, 2026
·
8 revisions
What the plugin is developed on, what it is tested with, and the conditions under which the figures in this wiki were measured. Reception figures depend on the place and the antenna; this page says what they were, so that the figures can be read for what they are.
| Board | Raspberry Pi 5 Model B (Rev 1.1), 16 GB |
| System | Volumio 4.204 (Debian Bookworm), Raspberry Pi image: 32-bit ARM userland on the 64-bit kernel (6.12) |
| Plugin target |
arm (ARMv6 hard-float binaries, the ones every Raspberry Pi runs) |
| Audio output | HiFiBerry DAC (I2S), Volumio software mixer, 48 kHz |
| Dongle connection | A USB 2.0 port of the player, no hub |
| Site | The London area. Nine DAB ensembles are receivable; on FM one local station arrives about 37 dB above all others, which makes the site a test of how a tuner copes with overload. |
One antenna in one position was used for all dongles. The screenshots in this wiki were taken on this player.
| Setting | Value |
|---|---|
| FM region | Europe (87.5 to 108 MHz, 100 kHz raster) |
| Automatic FM gain | on |
| Automatic DAB gain | on |
| PPM Correction | 0, for every dongle |
| FM sample rate | 240 kHz |
| Plugin versions | 1.3.24 to 1.3.31 (October 2026) |
Each dongle on the Dongles page went through the same steps, one after another; the seven with R820T and R828D tuners on one day, the two with an E4000 tuner two days later:
-
FM band survey. The plugin's own survey (
fn-rtl-gain, the tool an FM scan runs) over 87.5 to 108 MHz: the gain it settles on in each 2 MHz slice, and for every channel its power, the height of its stereo pilot above the noise, and whether the pilot survives a lower gain. The number of FM stations in the table is what an FM scan lists from that survey at the Balanced sensitivity (+8 dB). - Gain for single stations, as measured before a station is played, for six stations across the band.
- The slice next to the strong station, recorded at six gains from the highest down, to see at which gain the tuner stops inventing signals.
- Two DAB ensembles (channels 11D and 12B), recorded at the same six gains: the ensemble's power against the noise beside it, and the share of samples at the ends of the converter's range.
- Crystal error, read from how far the DAB ensembles and the FM stations sit from their nominal frequencies.
- Through the plugin: an FM station and a DAB station played, with the receiver chain's processes and the audio device's frame counter checked, so that "plays" means sound reached the output.
| Figure | How it was measured |
|---|---|
| Loudness of FM and DAB | The plugin's two playback chains run into files in place of the audio output, for the same stations on FM and DAB, and measured as integrated loudness (EBU R 128) and peak level |
| DAB frequency range (35 kHz) | A recording of an ensemble shifted in frequency in steps from -36 to +36 kHz, clean and with noise added, and decoded by the plugin's decoder built for ARM and for x86-64; then confirmed live with dongles 14 and 51 ppm off |
| Scan times | FM about a minute (the survey of the band 40 seconds fast, 50 detailed; 25 seconds more with an E4000 tuner), DAB about three minutes, on the test player |
| Start times | DAB about six seconds from request to sound, on the test player |
-
Development machine: x86-64 Linux with Docker. The binaries for each target are built in an image of that target's system (a Raspbian Bookworm root for
arm, Debian Bookworm forarmv7,armv8andx64), with the network switched off. - Test suite: about 170 tests of the plugin's controller and libraries, run in the Node version Volumio ships, with stand-ins for the receiver programs and the audio tools. They cover starting and stopping stations, scans and their merging into the list, gain measurement, logos, backups, updates, and what happens when a receiver program fails or a dongle delivers nothing.
- Component checks: every built binary must be of its target's architecture and must start; the gain tool must get its measurements right on a signal it makes up.
- Decoder bench: the DAB decoder is run on recordings as well as on live signals, which makes faults repeatable that otherwise depend on the dongle of the day.
- Dongles with FC0012 and FC0013 tuners.
- Boards other than the Raspberry Pi 5 for reception figures and timings. The binaries for the other targets are built and checked to start; slower boards take longer to scan and to start a station.
- FM bands and rasters other than Europe's, beyond the scan's arithmetic.
FM/DAB Radio for Volumio · Source · Community thread · GPL-3.0
Using the radio
- Installation
- Getting Started
- Playing Radio
- Scanning
- Gain, Frequency and Loudness
- Artwork and Metadata
- Station Logos
Managing it
Hardware
Help
Reference