ABeS Aprs Beacon Sender Project
ABeS APRS Beacon Sender is a Python-based software project designed to automatically send the location of radio repeaters—or even individual operators—to APRS servers over the internet. The idea came to life while I was running an EchoLink system for the Turkish Amateur Radio Association Kapaklı Branch. Since the system was online 24/7 and functioned solely as an EchoLink server, I wanted to add an extra feature to make it more useful. My goal was to share the repeater’s location and frequency information via APRS, allowing amateur radio operators outside its coverage area to view this data on aprs.fi.
About seven months ago, I set up an EchoLink system for the TRAC Kapaklı Branch repeater (YM1KPL) to make it accessible worldwide. Working with limited resources and scattered documentation reminded me of my early 2000s computer experiences—where creativity and patience were key.
I won’t go into all the EchoLink details here; in short, it’s a system that transmits audio from the internet to a radio and vice versa. You can find more information at echolink.org.
Initially, I tried setting up EchoLink on a Linux system, but ran into some driver and configuration issues that prevented stable operation. As a result, I switched to a Windows setup. Everything worked smoothly, but I still wondered: why should a device connected to the internet 24/7 serve only as an EchoLink server? That question opened the door to a completely new project—the focus of this article. The idea was simple yet powerful: “Let the repeater send its location as an APRS beacon over the internet.” This way, its position would appear on aprs.fi, and by including frequency and tone information in the comment field, stations browsing aprs.fi could also be informed about the repeater.
With enough enthusiasm and motivation, I began shaping the project. I planned to write a Python script that would send manually entered location data to the server at regular intervals (every 20 minutes), making it visible on aprs.fi. The script ran smoothly for over a month, and after successful testing, I decided to share it. I uploaded the source code to GitHub, and for those who prefer not to deal with compiling, I also created a standalone .exe that works on both Windows and Linux.
Project Criteria
- Written in Python
- Runs in the background
- Simple user interface
- Collects user input: callsign, passcode, latitude & longitude, symbol, comment, and transmission interval
- Saves user data in a .ini file
- Sends location data to the internet at specified intervals
- Fully compatible with Windows and Linux
- Handles internet interruptions gracefully
- Doesn’t resend missed packets unnecessarily
- Performs offline passcode validation
- Supports all APRS symbols
- Transmission interval no less than 5 minutes
- Automatically starts sending data when the program launches
Planning and implementing these steps took just two days. After thorough testing, I uploaded both the source code and the executable version to GitHub. As my first GitHub project, this one will always have a special place for me. Installation instructions are included in the repository, so I won’t repeat them here.
📌 Source code and installation details: [GitHub Project Link]
📩 Feedback and suggestions: ercan@ercanolcay.com
See you on the next project.