opengd77 codeplug generator

Post your OpenGD77 codeplugs here
ve2wkr
Posts: 74
Joined: Thu Oct 22, 2020 11:29 pm
Location: Silverthorne, Colorado, USA

opengd77 codeplug generator

Post by ve2wkr » Wed Oct 16, 2024 8:09 pm

Hello,
Given the amazing features of the latest opsngd77 code, that includes a repeater location , and roaming features I’ve made codeplug loading into CPS simpler. This program auto-generates CSV files, which can be imported into the OpenGD77 CPS using the File -> CSV -> Append CSV function.

How it works:
When you run the codeplug generator, it retrieves repeater details from radioid.net for one or more areas (defined by city, state, or country). It then attempts to find the repeater's location on brandmeister.network, though this process can be slow due to limited APIs. If the repeater is not a Brandmeister repeater or its location isn’t found, the program uses map data from radioid.net.

This functionality allows your OpenGD77 radio to sort repeaters by distance when GPS is enabled, making it easy to quickly find local repeaters. Additionally, you could automatically program a roaming zone for specific networks, like NEDECN.

The program currently supports Brandmeister, TGIF, ADN, and DMR+ networks by default. Other networks can be added via the command line. Keep in mind, you need a Talkgroup (TG) list that matches the network name (e.g., BM, NEDECN, DMR-PLUS, etc.), or the TG will be empty on your radio, and you’ll have to input it manually using the # key.

example:
codeplug_generator.py --states "new york","new hampshire",massachussets,vermont,connecticut,"new jersey" --additional-networks nedecn

The code is available on github with this link:

https://github.com/lmartini/opengd77-co ... -generator
( in the Code button select "Download ZIP")

I’ll update this as time allows. If you need assistance, I sometimes monitor OpenGD77 BM TG 98977 during US daytime. (Please note: I know very little about Windows, as I’m primarily a Linux expert.)

To repeater owners:
Please make sure your repeater info on radioid.net is correct to help us automatically build accurate codeplugs.

73’s,
Luca
VE2WKR

VK3KYY
Posts: 8682
Joined: Sat Nov 16, 2019 3:25 am
Location: Melbourne, Australia

Re: opengd77 codeplug generator

Post by VK3KYY » Wed Oct 16, 2024 11:29 pm

Thanks for sharing

PU7PZB
Posts: 15
Joined: Thu Aug 10, 2023 3:09 pm
Location: Fortaleza/CE - Brasil
Contact:

Re: opengd77 codeplug generator

Post by PU7PZB » Fri Oct 25, 2024 4:07 am

ve2wkr wrote:
Wed Oct 16, 2024 8:09 pm
Hello,
Given the amazing features of the latest opsngd77 code, that includes a repeater location , and roaming features I’ve made codeplug loading into CPS simpler. This program auto-generates CSV files, which can be imported into the OpenGD77 CPS using the File -> CSV -> Append CSV function.

How it works:
When you run the codeplug generator, it retrieves repeater details from radioid.net for one or more areas (defined by city, state, or country). It then attempts to find the repeater's location on brandmeister.network, though this process can be slow due to limited APIs. If the repeater is not a Brandmeister repeater or its location isn’t found, the program uses map data from radioid.net.

This functionality allows your OpenGD77 radio to sort repeaters by distance when GPS is enabled, making it easy to quickly find local repeaters. Additionally, you could automatically program a roaming zone for specific networks, like NEDECN.

The program currently supports Brandmeister, TGIF, ADN, and DMR+ networks by default. Other networks can be added via the command line. Keep in mind, you need a Talkgroup (TG) list that matches the network name (e.g., BM, NEDECN, DMR-PLUS, etc.), or the TG will be empty on your radio, and you’ll have to input it manually using the # key.

example:
codeplug_generator.py --states "new york","new hampshire",massachussets,vermont,connecticut,"new jersey" --additional-networks nedecn

The code is available on github with this link:

https://github.com/lmartini/opengd77-co ... -generator
( in the Code button select "Download ZIP")

I’ll update this as time allows. If you need assistance, I sometimes monitor OpenGD77 BM TG 98977 during US daytime. (Please note: I know very little about Windows, as I’m primarily a Linux expert.)

To repeater owners:
Please make sure your repeater info on radioid.net is correct to help us automatically build accurate codeplugs.

73’s,
Luca
VE2WKR
Very interesting, just think about him working together with the CPS itself. It would be cool!

ve2wkr
Posts: 74
Joined: Thu Oct 22, 2020 11:29 pm
Location: Silverthorne, Colorado, USA

Re: opengd77 codeplug generator

Post by ve2wkr » Tue Nov 26, 2024 5:15 pm

I updated the codeplug generator to use the new BM api v2. So it is now much faster, and more repeaters will get their location set. Also it no longer uses any web scraping or selenium.
I also have a web page based version which I have not published yet. I'm still working out the kinks such as a BM API ban when used too much.

73's
Luca

DM5UE
Posts: 2
Joined: Tue Dec 10, 2024 9:17 am

Re: opengd77 codeplug generator

Post by DM5UE » Tue Dec 17, 2024 1:46 pm

thanks for your work.
fetching a list for Germany gives an error, or do I use this wrong:

codeplug_generator.py --countries germany
Loading data from local file map.json (less than 24h old)
Traceback (most recent call last):
File "codeplug_generator.py", line 477, in <module>
main()
~~~~^^
File "codeplug_generator.py", line 459, in main
repeaters = fetch_repeaters(states, cities, countries)
File "codeplug_generator.py", line 357, in fetch_repeaters
params.extend([('country', Germany) for country in countries])
^^^^^^^
NameError: name 'Germany' is not defined

TA1ECA
Posts: 41
Joined: Thu Sep 29, 2022 7:55 pm

Re: opengd77 codeplug generator

Post by TA1ECA » Wed Dec 18, 2024 6:35 am

DM5UE wrote:
Tue Dec 17, 2024 1:46 pm
thanks for your work.
fetching a list for Germany gives an error, or do I use this wrong:

codeplug_generator.py --countries germany
Loading data from local file map.json (less than 24h old)
Traceback (most recent call last):
File "codeplug_generator.py", line 477, in <module>
main()
~~~~^^
File "codeplug_generator.py", line 459, in main
repeaters = fetch_repeaters(states, cities, countries)
File "codeplug_generator.py", line 357, in fetch_repeaters
params.extend([('country', Germany) for country in countries])
^^^^^^^
NameError: name 'Germany' is not defined
Here is the correct prompt for Germany:

Code: Select all

python codeplug_generator.py --countries "Germany"
Thank you for this wonderful script @VE2WKR
73

ve2cuz
Posts: 4
Joined: Sat May 24, 2025 10:58 pm

Re: opengd77 codeplug generator

Post by ve2cuz » Sun Jun 22, 2025 3:44 am

Thanks for your work!

Is it possible to add GPS coordinates (ROAMING) by city to your PY script using this API?

Thanks again, 73! :D

https://operations.osmfoundation.org/po ... nominatim/

https://nominatim.openstreetmap.org/sea ... ormat=json

reponse json =

[
{
"place_id": 342728519,
"licence": "Data © OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"osm_type": "relation",
"osm_id": 7698652,
"lat": "45.7780402",
"lon": "-74.0033272",
"class": "boundary",
"type": "administrative",
"place_rank": 16,
"importance": 0.464032037502361,
"addresstype": "city",
"name": "Saint-Jérôme",
"display_name": "Saint-Jérôme, La Rivière-du-Nord, Laurentides, Québec, Canada",
"boundingbox": [
"45.7433599",
"45.8503960",
"-74.1438790",
"-73.9476576"
]
}
]