FM-RDS transmitter using the Raspberry Pi's PWM to generate FM modulation with real-time RDS data.
Pi-FM-RDS is a software-based FM transmitter that generates FM modulation with real-time RDS (Radio Data System) data, capable of including monophonic or stereophonic audio. It is designed for experimentation on Raspberry Pi hardware, enabling users to create low-power FM broadcasts with customizable station information. The project uses the Raspberry Pi's PWM generator to produce VHF signals and emphasizes technical accuracy and compliance with RDS standards.
Hobbyists, electronics enthusiasts, and developers interested in learning about FM-RDS transmission and experimenting with software-defined radio on Raspberry Pi hardware. It is also suitable for educational purposes in understanding broadcast protocols and signal processing.
Developers choose Pi-FM-RDS for its ability to generate real-time RDS data with dynamic control over station information, support for various audio formats, and compatibility across multiple Raspberry Pi models. Its open-source nature and focus on experimentation provide a hands-on tool for exploring FM broadcasting without requiring specialized hardware.
FM-RDS transmitter using the Raspberry Pi's PWM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables dynamic updates to Program Service name, radiotext, and Traffic Announcement flags via a named pipe FIFO, allowing interactive experimentation during transmission.
Supports various audio formats like WAV and Ogg/Vorbis through libsndfile, with real-time resampling and automatic stereo signal generation for FM-Stereo broadcasts.
Verified to work on Raspberry Pi models 1, 2, 3, 4, Zero, and Zero 2, making it accessible for users with different Pi versions without hardware modifications.
Emphasizes technical accuracy with RDS standard compliance, including features like clock time signals and ppm error adjustment for learning about FM transmission protocols.
Limited to Raspberry Pi with specific Linux kernel requirements (rpi-mailbox driver) and dependencies like libsndfile1-dev, hindering portability and increasing setup complexity.
Cannot play MP3 files directly; requires external tools like Sox for conversion, adding an extra step and dependency for common audio formats.
Audio processing consumes 33-40% CPU due to upsampling and FIR filtering, which could strain resource-constrained Raspberry Pis during prolonged use.
Strongly discourages antenna use due to illegal broadcasting risks and harmonic emissions, limiting practical applications to shielded, experimental setups only.