PiCoolFAN4 Review – A Great Value Raspberry Pi 4 Cooling Solution


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…

The PiCoolFAN4

The PiCoolFAN4

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

The PiCoolFAN4 sits nice and low

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).


See the big holes? That’s all part of the airflow design. Clever!

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 0x02

Set the Raspberry Pi sensor and a ‘hard‘ cooling profile:

sudo i2cset -y 1 0x60 0x0f 0xaa && sudo i2cset -y 1 0x60 0x08 0x12

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:

PiCoolFan4 Command Breakdown

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:

PiCoolFan4 Smode Table

I also colour-coded the guide to show the command and where to enter this smode value (the blue part):

PiCoolFan4 Smode Example

Set your steps

With any mild profile, you can select how gradually the fan reacts to temperature changes by setting the