From d068c4572c1677fbcd9175436a3bdcc1464c74a1 Mon Sep 17 00:00:00 2001 From: Christophe Jacquet Date: Sun, 30 Nov 2025 16:28:48 +0100 Subject: [PATCH 1/2] Update README with latest Raspberry Pi OS instructions. --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 21976e6..3554bbb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This program generates an FM modulation, with RDS (Radio Data System) data gener It is based on the FM transmitter created by Oliver Mattos and Oskar Weigl, and later adapted to using DMA by [Richard Hirst](https://github.com/richardghirst). Christophe Jacquet adapted it and added the RDS data generator and modulator. The transmitter uses the Raspberry Pi's PWM generator to produce VHF signals. -It is compatible with both the Raspberry Pi 1 (the original one) and the Raspberry Pi 2, 3 and 4. +It is compatible with both the Raspberry Pi 1 (the original one) and the Raspberry Pi 2, 3, 4 and Zero. ![](doc/vfd_display.jpg) @@ -16,15 +16,19 @@ PiFmRds has been developed for experimentation only. It is not a media center, i ## How to use it? -Pi-FM-RDS, depends on the `sndfile` library. To install this library on Debian-like distributions, for instance Raspbian, run `sudo apt install libsndfile1-dev`. +Pi-FM-RDS is tested under Raspberry Pi OS Lite (the version without desktop environment). You should be able to run it under other distributions, but the author provides no guarantees nor support. Latest Raspberry Pi OS version successfully tested: 13.1 (based on Debian Trixie). -Pi-FM-RDS also depends on the Linux `rpi-mailbox` driver, so you need a recent Linux kernel. The Raspbian releases have this starting from August 2015. +Dependencies: -**Important.** The binaries compiled for the Raspberry Pi 1 are not compatible with the Raspberry Pi 2/3, and conversely. Always re-compile when switching models, so do not skip the `make clean` step in the instructions below! +* `sndfile` library, provided by package `libsndfile1-dev` under Raspberry Pi OS and other Debian-like distributions. +* Linux `rpi-mailbox` driver, so you need a Linux kernel built after approximately August 2015. -Clone the source repository and run `make` in the `src` directory: +**Important.** The binaries compiled for one Raspberry Pi model and ARM architecture are not compatible with other models and architectures. Always re-compile when switching models, so do not skip the `make clean` step in the instructions below! + +These should be the complete instructions assuming a clean Raspberry Pi OS Lite install: ```bash +sudo apt install git libsndfile1-dev git clone https://github.com/ChristopheJacquet/PiFmRds.git cd PiFmRds/src make clean @@ -212,6 +216,7 @@ The samples are played by `pi_fm_rds.c` that is adapted from Richard Hirst's [Pi ## History +* 2024-02-21: properly handle non-ASCII characters. * 2015-09-05: support for the Raspberry Pi 2 and later models * 2014-11-01: support for toggling the Traffic Announcement (TA) flag at run-time * 2014-10-19: bugfix (cleanly stop the DMA engine when the specified file does not exist, or it's not possible to read from stdin) From cd6d744a943614a606567594d9f77de182641245 Mon Sep 17 00:00:00 2001 From: Christophe Jacquet Date: Sun, 30 Nov 2025 18:02:18 +0100 Subject: [PATCH 2/2] Fixes to README. Mention using different float-abi values on different distributions. --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3554bbb..0267050 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,11 @@ then your locale variables are not set correctly and Pi-FM-RDS is incapable of w with non-ASCII characters. +### Compiling on distributions with different float ABIs + +The makefile uses `-mfloat-abi=hard`, which is suited for Raspberry Pi OS. Different distributions might require different values, namely `soft` or `softfp`. + + ## Warning and Disclaimer PiFmRds is an **experimental** program, designed **only for experimentation**. It is in no way intended to become a personal *media center* or a tool to operate a *radio station*, or even broadcast sound to one's own stereo system. @@ -211,7 +216,7 @@ The samples are played by `pi_fm_rds.c` that is adapted from Richard Hirst's [Pi ### References -* [EN 50067, Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range 87.5 to 108.0 MHz](http://www.interactive-radio-system.com/docs/EN50067_RDS_Standard.pdf) +* EN 50067, Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range 87.5 to 108.0 MHz. ## History @@ -229,4 +234,4 @@ The samples are played by `pi_fm_rds.c` that is adapted from Richard Hirst's [Pi -------- -© [Christophe Jacquet](https://jacquet.xyz/en/) (F8FTK), 2014-2024. Released under the GNU GPL v3. +© [Christophe Jacquet](https://jacquet.xyz/en/) (F8FTK), 2014-2025. Released under the GNU GPL v3.