Heat dissipation can strongly affect the performance of your Raspberry Pi because it has embedded protection that reduces the clock rate of the processor to prevent any harm to the hardware caused by overheating.
There are many passive, static, and dynamically active solutions to keep your CPU temperature down, but one is especially interesting because it gives you the control of the accessory and opens many additional possibilities. It is called FanSHIM!
FanSHIM [https://learn.pimoroni.com/…fan-shim] – Official site with instructions for assembly, installing, configuring, and templates for Python programming to control the device.
sudo apt install git python3-pip -y git clone https://github.com/pimoroni/fanshim-python cd fanshim-python
For RaspberryPi OS just follow the next steps but if on Ubuntu 22.04 check the bonus section before proceeding.
sudo ./install.sh cd examples sudo ./install-service.sh --on-threshold 55 --off-threshold 40 --delay 1 --preempt --noled --nobutton sudo systemctl stop pimoroni-fanshim.service sudo systemctl disable pimoroni-fanshim.service sudo systemctl enable pimoroni-fanshim.service sudo systemctl start pimoroni-fanshim.service
It also has one RGB (Red Green Blue) LED that can be controlled by software using the Python libraries.
If your project will be sitting there executing its duties standalone as a print server, file server, web server, etc but not being manipulated or used for tests it is recommended to solder the terminals.
The manufacture claims it does not require to be soldered but I faced poor contact of the terminals, which led to not control the fan that was always on and the LED was also not lighting up.
Another reason is to make it solid positioned suspended above the processor. I also faced noise due to the vibration of the fan touching the heatsink. Before the soldering, put something underneath the fan to make one gap between the parts.
Now it works absolutely in silence and only on demand!
Dependencies for Ubuntu 22.04.
sudo apt install python3-rpi.gpio python3-metaconfig python3-dev libmysqlclient-dev python3-pip -y sudo pip3 install configparser