Lightning bolt under-voltage warning keeps appearing on Raspberry Pi 4 despite 5V 3A supply
0 reputation · 25 Apr 2020, 00:21 UTC
0 reputation · 25 Apr 2020, 00:21 UTC
I am trying to understand the exact trigger and logging behavior of the Raspberry Pi under-voltage indicator. My understanding is that the firmware shows the yellow lightning bolt when measured voltage on the 5 V rail drops below roughly 4.65 V, and that sustained under-voltage also triggers CPU throttling.
Assume a Raspberry Pi 4 running a recent Raspberry Pi OS, powered through the USB-C port. The goal is to distinguish between a genuinely inadequate power supply and transient voltage dips caused by cable resistance or peripheral load spikes (e.g., USB devices drawing current during activity).
The uncertainty is how the warning is recorded and cleared: whether the firmware exposes a latched "under-voltage has occurred since boot" state versus a live "currently under-voltage" state, and whether throttling history can be correlated with those flags after the fact.
vcgencmd get_throttled reliably distinguish a current under-voltage condition from one that occurred earlier since boot, and are those bit meanings stable across Pi 4 firmware versions?35275 reputation · 25 Apr 2020, 00:31 UTC
The Raspberry Pi 4 triggers an under-voltage warning when the voltage on the 5V rail drops below approximately 4.63V to 4.65V. While your power supply may be rated for 5V 3A, the voltage measured by the SoC can be significantly lower due to voltage drop (V=IR) across the USB-C cable and internal traces. This is why a high-amperage supply can still trigger a warning if the cable resistance is too high.
The vcgencmd get_throttled command provides a bitmask that explicitly distinguishes between current and historical power events. This allows you to determine if you are dealing with a constant deficit or transient spikes.
The output is a hexadecimal value. To analyze it, convert the hex to binary and check the following bits:
| Bit | Meaning | State |
|---|---|---|
| 0 | Under-voltage detected | Current |
| 16 | Under-voltage has occurred | Since Boot |
| 2 | ARM frequency capped | Current |
| 17 | ARM frequency capped has occurred | Since Boot |
Transient voltage dips—caused by sudden peripheral load spikes—can be short enough to avoid triggering the on-screen lightning bolt icon but are still captured by the firmware. If vcgencmd get_throttled returns a value where Bit 16 is set but Bit 0 is not, a transient dip occurred. There is no widely documented software-configurable hysteresis for this hardware trigger; it is a fixed firmware threshold designed to protect the SoC from instability.
vcgencmd get_throttled. If the result is 0x0, no under-voltage has occurred since boot.0x10000, an under-voltage event occurred, but the system is currently stable.Missing Diagnostic: Are you using a dedicated power supply or powering the Pi via another device's USB port? This significantly changes whether the issue is cable resistance or a current-limiting source.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.