Pironman 4 - fan starts briefly, then stops

Hey all! I re-activated my Pironman 4 with a RasPi 4B. Fresh SD card with fresh install of RasPi OS. Installed Pironman without issues. Display on the case works fine. Fan: says nothing.
When I manually do a pironman start or set the temperature for the fan to a lower value with pironman -f 35, it starts briefly, incl. the light, but only for about 1 sec. Then it is off again.

In the past, it worked…

I have not changed any of the connections, the only difference is the new RaspiOS. Any ideas what settings/config files I could check and where the issue is??

Thanks!!

Here’s a preliminary conclusion: a fan that spins briefly and then stops at low temperature may be normal temperature-control behavior.

Please open the OLED monitoring screen and observe whether the fan starts automatically as the temperature rises. For how to open the OLED, please refer to the official documentation:

If the fan still does not start after the temperature rises, please get back to us and we will look into it further.

Thanks for the reply! I forgot to mention this in my original rquest - already checked that. The fan NEVER comes on, no matter the temperature. I also tried setting the temp to an unreasonably low value (e.g. 25 C) so the fan SHOULD be “always on”, but it is always the same: after invoking pironman or changing a value it comes on briefly, then stops.

Hi, thank you so much for the detailed description and for already doing your own troubleshooting (including setting the threshold to 25°C). I’m sorry for the trouble — let’s work through this together.

First, a quick note on how the Pironman 4 fan works: the fan is controlled by the Pironman software (a background service) based on a temperature threshold. Normally the fan stays off below the threshold and only starts once the temperature reaches it. However, you’ve confirmed that even with the threshold set to 25°C (which should keep it always on) the fan only spins for about 1 second and then stops, and that it never starts automatically no matter how high the temperature is. This suggests the issue is likely not the temperature policy itself, but rather that the fan control service is not running continuously, or that there is a wiring/fan hardware issue.

To quickly tell whether this is a software/service issue or a fan hardware issue, could you please help us with the following two key checks?

Send us the log files
Please share the logs from the Pironman 4 software install directory, located at:
/opt/pironman/log
The logs in this directory record the service status and the fan control process, and they are the key evidence we need to pinpoint the issue.

Fan direct-connection test (hardware isolation)
Please connect the fan’s power wires directly to the Raspberry Pi’s 3V3 and GND pins (i.e. bypass the Pironman control board and power the fan directly), and observe whether the fan can spin continuously and normally.

If the fan spins continuously after direct connection → the fan itself and its power supply are fine, and the issue lies in the control logic / wiring / service.
If the fan still only spins briefly or does not spin at all → the fan itself or its wiring may be faulty.
Once we receive the above information, we will help you determine as soon as possible whether this is a configuration/service issue or a hardware issue, and provide the next steps. Thank you again for your patience and cooperation!

1 Like

Thanks for the detailed troubleshooting ideas! Will grab a screwdriver and try…

  1. OK - let’s narrow it down further (I get a feeling it is simply not meant to work with newer versions of RaspiOS - the official compatibility list ends with Bullseye and the last commit to the Git repo was 3 years ago…):

    1. fan directly connected as you suggested: runs fine. Fan connected to the fan+/fan - pins: as described before, not working
  2. Additional thing I just noticed: the LED strip is dead, no matter how I configure it. Might be related, or not.

  3. Same for power button, does nothing.

  4. Display works fine

  5. The entries for dtoverlay… were written to /boot/config.txt instead of /boot/firmware/config.txt
    I changed that manually, but still the same.

Log (deleted log file, restarted, let it run for a while. First thing that is obvious: wrong date for whatever reason, while ‘date’ and the RasPiOS desktop have the correct date:

------------------------26/09/23 09:55:41------------------------
pironman version: 1.6.2
username: zanopi
config_file: /home/zanopi/.config/pironman/config.txt

Kernel Version:
Linux zanopi 6.18.50+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.50-1+rpt1 (2026-09>

OS Version:
Description:    Debian GNU/Linux 13 (trixie)

PCB info:
Revision        : d03115
Model           : Raspberry Pi 4 Model B Rev 1.5

26/09/23 09:55:41,952 [DEBUG] power_key_pin : 16
26/09/23 09:55:41,952 [DEBUG] fan_pin : 6
26/09/23 09:55:41,952 [DEBUG] rgb_pin : 12
26/09/23 09:55:41,952 [DEBUG] update_frequency : 0.5
26/09/23 09:55:41,952 [DEBUG] temp_unit : C
26/09/23 09:55:41,952 [DEBUG] fan_temp : 30.0
26/09/23 09:55:41,952 [DEBUG] screen_always_on : True
26/09/23 09:55:41,952 [DEBUG] screen_off_time : 60
26/09/23 09:55:41,952 [DEBUG] rgb_switch: True
26/09/23 09:55:41,952 [DEBUG] rgb_blink_speed : 50
26/09/23 09:55:41,952 [DEBUG] rgb_pwm_freq : 1000
26/09/23 09:55:41,953 [DEBUG] rgb_color : 0a1aff
26/09/23 09:55:41,953 [DEBUG]

26/09/23 09:55:42,017 [DEBUG] rgb_show
26/09/23 09:55:42,017 [DEBUG] rgb_show: breath
26/09/23 09:55:44,975 [DEBUG] error
26/09/23 09:55:44,975 [DEBUG] 'FreeTypeFont' object has no attribute 'getsize'

Thanks for the thorough testing — the direct-connect result already rules out the fan hardware, and your log contains the answer. These two lines are the whole problem:
[DEBUG] error
[DEBUG] ‘FreeTypeFont’ object has no attribute ‘getsize’

What you installed is the master branch (version 1.6.2, from 2023), not the maintained v2.0 branch. In 1.6.2 the power-button handler draws “POWER OFF” with font_12.getsize(); ImageFont.getsize() was removed in Pillow 10.0 (it is getbbox() now), and a fresh install today always gets Pillow 11 or newer. So a couple of seconds after the service starts that line raises AttributeError, the top-level handler logs it and exits the process, and GPIO.cleanup() releases the fan and RGB pins on the way out.
That explains every symptom you saw: the fan and RGB only come on for those first seconds, the fan is never temperature-controlled, and the power button can never shut down — the code crashes before it gets there. The OLED keeps its last frame after the program dies, so it still looks fine. The service has no auto-restart, so it stays dead until you run pironman start again. (Your log date is fine: 26/09/23 is YY/MM/DD.)
Please reinstall from the correct branch — the -b v2.0 is required, without it git clones the default master branch:
pironman stop
sudo systemctl disable pironman.service
sudo rm -rf /opt/pironman /usr/local/bin/pironman /usr/lib/systemd/system/pironman.service ~/pironman
cd ~
git clone GitHub - sunfounder/pironman · GitHub -b v2.0
cd ~/pironman
sudo python3 install.py
sudo reboot

v2.0 (2.2.9) also fixes the other things you noticed: the dtoverlay/dtparam lines now go to /boot/firmware/config.txt — that is why yours landed in the wrong file — and GPIO button handling works on kernel 6.6 and later.
After rebooting, run pironman -c and confirm the fan starts at the threshold and a 2-second press shuts down.

If anything still misbehaves, send us the new /opt/pironman/log and the output of pinctrl get 16 with the button not pressed.

Thank you also for flagging the outdated compatibility table and the missing -b v2.0 — you were reading the README of our older branch; it is being fixed.

Wooot! we are getting closer… xD
Thanks for that revelation - the official docs/tutorials from the product page are 404, so I searched for the Github and landed on the “old” branch with the outdated instructions…

Now I followed the instructions in your post above (git command is broken, probably was supposed to be git clone https://github.com/sunfounder/pironman -b v2.0), the install script bitched about pip not being able to upgrade, but installed nevertheless.

Result:

  • Fan works as intended. Big thumbs up.
  • LED strip does not work (I’ll play with setting different control pins, not important)
  • screen, despite being set to “always on”, now behaves like the fan before: briefly shows the info display, then only shows ‘POWER OFF’
  • Power button does absolutely nothing

Overall: almost there! I do not care much about the LED strip and the power button, but would love to have the display being on and displaying useful information… Maybe you have an idea to fix that final issue… Thanks for supporting this antique :wink:

Pincontrol output:

pinctrl get 16
16: ip    pd | lo // GPIO16 = input

Log:

6/09/24 07:31:48,383 [DEBUG] Received SIGTERM or SIGINT signal. Cleaning up...
26/09/24 07:31:48,586 [DEBUG] error
 InputDevice is closed or uninitialized

------------------------26/09/24 07:31:49------------------------
pironman version: 2.2.9
username: zanopi
config_file: /opt/pironman/config.txt

Kernel Version:
Linux zanopi 6.18.50+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.50-1+rpt1 (2026-0>

OS Version:
Description:    Debian GNU/Linux 13 (trixie)

PCB info:
Revision        : d03115
Model           : Raspberry Pi 4 Model B Rev 1.5

26/09/24 07:31:49,232 [DEBUG] power_key_pin : 16
26/09/24 07:31:49,232 [DEBUG] fan_pin : 6
26/09/24 07:31:49,232 [DEBUG] update_frequency : 0.5
26/09/24 07:31:49,232 [DEBUG] temp_unit : C
26/09/24 07:31:49,232 [DEBUG] fan_temp : 45.0
26/09/24 07:31:49,232 [DEBUG] screen_always_on : True
26/09/24 07:31:49,233 [DEBUG] screen_off_time : 60
26/09/24 07:31:49,233 [DEBUG] rgb_enable : True
26/09/24 07:31:49,233 [DEBUG] rgb_style : breath
26/09/24 07:31:49,233 [DEBUG] rgb_color : 0a1aff
26/09/24 07:31:49,233 [DEBUG] rgb_blink_speed : 50
26/09/24 07:31:49,233 [DEBUG] rgb_pwm_freq : 1000
26/09/24 07:31:49,233 [DEBUG] rgb_pin : 10
>>>
26/09/24 07:31:49,244 [DEBUG] rgb_strip init success
26/09/24 07:31:49,244 [DEBUG] close_rgb in sys.argv
26/09/24 07:31:49,244 [DEBUG] rgb_strip clear

------------------------26/09/24 07:31:49------------------------
pironman version: 2.2.9
username: zanopi
config_file: /opt/pironman/config.txt

Kernel Version:
Linux zanopi 6.18.50+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.50-1+rpt1 (2026-0>

OS Version:
Description:    Debian GNU/Linux 13 (trixie)

PCB info:
Revision        : d03115
Model           : Raspberry Pi 4 Model B Rev 1.5

26/09/24 07:31:49,379 [DEBUG] power_key_pin : 16
26/09/24 07:31:49,380 [DEBUG] fan_pin : 6
26/09/24 07:31:49,380 [DEBUG] update_frequency : 0.5
26/09/24 07:31:49,380 [DEBUG] temp_unit : C
26/09/24 07:31:49,380 [DEBUG] fan_temp : 45.0
26/09/24 07:31:49,380 [DEBUG] screen_always_on : True
26/09/24 07:31:49,380 [DEBUG] screen_off_time : 60
26/09/24 07:31:49,381 [DEBUG] rgb_enable : True
26/09/24 07:31:49,381 [DEBUG] rgb_style : breath
26/09/24 07:31:49,381 [DEBUG] rgb_color : 0a1aff
26/09/24 07:31:49,381 [DEBUG] rgb_blink_speed : 50
26/09/24 07:31:49,381 [DEBUG] rgb_pwm_freq : 1000
26/09/24 07:31:49,381 [DEBUG] rgb_pin : 10
>>>
26/09/24 07:31:49,392 [DEBUG] rgb_strip init success
26/09/24 07:31:49,445 [DEBUG] oled init success
26/09/24 07:31:49,457 [DEBUG] fan init success
26/09/24 07:31:49,458 [DEBUG] power_key init success
26/09/24 07:31:49,459 [DEBUG] rgb_show
26/09/24 07:31:49,460 [DEBUG] rgb_show: breath
26/09/24 07:31:49,475 [DEBUG] Get IP: 192.168.1.157

Ahem… in addition to using the old software branch, it seems I forgot that the Pironman wants power connected to the extension board, not the regular power-in on the Pi… :see_no_evil_monkey:

Now, with the 2.x software branch and the power correctly connected fan, display, LEDs and even the power button all work…

Thanks again for your patience and help - happy old customer here who is glad this relic is sitting on his desk again and peacefully humming along… :laughing: :folded_hands:

Great to hear that you’ve got it sorted out! :tada:

Thank you again for the thorough troubleshooting and for sharing the whole process — from the direct-connect fan test to the log analysis, your notes were really clear and will definitely help other users running into the same thing.

If you run into any other issues with your Pironman 4 down the road, feel free to reach out anytime — we’re happy to help.

Enjoy your build!