#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]]