ShellBeacon
A small APRS beacon in pure shell script, for a Raspberry Pi or any Linux box. No daemon, no database — bash, netcat, and curl, run from cron or a systemd timer.
What it sends
Every twenty minutes, for your station:
- a position packet with your station comment,
- a telemetry packet reporting the host itself — CPU temperature, load, free memory, disk use, uptime, and an optional web-server health bit — with the standard PARM / UNIT / EQNS / BITS definitions,
- a weather field carrying live outdoor temperature, when the companion collector is running, and
- optionally, the same frames on RF: 144.390 MHz AX.25 AFSK,
generated with Dire Wolf's
gen_packetsand transmitted with rpitx from a GPIO pin — no radio required, - and optionally a spoken voice announcement on a 2 m FM simplex channel — ID, time, outdoor temperature, station health — through the same rpitx path.
The reference station
● KJ5GBY runs ShellBeacon on a Raspberry Pi Zero W: position and telemetry to APRS-IS, patio temperature decoded from a 433 MHz sensor by an RTL-SDR receiver, RF on 144.390 at ~10 mW into a quarter-wave ground-plane antenna, and a voice announcement on 146.430 MHz.
Its weather and telemetry are public: live station page · aprs.fi
The status page
The web/ component generates a companion status page like the
reference station's: patio weather with a 24-hour sparkline, the transmitted
telemetry decoded into a table, and a choice of locator charts — the subsquare,
the whole grid square, or a range chart with true 5 / 10 / 20-mile rings — each
in dark and light to follow the page theme. One static page, regenerated on a
timer; any station can run its own from the shell-style config file.
Requirements
- bash, netcat (
nc -C— OpenBSD netcat), curl, awk - for telemetry on a Pi:
vcgencmd(Raspberry Pi OS ships it) - for weather: an RTL-SDR receiver,
rtl_433, and a supported 433 MHz temperature sensor - for RF: Dire Wolf (for
gen_packets) and rpitx, including its bundledcsdr - for voice:
espeak-ng, and root (rpitx opens/dev/mem)
Quick start
cp shellbeacon.conf.example shellbeacon.conf chmod 600 shellbeacon.conf # edit shellbeacon.conf: callsign, passcode, position, comment ./shellbeacon.sh 1 # one cycle, then exit
All station settings — including the APRS-IS passcode — live in the private config file, never in the script.
Provenance
ShellBeacon is a fork of shellbeacon 1.0 by WA1GOV, a minimal netcat APRS-IS beacon. The fork, by Robert McAtee (KJ5GBY), adds the telemetry, weather, RF, and voice layers and the companion status page. Licensed under the GNU General Public License v3.