Powering a DMR hotspot: clean PSU, fighting voltage drops and battery backup

Category: PowerDifficulty: ★★☆~8 minutes

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.

A multimeter will fool youA measurement with a tester will show a nice "5.0 V", because an ordinary multimeter doesn't catch the brief dips (fractions of a millisecond) at the peak load — for example, when the modem keys up. Only an oscilloscope or the Pi's own detector sees these dips. So trust the vcgencmd command, not the tester.

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:

BitValue (hex)What it means
00x1Undervoltage right now
10x2Frequency capping active right now
20x4Throttling happening right now
30x8Temperature limit reached right now
160x10000Undervoltage has occurred since boot
170x20000Frequency capping has occurred since boot
180x40000Throttling has occurred since boot
190x80000Overheating 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.

A one-minute checkStart the hotspot, run it for ten minutes or so with a couple of transmissions — then run both commands. A clean 0x0 and an empty dmesg for voltage means the power is fine, and you can dig further into calibration and the modem.

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.

The 220 V side — no compromisesA power supply is a device plugged into the mains. Use only sound, certified PSUs (CE/EAC, a proper enclosure, a stated input range of 100–240 V). A cheap no-name adapter with a thin transformer and no galvanic isolation is a fire and electric-shock risk, not "saving a few dollars". A damaged lead, a cracked case, a smell of burning — into the bin immediately.

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.

ParameterBad ("charging")Good
Power conductor gauge28 AWG, thin20 AWG and thicker
Length1.5–2 m and longeras short as possible
Typecharge onlydata cable (full)
Drop at 3 A0.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:

Grounding without fanaticismDon't "ground" the hotspot to a heating radiator or to the neutral of a socket. Proper protective grounding is a dedicated bus/standard PE terminal. A makeshift "ground" is more dangerous than none at all.

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:

Li-ion = cautionAny UPS HAT and any power bank is a lithium battery. Swelling, heat, smell, deformation — take it out of service immediately. Don't leave cheap unprotected packs charging unattended, don't put a bank near heat sources, and don't seal it in an airtight box without ventilation. A punctured or overcharged lithium cell burns fiercely and is hard to put out. For outdoor placement, keep in mind that Li-ion handles frost poorly.

Checklist

  1. PSU: 5 V / ≥3 A, branded; for Pi 4 the official 5.1 V/3 A. The 220 V side — certified only.
  2. Cable: a short, thick data cable, not a "charger" lead.
  3. Power into the Pi, not the modem. Not from a laptop, not through a hub.
  4. Check: vcgencmd get_throttled = 0x0 and an empty dmesg | grep -i voltage after a load.
  5. Ferrite on the lead, keep the PSU and antenna apart.
  6. 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

  1. Raspberry Pi 15W USB-C Power Supply (5.1V/3A) — raspberrypi.com
  2. How to fix the "Undervoltage Detected" warnings (get_throttled, dmesg) — pimylifeup.com
  3. Lightning Bolt (Under-Voltage Warning) and the ~4.63 V threshold — scribles.net
  4. UPS solutions and pass-through for the Raspberry Pi — sunfounder.com