#raspberry-pi #cm5 #cooling #heatsink #thermal #klipper #manta
# Overview
Cooling options for the Raspberry Pi Compute Module 5, what's actually stocked at PiShop.us, and how to mount and power a cooler in the two carriers that matter here: the **CM5 IO Board** and the **BIGTREETECH Manta M5P / M8P** Klipper mainboards.
Short version: **CM5 needs a heatsink, full stop.** Bare, it throttles in 12–15 seconds under load. A passive cooler buys ~11–12 minutes. Only an active cooler holds full clock indefinitely. There is exactly **one official standalone cooler** — a passive heatsink — and Raspberry Pi's only first-party *active* cooling is the fan built into the IO Case.
Related: [[Raspberry Pi CM5 IO Board Rev 2]] · [[Raspberry Pi CM5 Carrier Board Landscape]] · [[CM5 Carrier Boards with NVMe]]
# Design
## Thermal behaviour — why this matters
BCM2712 throttle points: **soft limit ~80 °C**, **hard throttle ~85 °C**, PMIC emergency cutoff 130 °C. LPDDR4X de-rates above 85 °C.
| Configuration | Behaviour under sustained 100% load | Source |
|---|---|---|
| **No cooler** | Throttles in **12–15 seconds**; floors at 1.5 GHz within ~30 s at 25 °C ambient | [bret.dk](https://bret.dk/raspberry-pi-compute-module-5-review-cooler-faster-better/) |
| **Official passive cooler** | **11–12+ minutes** before any throttling | [CNX Software](https://www.cnx-software.com/) |
| **Passive @ 3 GHz overclock** | **85.1 °C** — at the hard throttle point | [Tom's Hardware](https://www.tomshardware.com/) |
| **EDATEC active cooler, stock clocks** | **84.3 °C → 57.6 °C** — a **27 °C** drop | Tom's Hardware |
| **EDATEC active @ 3 GHz overclock** | **75.2 °C** vs 85.1 °C passive | Tom's Hardware |
| **IO Case fan alone** (no heatsink) | 12–17 °C worse than a proper heatsink — it blows air over a bare die with no conductive contact | Tom's Hardware / CNX |
Power: CM5 at full load draws roughly **2× CM4**. Idle is actually slightly *lower* than CM4 at ~2.3 W ([Jeff Geerling](https://www.jeffgeerling.com/blog/2024/raspberry-pi-cm5-2-3x-faster-drop-upgrade-mostly/)). No official TDP is published.
**Practical read:** for a Klipper host or anything with bursty load, passive is fine. For sustained compilation, video, AI inference, or any overclock, you need the fan.
## The one thing that differentiates coolers: antenna clearance
On the **CM5 Wireless** variant the on-module antenna sits at one edge. Generic heatsinks can sit over it. The official cooler and the EDATEC cooler both fit, but must be **oriented correctly**. Waveshare's CM5-FAN-3007-5V and 52Pi's ZP-0215 both explicitly market an antenna notch as a feature — which tells you it's a real differentiator. On a **CM5 Lite / no-wireless** SKU this is a non-issue.
# Resources
## Official Raspberry Pi parts
| Part | P/N | Price | Type | Dimensions |
|---|---|---|---|---|
| [Cooler for Compute Module 5](https://www.raspberrypi.com/products/cooler/) | SC1752 | **$5 list** | Passive | 56 × 41 × **12.7 mm** |
| IO Case built-in fan (not sold separately) | part of SC1966 | — | Active | 4-pin JST-SH, 5 V |
Official cooler mounting: nylon washers (M2.5 × H1.5 **or** H3, matched to the module standoff height) between CM5 and carrier, then **4 × M2.5 × 8 screws from underneath the carrier board**. Thermally conductive silicone pads contact the CPU, the wireless module and the PMIC.
Datasheet: [cooler-product-brief.pdf](https://datasheets.raspberrypi.com/cm5/cooler-product-brief.pdf)
IO Case fan spec (full detail in [[Raspberry Pi CM5 IO Board Rev 2]]): 5 V (3.5–5.5 V), 0.85 W, 0.18 A, 8000 RPM ±15%, 2.46 CFM, 21.7 dB, 150 mm cable. Pinout 1 Yellow FG / 2 Black − / 3 Blue PWM / 4 Red +.
## What PiShop.us actually stocks
Verified 2026-09-11. This is the useful list — five real CM5 cooling SKUs plus one trap.
| Product | PiShop price | Type | Dimensions | Fan | Link |
|---|---|---|---|---|---|
| **RPi CM5 Passive Cooler** (official SC1752) | **$6.85** | Passive | 56 × 41 × 12.7 mm | — | [SKU 1103-1](https://www.pishop.us/product/raspberry-pi-compute-module-5-passive-cooler/) |
| **EDATEC Active Cooler for CM5** (ED-CM5ACOOLER) | **$8.95** | Active, blower | 56.5 × 41 × **14.1 mm**, 31 g | 5 V, 4-pin 1.0 mm PWM+tach, 8000 RPM ±15%, 1.09 CFM, 27.7 dB, 0.75 W | [SKU 594-1](https://www.pishop.us/product/active-cooler-for-raspberry-pi-cm5/) |
| **Waveshare All-in-one 3007 Fan** (CM5-FAN-3007-B-5V) | **$9.45** | Active, heatsink + blower | ==not published in text== | 5 V 4-wire PWM, 8000 RPM ±10%, 125 mm cable | [SKU 1848-1](https://www.pishop.us/product/all-in-one-3007-cooling-fan-for-raspberry-pi-compute-module-5-5v-speed-adjustable/) |
| **Waveshare Dedicated 3007 Fan** (CM5-FAN-3007-5V) | **$10.95** | Active, fan module | 54 × 39 × **13 mm** | 5 V 4-wire PWM, 5000 RPM ±10%, 1 W, 90 mm cable. **Antenna cut-out** | [SKU 682-2](https://www.pishop.us/product/dedicated-3007-cooling-fan-for-raspberry-pi-cm5-low-noise-5v/) |
| **Waveshare Metal Case for CM5 IO Board, w/ fan** | **$21.95** | Case + fan | — | — | [link](https://www.pishop.us/product/metal-case-for-raspberry-pi-compute-module-5-io-board-cooling-fan/) |
> ⚠️ **The trap:** PiShop's "Raspberry Pi Active Cooler" (SC1148, $10.95) shows up next to these in related products. It is the **Raspberry Pi 5 board** cooler — spring-loaded push-pins into Pi 5-specific holes. **It does not fit a CM5.** Only the five above carry PiShop's "Compatibility: CM5" tag.
Odd pricing note: the cheaper Waveshare all-in-one is rated 8000 RPM while the pricier "dedicated" fan is 5000 RPM. Direct from Waveshare both list at **$6.99**, so PiShop's ordering is a markup artefact, not a spec difference. ==Worth checking which is actually quieter before buying — 27.7 dB on the EDATEC is the only published noise figure in the group.==
## Third-party, direct from vendor
| Vendor | Product | Price | Type | Dimensions | Notes |
|---|---|---|---|---|---|
| [Waveshare](https://www.waveshare.com/cm5-fan-3007-b-5v.htm) | CM5-FAN-3007-B-5V | $6.99 | Active all-in-one | 67 g | Screws + thermal tape |
| [Waveshare](https://www.waveshare.com/cm5-fan-3007-5v.htm) | CM5-FAN-3007-5V | $6.99 | Active fan | 54 × 39 × 13 mm, 34 g | Antenna clearance advertised |
| [Geekworm](https://geekworm.com/products/c519) | C519 V1.1 | $6.20 | Passive | 41 × 55 × **15 mm**, 37 g | Vendor note: needs 2 extra thermal pads on the PWR chip for tolerance |
| [52Pi / GeeekPi](https://52pi.com/products/52pi-aluminum-alloy-heatsink-with-3007-blower-fan-for-raspberry-pi-compute-module-5-active-passive-dual-cooling-radiator-for-raspberry-pi-cm5) | ZP-0222 | $9.99 | Active | 70 g, ==dims unpublished== | 4-wire PWM |
| [52Pi / GeeekPi](https://52pi.com/products/52pi-aluminum-alloy-cnc-heatsink-for-raspberry-pi-cm5-passive-cooling-for-raspberry-pi-compute-module-5) | ZP-0215 | $7.64 | Passive CNC | 80 g | CNC Wi-Fi antenna notch, M2.5 hardware |
| [DeskPi](https://deskpi.com/products/deskpi-aluminum-alloy-cnc-heatsink-with-fan-for-raspberry-pi-cm5-active-cooling-for-raspberry-pi-compute-module-5) | ZP-0216 (52Pi OEM) | $9.90 | Active CNC | — | **Not compatible with DeskPi Super6C** — that board has no JST 4-pin fan header. Fine on Super4C |
| [EDATEC](https://edatec.cn/ac/CM5ACOOLER) | ED-CM5ACOOLER | $8.95 via PiShop | Active | 56.5 × 41 × 14.1 mm | The best-reviewed third-party cooler — Geerling, Tom's Hardware ×2, CNX |
| [EDATEC](https://edatec.cn/ac/CM5PCOOLER) | ED-CM5PCOOLER | ==unconfirmed== | Passive | ==not captured== | Passive sibling |
Seeed's "CM5 Passive Cooler" listing is a resale of the official Raspberry Pi part, not a Seeed design. Geekworm makes no CM5 *active* cooler — their active coolers are Pi 5 only.
# Configuration
## On the CM5 IO Board
Straightforward: the board has the Pi 5-style **4-pin JST-SH PWM fan header**, so every cooler above plugs straight in. Fan speed is PWM-controlled by the CM5 itself.
**Heatsink + IO Case fan do not coexist on the original case.** The case's lid fan is ~7.3 mm tall, leaving ~4.9 mm once a 12.7–15 mm heatsink is fitted. Tom's Hardware's reviewer had to pull the IO board out of the case and remove the pre-installed lid fan to use the EDATEC cooler. Community reports say a revised IO Case (SC1966, sold as "REV 2") moved the fan mount to the side so both work together. ==Treat that as community-reported: there is no published PCN for the IO Case, and PCN 25 — which covers the IO *Board* — explicitly records "no change" to mechanical form, fit and function. The board and the case were revised separately. See the correction in [[Raspberry Pi CM5 IO Board Rev 2]].==
Also reported: a Rev 1 IO Board doesn't fit cleanly in a Rev 2 case due to slight port-position differences.
### Fan running after shutdown
Known CM5 IO Board Rev 1 behaviour — the PWM pin stops driving at power-down and some fans spin up to 100%. Two fixes:
1. **Hardware:** Rev 2 adds a pull-up to the FAN output (PCN 25), which also holds the fan off at power-down since `CM5_3.3V` goes low.
2. **Firmware:** a December 2025 bootloader update exposes `POWER_OFF_ON_HALT=0`, which fixes it on Rev 1 boards too (per Jeff Geerling).
On a **custom carrier**, the datasheet's own advice is to power the fan from the USB VBUS enable (**U6**) instead — `VBUS_EN` is pulled low at shutdown.
## On the BIGTREETECH Manta M5P / M8P
### ⚠️ Read this before plugging anything in
The Manta boards have a header named **`Pi-FAN`** intended exactly for this. On the **M5P** its voltage is **jumper-selectable 5 V / 12 V / 24 V**, shared with the other CNC fan outputs. **Verify the jumper position physically before connecting a 5 V CM5 cooler** — at 24 V it will be destroyed instantly. BIGTREETECH explicitly disclaims responsibility for fans burned out by wrong jumper selection.
There is also an open issue ([Manta-M5P #36](https://github.com/bigtreetech/Manta-M5P/issues/36)) reporting that BTT's **printed pin diagram mislabels a nearby header** as a fan-voltage selector when it actually sets the probe (IND_DET) voltage. Check the schematic, not the silkscreen diagram.
### Header inventory
| Board | Fan outputs | Pi-FAN present? |
|---|---|---|
| **M5P** | 3 × 2-pin CNC (FAN0, FAN1, **Pi-FAN**), jumper 5/12/24 V, + 1 always-on. Max 1–1.1 A per port, < 2.5 A total | **Yes** |
| **M8P V1.0** | FAN0–3 two-wire, FAN4–6 four-wire, 2 × always-on fixed 24 V, 5/12/24 V jumper on the CNC group | **No** |
| **M8P V1.1** | As V1.0 plus Pi-FAN, documented as "Controlled by GPIO26" | **Yes** |
| **M8P V2.0** | 5 × 2-pin PWM (FAN0–4), **1 × 2-pin Pi FAN**, 2 × 4-pin PWM (FAN5/6), 1 × always-on | **Yes** |
==On M8P V2.0 the spec table lists voltage selection for FAN0–FAN6 but does not name Pi FAN in that list — it may be a fixed rail. Unverified; check the silkscreen.==
### The connector problem
**Neither Manta board has a 4-pin JST-SH 1.0 mm header.** All Manta fan outputs are standard BTT 2.54 mm-class connectors. The official CM5 cooler's JST-SH plug will not mate. Options:
1. **Splice** — cut the JST-SH off the cooler, keep the two power leads (drop tach and PWM-sense), re-terminate onto a Manta-compatible connector. Keeps the good cooler.
2. **Use a bare 2-pin fan** — a 4010 or 5015 on the Pi-FAN header. This is what the community actually does.
3. **Tap 5 V from the 40-pin header** (pins 2/4 by standard Pi pinout) and let the Pi's own thermal policy run the fan.
**Functional caveat:** the Manta's Pi-FAN is a **GPIO-switched MOSFET** — on/off, or software bit-banged PWM. It is *not* the hardware PWM + tach loop the stock cooler expects (the CM4/CM5 IO Board uses a dedicated EMC2301 I²C fan controller for that — see [Geerling on the EMC2301](https://www.jeffgeerling.com/blog/2021/controlling-pwm-fans-raspberry-pi-cm4-io-boards-emc2301/)). Cooling works fine; closed-loop speed control doesn't come along for free.
### Klipper config — drive the fan from SoC temperature
The Pi-FAN is switched by the **compute module's own GPIO**, not the STM32: `RPI:gpio26` on a Pi CM, `CB1:gpio79` on a CB1. That means it needs Klipper's Linux-process MCU running on the module — a second `[mcu]` block, not automatic.
The correct sensor type is **`temperature_host`** (reads `/sys/class/thermal/thermal_zone0/temp`). There is no `temperature_pi` sensor type in Klipper.
```ini
[mcu RPI]
serial: /tmp/klipper_host_mcu
[temperature_fan SoC_fan]
pin: RPI:gpio26
kick_start_time: 0.8
off_below: 0.1
max_power: 1.0
sensor_type: temperature_host
control: pid
min_temp: 10
max_temp: 100
pid_kp: 1.0
pid_ki: 0.5
pid_kd: 2.0
min_speed: 0.1
max_speed: 0.8
target_temp: 38
```
Adapted from a working M8P Pi-FAN config on [Klipper Discourse](https://klipper.discourse.group/t/btt-manta-m8p-pi-fan/6918). BTT's stock `generic-bigtreetech-manta-m5p.cfg` ships the simpler commented-out form:
```ini
#[heater_fan SoC_fan]
#pin: RPI:gpio26
```
If the fan is **not** on Pi-FAN — spliced to a raw 5 V pin, or left on its own EMC2301 circuit — Klipper has no visibility into it at all. The Pi's own OS-level fan control governs it independently.
### Clearance
No official mm figure from BTT. What's known:
- A tested community bracket ([Manta M8P Driver CB1/CM4 Cooling Bracket](https://www.printables.com/model/901155-manta-m8p-driver-cb1cm4-cooling-bracket)) **fouled TMC2240 driver heatsinks** on an M8P V2.0; the author extended the legs **+4 mm** in v2 to clear them. Uses 4010 fans and M2.5 × 10 mm screws.
- BIGTREETECH's own [CB2 heatsink](https://www.amazon.com/dp/B0DGG6DYNQ) ($9.99, heatsink only) is sized around a **40 × 40 × 10 mm fan**, which is a reasonable proxy for BTT's intended envelope. ==Marketed for CB2; unverified whether it clears a CM4/CM5 identically.==
- Working assumption: **a low-profile heatsink plus a 10 mm 4010 clears; taller stacks risk fouling TMC driver heatsinks or the display header.** Dry-fit before committing.
The official CM5 cooler is 12.7 mm and EDATEC's is 14.1 mm — both are in the risky band next to 2240-class driver heatsinks.
### CM5 support status on Manta (as of 2026-09-11)
Still **not officially supported or documented** by BIGTREETECH. [Manta-M8P #131](https://github.com/bigtreetech/Manta-M8P/issues/131) remains open at 46 comments with the only BTT reply being non-technical. Community picture:
- Multiple users report CM5 **plug-and-play specifically on M8P V2.0**. M8P V1.0/V1.1 reports are murkier — at least one swap was not plug-and-play.
- **eMMC flashing:** must power the board from the **external 24 V PSU**, not USB jumper power, or rpiboot won't see the module. rpiboot on Windows is flaky; several people had to build it from source on Linux/WSL and manually re-flash the CM5 bootloader EEPROM via `recovery5` first.
- **USB host mode** needs `dtoverlay=dwc2,dr_mode=host` added manually to `/boot/firmware/config.txt` — CM5 defaults differently to CM4.
- **DSI touchscreens** don't get touch detection on CM5 (works on CB2). Traced to CM5 moving the touch/backlight I²C to `i2c_csi_dsi0`; an unofficial community overlay exists. [Manta-M5P #43](https://github.com/bigtreetech/Manta-M5P/issues/43) is the M5P equivalent, still open.
- [#145](https://github.com/bigtreetech/Manta-M8P/issues/145): DFU-flashing the M8P's STM32 *from* a CM5 host fails with `LIBUSB_ERROR_TIMEOUT`. Open.
### What people actually build
Nobody found in this research adapted the OEM JST-SH CM5 cooler onto a Manta. The pattern is a bare 4010 or 5015 on a printed bracket, often shrouding the CM and the TMC drivers together:
- [Manta M8P Driver CB1/CM4 Cooling Bracket](https://www.printables.com/model/901155-manta-m8p-driver-cb1cm4-cooling-bracket) — the one with documented clearance data
- [Manta M8P TMC Cooling, 5015 fan](https://www.thingiverse.com/thing:6158512)
- [Super Cool BTT Manta M8P 5015 Fan Channel](https://www.printables.com/model/825643-super-cool-btt-manta-m8p-5015-fan-channel)
- [120mm fan mount for BTT Manta M8P](https://www.printables.com/model/1253837-120mm-fan-mount-for-btt-manta-m8p) — whole-board approach
- [Thingiverse `manta_m8p` tag](https://www.thingiverse.com/tag:manta_m8p)
# Decisions
- **For the CM5 IO Board: EDATEC ED-CM5ACOOLER at $8.95.** Best independently reviewed, correct 4-pin JST-SH connector, 27 °C drop at stock clocks, and only 1.4 mm taller than the official passive cooler. The official $6.85 passive cooler is the right call only if the build is bursty-load and silent matters more than sustained clock.
- **Don't buy the IO Case expecting fan + heatsink together** unless the case is confirmed Rev 2 — and even then, treat it as community-reported.
- **For the Manta M5P: do not use the OEM CM5 cooler.** Wrong connector, wrong control scheme, and 12.7–14.1 mm is tall enough to risk fouling driver heatsinks. Use a **passive heatsink sized to clear the drivers, plus a 4010 on the Pi-FAN header**, with the jumper confirmed at 5 V.
- **Check the Pi-FAN jumper with a meter before connecting anything.** 24 V into a 5 V fan is instant and unrecoverable.
- **Drive it from Klipper with `[temperature_fan]` + `sensor_type: temperature_host`,** not the Pi's own fan policy — that way the printer's own thermal picture includes the SoC.
- **If reliability on the Manta matters more than the newest silicon, CM4 is still the documented option.** CM5 works for many people on M8P V2.0 but is entirely community-supported.
# TODO
- ==Measure actual clearance above the CM on the M5P before ordering a heatsink — no vendor figure exists, and the 12.7 mm official cooler is in the risky band==
- ==Confirm the M5P Pi-FAN jumper position and rail voltage with a meter before connecting any 5 V fan==
- ==Decide splice-the-EDATEC vs bare-4010 for the Manta. Splicing loses tach and PWM; a 4010 loses nothing because Pi-FAN is on/off anyway==
- ==Get dimensions for the Waveshare CM5-FAN-3007-B-5V — only a diagram image is published, no text values==
- ==Confirm whether the IO Case currently shipping is the revised one that fits a heatsink and the fan together, before buying a case==
- ==Check whether `POWER_OFF_ON_HALT=0` is needed on this setup, or whether the fan already stops at shutdown==
- ==Verify GPIO26 maps to the same functional pin on CM5 as CM4 on the Manta wiring — CM5 moved ~two dozen pins vs CM4 and no source confirms this specific one==
# References
- [Raspberry Pi Cooler for CM5 — product brief](https://datasheets.raspberrypi.com/cm5/cooler-product-brief.pdf)
- [EDATEC ED-CM5ACOOLER datasheet](https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/6466/ED-CM5ACOOLER.pdf)
- [PiShop CM5 category](https://www.pishop.us/product-category/raspberry-pi/raspberry-pi-boards/compute-modules/compute-module-5/)
- [bret.dk — CM5 review](https://bret.dk/raspberry-pi-compute-module-5-review-cooler-faster-better/) — the 12–15 second throttle figure
- [Jeff Geerling — CM5 launch coverage](https://www.jeffgeerling.com/blog/2024/raspberry-pi-cm5-2-3x-faster-drop-upgrade-mostly/)
- [Jeff Geerling — PWM fans via the CM4 IO Board EMC2301](https://www.jeffgeerling.com/blog/2021/controlling-pwm-fans-raspberry-pi-cm4-io-boards-emc2301/)
- [BTT Manta M5P wiki](https://global.bttwiki.com/M5P.html) · [M8P wiki](https://global.bttwiki.com/M8P.html) · [M8P V2.0 wiki](https://global.bttwiki.com/M8P-V2_0.html)
- [Klipper `generic-bigtreetech-manta-m5p.cfg`](https://github.com/Klipper3d/klipper/blob/master/config/generic-bigtreetech-manta-m5p.cfg)
- [Klipper `temperature_host.py`](https://github.com/Klipper3d/klipper/blob/master/klippy/extras/temperature_host.py)
- [Klipper Discourse — BTT Manta M8P Pi fan](https://klipper.discourse.group/t/btt-manta-m8p-pi-fan/6918)
- [Manta-M8P #131 — CM5 support](https://github.com/bigtreetech/Manta-M8P/issues/131)
- [[Raspberry Pi CM5 IO Board Rev 2]] · [[Raspberry Pi CM5 Carrier Board Landscape]] · [[CM5 Carrier Boards with NVMe]]