A Python-based APRS gateway that connects to an AGWPE server and provides a WebSocket interface for sending and receiving APRS packets.
- Connects to AGWPE server using pyham-pe library
- WebSocket interface for sending and receiving APRS packets
- Supports position reports and text messages
- Real-time packet monitoring and forwarding
- Python 3.8 or higher
- AGWPE server running and accessible
- WebSocket client (test.html provided)
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
-
Copy the example environment file:
cp .env.example .env
-
Edit the
.env
file with your settings:AGWPE_HOST=localhost AGWPE_PORT=8000 AGWPE_CALLSIGN=YOURCALL AGWPE_SSID=0 WEBSOCKET_HOST=localhost WEBSOCKET_PORT=8765
- Set
AGWPE_HOST
to the IP address or hostname of your AGWPE server - Set
AGWPE_PORT
to the port your AGWPE server is listening on (default is 8000) - Set
AGWPE_CALLSIGN
to your amateur radio callsign - Set
AGWPE_SSID
to your desired SSID (0-15) - Set
WEBSOCKET_HOST
to the host you want to bind the WebSocket server to - Set
WEBSOCKET_PORT
to your desired WebSocket port - Set
DEBUG
to true if you want detailed logging
- Set
-
Start the server:
python main.py
-
Open test.html in a web browser to send and receive APRS packets
The WebSocket server provides the following functionality:
- Send APRS packets with destination callsign and path
- Receive APRS packets in real-time
- Support for position reports and text messages
Send packets in JSON format:
{
"to": "DESTINATION",
"via": "PATH",
"data": "MESSAGE"
}
Receive packets in JSON format:
{
"from": "SOURCE",
"to": "DESTINATION",
"via": "PATH",
"data": "MESSAGE"
}
MIT License