A DMR linking server written in Go that allows multiple MMDVM hotspots to create a private peer-to-peer DMR network.
- Multi-user bridging: Multiple hotspots can connect simultaneously
- Talkgroup routing:
- TG 9990: Parrot (echo back your transmission)
- All other TGs: Bridged to all connected users
- Simple setup: No complex configuration needed
- Homebrew/MMDVM protocol: Works with Pi-Star and other MMDVM-based systems
- Accepts any hotspot password
- Handles authentication, keepalives, and DMR frame routing
- Multiple users connect their MMDVM hotspots to your server
- When someone transmits on any talkgroup (except 9990):
- The server receives the DMR frames
- Forwards them to all other connected hotspots
- Everyone hears the transmission on that talkgroup
- TG 9990 is special - it's a parrot that echoes your own transmission back
Perfect for creating a private DMR network for:
- Family/friends group
- Club repeater linking
- Emergency communications
- Private testing network
- Learning DMR networking
No BrandMeister or DMR+ account needed! Just run this server and give the address to your friends.
go build -o godmrlink./godmrlinkThe server will start listening on 0.0.0.0:62031.
Each user configures their Pi-Star hotspot:
- In Pi-Star, go to Configuration
- Set DMR Master to "DMR Network"
- Configure:
- Address: [Server IP address]
- Port: 62031
- Password: (any password works)
- Save and apply
- Make a private call to 9990
- Transmit your message
- After ~1 second, you'll hear your voice played back
- Multiple users connect to the server
- All users set their radio to the same talkgroup (e.g., TG 1, TG 2, etc.)
- When anyone transmits, everyone else on that TG hears it
- Works with both group and private calls
When running, you'll see:
- Connection status for each hotspot
- Active transmissions and stream info
- Talkgroup bridging activity
Example:
2026/02/04 00:31:16 Starting goDMRLink DMR Parrot on port 62031
2026/02/04 00:31:16 Parrot TalkGroup: 9990
2026/02/04 00:31:16 Server started successfully
2026/02/04 00:32:09 LOGIN from 192.168.1.121:35273 (ID: 2784702208)
2026/02/04 00:32:09 Client 2784702208 authenticated
2026/02/04 00:35:12 Bridge: New stream 12345 from 3144613 to TG 1
2026/02/04 00:35:12 Bridge: Forwarded TG 1 from 3144613 to 2 clients
Implements the Homebrew/MMDVM protocol:
RPTL- Login requestRPTACK- Authentication challenge/responseRPTK- Key exchange with password hashRPTP/MSTPONG- Keepalive packetsRPTC- Configuration packetsDMRD- DMR data frames with full LC modification