Introduction: Repeater-START Ham Radio Repeater Mapping App

With more people going to PinePhone and Librem phone, Linux based devices, it will be important to have good native Linux apps, and apps that are responsive on mobile devices. One thing I noticed is that ham radio repeater apps are generally all for iOS and Android, and do not have maps. So I started the first offline Linux based repeater app for your Linux based desktop or mobile device.

I wrote a 7 part howto on how I wrote parts of this, in hopes it may be useful to build similar apps needing a map on a native Linux GTK app.


Computer with Python and libosmgpsmap, internet access.

Mapbox account to build your own app, choose and customize your map.

If you just want to install the app on your Linux desktop/Raspberry Pi/Librem etc... download from:

and double click .deb and install.

Step 1: Offline Download, Repeaters on Map

I started with the libosmgpsmap library, to display a map and add a repeater list to the display:

Step 2: Listing Nearest Repeaters

I set a GTKListBox to display the repeaters nearest to the selection on the map... nearest first.

Step 3: Building a Responsive App

With Linux phones like the Librem, it will be more important than ever to have responsive apps. In this post I show how to run a Python GTK app on the emulator, and set font size to better fit it.

Step 4: Finding GPS Position on the Map

GeoClue is a geopositioning system used in Linux. I used the Geoclue api to get the current position and center the map on it, when the locate button is pressed.

Step 5: Subprocess and Listening

Each of these repeaters can be listened on UHF/VHF using a RTLSDR receiver. To run this at the same time as the GUI window, a thread can be used and a subprocess for the rtlsdr. Here I add a play/stop button to listen:

Step 6: Subclasses of Repeater

Repeaters from the open data repeater listing are downloaded and included here: This is an example of subclassing types of repeater - subclasses for each repeater type that is pulled.

Step 7: Building an Installer File

To install a program you generally open up and double click a .deb on Ubuntu and similar operating systems.

To build this I made a .desktop file and other files required, then dpkg-buildpackage to build a .deb package.

Maps Challenge

Participated in the
Maps Challenge