Importing DMRhub Contact Lists into OpenGD77, AnyTone and TYT
Every time a new network member builds a codeplug from scratch, they spend dozens of minutes manually typing in the same talkgroups and operator callsigns. DMRhub offers ready-made network contact lists in your account (/contacts) — download the right format, import it into your CPS, and all the current groups and users are already in your radio. On this page we'll go through exactly how to do this for the three most common platforms.
What a contact list is and why you import it
In DMR terms, a contact is a record of "name + DMR ID + call type". There are two kinds of records:
- Group Call — a talkgroup. Your voice goes out to everyone listening to that group on the master server.
- Private Call — a specific operator by their personal DMR ID.
A contact list is a CSV file with such a list, ready to be loaded into a CPS. Don't confuse it with the callsign database (userdb / DMR ID database) — these are different things. The callsign database contains hundreds of thousands of records and is only needed so the radio can label an incoming ID on the display ("who's calling"). A contact list is your working list of groups and subscribers, dozens or hundreds of rows — and it's exactly what you enter manually or import from a DMRhub file.
OpenGD77 CPS: CSV import
OpenGD77 CPS works through a CSV file. The format is strict: the first line is a header that the program reads literally and must not be changed. Column order:
#,Name,ID,Type,TS Override,DTMF ID
A typical row for a talkgroup:
1,Local DMRhub,9,Group Call,None,0
Where:
- # — sequential number, continuous from 1;
- Name — displayed name (up to 16 characters);
- ID — numeric DMR ID of the talkgroup or operator;
- Type — Group Call for a talkgroup, Private Call for a private contact;
- TS Override — timeslot override, usually None;
- DTMF ID — 0 in most cases.
Steps:
- In OpenGD77 CPS open the Contacts tab.
- From the menu select File → Import CSV → Contacts.
- Point to the downloaded file dmrhub_opengd77.csv.
- The CPS will offer an append or replace mode — choose as appropriate. On replace, the old contacts will be deleted.
- Review the list and write the codeplug to the radio.
AnyTone CPS: Digital Contacts import
AnyTone (D868UV, D878UV, D578UV and others) stores contacts in the Digital Contacts section. The import is done through a CSV with five columns:
No.,Radio ID,Name,Call Type,Call Alert
An example row for a group:
1,9,Local DMRhub,Group Call,None
- No. — sequential number (with a period — exactly like that);
- Radio ID — numeric ID;
- Name — name up to 16 characters;
- Call Type — Group Call or Private Call;
- Call Alert — usually None.
Steps:
- Open AnyTone CPS and read the current codeplug from the radio (or create a new one).
- From the menu select Tools → Import.
- In the window that opens click Digital Contacts and point to the file dmrhub_anytone.csv.
- Confirm the import. Existing contacts will be appended to or overwritten — check the behavior in your version of the CPS.
- Write the codeplug back to the radio.
TYT (MD-380, MD-390, MD-UV380): importing contacts
TYT uses its own CPS, and the CSV format differs slightly from AnyTone. A typical header:
No,Name,Call_ID,Call_Type,Receive_Tone,Ring_Style
Example:
1,Local,9,Group Call,0,None
Steps:
- In TYT CPS open or create a codeplug.
- Go to Contacts (or Digital Contact, depending on the CPS version).
- Via the File → Import menu or the Import CSV button, select the file dmrhub_tyt.csv.
- Review the list — in older MD-380 CPS versions the radio's contact limit is about 1000 records.
- Write the codeplug.
The difference: contacts vs callsign database (userdb)
Beginners often confuse two different files. It's important to understand the difference:
- Contact list (what we import above) — a small list of talkgroups and operators of our network. It's exactly what determines which groups you can transmit on and what you see in the menu. The DMRhub file contains precisely this.
- Callsign database / userdb (in OpenGD77 — "Write DMR IDs", in AnyTone — "Radio ID List" or a separate file) — a huge file with hundreds of thousands of rows containing every registered DMR ID in the world. It's only needed so the radio's display shows the callsign of an incoming caller instead of just their number. This file is updated separately and is not provided in your DMRhub account.
Import the contact list — you get the groups you need. Load the userdb — you get labels on incoming calls. One does not replace the other.
Common mistakes and troubleshooting
Contacts imported, but aren't visible in the channel
Having a contact in the list doesn't mean it's automatically linked to a channel. After the import you need to go into each channel's settings and select the needed group from the imported ones in the Contact (TX Contact) field. Likewise, update the RX Group List if you want to hear these groups on receive.
Cyrillic shows up as "?" or "□" characters
An encoding problem. For TYT — convert to Windows-1251 (ANSI). For OpenGD77 and AnyTone — leave it as UTF-8. Don't open the CSV in Excel by double-clicking — Excel may misdetect the encoding; use Import from Text with an explicit UTF-8 setting.
The CPS says "invalid format" or won't read the file
Check the delimiter: open the CSV in a text editor. If you see commas between fields — a comma is required; if semicolons — a semicolon. Different CPS versions for the same radio may expect different delimiters. If necessary, replace it in Notepad++ via "Find and Replace" (Ctrl+H).
Sequential numbers are broken
In OpenGD77 CPS and TYT, the numbering in the first column must be strictly sequential: 1, 2, 3… Gaps or duplicates will cause an error or silent truncation of the list. If you edited the file by hand — recount the numbering.
The DMRhub contact list is already waiting for you
All the network's current talkgroups and operator callsigns — in a single file tailored to your radio. Download the right format in your account, import it following the guide above, and get on the air. No DMR ID? Registration through the portal issues a private number from the 10,000,000+ block in a couple of minutes.
Sources
- OpenGD77 CPS: CSV features documentation (G4EML) — opengd77.com
- OpenGD77 User Guide (LibreDMR) — github.com/LibreDMR/OpenGD77_UserGuide
- AnyTone AT-D868UV Programming Guide v1.25 — sbarc.org
- Tytera MD-380: import contacts (IZ2UUF) — iz2uuf.net