I’ll be upfront here. I originally wrote a review on this product and…it wasn’t positive. I had failed to do a proper read of the manual, but at the same time, the manual wasn’t as clear/logical as it could be.
I ended up getting in touch with Ioannis from Pimodules. After a few emails and WhatsApp messages, we identified some improvements and I helped to re-write the user guide as a part of that.
Now that the configuration is crystal clear I actually really like the board, and it’s great value when you consider the other features included. Let’s take a look…
What is it?
It’s a Raspberry Pi cooling fan add-on board right? Well, not exactly. You see, it’s a bit of a swiss army knife this thing.
Yes – the key feature is the clever fan which can adapt based on the Pi’s temperature (either the temperature sensor on the Pi, or the one included on the PiCoolFan4 board itself – more on that later).
However, it also comes with a ton of other features, which feel like freebies when you consider the price of this vs other PCB-based fan cooling boards for the Pi:
- Real-time clock
- Infra-red receiver interface
- High-current relay option
- Programmable sounder option
- 2x user programmable LEDs
How does the fan work?
I haven’t finished playing with the other features yet, but I do have the fan working very well indeed. Key points to remember:
- You can select to use the PiCoolFan4 temperature sensor, or the Raspberry Pi’s built-in sensor
- You can make the code turn the fan on/off from 0% to 100%, or a more gradual (and quieter) option
- You can set the temperature threshold
- You can set how quickly the fan speeds up/down when the temperature goes above/below the threshold
You don’t have to install anything!
First things first – the PiCoolFan4 is shipped ready to run using the on-board temperature sensor. You can plop this straight on to your GPIO and it’ll run – great for the lazy or for operating systems which don’t allow tinkering.
How does that work? The onboard sensor sits a few millimeters from the Pi’s CPU and picks up the temperature from that, then the fan speed is based around those readings assuming the official Raspberry Pi case is being used (I’ll cover how to tune this in a moment).
Use the Raspberry Pi Temp Sensor Instead
If you want to use the Raspberry Pi’s built-in CPU sensor instead of the sensor on the PiCoolFan4, you have the option to do this too.
The user guide (page 18) shows you how to set this up (some straight-forward commands and text changes), then all you have to do is run a command to set a profile to use this sensor (more on profiles further down the page):
Set the Raspberry Pi sensor and a ‘mild‘ cooling profile:
sudo i2cset -y 1 0x60 0x0f 0xaa && sudo i2cset -y 1 0x60 0x08
Set the Raspberry Pi sensor and a ‘hard‘ cooling profile:
sudo i2cset -y 1 0x60 0x0f 0xaa && sudo i2cset -y 1 0x60 0x08
Tuning the temperature threshold
The out-of-the-box settings (using the PiCoolFan4 sensor) were designed to be used inside the official Raspberry Pi case. So if you’re using a different case, or no case at all, you may need to tweak the settings. Same goes for very hot/cold climates and other factors.
The user guide shows how to do this – it’s a simple case of running the system for a good 10 minutes, monitoring the temperatures, then selecting a new threshold temperature (if required) by running a single command.
If you’re using the Raspberry Pi sensor it’s a bit simpler – just select the temperature you want to limit at.
I added a little breakdown of the command to the official guide to explain how the command works. All you do is change the last number:
Hard or mild?
This sounds like some kind of hot sauce option, but it’s actually a cooling profile setting to change how the fan reacts to changes in temperature. The guide refers to this as ‘smode‘:
Hard is a simple on/off affair: if it’s hot, fan @ 100%. If it’s not, fan off. This is simple, very effective, but noisy.
Mild is a more gradual process. It slowly changes the fan speed up and down based on how far the temperature is from the set threshold.
Out of the box the board is set to a mild profile (using the PiCoolFan4 sensor). This can be changed, again by a single command.
I simplified the table in the guide to show what to enter – depending on what sensor you’re using:
I also colour-coded the guide to show the command and where to enter this smode value (the blue part):
Set your steps
With any mild profile, you can select how gradually the fan reacts to temperature changes by setting the number of ‘steps’ (away from the threshold) the temperature has to change to adjust the fan speed.
The fan runs at:
- 0% when the temperature reading is 2 steps below the threshold
- 25% when 1 step below
- 50% when at threshold
- 75% when 1 step higher than threshold
- 100% at 2 steps above.
Here’s another snip from the guide to show that. Remember – that step can be changed to up to 5 degrees per step:
That’s pretty much all there is to the fan side of things – it’s all very simple when you know how.
For those who enjoy a bit of blinky, the board also has three system-driven LEDs which light up to show the status of the temperature threshold vs the temperature reading. A nice touch.
I’m glad Ioannis got in touch after my original review. I was a tad harsh, but the guide did need a good sort out. I think that’s now resolved and I’m happy to give it an average stamp of approval as a totally configurable, banging value product that’s packed with features.
Ioannis even sent over some kits to give away as a little thanks for my help with the guide, so keep an eye on my Twitter/Facebook for giveaways.
If you don’t get lucky with the giveaway, the PiCoolFan4 can be purchased from The Pi Hut for just £11 at the time of writing.
If you get stuck or need any help with the PiCoolFan4, just add a comment below.
Hallo, beim Versuch die neuste Firmware auf das picoolfan Modul aufzuspielen ist etwas schief gegangen.
Es leuchtet nur noch die grüne LED und der Fan bewegt sich gar nicht mehr.
Können sie mir die vollständigen Eingabebefehle mitteilen und die aktuelle Version der Firmware?
Ich bin kein Profi was das Programmieren angeht.
Vielen herzlichen Dank für ihre Hilfe.