uConsole CM5 Thermal Test: Does It Throttle Without Extra Cooling?
No. In a stock, closed uConsole case with the factory thermal pad, a Compute Module 5 running all four cores at 100% for 30 minutes peaked at 62.2 °C and never dropped its clock once. The ARM clock held the full 2400 MHz for 99.7% of the run, and the kernel throttle register read 0x0 for the entire 65-minute session.
That is 18 degrees below the soft throttle limit and 23 below the hard one. If someone told you that you need a riser, a thinner pad or a heatsink before running a CM5 in a uConsole, that advice is not supported by measurement.

Why this question keeps coming back
The CM5 is considerably faster than the CM4, the uConsole case is sealed and passively cooled, and ClockworkPi has never published any thermal figures. The forums filled the gap. Search for it today and you get a confident answer: the CM5 "will thermally throttle under sustained heavy loads", the stock pad is "often too thick or poorly gapped", and community fixes bring load temperatures "into the safe 50-60 °C range".
Nobody had measured it. There is a video and there are anecdotes, but there was not a single dataset. So we produced one.
Five claims, five verdicts
| Claim circulating in the community | Verdict |
|---|---|
| CM5 will thermally throttle under sustained load without improved heat transfer | Refuted. 30 minutes at 100% on four cores, zero throttling |
| The factory thermal pad is not good enough and has to be replaced | Refuted. The pad supplied in the kit kept the SoC 18 degrees below the throttle limit |
| Under 100% CPU an uncooled CM5 spikes past 80 °C and risks a safety shutdown | Refuted. Peak 62.2 °C |
| A riser plus a 0.5 mm pad drops load temperatures into the 50-60 °C range | Moot. Stock already averages 58.4 °C under full load |
Switching the governor to schedutil helps manage heat spikes | Not needed here. The unit ran on ondemand, the supposedly worse setting, and still did not throttle |
Methodology
The whole test is reproducible. The logging script and the raw CSV files are linked at the end.
Hardware
- Raspberry Pi Compute Module 5 Lite Rev 1.0, 8 GB RAM
- ClockworkPi uConsole, stock case, closed, factory ClockworkPi thermal pad, no modifications
- Device resting on the mat supplied in the kit, on a desk
Software
- Debian GNU/Linux 12 (bookworm), kernel 6.12.94-v8-16k+
- CPU governor:
ondemand- factory default, left unchanged - Screen backlight at maximum (9/9)
Conditions
- Ambient temperature 26 °C (the room thermometer read 25.9-26.4 °C throughout)
- Running on battery, charger unplugged. Charging draws 1.6 A and heats the case from the inside, which would contaminate the measurement. Battery at 99% at the start, 68% at the end.
Load
stress-ng --cpu 4 --cpu-method matrixprodfor the CPU phase- YouTube 1080p in Chromium, full screen, one complete playback of Big Buck Bunny (video ID
YE7VzlLtp-4, Blender Foundation, Creative Commons) for the video phase
Sampling
Every 5 seconds: SoC temperature, ARM clock, core voltage, vcgencmd get_throttled, load average, battery percentage. 773 samples across 65 minutes in total.
The get_throttled register is the part that matters. A temperature graph shows how hot a chip got; the register states whether the processor actually slowed down and why - undervoltage, soft limit or hard limit. Without it this would be a chart. With it, it is an answer.

Results
| Phase | Duration | Mean | Peak | Mean ARM clock | Throttled |
|---|---|---|---|---|---|
| Idle | 10 min | 39.6 °C | 40.8 °C | 1541 MHz | 0x0 |
| 100% CPU, 4 cores | 30 min | 58.4 °C | 62.2 °C | 2398 MHz | 0x0 |
| Cooldown | 15 min | - | 60.6 → 44.6 °C | 1500 MHz | 0x0 |
| YouTube 1080p | 10 min | 47.7 °C | 50.1 °C | 1862 MHz | 0x0 |

How the temperature builds under full load
| Elapsed | 1 min | 2 min | 5 min | 10 min | 15 min | 20 min | 25 min | 30 min |
|---|---|---|---|---|---|---|---|---|
| Temperature | 50.7 °C | 52.4 °C | 55.1 °C | 57.9 °C | 59.0 °C | 60.6 °C | 60.6 °C | 60.6 °C |
Two thirds of the total rise happens in the first two minutes. The curve reaches 95% of its peak at 11 minutes and is flat from minute 20 onward. This is the thermal equilibrium of the device: roughly 34 degrees above ambient under a full synthetic load.
Clock behaviour
During the CPU phase the ARM clock sat at 2400 MHz for 99.7% of samples, with a mean of 2398 MHz. There is no downward drift - and that is exactly what sustained throttling looks like on a graph.
The load was genuinely full: the mean load average was 3.95 across four cores, and 310 of 354 samples read 3.9 or higher. The system tray indicator independently reported 100% CPU usage.

Minute 27 of full load: 60.6 °C, the full 2400 MHz, throttle register 0x0, load average 4.03 across four cores. The taskbar widget shows 100% CPU and 61 °C.
Cooldown
12 degrees in the first two minutes, below 45 °C after ten. The aluminium rear panel is doing its job as a heatsink.
Video decoding
Ten minutes of 1080p YouTube produced a mean of 47.7 °C, about 8 degrees above idle and 11 below the CPU phase. The clock oscillated between 1600 and 2400 MHz as ondemand chased the uneven decode load. The mean system load was 0.79, less than one core out of four. Watching video on a uConsole CM5 is thermally uneventful.

The video phase: Big Buck Bunny at 1080p, full screen, in Chromium.
Battery
17 percentage points consumed in 30 minutes of full four-core load, which extrapolates to roughly three hours of continuous maximum load. Across the whole 65-minute session, video included, the battery went from 99% to 68%.
What this means in practice
- Compiling, long terminal sessions, background jobs. No thermal reason to avoid them. Equilibrium sits around 60 °C.
- Video playback. Under 50 °C. Not a consideration.
- Retro gaming and emulation. Lighter than the synthetic load we ran, so comfortably within range.
- Do you need extra cooling? On this evidence, for these workloads, no.
The unit tested here is the uConsole Kit RPI-CM5 8GB. The module on its own, if you are building a uConsole yourself or moving up from a CM4, is the Raspberry Pi Compute Module 5 - CM5 8GB Lite.
Limitations - what we did not test
This matters more than a stronger headline.
- One unit, one ambient temperature. 26 °C in the room. At 35 °C in August, add the difference - the equilibrium is a delta above ambient, not an absolute value.
- No comparison run. We did not test with the case open, with a riser or with a thinner pad, so we cannot say whether those modifications improve anything - only that on this unit there was nothing to improve.
- Synthetic load.
stress-ng --cpu 4is harder on the CPU than most real workloads and does not load the GPU. A sustained GPU-heavy task might behave differently. - Stock configuration throughout.
ondemandgovernor, factory pad, closed case, battery power.
Raw data
The complete CSV files for all four phases, the scripts and the chart generator are on GitHub: SAPSAN-CYBERSEC/uconsole-cm5-thermal-test. Data and scripts are CC BY 4.0 - use them, publish them, build on them. If you run the same test on your own unit, we would like to see the numbers, particularly at a higher ambient temperature.