A simple, modchip style addon for the Raspberry Pi Compute Module 5 IO Board to detect when the Raspberry Pi CM5 has been shut down, and subsequently turn off the cooling fan to prevent it from spinning up to full speed.
I like the Raspberry Pi Compute Modules. I like coming up with a million and one ways they could be put into projects where they don't necessarily belong. I like procrastinating so much that I never get round to doing anything with them! Following this trend, I liked the announcement of the Raspberry Pi Compute Module 5 so much that I had to ask to get one for Christmas.
However, reading up on the Compute Module 5 and its accompanying IO board, there appeared to be a slight problem. THE FAN.
The Compute Module 5 uses an open collector output to drive the fan PWM signal to control its speed. After being shutdown, the fan remains powered while this output is disabled. As a result, the internal pullup resistor within the fan pulls the PWM line high (which is a common feature in 4-pin desktop fans that allows them to be driven from a 3-pin fan header), and then the fan starts whizzing up to full speed! A definite nuisance, when everything is supposed to be shut down, and the only way to stop the whirring is to unplug the power.
Having to fiddle with the USB-C connector whenever you want to turn the Pi on or off is annoying, especially if you want to have it tucked away in a corner running headless with a dozen other cables snaking around it.
This project will eradicate this especially minor inconvenience once and for all by fixing what should have always been in the first place, and STOP the fan when everything has been shutdown.
Fortunately, there is a more or less unused area right next to the fan header on the Compute Module 5 IO board, sandwiched between the Compute Module 5 itself and the M.2 NVME SSD. This appears to be the perfect place to squeeze in a little extra logic to finally put a stop to the tyranny of unwanted fan noise.