尚未检测到更新。GitHub 发布版本后会显示在这里。
Turn RTL-SDR dongles into Icecast internet radio stations on a Raspberry Pi. FM, NOAA weather radio, RBDS now-playing, EAS tone alerts.
翻译准备中
正在加载完整 README。
查看完整 README ↗[!NOTE] Pi-Tuner is a small, hobby-scale project. A first install resets your Icecast configuration (new source and admin passwords), so back up Icecast first if you use it for other streams. Re-running the installer later is safe; it can upgrade and keep your settings.
Plug in a dongle, tune it to a frequency, and it streams that station to your Icecast server. No web interface, no database: just a folder of text config files and one Python program that systemd keeps running.
[!TIP] The complete guide, with every setting, command and EAS/SAME detail, is in the full manual.
flowchart LR
D[RTL-SDR dongle] --> R[rtl_fm]
R --> T{tee}
T --> S[demux<br>stereo + de-emphasis]
S --> F[ffmpeg<br>MP3 128k]
F --> I[(Icecast<br>/tunerN)]
T -. RBDS stations .-> X[redsea]
X --> M[rbds-meta]
M -. now playing .-> I
Each station gets its own dongle, rtl_fm pipeline and Icecast mount. The
supervisor in tuner.py watches every pipeline and restarts any that die.
The installer handles everything else (software, Icecast, the FM and RBDS decoders).
Run this on the Pi:
curl -fsSL https://raw.githubusercontent.com/thetylerwoodwardproject/pi-tuner/main/install.sh -o /tmp/pituner-install.sh && sudo bash /tmp/pituner-install.sh
The installer asks before each step: packages, Icecast, dongle serials and your first station or two. You can add more stations any time.
[!WARNING] A first install (or Fresh) resets your Icecast configuration and restarts Icecast. Back up first if you use Icecast for other streams.
Already installed? Run the same command again to Upgrade, Reconfigure or start Fresh; see Upgrading and changing settings.
Prefer to look at the code first? Clone and run instead:
git clone https://github.com/thetylerwoodwardproject/pi-tuner.git
cd pi-tuner
sudo ./install.sh
[!IMPORTANT] We strongly recommend running Pi-Tuner under its own, separate user account rather than your everyday login. It handles radio audio, talks to your network and holds passwords. These are recommendations; the installer doesn't enforce them.
pi user, or from your everyday
account. Use a dedicated, unprivileged account named whatever you like.sudo apt update && sudo apt full-upgrade).Using Pi-Tuner in a broadcast environment? Follow the FCC password guidelines. The FCC's cybersecurity rules cover internet-connected devices in the signal chain. In short (SBE summary):
Check the current FCC rules for exact requirements; this isn't legal advice.
Where the passwords are:
| Password | Notes |
|---|---|
| The Pi's own login, and SSH | Yours to set. Prefer SSH keys, and turn off password logins if you can. |
| Icecast source and admin | The installer generates 32 random characters for each, which meets the length rule. Don't reuse them. |
Email (smtp.conf) | Use a long, unique password, or an app password from your mail provider. |
| Zabbix | Pi-Tuner holds no Zabbix password; protect your server the same way. |
icecast.conf and smtp.conf are plain text, readable only by the Pi-Tuner
account and root (mode 600), and sudo pituner config hides passwords as you
type. Not on air? Treat all of this as suggestions.
Every RTL-SDR dongle ships with the same default serial (usually
00000001), so with two or more plugged in the Pi can't tell them apart. Give
each its own, one dongle at a time:
sudo rtl_eeprom -d 0 -s 00001001
rtl_test
Look for a line like SN: 00001001.00001002, 00001003, …).rtl_test again: one line per dongle, each with its
own serial.Any 8-digit number works, and serials are matched by number, so 1001 and
00001001 are the same dongle. rtl_eeprom comes with the rtl-sdr package.
Every station is one small text file in stations/:
# ─── user settings ─────────────────────────────────
NAME=My Station
BAND=fm # fm | wx
FREQUENCY=98.1
SERIAL=00001001
GAIN=40.2 # dB; delete this line for auto-gain
RBDS=true # optional, fm only; RBDS text -> Icecast now-playing
RECORD=true # optional; save 15-minute MP3 recordings
# ─── end user settings ─────────────────────────────
sudo pituner config and pick Stations..conf file in stations/, edit its file, or delete it.Then reload (no full restart needed):
sudo systemctl reload pituner.service
Each station's stream is then available at:
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗