Using C4FM and Pi-Star for DMR Talkgroups

About a year ago (or so), I picked up an AnyTone AT-D878UVII Plus HT and a Bridgecom hotspot to get on DMR and try it out. The AT-D878UVII Plus HT can be used for both DMR and analog FM. It has enough memory to store 500,000 contacts, plenty of room for channel programming (code plug), and customizable in many ways. This DMR HT can be used either by itself directly with a DMR repeater or with a hotspot to get into a talk group.

AnyTone AT-D878UVII Plus

The AnyTone HT is among several HTs that I owned. Each HT usually has a unique purpose, and in this case the AnyTone was used only for DMR. I have several other HTs for analog FM as well as the Yaesu FT5D which I use as my primary portable radio.

I ended up selling the AnyTone HT since I really did not use talk groups all that much, and I did not use any DMR repeaters with the HT. However, I can continue using talk groups on various networks using my C4FM radios. This article explains not only how I accomplish this, but I also provide a bit of a background on DMR, networks, and hotspots in case you are not familiar with these details.

With my experimentation and learning about DMR, I now know quite a bit more about how it all works. If I knew then what I know now, I would not have purchased the AnyTone HT and hotspot. Instead, I would have built a hotspot and used it with my FT5D.

DMR Background

Without getting too far into the weeds about what DMR is and how it works, some explanation is necessary to simplify and identify the pieces of the puzzle. DMR was not designed for amateur radio. It was designed for public service use and as a means to pack more communication capability into the same bandwidth. Amateur radio adapted DMR as an option.

DMR is unlike other protocols specifically designed for amateur radio such as C4FM/Wires-X and D-STAR for example, in that it is molded to fit amateur radio. One such example is that the version of DMR we use does not have the concept of a call sign, only a radio ID. Because of this, we now have to manage large lists of “contacts”, either in the radio itself, or by lookup on demand. More on this later.

DMR is simply an RF protocol which involves several components. First, it takes a single slice of bandwidth such as a simplex frequency or repeater frequency pair and divides it into two slices or two “channels”. In DMR terms, these are referred to as “time slots”. This is an example of Time Division Multiple Access or TDMA. The transmitter actually turns on and off very quickly. This allows two separate transmitters on the same frequency to coexist within the same bandwidth, each alternating its transmitting time slot. DMR is FM modulated, taking no more bandwidth than a standard “wide” channel voice allocation on FM.

TDMA is not useful for analog or phone modulation because you would hear a choppy half-on half-off type of transmission. However, for transmitting a digital stream such as encoded voice or data, it can be decoded and converted to a continuous audio stream.

DMR allows a repeater to host two separate conversations simultaneously on a single frequency pair. These can either be two different talk groups connected to a network, or, instead of a network talk group, two separate conversations that are local to that repeater only. Many repeaters will have one time slot for talk groups on a network and the other time slot as a local channel. To participate in one or the other, you would simply change time slots. In fact, one of the primary benefits of DMR is that it doubles the number of conversations that can occur simultaneously within the same bandwidth.

Talk Groups

A talk group can be thought of as a “party line” where multiple operators can join or subscribe and participate in a group discussion. This usually involves a method to connect multiple repeaters or hotspots together using a network such as the internet to distribute the audio stream. The talk group could be labelled with a subject such as “Tech Talk” identifying it from other talk groups. Talk groups also have a number assigned to them, but more on that later.

A repeater in this example could be a traditional 2-meter repeater site with a geographical advantage such as height and some power to be heard over a large coverage area. Or, a “hotspot” is used, which is nothing more than a low power version of a traditional repeater (most often simplex). More on this later.

The concept of a “talk group” isn’t unique to DMR. D-STAR, Wires-X, EchoLink, and AllStar, for example, share similar aspects – they all provide a way to link multiple nodes or repeaters together to bring more sites into a conversation, room, channel, or talk group. Each type of network has it’s equivalent of talk groups.

At this point, I’ve separated DMR and talk groups or linked nodes from each other, as they are separate pieces. In fact, linked repeaters have been effectively creating “talk groups” for quite awhile before DMR came into amateur radio. Many repeaters all over the country have been able to be linked together, either on-demand or statically. Sometimes this is regional, in order to increase the coverage area of group or club repeater system. Other times repeaters are linked to join a larger “net”, then disconnected when the net is over.


Since a talk group is simply a link between several repeaters and/or hotspots based on a topic, the method in which those repeaters are linked use a server, or in amateur radio DMR terms, a “network”. A network may host hundreds of talk groups and publish a list or directory of them. The network is the means by which all of the repeaters and/or hotspots can subscribe to the hosted talk groups on-demand and link each site together.

In amateur radio, several networks exist such as BrandMeister, TGIF, DMR-MARC, YSF, and many others. A network can even be something regional or it can be private. A network is simply a “host” which allows sites to connect into and subscribe to a talk group.

Not only are there several DMR networks, networks exist for other technologies and protocols such as D-STAR and Wires-X for example. Some are hardware restricted, requiring compatible radio equipment, while others are “open” allowing for gateway or bridge connections.

Control Methods

Back in the 80s and 90s, “auto patch” or phone patch was popular with 2-meter repeaters. This allowed someone with an HT to use a repeater to call home. This was done using the DTMF keypad on the HT to command and control the repeater to start the phone patch, dial a number, and hang up.

DTMF can also be used to connect and disconnect repeaters (link and unlink), change settings, or otherwise send commands. At the time, DTMF was an inexpensive analog way to send control signals over the same audio channel as voice. Almost all HTs and mobile rigs eventually were outfitted with a numeric keypad which could be used to send DTMF tones. Some even had “memories” to store DTMF sequences so that you did not have to remember the control codes for certain tasks.

DMR has it’s own form of control methods. DMR not only encodes an audio stream and sends it digitally over a time slot, it also squeaks in some data which can be used as control commands. Some of that data includes the talk group number, color code, radio ID, and more.

When you key up a DMR transceiver, it sends this data along with your audio stream. A DMR receiver then can decide to open its digital squelch based on this data. In the case of a repeater, it can decide whether to forward your audio stream over the air or not, similar to how a PL or CTCSS works over an analog signal. A repeater or hotspot might allow switching talk groups based on the talk group number it has received on the incoming transmission. This is most often how you change talk groups and/or networks on a hotspot, simply by keying up with a specific talk group number, often times a channel is programmed for each talk group in the “code plug” downloaded into the radio.

Note that the talk group number is used here, not the name. This is why each talk group on a network will have a number assigned and this requires a directory of some sort to be published in order to know which talk group number to direct the audio and data stream to the intended group.

Alternatively, Wires-X and D-STAR were designed specifically for amateur radio and therefore are built around ad-hoc connections. For example, both of these protocols provide control methods to join a room or talk group directly from a menu system on the transceiver. There is no need for a code plug or programming on the radio. This is certainly more convenient.

Comparing DMR to Wires-X and D-STAR in this example is a bit unfair, since DMR was not designed for ad-hoc configuration, nor amateur radio use. It was intended for public service communication where radios are programmed and issued, rarely if ever to be changed. Another example of this type of deployment methodology is that public service radios have no VFO and no direct entry or programming possible on the unit itself. Operators using such transceivers need “point and shoot” type of simplicity with their radios and communication.


In amateur radio, we identify ourselves with our FCC issued call sign. However, this is not the case in DMR. Note that I mentioned radio ID in a previous paragraph. Each DMR radio has an ID or a unique number assigned. This number is sent with each transmission from the radio. This is why, in DMR for amateur radio, you need to apply for and get a radio ID assigned to you. There could be more than one source or directory for these IDs, but the one we have standardized on is This directory simply assigns unique numbers out to licensed Amateurs, and publishes these assignments. For example, this directory is simply the radio ID (a number) and the call sign associated to it.

This is why having a DMR radio with ample “contacts” memory is useful. It allows you to download this entire directory and store it in the radio. Your radio can then show you the call sign instead of the radio ID from an incoming transmission. Otherwise, you’ll see just a number. This directory is updated often, and, you will need to update your radio often.

Alternatively, rather than storing every single assigned radio ID, you can store only the contacts that you chat with.

Other technologies such as Wires-X and D-STAR have their own radio ID database as well. Each one is independently operated and published. However, both C4FM and D-STAR send the actual call sign in the data stream, eliminating the need for “contacts” to be stored in the radio. The purpose of the radio ID in this case is to grant permission for the radio to join a network or gateway. These radio IDs are more like a unique serial number for the device, rather than an operator ID.

I have heard some debate over whether you still need to identify every 10 minutes and at the end of a conversation when using a digital mode such as C4FM, DMR, or D-STAR. My opinion is yes, absolutely. Here’s why:

Because DMR does not actually contain your call sign in the digital data stream, nobody receiving it can identify you. All that is present is a radio ID. One would need to assume a directory to translate or look up your radio ID to get your call sign.

In addition, due to the nature of bridged connections, while you may think you are transmitting to a hotspot or repeater, and call signs may be present in the data stream (C4FM and D-STAR), there may be a bridge between the talk group or repeater you’re connected to and another site, which may either not translate or drop the digital information stream, or it may be broadcast somewhere over an analog output. You may not even be aware that your transmission is being rebroadcast over another network or analog repeater.

This is why you would still need to identify yourself just as you would over an analog transmission.


Hotspots became popular recently as a means to connect to a network and talk group if you do not have a DMR, Fusion, or D-STAR repeater close by that you can reach directly. The hotspot is simply a device with RF interface on one side and a TCP/IP interface on the other (either wired or wireless). The software in the middle varies depending on the device. A hotspot may not be able to connect to private networks, as this depends on the network operators and if they would allow a hotspot device to connect to it and if the hotspot software supports its protocol.

One advantage of a hotspot is to provide for a way for you to connect to a network when you do not have a local repeater option. Another advantage of a hotspot is that it can connect to any compatible network and talk group you wish to use, and without tying up a repeater. You may have a DMR repeater near you, but it might not be on the same network you wish to use. Or, the repeater operators have static talk groups or a defined list of talk groups they allow. A hotspot is effectively a smaller version of a repeater that you can control. It allows you to connect to a talk group any time you wish, without disconnecting others from their talk group on a local repeater.

Hotspots are extremely limited in terms of power output (by default). These typically work up to several hundred feet at best and are either simplex or full duplex. A simplex hotspot can either transmit or receive at any given time. A full duplex hotspot can both transmit and receive at the same time, much like a traditional repeater. This allows you to send the hotspot control commands while a talk group is active. With a simplex hotspot, you cannot switch talk groups until the transmission from the hotspot stops. Some talk groups have little to no breaks for minutes. The alternative is to use a full duplex hotspot or control the hotspot from an app on the phone and/or it’s web interface.

There are many different types and brands of hotspots. SharkRF, RFinder, and Pi-Star are different types of hotspots or platforms with varying features. I have experience with only Pi-Star, which is unique in that it is open source and it can be heavily customized, configured, and expanded if needed. Pi-Star can, for example, be installed onto a Raspberry Pi. You can purchase a ready-made Pi-Star hotspot such as the Bridgecom SkyBridge, or you can build your own.

Depending on the hotspot, it may or may not support multiple networks (BrandMeister, TGIF, DMR-MARC, YSF), protocols (D-STAR, C4FM, DMR, P25) or other features. Some have built in batteries for portability, some have both WiFi and RJ45 (or just WiFi) for the TCP/IP connection, and some are more “plug and play” than others.

Piecing it all Together

Now that I’ve separated DMR from talk groups or linked nodes, I can piece back together what is actually going on when we use a DMR radio to chat on a talk group.

Regardless of whether you use a DMR radio on a hotspot or repeater, when you key up, you need to have the correct time slot, color code, talk group and other settings correct. Same with the receiver. If you don’t, your transmission might not be forwarded or accepted, and/or your receiver might not open the digital squelch to hear the response.

With most DMR amateur systems, whether it be a hotspot or repeater, whatever talk group number your radio sent out at the beginning of your transmission usually results in the repeater or hotspot switching to that talk group, if it’s not already connected to it. Some repeater owners will limit the talk groups they allow, or they will publish their own list of talk groups for their network. Some will have “static” talk groups defined for one or both time slots for example, which prevents switching to different talk groups.

You have probably heard the term “code plug” with respect to DMR. It’s simply a configuration of one or more channels for the DMR radio, each with a transmit and receive frequency, talk group, color code, time slot, and other settings. The code plug is the entirety of these configured channels, zones, and contacts which are sent to the radio. Part of the code plug includes your radio ID and various other radio settings.

Different RF Protocols

At this point, I mostly used DMR as an example, which is a protocol, involving both RF and some control standards (talk group, color code, radio ID, etc). In Amateur Radio there are many different and competing protocols. For example, there’s DMR, P25, C4FM, D-STAR, and others. Each defines its RF and control characteristics.

What’s important to realize is each protocol has it’s own control characteristics, CODEC, and FM modulation format. Some of these protocols can work together without “programming” or code plugs. For example, it’s possible for two or more C4FM transceivers to communicate directly in simplex mode. Call signs and distance from each station are visible on the displays, and no previous exchange of information is necessary for the communication to take place.

DMR on the other hand would in theory require agreement or matching color codes, talk group, time slot, and other settings in order to carry on a simplex QSO. The alternative would be to leave the digital squelch open, allowing any transmission to be heard.


It’s not only possible to link two different protocols and networks together, it’s actually quite common. For example, talk groups are often linked across multiple networks. For example, links allow a Wires-X radio to join the same talk group as a D-STAR radio. Or, it can allow DMR, D-STAR and Wires-X radios to all join the same talk group. Each may be connected either to their own hotspot or a repeater, but there’s a link set up between the multiple networks. They will have different talk group numbers on each network, but they’ll have the same subject or identifier. This link is done at the software level, receiving and forwarding audio streams over each network. Sometimes links are done using actual hardware due to incompatible protocols or hardware restrictions on a network.

One thing to note is depending on how the link is set up, it may not forward or translate everything correctly. For example, you may see the same call sign on receive on a talk group regardless of who is actually transmitting. This is usually the call sign of the person who set up the link. They might have a very simple bridge either in hardware or software that just passes the audio channel, not a translation of radio IDs and/or call signs.

Other links might forward or translate radio IDs and call signs for a more complete experience.

Using C4FM for DMR Talkgroups

Now that I’ve rambled on about protocols, networks, and talk groups, what I explain next will make more sense.

Since I ended up using only a few talk groups on one or two networks, I sold my AnyTone HT and now use my Yaesu FT5D instead. I did not use any local DMR repeaters, and I found the voice quality of DMR to be like nails on a chalkboard. In fact, C4FM is also a bit rough to listen to after awhile, but I find it marginally better than DMR.

Since I had the FT5D and a Pi-Star hotspot, I was able to configure the hotspot to connect to several networks as needed, such as BrandMeister and TGIF and allow me to use the FT5D on C4FM instead of using a DMR radio. This means I do not need a DMR radio to use talk groups on these networks.

In almost every aspect, this link ended up being superior than using the DMR radio. I’ll expand on this further.

Pi-Star Configuration

Since Pi-Star is highly configurable and has many services and options, getting the C4FM HT onto a DMR talk group was possible as a matter of simple configuration.

The first configuration change I made was to disable DMR mode on Pi-Star. I no longer have any DMR radios, so the DMR protocol is not needed on the RF I/O part of the hotspot. I then enabled YSF mode, which is enables C4FM on the RF I/O part of the hotspot.

I also enabled YSF2DMR, which is a service that creates a bridge between a C4FM radio with Wires-X and a DMR network.

Pi-Star MMDVMHost Configuration

I then configured YSF to use the YSF00002 host, which is a server which simply bridges YSF and DMR together. This is the host automatically set on startup. I also enabled uppercase hostfiles (some radios don’t support lowercase letters), and Wires-X Passthrough.

Wires-X Passthrough simply forwards all Wires-X commands from the radio to the YSF host, rather than having the hotspot itself process the Wires-X commands. For example, if I want to connect to a talk group, I’m not having the hotspot change the talk group and network, I’m sending that command to the YSF server I’m connected to and having the YSF server connect me to that talk group.

Because this connection to a DMR network is using my FT5D, I set the CCS7 to 1. This matched the setting on my FT5D. The DMR ID was auto-filled from the general configuration section.

I set the DMR network to BrandMeister for example. This is where most of the talk groups I use are hosted on. If I want to switch networks, I can simply change the DMR master to another network, such as TGIF for example.

The hotspot security is simply the password I had set up in the BrandMeister self service portal.

The DMR talk group I set was 4000, which is the “disconnect” number. This means when the hotspot starts up, or when I update the configuration, the hotspot will start in a disconnected state, meaning not subscribed to any talk group.

I saved the configuration and waited a few seconds for the hotspot to restart the services.


On my FT5D, I set my VFO to the hotspot frequency which is on 70-cm, turned on C4FM mode and pressed the Wires-X button. Success!

After a second or two, the hotspot responded and sent back the data over C4FM indicating I was connected to a Wires-X node (my hotspot), and I was presented with the “Search and Direct” menu.

I connected to a talk group I know a few local stations monitor, I sent my callsign out a few times and K2OZ replied back. My test was successful!

The QSO was successful. It’s worth noting the advantages of this configuration over my DMR HT.

No code plugs and no programming were needed. I simply set my VFO on my Yaesu C4FM transceiver to the hotspot frequency and activated Wires-X using the “X” button on the HT. One of the advantages of Wires-X is that you connect to groups or rooms directly either by favourites or by searching. The Wires-X host will handle the interfacing between the radio and the hotspot or repeater. This is where the advantage of Wires-X control commands specifically designed for amateur radio are helpful and convenient over DMR’s control methods.

In the middle of the display to the left indicates the node name which is set on the radio, which is my call sign plus ND. and the middle right usually indicates the city or a location, but in this case my hotspot name.

Notice the call sign appearing on the display (photo to the right, above). I did not need to program this into the radio via a contact. The YSF server sent this to my radio. The YSF server performed the lookup to and retrieved the call sign and forwarded it to my radio. The advantage here is that I don’t need a radio with enough memory to store all of the known call signs nor do I need to update the radio with newly registered call signs.

Lastly, the photo on the left, top part of the display shows the current talk group and call sign, alternating. The current talk group appears as the repeater name as “R > talk group number”.

Talk Groups

On a DMR radio, if you wanted to join a talk group, you would either need to program that talk group into the code plug and download it to your radio. There are other methods but they’re equally tedious.

With Wires-X, you can change the talk group either by clicking on a favourite, or, by search. I find that entering the talk group directly by number is fastest. This can be done by clicking Search and Direct on the screen, then Search and Direct on the bottom of the screen, then ID on the top left, then entering the talk group number, then enter.

Alternatively, you can click the Search and Direct option on the screen, then click All, and you can scroll through the list of talk groups on the DMR network you’re connected to. I suspect this is something maintained by the YSF to DMR host. I believe this is limited to 999 items.

Searching by name also works, if you click Search and Direct, then type part of the talk group name and enter. You can then scroll through the resulting list and select the group.

Saving a talk group to a category also works, which is a great option to avoid searching and remembering the talk group numbers. You can set the name of the categories in the Wires-X setup menu. This option appears to work only if searching by name. When clicking on a result, the Add button appears on the bottom of the screen. This does not appear if you enter the talk group number directly.


I would avoid using the Band button (pressing and holding) when connected. This seems to tell the hotspot to drop the link to the YSF host you selected. I could not find a way to reconnect from the radio. The displayed talk group (bottom of the screen) would flash and searches and connection attempts would time out and fail. The fix for this was to either reboot the hotspot or click link again on the admin screen under the YSF Manager section on the hotspot:

YSF Link Manager on the Admin Screen

Final Thoughts

Without the experience and knowledge about various FM digital modes such as DMR, C4FM, and D-STAR, I did not fully understand where these technologies fit in with amateur radio. I think many, like myself, purchase a DMR radio because we think that it is necessary to get into the DMR talk groups. We associate these talk groups with DMR, and they are really separate technologies that can be decoupled.

You can get into many networks with various FM digital modes, in most cases there are software bridges and links that make this possible. Pi-Star is an example of a highly capable and flexible software solution that runs on inexpensive hardware. It is compatible with several digital modes and network protocols, and as we see here in this example, allows an operator to join several different networks with the same digital radio they happen to have.

Regardless of whether you have D-STAR, C4FM, or DMR, you don’t necessarily need a radio for each type of network. There are exceptions however.

When deciding on a hotspot, they are not all created equally. Some are much more configurable than others, others are easier to get up and running. Price is extremely variable and you can even build your own.

Perhaps I can find a way to get my old HTX-202 analog FM HT onto a DMR talk group, using DTMF tones to control the talk group connections. Perhaps Pi-Star and/or some of the components it uses support this already, or something close to it. I will update this post accordingly if I get this working.

Leave a Reply