Check the temperature, then add a heatsink and airflow.
What the message means
Above a set temperature the Pi lowers its clock speed to protect itself. A closed case in a warm robot makes this easy to reach.
Fix it in this order
- Read the core temperature with the vcgencmd tool.
- Check the throttle flags with vcgencmd get_throttled.
- Fit a heatsink on the processor.
- Add a small fan and leave air gaps in the case.
- Keep the Pi away from motor drivers and regulators.
- Lower the load, for example the camera frame rate.
Why it happens
A Raspberry Pi slows itself down when it gets hot, from around 80 °C on a Pi 4. A closed case, heavy load such as vision or compiling, and a high room temperature push the chip up.
Check the temperature with vcgencmd measure_temp, add a heatsink and a small fan, and use a case with airflow. Keep the supply healthy, because low voltage also throttles the board.
If you see this, do this
| You see | Do this |
|---|---|
| Slow after some minutes | Thermal throttling. |
| Lightning bolt icon | Power supply, not heat. |
Related
Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.
Why this happens
The Pi’s processor produces heat in proportion to its load and clock speed. A small chip with no airflow in a closed case warms up quickly under vision, compiling or streaming. Raspberry Pi firmware watches the temperature and, near the soft limit (about 80 degrees C on a Pi 4), starts reducing the clock; nearer 85 degrees C it limits more. The robot feels this as a loop that runs fine for a few minutes and then becomes slow.
Heat is not the only cause of a throttled Pi. If the supply voltage at the board drops below roughly 4.63 V, the firmware flags under-voltage and also lowers the clock. A thin cable and a motor driver on the same battery are classic causes, so you need to read the flags and not guess.
How to confirm the cause
- Run vcgencmd measure_temp while the robot does its normal job. A value that climbs steadily past 70 degrees C is a heat problem.
- Run vcgencmd get_throttled. Bit 0 (0x1) means under-voltage now, bit 2 (0x4) means throttled now, bit 3 (0x8) means the soft temperature limit is active. Bits 16, 18 and 19 are the same events remembered since boot.
- Watch the clock with vcgencmd measure_clock arm. If it falls from the full speed while the temperature is high, thermal throttling is confirmed.
- Check the top command for a runaway process using a whole core, since a stuck camera loop makes heat by itself.
Worked example
The commands and the bit values are standard for Raspberry Pi OS. Run them while the robot is busy.
# run these while the robot is working
vcgencmd measure_temp
vcgencmd get_throttled
vcgencmd measure_clock arm
# reading the answer:
# throttled=0x50005 = 0x40000 + 0x10000 + 0x4 + 0x1
# under-voltage now, throttled now,
# and both have also happened since boot
# throttled=0x80000 = soft temperature limit
# occurred earlier, not active nowCommon mistakes
- Judging heat by touch; a case can feel only warm while the chip is already at the limit.
- Sticking the heatsink on the wrong chip; fit it on the main processor under the metal lid, and use the pad it came with.
- Fitting a fan inside a closed case so it only moves the same hot air around; give it an inlet and an outlet.
- Treating 0x50005 as a temperature problem. Bits 0 and 16 are about supply voltage.
If this did not fix it
- Check the supply and cable first if bit 0 or bit 16 is set; a thick, short cable and a supply rated for the board’s peak current help.
- Check the load: lower the camera resolution or frame rate, or the number of processes.
- Check where the Pi sits; a regulator or motor driver next to it adds heat to the same enclosure.
- Check room temperature; a robot in direct sun can reach the limit without any change in code.