Raspberry Pi get_throttled: Decode 0x50000 and Undervoltage¶
vcgencmd get_throttled reports a hexadecimal bitmask, not a temperature or error number. A value such as 0x50000 records earlier undervoltage and throttling; it does not say those conditions are active at the moment of the reading. Use this guide to decide whether to check power, cooling, or another performance bottleneck.
Read get_throttled alongside temperature¶
Take readings at idle and during the workload that becomes slow. Clock frequency naturally changes with load, so a low idle clock is not enough to diagnose throttling. Firmware support and fault detection vary by board; the Zero range lacks the low-voltage detection circuit described for other models.
Decode the get_throttled bits¶
The official vcgencmd reference defines these flags:
| Bit | Hex mask | Meaning |
|---|---|---|
| 0 | 0x1 |
Undervoltage detected now |
| 1 | 0x2 |
Arm frequency currently capped |
| 2 | 0x4 |
Currently throttled |
| 3 | 0x8 |
Soft temperature limit active |
| 16 | 0x10000 |
Undervoltage occurred earlier |
| 17 | 0x20000 |
Frequency capping occurred earlier |
| 18 | 0x40000 |
Throttling occurred earlier |
| 19 | 0x80000 |
Soft temperature limit occurred earlier |
Check masks with a bitwise AND. Comparing the entire result to one known value misses combinations of faults.
What do 0x50000 and 0x50005 mean?¶
| Example result | Interpretation |
|---|---|
0x0 |
None of these flags set in this reading |
0x50000 |
Earlier undervoltage and throttling; no current flags set |
0x50005 |
Current undervoltage and throttling, plus both historical flags |
0x20000 |
Earlier frequency cap; no current cap flag |
0x80008 |
Soft temperature limit active and recorded earlier |
A history flag alone does not identify when the event happened. These examples explain combinations, not guaranteed outputs for every board. The throttling bit alone also does not establish whether heat or power was the cause.
Decode any reading with Python¶
Save this as decode-throttled.py on any computer with Python 3. It decodes a captured value without requiring Raspberry Pi hardware:
Unknown bits remain visible rather than being silently treated as healthy.
If undervoltage is active, inspect the power path¶
- Record the reading and kernel messages before changing anything.
- Shut down cleanly before moving power cables or removing hardware.
- Check the supply's supported output, cable quality, connectors, and peripheral load.
- Repeat the same workload with a suitable supply and, where appropriate, a powered USB hub.
No matching log messages does not invalidate a firmware flag. Also, vcgencmd measure_volts core is not a measurement of the incoming USB supply, so it cannot prove the cable is delivering adequate input voltage.
For Pi 5, a compatible 3A supply permits booting but limits USB peripheral current to 600mA; a supported 5A-at-5V supply allows a higher 1.6A limit. A charger's advertised total wattage alone does not establish that output capability. See the official power-supply requirements for your model. Avoid forcing a higher USB current limit as a substitute for adequate power.
If temperature is high, verify cooling under load¶
Check heatsink contact, enclosure airflow, and fan operation while running your normal workload. Pi 5's fan can stop at low temperature; an idle stopped fan alone is not a failure. Do not connect a fan motor directly to a GPIO output.
Use the temperature and cooling guide for board-specific thermal behaviour. The older soft-temperature-limit feature is not a universal Pi 5 temperature threshold.
If current undervoltage and thermal symptoms both appear, address both. A cooler does not repair the power path.
Verify recovery without confusing history with an active fault¶
Record the original flags, supply/cable, peripherals, temperature, and workload. After the repair, compare current flags under the same workload. Historical flags can remain latched after the active condition clears; repeatedly reading a non-zero history value is not proof the repair failed.
For a fresh baseline, save the evidence, shut down cleanly, and start a new boot; if history remains, a clean power cycle provides a stronger reset boundary. Reproduce the workload and watch for new flags. Do not power-cycle repeatedly while writing storage or reboot solely to hide an unresolved fault.
Track an actual outcome too: request latency, inference speed, video playback, or sustained CPU frequency. If current flags remain clear but performance is poor, continue with memory-pressure diagnosis, storage measurements, and the performance troubleshooting guide.
FAQ¶
Is 0x50000 a current low-voltage warning?¶
It contains the historical undervoltage and throttling bits. Check bit 0 and take another reading during the affected workload to determine whether undervoltage is currently detected.
Does 0x0 prove the power supply is good?¶
It means the documented flags are clear in that snapshot. Brief failures, unsupported detection, USB power limits, and unrelated faults still require separate checks.
Should I disable throttling to make the Pi faster?¶
Keep automatic protection and fix the cause. Measure normal workload performance after improving power or cooling.
Related guides¶
- Temperature commands, cooling, and alerts
- CPU frequency scaling
- Measured Raspberry Pi performance optimization
Documentation and bit definitions checked on 2 October 2026. The decoder examples can be tested without hardware; power and cooling results depend on the actual Raspberry Pi installation.