Two small programs let a DMR radio talk to Fusion and to NXDN with no vocoder hardware, no transcoding and no audio conversion at all. They work because those three modes already speak the same vocoder. Here is what they do, how the chain fits together, and what surprises people.
Scope: this page is written from the DMR radio's seat, and covers traffic leaving a DMR radio for another mode. The opposite direction, a Fusion radio reaching out to other modes, has its own page.
Cross mode work is usually expensive because two modes use different vocoders, so the audio has to be decoded all the way back to plain sound and re-encoded on the far side. That needs either a hardware vocoder chip or a software one, and it costs a little quality every time.
DMR, Fusion in DN mode, and NXDN at 6.25 kHz do not have that problem. All three carry AMBE+2 at 2450 bits per second of speech plus 1150 bits of error correction, which is the same 3600 bit per second frame in all three modes. A bridge between them only has to lift the frame out of one container and put it in another.
You can see this in the software's own structure: the routine that repairs a DMR speech frame is the same routine used for Fusion and NXDN, compiled once and shared by all three.
| Mode | Vocoder | Shares DMR's frame? |
|---|---|---|
| DMR | AMBE+2, 2450 plus 1150 | Itself |
| C4FM, DN mode | AMBE+2, 2450 plus 1150 | Yes |
| NXDN, 6.25 kHz | AMBE+2, 2450 plus 1150 | Yes |
| C4FM, VW mode | IMBE, the full rate codec | No |
| NXDN, 12.5 kHz | AMBE+2 at 7200, the full rate option | No, and no amateur software implements it |
| P25 Phase 1 | IMBE, 4400 plus 2800 | No, needs real transcoding |
| D-STAR | AMBE, 2400 plus 1200 | No. Same 3600 total, different split, not interchangeable |
| M17 | Codec 2 at 3200 | No, needs real transcoding |
The D-STAR row is the one that catches people out. The channel rate matches DMR exactly, and the frames still cannot be swapped, because the bits are divided differently between speech and protection.
This trips up anyone searching for it. DMR2YSF and DMR2NXDN are not projects of their own. They are folders inside one repository of cross mode utilities, alongside their opposite numbers and the transcoding ones.
Folders present in that collection: DMR2YSF, YSF2DMR, DMR2NXDN, NXDN2DMR, YSF2NXDN, YSF2P25, DMR2P25, P252DMR, DMR2M17, M172DMR.
Worth noticing what is not there: no DMR to D-STAR converter in either direction. D-STAR is reached through a transcoding reflector instead, which is a different piece of work entirely.
Each converter sits in the middle of a chain, pretending to be a DMR network on one side and a Fusion or NXDN client on the other.
DMRGateway does no converting. Its job is routing: it takes the talkgroup you transmitted, applies a rewrite rule, and hands the traffic to one of several DMR network connections. One of those connections happens to be the converter. That is why cross mode talkgroups on a Pi-Star or WPSD hotspot usually carry a prefix, and it is also why people wrongly credit DMRGateway with the conversion itself.
The converter's own DMR side is configured exactly like a small DMR network:
[DMR Network] Id=1234567 RptAddress=127.0.0.1 RptPort=62032 LocalAddress=127.0.0.1 LocalPort=62031 DefaultDstTG=9 TGUnlink=4000 TGListFile=TG-YSFList.txt
Fusion has two voice sub modes. DN is the narrow one, which shares DMR's vocoder. VW is the full rate one, which does not.
The bridge passes DN frames and discards everything else. It does not warn you, it does not tell the person talking, and nothing on either radio indicates a problem. A VW caller simply arrives as silence on your DMR radio.
This is why a cross mode link can appear to work perfectly for days and then seem broken the moment a particular operator keys up. Nothing is broken. He is in the wrong sub mode for the bridge.
Your radio may send Talker Alias, and DMR software handles it properly at both ends, but the cross mode converters make no mention of it anywhere in their code. It is dropped at the bridge. What the far side sees is whatever the converter looked up from the ID databases, which is why keeping those files current matters more on a cross mode path than on a plain DMR one.
| You want | The tool | What it costs |
|---|---|---|
| DMR to Fusion, DMR to NXDN | DMR2YSF, DMR2NXDN | Nothing. No vocoder, no dongle. |
| DMR to P25 | DMR2P25 and P252DMR | Real transcoding between IMBE and AMBE+2, using a software vocoder |
| DMR to M17 | DMR2M17 and M172DMR | Real transcoding between Codec 2 and AMBE+2, software again |
| DMR to D-STAR | No converter exists in that collection | A transcoding reflector, and in practice AMBE hardware |
Both transcoding pairs rely on a software vocoder built from radio firmware, and that library states plainly that it runs only on an ARM platform such as a Raspberry Pi 2, 3 or 4, and not on a Pi Zero or an original Pi. That constraint does not apply to DMR2YSF or DMR2NXDN, which never vocode anything.
| Claim | Checked against | Strength |
|---|---|---|
| DMR, C4FM DN and NXDN 6.25 kHz share AMBE+2 at 2450 plus 1150 | The vocoder maker's own published split, the NXDN Forum's overview, and the shared error correction routine in the MMDVM source | Three origins, one of them the code that does the work |
| NXDN at 12.5 kHz uses a 7200 bps option | The NXDN Forum overview and the NXDN technical specification's own table | Two origins. The mapping of that rate to the specification's named vocoder modes could not be quoted directly and is inferred |
| C4FM VW is IMBE rather than a faster AMBE+2 | The MMDVM source, which routes VW frames through its IMBE routine; a bridge configuration file that labels the wide port as IMBE; and a hotspot manufacturer's manual stating VW is the mode converted to P25 | Three origins. No Yaesu published table was found, so this rests on implementations rather than on the manufacturer |
| D-STAR's frame is not interchangeable despite the same 3600 bps | Separate code paths for the two bit splits in the decoder library, and the converters' own descriptions | Two origins |
| DMR2YSF and DMR2NXDN do not transcode | Their own documentation, which never claims it, contrasted with the transcoding utilities that state it explicitly in their first paragraph | The projects' own words |
| The chain, the ports, the talkgroup mapping, 4000 to unlink, the fallback talkgroup and the lookup files | The shipped configuration files, quoted | Primary |
| VW frames are discarded silently | The cross mode source, which accepts one Fusion sub mode only, plus a hotspot manufacturer's manual stating in plain words that the other sub mode reaches a DMR radio as silence | Two origins |
| Talker Alias is dropped | Searched the converters' source: no mention anywhere, while the DMR software itself handles it | Absence in the code. Stated as what it is |
| The two bridge loop | Nothing. No warning in any of these projects' files | Folklore, labelled as such |
Prepared for n6jet.com. The reverse direction, Fusion out to other modes, is covered on its own page. Software changes: the ports, file names and defaults above come from the configuration files as shipped, and a distribution may set them differently.