opengd77 codeplug generator
opengd77 codeplug generator
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
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
Re: opengd77 codeplug generator
Thanks for sharing
Re: opengd77 codeplug generator
Very interesting, just think about him working together with the CPS itself. It would be cool!ve2wkr wrote: ↑Wed Oct 16, 2024 8:09 pmHello,
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
Re: opengd77 codeplug generator
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
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
Re: opengd77 codeplug generator
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
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
Re: opengd77 codeplug generator
Here is the correct prompt for Germany:DM5UE wrote: ↑Tue Dec 17, 2024 1:46 pmthanks 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
Code: Select all
python codeplug_generator.py --countries "Germany"73
Re: opengd77 codeplug generator
Thanks for your work!
Is it possible to add GPS coordinates (ROAMING) by city to your PY script using this API?
Thanks again, 73!
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"
]
}
]
Is it possible to add GPS coordinates (ROAMING) by city to your PY script using this API?
Thanks again, 73!
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"
]
}
]