Skip to content

We're upgrading our operations to serve you better. Orders ship as usual from Laval, QC. Questions? Contact us

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

PIAXE_12V_UV Warning

PiAxe – 12V DC Rail Undervoltage Drops RPi

PiAxe 12V DC Undervoltage on Raspberry Pi | Raspberry Pi PMIC fires `Under-voltage detected!` (`vcgencmd get_throttled` returns non-zero, e.g. `0x50005`) when the PiAxe HAT shares a power rail with the Pi or back-feeds the Pi via GPIO 5V. Pi PMIC has a fixed `4.63 V` threshold; below that it throttles ARM cores, kills hashrate, and risks SD card corruption. Fix is a topology change: dedicated 12V/5A supply to the PiAxe HAT for the BM1366, dedicated 5V/3A USB-C (Pi 4) or 5V/5A (Pi 5) to the Raspberry Pi, no shared rails.

Warning — Should be addressed soon

Affected Models: PiAxe HAT on Raspberry Pi 4 (5V/3A USB-C), Raspberry Pi 5 (5V/5A USB-C), Raspberry Pi 3, and Pi Zero 2 W. Worst on builds attempting to share a single supply between the BM1366 ASIC rail and the Pi rail, or using cheap unbranded USB-C cables that drop voltage across the cable run.

Symptoms

  • `vcgencmd get_throttled` returns anything other than `throttled=0x0` - most commonly `0x50000`, `0x50005`, or `0x1`
  • Lightning bolt icon in HDMI display top-right, or `dmesg` / `journalctl -k` repeatedly logs `Under-voltage detected! (0x00050005)` and `Voltage normalised`
  • Pi reboots randomly when `pyminer.py` starts hashing the BM1366 - boots fine, then loops the moment the chip pulls full current
  • `pyminer.py` log shows `BM1366 framing error` clusters that correlate with the Pi's undervoltage events in `dmesg` (timestamp cross-reference)
  • Powering PiAxe HAT and Pi from the same wall brick - single USB-C, single 12V brick with step-down to Pi, or PoE HAT with no separate ASIC supply
  • Cheap unbranded USB-C cable between PSU and Pi - the cable is the most common single root cause
  • PiAxe HAT 12V input wired to Pi GPIO 5V instead of dedicated barrel jack or screw terminal - back-feeding the Pi through the header
  • Pi 4 with old micro-USB 5V/2.5A PSU adapted via USB-C dongle - originally for Pi 3, nowhere near enough current for Pi 4 + ASIC HAT
  • Pi 5 with generic 5V/3A USB-C PSU instead of the official 5V/5A - boots in 3A peripheral-limit mode, GPIO/USB current capped
  • SD card corruption events, ext4 journal replay messages on boot, or filesystem-readonly errors after a few days of mining (silent data loss from undervoltage-induced flash writes)
  • HDMI flicker, USB peripherals dropping, ethernet link cycling - all coincident with PiAxe activity
  • `pyminer.service` runs fine on the Pi alone (no chip), throttles immediately when 12V is connected to the HAT

Step-by-Step Fix

1

SSH into the Pi and run `vcgencmd get_throttled`. Record the hex value. Then `dmesg | grep -iE "voltage|throttl"` and `journalctl -k --since "1 hour ago" | grep -iE "voltage|throttl"`. Bit `0` (`0x1`) = undervoltage right now; bit `2` (`0x4`) = throttling now; bit `16` (`0x10000`) = undervoltage has occurred since boot; bit `18` (`0x40000`) = throttling has occurred. Any non-zero value confirms the rail is or was below the Pi PMIC's `4.63 V` threshold. `0x0` clean = power is fine and your problem is elsewhere.

2

Sketch your current power topology. Where is `5V` coming from? Where is `12V` coming from? Two separate wall plugs or one shared? Is the PiAxe HAT taking `12V` from a barrel jack, or pulling from Pi GPIO `5V` and stepping up? Is the Pi's USB-C plugged in directly, or fed from a step-down on the HAT? Single-supply topology = root cause confirmed; go to step 4. Two-supply but undersized = step 3.

3

Verify PSU nameplate ratings against load. Pi 4 needs `5V/3A` (`15 W`) minimum; Pi 5 needs `5V/5A` (`25 W`) for full peripheral current. PiAxe BM1366 needs `12V/2A` sustained, `5A` strongly recommended for transient bursts. If either PSU is undersized, swap with a correctly-rated unit before any other diagnosis. Re-run step 1 after swap.

4

Split the rails - the canonical fix for this error class. Order the components: official Raspberry Pi USB-C PSU (`5V/3A` Pi 4, `5V/5A` Pi 5) and a dedicated `12V/5A` barrel-jack DC supply (5.5 mm x 2.1 mm by default - verify against PiAxe HAT silkscreen). Wire the Pi's USB-C directly to its dedicated PSU. Wire the HAT's 12V input directly to the 12V brick. Do NOT bridge `5V` between Pi and HAT through GPIO. Power up. Re-run step 1.

5

Replace the Pi's USB-C cable with an official Raspberry Pi cable or a USB-IF certified `100 W` PD cable from a reputable brand (Anker, Cable Matters, Apple). Cheap unbranded cables drop `0.3-0.5 V` across a meter at `3 A` due to undersized conductors - enough alone to trip the PMIC's `4.63 V` threshold. This single swap clears more undervoltage tickets than any other fix.

6

Probe the Pi `5V` rail with a multimeter on DC, at GPIO header pin 2 or 4 referenced to a `GND` pin (e.g. pin 6). Run `pyminer.py` at full hashrate while measuring. Target: `>= 4.85 V` sustained, `>= 4.75 V` transient minimum. Any sustained sag below `4.65 V` confirms a droopy rail - PSU undersized, cable resistance too high, or both. If the rail measures solid above `4.85 V` but the PMIC still fires, the dip is sub-millisecond transient (step 7).

7

Audit GPIO `5V` back-feed and HAT-side step-down quality. If your PiAxe HAT has a `12V -> 5V` step-down for the Pi, scope or measure its output under load - a dip below `4.65 V` during BM1366 burst current confirms the step-down is the failure point. Cleanest fix: stop using the HAT-side step-down entirely; feed the Pi from its own USB-C. If you must use a step-down, source one rated for `5V/5A` continuous with low transient response (LM2596 modules from cheap kits will not cut it - look for buck converters with capable transient response and proper output capacitance).

8

Reset all sticky throttle bits and re-validate. Power cycle the Pi (full unplug, 30 second wait, replug). After clean boot, run `pyminer.py` for 30 minutes at full hashrate. Re-run `vcgencmd get_throttled`. The high-bit history flags (`0x50000` family) only clear on reboot - so without a reboot you cannot tell if a recent fix actually held. A clean `throttled=0x0` after 30 minutes of full hashing post-reboot is the only honest pass.

9

Verify Pi 5 PD negotiation if you are on Pi 5. Pi 5 with a generic `5V/3A` USB-C boots in peripheral-limited mode that caps GPIO and USB current at `600 mA`. PiAxe HATs that draw any GPIO `5V` will hit that cap. Use the official Raspberry Pi `5V/5A` (`27 W`) USB-C PSU or a confirmed `27 W` PD-capable third-party. Verify with `dmesg | grep -i pmic` after boot - look for `current limit: 5000mA` (good) versus `current limit: 3000mA` (peripheral-limited).

10

Eliminate PoE HAT contention if relevant. PoE HATs typically supply `5V/2.5A` to the Pi which is below Pi 4 spec with zero headroom for a stacked ASIC HAT. PoE is for low-power IoT, not ASIC mining. Remove the PoE HAT, route a dedicated USB-C to the Pi, and a dedicated `12V` to the PiAxe. There is no clever way to power both rails from PoE - it does not have the wattage budget.

11

If you have an oscilloscope, scope the `5V` rail at the Pi GPIO header during pyminer startup and during sustained hashing. Trigger on falling edge below `4.7 V`, single-shot. The BM1366 pulls in nonce-search bursts on microsecond timescales; a marginal supply will dip transiently below `4.63 V` for `200-500 us` and recover before a multimeter sees it. If you capture transient sags below threshold, you cannot fix this with cable / PSU swaps alone - you need the rail-split topology (step 4) to remove the shared current path.

12

Audit wall outlet voltage. Plug a wall-outlet logger (Kill-A-Watt, P3 P4400, or generic clamp meter that records over time) into the same outlet feeding the PiAxe kit. Run for 24 hours. North American spec is `120 V +/- 5%` (`114-126 V`). If the line dips below `108 V` during peak load hours, your PSU is starving and your `5V` rail sags as a downstream consequence. Same evening-sag mechanism that wrecks Antminer S19s in residential basements, scaled down. Move the PiAxe to a dedicated circuit if the kitchen / shared circuit shows sub-`108 V` events.

13

Build a multi-PiAxe farm power distribution rack if you are running 3+ units. Single 12V/40A bench supply (Mean Well RSP-500-12 or equivalent) with individual fused taps to each PiAxe HAT, plus a separate USB-C charging hub (Anker 100W+ 6-port) for all the Pis. This is the open-source equivalent of the Antminer farm PDB topology - one beefy industrial supply per voltage rail, fused per unit. Costs about `$200 CAD` to build, scales cleanly to 8-10 units, and eliminates the per-unit PSU lottery entirely.

14

Add a continuous throttle-monitoring cron job. Edit crontab with `crontab -e`, add: `*/15 * * * * /usr/bin/vcgencmd get_throttled >> /var/log/throttled.log`. Tail occasionally; pipe to a Discord/Telegram webhook if the value goes non-zero. Catches PSU degradation a month before SD corruption. For a multi-unit farm, ship the log into Prometheus / Grafana via node_exporter's textfile collector and alert on any non-zero throttle bit across the fleet.

15

Switch the rootfs to read-only mode for long-term mining if SD-card corruption from past undervoltage events is a concern. Install the `overlayroot` package (`sudo apt install overlayroot`), enable read-only root in `/etc/overlayroot.conf` with `overlayroot=tmpfs:swap=1`. Reboot. The kernel can no longer write garbage to the SD card during a brownout; logs go to RAM. Trade-off is that config changes need a temporary `overlayroot-chroot` session - acceptable for a dedicated mining Pi.

16

Escalate to D-Central's open-source / pleb-mining queue if Tier 1-3 fixes pass every gate (`vcgencmd get_throttled` returns clean `0x0`, multimeter reads good rail, scope shows no transients) but the BM1366 still produces zero hashrate. Likely chip-level undervoltage damage from past brownouts. Email support with: Pi model, OS version, photos of the HAT (look for burnt PMIC / cracked caps), `dmesg` and `pyminer` logs, throttled-history log if you have it.

17

Ship the kit to D-Central for bench work. Pack the PiAxe HAT and (if you suspect Pi PMIC damage) the Pi separately in anti-static bags, double-box with `3 cm` of foam on every side. Include a printed note: Pi model, OS, kernel version, current power topology sketch, the failure mode you observed, the fixes you tried and their results, and any electrical events (surge, reverse-polarity, brownout) the kit lived through. Half an hour of preparation saves billable bench time.

18

D-Central bench process for undervoltage casualties: visual inspection for burn / cap damage, continuity test on the HAT's `12V` and `5V` rails, BM1366 response test on a known-good Pi 4 + reference dual-rail topology, BM1366 chip replacement from stock if unresponsive, reflow + reassembly, 4-hour burn-in at target `500 GH/s` on solo.ckpool.org. We return the unit with a printed test report. Turnaround `3-7` business days Canada-wide, `5-10` days international.

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.