What is MMDVM: the modem, firmware and boards in plain words
You are building a digital hotspot or reading DMR forums and you keep running into the word MMDVM. It sounds like magic, but in reality it is a very concrete thing: a small board plus a program that turn your radio into a node of a digital radio network. Let's break it down piece by piece — what it is, what it consists of, and which parts you actually need.
What MMDVM is in plain words
MMDVM stands for Multi-Mode Digital Voice Modem. In essence it is a combination of two parts: hardware (the modem board) and software, which together act as a bridge between the radio airwaves and a digital network on the internet.
Picture a translator. On one side it has a radio signal on 433 or 144 MHz that your radio transmits. On the other side there is an IP network, through which a server (the master) connects you to other operators around the world. MMDVM receives the radio signal, understands the digital protocol (DMR and its relatives), packs the voice into data packets and sends it to the server. And the other way around: it takes packets from the network, reassembles them into a radio signal and puts it on the air. All of this happens in real time, with no noticeable delay in the conversation.
The key word in the name is Multi-Mode. The same modem can work with several digital modes, not just DMR. More on that below.
What an MMDVM hotspot is made of
When someone says "I have an MMDVM," they usually mean a finished hotspot. It is built from three layers, and it is important to tell them apart, because each one is configured and updated separately.
- The modem board. It carries the ADF7021 radio chip — the chip responsible for receiving and transmitting the radio signal. It sets the frequency, demodulates and modulates the signal. This is the "radio" in your hotspot.
- The microcontroller with the modem firmware. Next to the radio chip sits an STM32 controller (in cheap boards a simplified HS firmware plays its role). It processes the digital protocol on the fly: it recognizes DMR bits, computes synchronization, builds the frames. This firmware is called exactly that — MMDVM_HS.
- The controlling computer with MMDVMHost. Most often this is a Raspberry Pi (Zero, 3, 4 — anything running Linux). It runs the MMDVMHost program, which commands the modem and keeps the connection to the network over the internet.
A rough analogy: the ADF7021 is the mouth and ears, the STM32 with the MMDVM_HS firmware is the nervous system that translates sounds into impulses, and MMDVMHost on the Raspberry Pi is the brain that decides who to call and where. For more on the physical build, see the article Your own MMDVM hotspot.
What kinds of MMDVM boards exist
There are dozens of boards on the market, but in essence they fall into a few types. Understanding the differences will save you money and nerves.
Simplex versus duplex
- MMDVM_HS_Hat — a simple board with one ADF7021 chip. It works in simplex: at any given moment it either receives or transmits, on a single frequency. This is the cheapest and most common option, and the vast majority of beginners go for it.
- MMDVM Dual_Hat (duplex) — a board with two ADF7021 chips. One handles receiving, the other transmitting, on spaced frequencies at the same time. This is duplex, just like a real repeater. It is more expensive and runs hotter, but it lets you operate as a full-fledged repeater. Which of the two to choose is covered in the article HS_Hat or Dual_Hat.
The connection method: GPIO or USB
- GPIO boards (Hat). They mount directly on top of the Raspberry Pi pins, like a "hat" (hence Hat). Compact, nothing sticks out, power and data go through the same contacts.
- USB boards. They connect to any computer with a USB cable. Handy if you want to attach the modem to an ordinary PC or mini-PC instead of a Raspberry Pi. A bit more universal, but they need a free USB port and a driver.
The crystal: ordinary or TCXO
For digital communication the frequency has to hold very precisely — a drift of a couple hundred hertz already interferes with decoding. Accuracy is the job of the reference crystal oscillator. Good boards use a TCXO (a temperature-compensated oscillator): it barely drifts when it heats up or between winter and summer. Cheap boards with an ordinary crystal require manual frequency adjustment — that is what MMDVM calibration is for. If you want less hassle, look for a board with a TCXO.
The modem firmware and MMDVMHost: who is responsible for what
This is the spot where beginners get confused most often. The system contains two different "firmwares," and they are not the same thing.
- The modem firmware (MMDVM_HS). Flashed into the STM32 microcontroller on the board itself. It handles the low level: working with the radio chip, demodulation, building the digital frames. It is updated rarely — usually only when you buy a new board or when an important fix comes out. It is flashed with a separate procedure (through the board's bootloader).
- MMDVMHost. This is a program on the Raspberry Pi, not "firmware" in the hardware. It reads the config (which modes to enable, which server to connect to, your callsign and DMR ID), issues commands to the modem and maintains the connection to the network. It changes and gets reconfigured constantly — it is your main management tool.
The rule is simple: everything you touch when configuring the hotspot is MMDVMHost. The modem firmware is touched rarely and deliberately. If the hotspot behaves strangely right after the build, the culprit is more often the MMDVMHost config or the calibration than the board's firmware — typical cases are covered in the article when the hotspot doesn't work.
How MMDVM gets onto the network
On its own a hotspot is an island. For it to connect you with others, MMDVMHost has to connect to the network's master server. This is done using the Homebrew (HBP, Homebrew Protocol) — the standard for communication between hotspots/repeaters and servers in the DMR world.
The scheme is this: in the MMDVMHost config you enter the master's address, port, password and your ID. MMDVMHost establishes the connection, introduces itself to the server and keeps the channel open. From then on every voice packet of yours goes to the master, and from there — to whoever is listening on the same Talk Group. The return packets come back the same way. All of this works over the ordinary internet through your home router.
What time slots, Talk Groups and Color Codes are — the things that route the voice — is explained in detail in the article DMR from scratch.
Which modes MMDVM can handle
Since the modem is "multi-mode," it understands more than just DMR. Amateur digital communication has several formats, and most of them are built around the AMBE+2 family of vocoders — a way to heavily compress voice so it fits into a narrow radio channel.
- DMR — the most widespread standard; it is what our network and most hotspots run on.
- Other digital modes from the same family (based on AMBE+2 and similar vocoders) — MMDVM supports them at the modem level, but to get started a single DMR is enough.
A beginner does not need to turn everything on at once. Leave only DMR — less confusion, easier diagnostics, and DMR is exactly what you need to work in DMRhub.
What a beginner should choose
If you are just starting out and unsure, go for the following combination:
- Board: MMDVM_HS_Hat (simplex) with a TCXO — cheap, reliable, less fuss with calibration.
- Connection: a GPIO Hat on a Raspberry Pi Zero 2 W or Pi 3/4 — the most proven and best-documented option.
- Mode: DMR only.
- Display: optional, you can add an OLED later.
Leave duplex, USB boards and the other modes for later — it makes sense to move to them once you can confidently bring up a simplex hotspot and understand what you are missing.
Ready to get on the air
DMRhub is a private DMR network with its own master server. Sign up, get a DMR ID and connect your MMDVM hotspot in a few minutes.