One of the most popular amateur Digital Mobile Radio (DMR) nets is the Brandmeister network. However, I noticed that there wasn’t a good way to see which of the many Brandmeister talkgroups were active and popular at a given time. So I wrote an app that does exactly that: you can now see Brandmeister talkgroups live activity, popular talkgroups, and the most active users!
Update – 2023
It appears that the Brandmeister Network has opted to implement cross-origin resource sharing (CORS) protections on their APIs. While this is generally a good security practice, it has the unfortunate side effect of rendering my app inoperative. I hope you enjoyed using it while it was active!
Intro to the Brandmeister Network
I’ve had my amateur radio license for many years now and have enjoyed exploring the many corners of the hobby (I’ve also written about “ham” radio here before, too). In particular, there are many fun digital modes to explore including Digital Mobile Radio (DMR). The Brandmeister network is probably the most popular DMR network in use today by amateur radio enthusiasts. A big part of its popularity is driven by its openness. It’s very easy to get up and running on the network with relatively cheap gear and open-source software. The network also supports interoperability with other popular digital modes. Importantly, it also hosts several open APIs that deliver data about the status of and activity on the network.
The Brandmeister network operates primarily on the concept of “talkgroups”. Talkgroups are like radio channels, except they’re defined by a channel number and name instead of a frequency. The talkgroups are typically dedicated to a specific topic. From as broad as a “World-Wide” talkgroup to as specific as a “Blind Hams” talkgroup. The Brandmeister network has over 1,500 different talkgroups! There are so many talkgroups, in fact, that it can be hard to know which to tune into to get started. This is exactly why I decided to write my app.
Brandmeister Talkgroups Live Activity App
As I was getting started with the Brandmeister network, I found myself wanting to know which talkgroups were active and popular. Without that information, I would often blindly scan across some randomly-chosen talkgroups listening for activity. As soon as I discovered the network’s APIs, I knew I could solve this problem! I wrote a little web app that listens to the network’s “last heard” API and aggregates the session data. Over a window of time, the app keeps track of how long talkgroups and users are active. The app displays the top 20 most active talkgroups and users within that rolling window.
Being able to see the most active talkgroups and users is a great way to get started with the Brandmeister network. The app also shows all currently active sessions at a given time. If you’re interested in seeing it in action, I’d be delighted if you gave it a try!
In addition to the app itself, I also created and deployed a companion “marketing” website. This site has more information about the app, including news about the updates I’ve made to it over time. Together, the app and the companion site represent my second successful project publication so far this year! I’m making good progress on my goal to publish a total of four this year.
I’ve been working on this app since mid-2018, so it’s been a long journey getting to this “version 1.0” release. I built the app itself with vanilla React, starting from the standard “create react app” template. The app connects to the Brandmeister network API via websocket. From there, it’s simply a matter of reading messages off of the API, updating my internal data aggregation models, and displaying the resulting data on the screen. Starting with version 0.2.1, the app is also fully-responsive. It adapts seamlessly to different screen sizes from small smartphones all the way through large desktops. I built the companion site using Gatsby. I chose Gatsby because it allowed me to keep working with familiar React components while still generating a static website at build time. The companion site is also fully-responsive and includes some nice page speed features like lazy-loading images and placeholders.
I developed CI and CD automation for both the app and the companion site through Github Actions. I deploy them to AWS S3, and I serve both through AWS CloudFront. Finally, if you want to take a look under the covers, both the app and the companion site are open-source.
I’d love to hear your feedback if you gave the app a try or took a look at the companion site!