Raspberry Pi runs hot and slows down: heatsink, fan and case airflow

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

  1. Read the core temperature with the vcgencmd tool.
  2. Check the throttle flags with vcgencmd get_throttled.
  3. Fit a heatsink on the processor.
  4. Add a small fan and leave air gaps in the case.
  5. Keep the Pi away from motor drivers and regulators.
  6. 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 seeDo this
Slow after some minutesThermal throttling.
Lightning bolt iconPower supply, not heat.

Pi power, Jetson power.

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 now

Common 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.