Building doc for OpenGD77 way of doing Talkgroups etc

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Wed Sep 09, 2020 11:09 am

I'm trying to write some docs about how to think about TGs etc in OpenGD77. I'd appreciate any corrections, clarifications, criticisms etc anyone may like to add to what I'm doing in this thread. I aim to have a diagram, definitions, workflows, and usecases when I'm done. Hopefully to help people make effective codeplugs.

[Edit: - growing doc is here: viewtopic-1230-10875]

I'd like to start with Zones and Contacts:
suggestions please.


Zones:
A zone points to multiple Channels.
We can navigate between zones using Fn+<> and scan channels within the current zone.
A zone can be used to separate channels into useful groupings.
E.g.
- Geographically for (say) repeaters that can be reached from locations like Home etc.
- by mode - E.g. Analog and Digital.
- by usage - your AREC emcomm channels could be collected into one Zone. Or various Rx-only scanning lists.
- or for your local hotspot where you may have different functionality than from local repeaters.


Digital Contacts:
A Contact has a name and DMR ID and is either a Private, Group, or All call.
Private Contacts should be callsigns and DMR IDs.
Group contacts should be a Name and the TG number. E.g. Name=TG13 WW ENG, CallID=13
- The Name does not have to be the same as officially used but if it matches then the
- Lookup ID can find the DMR ID if the name matches exactly and only one is registered. (It checks radioid.net)

Questions:
I can't find any examples where "All call" is used. Can anyone clarify ?
If I add a DMR repeater as a channel, that repeater will also have a DMR ID. Is it useful to add this as a Private call Contact or is it unnecessary?
Last edited by Zl1XE on Sun Sep 13, 2020 9:17 pm, edited 3 times in total.

G4EML
Posts: 919
Joined: Sat Nov 16, 2019 10:01 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by G4EML » Wed Sep 09, 2020 12:39 pm

All call is not recommended for use on amateur networks. In fact some (most?) networks do not pass it on.

Repeaters have DMR IDs but these are not sent out over the air and are not used for call routing so there is no need to make them available.

Also don’t forget that OpenGD77 allows contacts to have the timeslot defined as well as the ID.

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Thu Sep 10, 2020 2:03 am

Thanks G4EML for the clarification.
Also don’t forget that OpenGD77 allows contacts to have the timeslot defined as well as the ID.
I can see that however that timeslot is set for the Talkgroup (and not for the channel).
It seems that many repeaters will not all agree on using the same timeslot for the same Talkgroup and so entering it here seems not useful.
Am I understanding that right ? or do we need to enter it twice, once for each valid TS.

G4EML
Posts: 919
Joined: Sat Nov 16, 2019 10:01 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by G4EML » Thu Sep 10, 2020 9:18 am

It depends on your requirements and personal preferences.

OpenGD77 allows you to assign a timeslot to a contact or to leave it undefined.

If you have repeaters that use the same talkgroup on both timeslots then it may be better to leave the timeslot undefined or even to to create two contacts with the same ID but different timeslots.

However many networks define which timeslot is used for each talkgroup. In that case it makes sense to assign the timeslot to the contact.

In either case you can always use the * key to select the other timeslot if you need to.

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Thu Sep 10, 2020 9:32 am

Thanks that is getting clearer.
I think actually my understanding would be improved by working out what the radio is doing in certain situations like the following:

1. If monitoring a channel and the TG is in the channels referenced TGlist then (ignoring filtering) the radio will report finding that TG regardless of the Timeslot it is on.
- In which case we only need one entry in Digital Contacts and (as you say above) the TS override for that entry is really an optimisation. The TG will be found regardless of TS setting.

2. Same situation as above but the TG is not in Digital contacts at all (e.g. a repeater has just added a new TG). In this case the TG will not be heard.

3. Is there any difference to the above when scanning?
4. Is there any difference if the radio is connected to a pi as a hotspot (I.e. you have two OpenGD77 radios) This question could have a lot more implications.

G4EML
Posts: 919
Joined: Sat Nov 16, 2019 10:01 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by G4EML » Thu Sep 10, 2020 3:14 pm

Answers depend on your filter settings...

1 and 2 Depend on the setting of the TS Filter and the DMR Filter.

If TS Filter is On then you will only hear traffic on the currently selected timeslot.
If TS Filtering is Off then you will hear traffic on either slot.

If DMR Filter is set to None then you will hear all talkgroups, even new ones you have not programmed.
If DMR Filter is set to RxG then you will only hear talkgroups that are in the TG List.
if DMR Filter is set to TG then you will only hear the talkgroup you have selected for transmission.

3. There is no difference when scanning.

4. If you are using the radio as a hotspot then none of the above applies. When in hotspot mode the radio is totally under the control of the MMDVMHost program. Channels, Contacts, Talkgroups and settings are not used in this mode.

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Fri Sep 11, 2020 10:07 am

This is super helpful thanks. Basically OpenGD77 is skipping all the complexity of commercial DMR and going back to simple repeater frequency based idea we are all familiar with.

I like that the all the DMR specific aspects (TG, TS, CC) are filterable but you can hear everything on a repeater if you want to - so unlike commercial DMR. So much complexity in generating codeplugs turned into something simple.

Working on the docs.

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Fri Sep 11, 2020 11:44 am

Accumulating docs for understanding and creating OpenGD77 codeplugs.
Feedback please. I fully expect some of this to be not quite correct.
Diagram/Cheatsheet inserted.


DMR - Commercial design vs Amateur Radio needs

DMR was designed for commercial radio networks where groups of people communicate on shared repeaters
with no idea that others are sharing frequencies.
The Amateur radio community instead works on a repeater frequency based approach where all traffic
on the repeater can be accessed by anyone.

OpenGD77 uses a clever filtering system to enable the privacy based system of DMR Talkgroups, Timeslots,
and Channels to be easily accessed by Radio Amateurs while keeping the DMR design concepts.
This means changing the way traditional DMR codeplugs are made into a simpler but more sophisticated model.

Radio Amateurs are used to a repeater channel having split Tx and Rx frequencies.
DMR adds two timeslots, and a label(Talkgroup) and color code to identify the channel.
OpenGD77 will hear all of the traffic on the frequency and filter it based on the operator's settings.
Resulting in the operator hearing only some of the information.
However all of it can be selectively accessed.

Basic:
The simplest codeplug will have channels setup (one per repeater) with the Tx,Rx frequencies, CC and
an empty Talkgroup list (i.e. no digital contacts).
These channels can be organised into zones (perhaps geographically).
With this basic setup, and filtering turned to None, all Talkgroups on all Timeslots can be heard on all channels.
You can switch to a specific Timeslot with the * key.
You can select a specific Talkgroup using the # followed by the TG number.
So you can hear all traffic but this may be more than you want.

A more useful codeplug would include a Talkgroup list containing all of the known Talkgroups.
These are defined using Digital Contacts.

Refinements:
Useful refinements to the codeplug would be:
- Separating all of the channels into geographic zones.
- Noting if specific talkgroups were always on the same Timeslot (common on some networks).
- Adding additional private DMR Ids for people with callsigns in your region.
- Creating a set of Zones, Channels, and TGlists for specific purposes such as the local/country emergency communications network.

Filtering:
Filtering in DMR mode is done using the Orange button menu.
Filtering can limit the large number of communication channels in the Zone.
E.g.
- None (for no filtering, i.e. "promiscuous" mode).
- RxG (filter by Talkgroups in the TG list)
- TG (filter by the selected Talkgroup)
- Ct (filter by Private Call Contacts in the codeplug)
and the extra filtering modes:
- CC Filter - filter by color code
- TS Filter - filter by Timeslot

So Filtering="None" will let you hear everything and "RxG" is a good default if a TG list has been created.
When operating, The user can switch the Tx to match an RX channel by pressing the Fn key.
If the LCD screen is inverted then this indicates that the Tx and Rx are not currently the same
and to talk on that Channel you will need to switch to it.

Lets look at the 4 specific areas of the OpenGD77 codeplug:
Zones, Digital Contacts, TGlists, and Channels.

Image

Zones:
A zone points to multiple Channels. Channels can appear in many zones.
We navigate between zones using Fn+<>
A zone is used to separate channels into useful groupings. E.g.
- Geographically for repeaters that can be reached from a location.
- by mode - E.g. Analog and Digital.
- by usage - perhaps your AREC Emcomm channels are in their own named set of zones.

Digital Contacts:
A Contact has a name and DMR ID and is either a Private call, Group call, or All call.
( All call has no valid use for Radio Amateurs.)
Private Contacts should be callsigns and DMR Ids.
Group contacts should be a Name and the TG number. E.g. Name = "TG13 WW ENG", CallID = 13
- The Name does not have to be the same as officially used but if it is then:
- Lookup ID can find the DMRID if the name matches exactly and only one is registered. It checks radioid.net
There is an Override Timeslot. Use this if the TS is the same on most repeaters that offers this TG.
You can add two entries - one for each Timeslot if you intend to use RxG as your primary Filter mode.
- The * key will jump to the other TS dynamically when the Channel is selected.

TG Lists:
This is made from the list of Group call Digital Contacts.
You may need only a single TG list with all of the Digital channels in it.
You may also elect to separate DMR MARC, TGIF, Brandmeister, etc into individual TG lists so you can keep their traffic
independent of each other and navigate their networks clearly.

Channels:
This is where we specify frequencies. Analog and Digital.
Digital repeaters have a Tx,Rx split and color code (which can be used when filtering).
If you assign a TGlist then Filtering using RxG will use this list when you are on this channel.
Analog channels have Tx,Rx splits, bandwidth and Tone settings instead of DMR parameters.
It can be useful for Digital channels to create a duplicate entry - one for each Timeslot on that frequency.
This enables cleaner TG lists when traversing networks like DMR MARC.

Note1:
Scanning a set of "Rx only" frequencies. Perhaps you are monitoring Maritime emergency channels.
"Rx only" can be set on a Channel preventing accidental transmission.
Each Zone can have a maximum of 80 channels. So organizing scanning frequencies is important.

Note2:(from G4EML)
The OpenGD77 CPS allows you to optionally define the timeslot for each talkgroup. This is one of the amateur friendly enhancements.
When you enter the talkgroup in the Digital Contacts screen you can select the Channel TS Override to 'Disabled', TS1 or TS2.
Disabled means that it will use whatever timeslot is defined for the channel. TS1 or TS2 means that it will automatically switch to that timeslot.

A talkgroup that can be used on either timeslot would therefore be set to disabled.
A talkgroup that should only be used on one timeslot would be set to that timeslot.

If you need to you can also define a talkgroup twice, one set to TS1 and the other set to TS2. In this case it would make sense to include the TS as part of the talkgroup name.

If you have different timeslot requirements for different repeaters then you can have a different TG List for each containing the necessary talkgroups.

None of these features prevents you from manually changing the timeslot using the * key.

Making a codeplug from scratch:
The simplest method has been discussed above. This is a more comprehensive and arguably more useful method.
1. Survey all of the digital repeaters and gather the Talkgroup ids and Timeslots into a list.
Do not be concerned with the frequencies yet.

2. Create a Digital Contact entry for each Talkgroup.
These will be Group calls not Private calls.
If a Talkgroup always uses the same Timeslot then set it.
If a Talkgroup uses both Timeslots then make two entries.

3. Add personal Callsigns as Private calls at any stage in this process.
Here you just want to put callsigns of people you call regularly.
Do not put in all of the DMR ids in your region. Your radio will hold these in separate memory.
Use the Extras/DMR id menu if you want to do that.

4. Make a single TG list. This will be used by every digital channel.
Put all of the talkgroups into it.
If you use (say) DMR MARC and Brandmeister then you can make a TG list for each Network.

5. Add channels for each repeater and for simplex.
Add the Tx and Rx frequencies
When Digital:
- Add the color code of the repeater and choose the TG list made in step 3.
- The Contact is not used currently.
- If there are different networks on the same repeater then you might duplicate the Channel and make an extra TG list for that network.
When Analog:
- Add the bandwidth and tone settings where applicable.

Save the codeplug and when uploaded switch default Filtering to RxG.

Remember:
- * will swap to the other Timeslot.
- #TGid<menu> will override to a specific talkgroup on your channel/VFO frequency.
- ##DMRid<menu> will start a private call.
- ### will show a list of all Private calls defined in the codeplug.
- Further filtering is available through the Orange button menu. (including None which allows all).
- Fn+* will swap between DMR and Analog for that channel.
- DMR MARC (Motorola) cannot handle Talker alias packets that BM can.
- If you use the Motorola network make sure TA Tx is off. TA Tx should generally only be used on Simplex.
- TA Tx is enabled in the Options menu on the radio.
Last edited by Zl1XE on Wed Feb 10, 2021 11:27 pm, edited 15 times in total.

User avatar
Zl1XE
Posts: 110
Joined: Fri Jul 24, 2020 12:25 am

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by Zl1XE » Sat Sep 12, 2020 5:14 am

Can anyone indicate a usecase for having multiple TGlists ?

It seems like having none means you have total manual control but its going to be noisy.
Having a single list which every channel points to is a good default and then using RxG as the Filtering.

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

Re: Building doc for OpenGD77 way of doing Talkgroups etc

Post by VK3KYY » Sat Sep 12, 2020 9:26 am

Zl1XE wrote:
Sat Sep 12, 2020 5:14 am
Can anyone indicate a usecase for having multiple TGlists ?
Different networks. BM and DMR MARC and TGIF etc

Post Reply