Powering a DMR hotspot: clean PSU, fighting voltage drops and battery backup
Nine out of ten "mysterious hotspot glitches" are not the firmware, not the modem and not BrandMeister. It is the power. A Raspberry Pi with an MMDVM module is a delicate device: it needs a steady 5 volts, and the moment that sags by a fraction of a volt while writing to the SD card or when the transmitter fires up, you get reboots, a corrupted file system and a drifting BER on the air. The good news: it is fixed with a few cheap parts — the right PSU, a thick cable and five minutes of diagnostics. Let's go through it in order.
Why the "lightning bolt" is not a minor thing
If a yellow lightning-bolt icon appears in the corner of the screen (or in the logs), that is an undervoltage warning. The Pi's power controller raises it when the voltage on the board drops below ~4.63 V. If the hotspot runs headless without a monitor, you won't see the bolt at all — you'll only see the consequences: spontaneous reboots, a frozen Pi-Star/RadioStar, Wi-Fi dropping out at boot, a distorted TX spectrum.
The nastiest part is SD-card degradation. When power sags during a write (and the Pi writes to logs and the database constantly), the write is cut off mid-way, the file-system metadata is left inconsistent, and the card slowly "dies". In the journal this shows up as paired messages: alongside under-voltage detected you get mmcblk0 errors. That is an almost certain sign that the power, not a "bad card", is to blame.
How to catch a voltage drop in the logs
Don't guess — ask the Pi itself. Two commands settle everything.
The first shows the throttling status register:
vcgencmd get_throttled
The answer is a hexadecimal number where each bit means something. throttled=0x0 is perfect — no problems. If a bit is set, the power has been failing:
| Bit | Value (hex) | What it means |
|---|---|---|
| 0 | 0x1 | Undervoltage right now |
| 1 | 0x2 | Frequency capping active right now |
| 2 | 0x4 | Throttling happening right now |
| 3 | 0x8 | Temperature limit reached right now |
| 16 | 0x10000 | Undervoltage has occurred since boot |
| 17 | 0x20000 | Frequency capping has occurred since boot |
| 18 | 0x40000 | Throttling has occurred since boot |
| 19 | 0x80000 | Overheating has occurred since boot |
So 0x50000 means "there was undervoltage and there was throttling since power-on" — meaning the supply doesn't hold up under load. The second command pulls the events out of the kernel log:
dmesg | grep -i voltage
Every line like hwmon ... under-voltage detected! is a recorded dip. If there are many of them and they come in bursts during operation, the diagnosis is obvious.
The right power supply
The baseline requirement for a Pi-based hotspot (Zero, 3, 4) is 5 V and at least 3 A. Smaller 2–2.5 A units "sort of work", but it is precisely at the peak (TX + Wi-Fi + a write) that they sag. For the Raspberry Pi 4 get the official 5.1 V / 3.0 A supply (15 W, USB-C) — it outputs 5.1 V for a reason, with headroom to compensate for the drop across the cable. It has built-in short-circuit, overload and overheat protection, and it is certified.
- Don't power the hotspot from a laptop's USB — the port delivers a maximum of 0.5–0.9 A, which isn't enough even at idle.
- Don't hang it off a cheap hub and don't split a single PSU across several devices — every consumer pulls the voltage down.
- Power goes into the Pi, not into the MMDVM modem. The modem takes 5 V from the Pi's own GPIO rail.
- "5 V 3 A" chargers from a no-name box often lie in practice: under load they sag to 4.5 V. Buy a trusted brand.
The cable matters as much as the PSU
The most common and most galling cause of the "lightning bolt" with a good PSU is the cable. Most of the USB cables lying around the house are "charging" leads: thin power conductors (28 AWG) rated for a phone's charge current, with noticeable resistance. On such a cable at 2–3 A you lose half a volt, and what reaches the Pi is no longer 5 V but 4.5–4.6 V — hello, undervoltage.
| Parameter | Bad ("charging") | Good |
|---|---|---|
| Power conductor gauge | 28 AWG, thin | 20 AWG and thicker |
| Length | 1.5–2 m and longer | as short as possible |
| Type | charge only | data cable (full) |
| Drop at 3 A | 0.4–0.6 V | <0.15 V |
Get a short, thick data cable (the official Pi PSU's cable is, by the way, captive — 1.5 m, 18 AWG — and that is part of its reliability). The rule is simple: the shorter and thicker the wire, the smaller the losses. If you have no choice — a short "charging" lead beats a long one.
Interference and grounding
A switching PSU is a source of RF junk that can creep into the hotspot's receive path and raise the noise floor on 433 MHz. A few tricks to cut the dirt:
- A ferrite ring on the power cable near the Pi's connector (a couple of turns) suppresses common-mode interference along the lead.
- Keep the power supply and the modem/antenna well apart — don't pile them into one heap.
- A good (read: not the cheapest) switcher is itself "quieter" in terms of interference: it has a proper input filter.
- If the hotspot sits next to an outdoor antenna, read up separately on grounding and lightning protection: lightning protection of the antenna/feeder run isn't about the PSU, but it is critical for the life of the equipment and people.
Power backup: surviving outages
A hotspot that reboots at every flicker of the lights breaks your presence on the network and again risks the SD card on a hard cut. A backup isn't a luxury, it's protection for the hardware. Options in increasing order of tidiness:
- A power bank with pass-through (UPS mode) is the cheapest route. The bank charges from the mains and powers the Pi at the same time; when 220 V drops, the output isn't interrupted. The key phrase when buying is "pass-through / charging while discharging": not all banks can do this — many have their output cut off during the switchover, and that is no longer a UPS.
- A UPS HAT (Waveshare UPS HAT, Geekworm X728/X1207, PiJuice) sits on the GPIO, holds a Li-ion battery, delivers a steady 5 V and, crucially, can tell the system over I2C/GPIO that the mains has dropped and initiate a clean shutdown before the battery is exhausted. That saves the file system.
- A PoE HAT / PoE splitter — if you want to move the hotspot up high, right next to the antenna (shorter coax — fewer losses). Power and network run over a single twisted-pair cable from a PoE switch (the 802.3af/at standard). Combined solutions such as the Geekworm X1207 give you PoE + UPS on a single board at once.
Checklist
- PSU: 5 V / ≥3 A, branded; for Pi 4 the official 5.1 V/3 A. The 220 V side — certified only.
- Cable: a short, thick data cable, not a "charger" lead.
- Power into the Pi, not the modem. Not from a laptop, not through a hub.
- Check: vcgencmd get_throttled = 0x0 and an empty dmesg | grep -i voltage after a load.
- Ferrite on the lead, keep the PSU and antenna apart.
- Backup: a pass-through power bank or a UPS HAT with a proper shutdown.
Stable power = a stable node on the network
A hotspot on clean power doesn't drop out of RadioStar and holds a steady TX with no BER surprises. Build your own image for our master — and connect to the DMRhub network reliably, with no "lightning bolts".
Sources
- Raspberry Pi 15W USB-C Power Supply (5.1V/3A) — raspberrypi.com
- How to fix the "Undervoltage Detected" warnings (get_throttled, dmesg) — pimylifeup.com
- Lightning Bolt (Under-Voltage Warning) and the ~4.63 V threshold — scribles.net
- UPS solutions and pass-through for the Raspberry Pi — sunfounder.com