The Pi is in a rather nice case from Pi Hut, held with the SSD in a frame knocked up here on a 3D printer.
This is version 3 of the Pi Hut case, with a quieter fan that earlier types, but running full time the fan is still noticeable in a quiet room.
So I pondered a fan speed controller, designed to work alongside Raspberry Pi OS’ in-built fan on-off controller (circuit below, more detail here).
It needs only to be inserted into the negative lead of the fan, and have a connection to GPIO 14, the default fan control pin on the Pi.
BTW, you have to re-boot the Pi to get fan control working once you have turned it ‘on’ in Preferences.
And now I have made a prototype (left) – it is running right now, here, on this desk. The transistor is a low-saturation ZTX something-or-other and the first suitable resistors I came across were 12kΩ for the base hold-off and 10kΩ for the GPIO series resistor.
All the components are soldered to the back of the switches, with everything squeezed into a little 3d-printed case designed to sit easily in the 3d-printed frame, with hot glue providing strain relief.
The one-diode-in-series setting cuts fan sound to near-inaudible and results in a running temperature or 41-44°C as I type.
With the full-power setting, as Pi Hut intends it to run, I get 39-40°C, and with the fan off this rises to 52-56°C – again, with this word-processing load – there are no videos running, for example.
Two diodes is silent unless my ear is within ~30cm of the unit (42-45°C, or 50-51°C playing full screen HD YouTube video), and I can’t hear the three diodes setting (44-47°C) even with my ear next to the fan – these temperatures were sporadically outside these ranges.
Note: the fan always starts on any of the settings. The printed frame deliberately holds the Pi Hut case so that the fan axis is horizontal – plain bearing fans (which I assume this is) are not designed to be run with their rotational axis vertical, and when I briefly tried running it like this, the fan seemed to slow down, and therefore might not have self-started on the three-series-diode setting (I didn’t try).
Once the temperature reaches 60°C, when running HD video with the fan off for example, the Pi trips the fan full-on and the temperature reduces to ~50°C over tens of seconds, at which point the fan is dropped back to its manual setting. 60°C is the minimum possible setting, 80°C is the default.
I am claiming an success for this arrangement, which I dubbed ‘Pi-idle’ – fame will not change me 🙂
If I did another one, I would use ultra-miniature toggle switches if I could find on-off-on versions, and make a little PCB. I might even try to build it onto the case. Also, I have an idea for a variable version which might be more compact.