WW0CJ

Adding Canada Support to HamCall.dev

For this latest installment of my journey through Ham Challenge, I'm taking an early look at Week 26!

Make a contribution to an Open Source ham radio software package. This does not necessarily have to be a source code contribution! You can suggest a documentation improvement, file a bug report, submit a feature request, or if you're out of ideas, make a donation.

As I previously mentioned, I'm working on a ham radio logging program in Golang and recently added Callsign Lookup functionality to it. I'm not a big fan of the idea of buying an XML Subscription to QRZ for this project, so I turned to a fellow Ham Radio Village member's project - Hamcall.dev.

HamCall.dev is an open-source callsign database with a simple premise - rather than storing everything in a local database, it generates static JSON files uploaded to Backblaze B2 and accessed through a single-page application and some straight-forward Javascript. But, it originally is designed to work just with US amateur radio callsigns and what the FCC publishes of the ULS regularly.

I work international, so when I saw an open issue mentioning that ISED in Canada publishes the data themselves, I was thrilled and hopped on the idea. I started out writing some very sloppy code to implement it, but the concept was straight-forward - download their zip file, unzip and grab the English text file, go through it line by line and add calls to a slice to be sent off for the JSON files.

After having some other HRV members review my code and catch some inefficiencies and spots where I can save a ton of memory, and figuring out how to display license classes based on their odd formatting of the txt file (took me too long to realize there was a README...whoops), I had a working implementation! I was also suggested to add unit tests, so no one has to go back and do it later, so I added those as well.

As of today (12-March-2025), my code is merged and Canadian callsigns published by ISED are now available for lookup on Hamcall.dev! I'm glad to have made a decent contribution to the project, and look forward to doing some additional work - this helped me learn a lot about Go so I want to keep the momentum rolling!

To finish out this post, I want to provide some cool open-source radio projects to contribute to when others are looking to complete this challenge:

73s, and good luck to all those continuing to participate in Ham Challenge!

#'HamChallenge'