How to Make a MMDVM Digital Repeater
Since the release of the MMDVM in early 2016, Johnathan Naylor's (G4KLX) creation has put the power back into the hands of radio operators around the world. This simple hardware and software combo can interface radios to a computer—like a Raspberry Pi—turning normal analog radios into digital radios.
After following this guide, you will be able to put together a multimode amateur digital repeater or high-powered hotspot that can be connected to the internet for worldwide digital communication.
What is MMDVM?
MMDVM stands for Multi-Mode Digital Voice Modem. It's a hardware board that works with the MMDVMHost software to convert analog audio to and from digital voice formats. It supports the following digital modes:
- D-Star
- DMR
- Yaesu System Fusion
- P25 Phase I
- NXDN 4800
- POCSAG (paging)
The MMDVM-Repeater board differs from a hotspot board in that it doesn't have a radio built onboard. Instead, it uses cables to wire directly into the I/O pins of one or two external radios.
Hotspot vs. Repeater
| Feature | Hotspot | Repeater |
|---|---|---|
| Radios | 1 (low power) | 1 or 2 (full power) |
| Coverage | Room/house | Neighborhood/city |
| Duplex | Simplex only | Simplex or duplex |
| Purpose | Personal access | Community infrastructure |
What You'll Need
Hardware
- Raspberry Pi (3B+, 4, or 5)
- Micro SD card (16GB+ recommended)
- MMDVM board (choose one):
- STM32-DVM
- Zum MMDVM
- Micro-Node TEENSY
- 1 or 2 analog radios with a 9600 baud port or discriminator tap:
- A simplex node uses 1 radio
- A duplexed node uses 2 radios + a duplexer
- Cables to connect your radio(s) to the MMDVM board
- Cooling fan — duty cycle management is critical
Software
- WPSD (formerly Pi-Star) — the recommended firmware image
- MMDVMHost — the modem host software
- stm32flash — for firmware updates
Choosing a Radio
This is the most critical decision. Keep these factors in mind:
- Duty cycle: The radio will be transmitting continuously. Consumer-grade radios overheat quickly.
- Cooling: A fan is mandatory for repeater operation.
- Programming: Motorola radios are excellent but require proprietary software. Older Icom or Kenwood radios are viable alternatives.
Popular choices:
| Radio | Use Case | Notes |
|---|---|---|
| Yaesu DR-1X | Duplex repeater | Must not be FR-model or DR-2X |
| Motorola CDM series | Single or duplex | Needs programming software |
| Icom IC-F series | Single or duplex | Easy to cable |
| Kenwood TK-x90 series | Single or duplex | Good 9600 baud port |
If you don't have access to programming software for commercial radios, look for radios with front-panel programming capability.
Step 1: Prepare the Raspberry Pi
Flash WPSD to your micro SD card:
# Download the latest WPSD image
wget https://wpsd-swd.w0chp.net/WPSD-SWD/WPSD-Images/releases/...
# Flash to SD card (replace /dev/sdX with your card device)
sudo dd if=WPSD-*.img of=/dev/sdX bs=4M status=progress
Insert the SD card, connect the MMDVM board to the GPIO header, power on, and SSH in:
ssh pi-star@pi-star.local
Default credentials: pi-star / raspberry.
Step 2: Cable the Radio
Connect your radio to the MMDVM board. The wiring depends on your specific radio, but the general pinout is:
| MMDVM Pin | Radio Connection |
|---|---|
| TX Audio | Modulator input |
| RX Audio | Discriminator output |
| PTT | PTT line |
| GND | Ground |
| COR/COS | Carrier detect |
For a 9600 baud radio, connect directly to the flat TX/RX audio ports. For a discriminator tap radio, you'll need to tap into the unfiltered audio before the de-emphasis circuit.
Step 3: Configure MMDVMHost
SSH into the Pi and edit the configuration:
sudo nano /etc/mmdvmhost
Key settings to configure:
[General]
Callsign=YOUR_CALL
Duplex=0 ; 0 for simplex, 1 for duplex
Timeout=300
[DMR]
Id=1234567 ; Your DMR ID
Enable=true
[D-Star]
Enable=true
Module=C
[System Fusion]
Enable=true
[P25]
Enable=true
[NXDN]
Enable=true
Save and restart the service:
sudo systemctl restart mmdvmhost.service
Step 4: Connect to the Network
Configure your network connection in the WPSD web interface:
- Navigate to
http://pi-star.local/and log in (default credentials). - Go to Admin → Expert → MMDVMHost.
- Configure your network connections (DMR Master, D-Plus, YSF Reflector, etc.).
- Save and restart.
Step 6: Test Your Repeater
Verify the modem is detected:
sudo wpsd-detectmodem
Expected output:
Detected MMDVM_HS Port: /dev/ttyAMA0 (GPIO) Baud: 115200 Protocol: V1
Modem Data: MMDVM_HS_Dual_Hat-v1.6.1 ...
Make a test call using a digital radio on the configured frequency. Check the WPSD dashboard to confirm traffic is flowing.
Duplex Operation
For a full duplex repeater, you need:
- Two radios — one for receive, one for transmit
- A duplexer — to allow both radios to share the same antenna
- Frequency separation — typically 5 MHz (2m) or 10 MHz (70cm)
Set Duplex=1 in /etc/mmdvmhost and configure the TX and RX frequencies
separately.
Quick Reference
| Step | Command |
|---|---|
| SSH into hotspot | ssh pi-star@pi-star.local |
| Edit config | sudo nano /etc/mmdvmhost |
| Restart service | sudo systemctl restart mmdvmhost.service |
| Flash firmware | sudo stm32flash -R -w firmware.bin /dev/ttyAMA0 |
| Detect modem | sudo wpsd-detectmodem |
Troubleshooting
No traffic showing on dashboard:
- Check that your radio is on the correct frequency
- Verify the MMDVM cable connections
- Check
sudo journalctl -u mmdvmhostfor errors
Radio overheating:
- Reduce TX power
- Add or improve cooling
- Reduce TX percentage in MMDVMHost config
Modem not detected:
- Check GPIO pin connections
- Verify firmware is flashed correctly
- Try a different baud rate in
/etc/mmdvmhost
This guide is based on N5AMD's excellent digital voice resources. Always check local regulations and obtain proper coordination for repeater operation.
