I wanted to take some time to discuss my thoughts on amateur radio software. I've noticed a few troubling patterns that I worry may hinder development and adoption of particular applications and protocols. Particularly, I wanted to share my philosophy of adopting open source ham radio applications at all costs, ensuring the tools I train on, and recommend, can live on.
I've spend a majority of my life writing code. Whether it was growing up, in college, or as a professional. I've written software across domains and industries, including some ad-hoc toolsfor amateur radio in my spare time.
I've come to understand that software is rarely static, it's living and breathing. A great application will see itself live past the system it was intended to run on. New operating systems, and versions of operating systems, dependent libraries, etc, will change over the course of an application's life. For a enterprise application, developers update their applications to operate in this ever changing landscape.
Enterprise applications, with active maintainers can adapt an application to these changes more consistently than hobbyists. The enterprise has many developers on the payroll and promptly trains replacements when needed. This ensures that the application will be updated and live on for as long as the company chooses. The enterprise is thus much better suited than the ham radio application whose primary, and often only developer, may no longer have the time or motivation to continue supporting said application.
To take this a little further, even these enterprises may deprecate an application or go out of business entirely, taking applications to the grave with them. One school of thought is that companies/applications die out and new, more innovative will take their place. While this may be true in high demand and trendy areas such as social media, food delivery services, etc, low traffic areas, such as ham radio, take a huge hit when closed source applications vanish.
I have many favorable opinions on open source software. More importantly than being "free" (this is not technically true), OSS software can live past the original authors. Users/developers are free to "fork" the code and develop additional features or fix bugs, often contributing these fixes back to the original authors. This model embodies the idea that software is living and breathing.
Amateur radio, generally being a part time affair, could greatly benefit from OSS. Oftentimes developers roll out a wonderful application only to find themselves, understandably, unable to devote time to enhance or maintain their creations. Had the application been an OSS project, the community could continue the work.
Finally, even though a protocol or standard is open, it's often times complex enough that the code itself is the specification. In such cases only an OSS model can mitigate.
I feel as though the internet based, hyped up tech world has learned from the mistakes of closed source software and has been quick to adopt/pivot to OSS model the instant it made sense. Based on my experience thus far I'm inclined to only use open source software for ham radio operation. Should an application lack features, I pledged to contribute such features. Below is a list of open source applications I use personally.
The list of applications are:
- Open Source
- Run on most distributions of Linux
- Are my personal favorites for each category
|PSK, RTTY, CW||FLDigi||Source||C++||All around swiss army knife of digital modes|
|Rig Control||FLRig||Source||C++||Rig control|
|JS8Call||JS8Call||Source||C++, Fortran||Weak signal messaging with many other features|
|FT8||WSJT-X||Source||C++, Fortran||Weak signal modes|
|APRS||YACC||Source||Java||Great APRS client with support for offline maps|
|APRS||APRSDroid||Source||Scala||Great Android APRS application with a built-in AFSK audio modem, easy to interface with a radio mic/speaker cables|
|Maps||Marble||Source||C++||Great map application that supports GPS and offline maps|
|Programming||Chirp||Source||Python||Useful for programming memory channels|
|SDR||GQRX||Source||C++||Great general purpose SDR with pan adapter display|
|SDR||SDRTrunk||Source||Java||SDR monitoring application with support for DMR, P25, FM listening|
|Sat Prediction||GPredict||Source||C++||Satellite pass prediction tool|
|Logging||Termlog||Source||Go||Terminal based logging application with support for POTA, SOTA, and DX spotting networks|