BASH-iGate-rtl_sdr is a simple, lightweight APRS Internet Gateway (iGate) implemented in Bash. It uses RTL-SDR hardware to receive APRS packets over the radio and forwards them to the APRS-IS network.
- Super simple - BASH implementation
- Receives APRS packets using rtl_fm and multimon-ng
- Forwards packets to APRS-IS servers
- Sends position and status reports
- Automatically reconnects on connection failure
- Error handling for the RTL-SDR pipeline (not sure)
- Minimal dependencies (uses standard Linux tools)
- Bash shell
- RTL-SDR dongle
rtl_sdrandmultimon-nginstalled- Standard Unix utilities (grep, stdbuf)
- Clone this repository
- Install dependencies (in debian-like it should be something like:
apt install rtl-sdr multimon-ng) - Copy
aprs-bash-igate.conf.exampletoaprs-bash-igate.conf - Edit the configuration file with your callsign, location, and APRS-IS credentials
Edit aprs-bash-igate.conf with your settings:
PORT=14580
USERNAME="ANDY"
CALLSIGN="SP0ABC-1" # Your full callsign with SSID
PASSCODE="11223" # Your APRS-IS passcode
FILTER="r/52.001/21.001/50" # Optional filter for your area
LATITUDE="5200.00N" # This should be 7 digits plus N - check precision
LONGITUDE="02100.00E" # This should be 8 digits plus E - check precision
SYMBOL="r" # https://blog.thelifeofkenneth.com/2017/01/aprs-symbol-look-up-table.html
ppm_error=-1 # ppm_error (default: 0) estimate eg using `rtl_test -p`
#SERVER="radom.aprs2.net"
SERVER="rotate.aprs2.net"
# RTL-SDR Settings
RTL_SDR_FREQUENCY="144800000"
RTL_SDR_SAMPLE_RATE="22050" # You can add this too if needed
./aprs-bash-igate.shThe script will:
- Connect to the APRS-IS server
- Send an initial position and status report
- Start listening for APRS packets on 144.800 MHz (configurable)
- Forward received packets to APRS-IS
- Automatically reconnect if the connection fails
The script includes error handling to:
- Detect and report failures in the RTL-SDR pipeline
- Automatically reconnect to APRS-IS if needed
- Validate configuration settings
This project is open source and available under the MIT License.
Created by Filip SP5FLS
