I’ve long hoped for a way to make it easier to change DMR talkgroups. I use a DV4mini and software installed on a Raspberry Pi 3 with a touch screen display. Wouldn’t it be nice if I could key in a Brandmeister extended talkgroup (XTG) number directly on the RPi, rather than use an Android app or a web browser? The now defunct DV4MF2 dashboard was a step in the right direction with XTG support, but its talkgroup list is now hopelessly out of date. Wireless Holding’s version of the dashboard allows connection to Brandmeister reflectors and to TG 4999, but doesn’t directly provide access to the XTGs.
So in the true Amateur Radio spirit, I built my own solution. Long ago, I made my living as a software developer. It was so long ago that we were called computer programmers. Nonetheless, I did some research and found that GTK provides support that I could use from within a Python program to create windows, buttons and so on in a Linux GUI environment.
To further date myself, most Linux based programming that I’ve done in the past 20 years has been in Perl or Bash. I have recently gotten involved in implementing the Open Source Fail2ban host IPS system, which uses Python regular expressions. I have become slightly proficient with regexes, but knowing how to use them to match text in logs wasn’t going to help me.
Thankfully, a fellow named Kris Occhipinti put together a treasure trove of programming instruction videos, some of them covering Python, GTK, and specifically how to create a keypad. His intent in some of the videos was to create an app for spoofing caller id, but I could borrow what I needed.
What I came up with is a Python/GTK app that opens two windows. One window is a dialer keypad and the other window is a memory present keypad. A Brandmeister TGID can be keyed in from a keyboard, pressed on a touchscreen, clicked with a mouse…or you can just use a preset with a label like “USA” or “Tri State” instead of a number. The app makes use of the published Brandmeister API, which is very simple, uses HTTP and returns data in JSON format. Python very nimbly handles it all.
If you’re a licensed amateur radio operator, have a DV4mini, and are Linux proficient, please give it a try and leave your feedback below.
Hi Dan,
I downloaded and unzipped the app to my raspberry Pi 3 running the DV4mini but we need a more especific tutorial on where should place the unzipped file. Will it go to the DV4mini folder or some other place?
I placed it and execute it as an icom on the Raspberry Pi Desktop but does not want to work. Please advice. Thank you very much for your effort.
73 Alberto
KP4AP
Hi Alberto. To run, first try “python bmxtg.py”. If that works, then set permissions to 755 (chmod 755 bmxtg.py). You should then be able to run it via ./bmxtg.py from the directory in which it is installed.
How and where do we install this?
Hi Josh:
You can copy it to your home directory and run it from there if you like.
Hi Dan:
I put it in the /home/pi directory and when I click on the file a “text” file opens up. What am I doing wrong?
Josh:
That “text” file is undoubtedly the python program. Please see my response to Alberto above on how to run it.
Very nice job Dan,
I use dv4mini on Raspberry Pi 3. Your BMXTG works very well. Working with dv4mini is easy now.
Thank you.
73 de Pavel OK1PHU
Excellent work OM 😀 Can the buttons on the two touch pads be changed, to Brandmeister UK Reflectors eg : 4000 – 4999 ?. Thank you for reading 😀 Warmest regards Joe G7kdz
Joe —
As far as I know, each Brandmeister reflector has an associated talkgroup number. So you would need to learn those TG numbers and use them. It is just a different way of getting to the same place. For example, reflector 4639 is TG 91.
73