Repository navigation
PiFmRds-WebApp v3
PiFmRds Web Application (V3)
This package provides a web interface to control the PiFmRds FM transmission software on a Raspberry Pi OS Lite. Version 3 introduces a scheduler feature, allowing you to queue and loop audio files with customizable gaps between them. It also includes improvements to the user interface and error handling.
Features in Version 3
Scheduler:
Queue multiple audio files for playback.
Specify custom gaps (in seconds) between files.
Loop the playlist indefinitely until manually stopped.
Set frequency, PS (Program Service), and RT (Radio Text) for the scheduler.
Improved Error Handling:
Default gap of 3 seconds if no valid input is provided.
Better error messages for invalid inputs.
User Interface Enhancements:
Added frequency, PS, and RT fields in the scheduler tab.
Updated labels for better clarity (e.g., "Segue (Seconds | Default: 3 Sec)").
Bug Fixes:
Fixed issues with the scheduler loop causing errors after the playlist ends.
Directory Structure
Here’s the structure of the package:
PiFmRds-WebApp/
├── PiFmRds/ # PiFmRds source code
├── public/ # Web application frontend
│ ├── index.html # Frontend HTML file
│ └── logo.png # Logo image
├── uploads/ # Uploaded audio files
├── server.js # Backend script
├── install.sh # Installation script
├── README.md # Documentation
└── .gitignore # Git ignore file
Notes
File Uploads: Do not upload files with the same name. If needed, delete all files from /PiFmRds-WebApp/uploads/ before uploading.
Playable WAV File Formats:
PCM, 44.1 kHz, Stereo, 16-bit
PCM, 44.1 kHz, Mono, 16-bit
File Naming: Only alphanumeric characters are allowed in WAV file names. Avoid spaces, parentheses, or special characters.
FM Transmission Control: Always use the web application buttons to start/stop FM transmission. Avoid using Control + C in PuTTy to stop transmission.
Scheduler:
If no gap is specified or the input is invalid, the default gap of 3 seconds will be used.
The scheduler will loop the playlist indefinitely until manually stopped or another schedule is activated.
Acknowledgments
This project was developed with the assistance of DeepSeek, an AI-powered coding assistant. DeepSeek provided guidance, code snippets, and troubleshooting support to help bring this project to life. Special thanks to the DeepSeek team for their invaluable help!
Disclaimer: This project is intended for educational and experimental purposes only. Please ensure compliance with local regulations when transmitting FM signals.