Work to develop a new CPS for DG4KLU’s open source GD-77 firmware is progressing rather slowly, because I’ve had other things to do, including fixing some bugs in the firmware.
But after discussing the requirements with a few people, I’ve designed this basic data structure.
I’m not sure if I’ve included all the necessary attributes of a channel, for use on both DMR and FM, but I think its probably good enough to perhaps start the CPS and firmware programming.
For those unfamiliar with database design, I’ve structure the data, each of the blocks in the diagram are called a Table.
The tables, which all DMR users will be familiar with are the Channel, Contact and the Scanlist.
I’ve renamed the Zone to be a channel group, because I think that the term Zone is not very applicable to Amateur Radio use, where we would be more likely to group channels by their frequency band, or their mode (DMR / FM) or some other criteria, rather than by geographical area.
However if this is a name change too far, I could easily rename the Channel Group back to Zone. Since the struture of the data would be the same regardless of the name given to groups of channels.
The other Table which I have renamed is the RxGroup, which I had to rename to TRxGroup, because this group will need to control both the Tx and Rx Talkgroup used by the radio.
I have retained the “Contact” for DMR channels, but I’ve renamed it to ChannelDMRTG, because I think this more accurately describes how Amateur Radio operators use the “Contact” field in the existing GD-77 CPS, where they normally transmit on a TalkGroup, rather than to an individual contract.
This does not rule out the DMR TG being set to a Contact which is a Private Call, so I’m still undecided about what name to give this.
So that the new CPS and firmware, is not constrained to a specific number of Channels per ChGroup (aka zone), I have added intermediate tables, like Channels2ChGroup.
Likewise for Channels2Scanlist, and Contacts2TRxGroup
The only limiting factor will be the total overall size of the database which will need to be uploaded to the radio, but since we will no longer need to duplicate the same DMR channel for every TG that is used on that channel, this drastically reduces the number of channels that are required.
So even though the GD-77 only has just over 1M byte of storage for both the codeplug and the DMR ID database, it limitation will only be on the number of DMR ID’s that can be stored.
Hopefully as time goes by and Talker Alias becomes better supported by other radios and networks, the need for the DMR ID database will reduce, so that the 1Mb memory in the GD-77 lo longer becomes a major limitation.
In fact, I’ve already started work on supporting Talker Alias display in Kai’s firmware.
Its possible that I have overlooked something which I need to store, so I’d appreciate any comments on both the structure, table names and also the individual items in each table.