Jump to content

Recommended Posts

Posted (edited)

This article describes how I successfully configured a PWM fan on an Orange Pi 5 Max running Armbian Debian Trixie Minimal vendor 6.1.115, using the opifancontrol utility.

 

Special thanks to Jamie Sinclair for creating and sharing the opifancontrol project with the community.

 

I have an Orange Pi 5 Max installed in a metal case and running several Docker containers, including Frigate, Immich, Samba, and others. The case originally came with a internal 30x30x10 mm fan, which was not able to provide sufficient cooling. Under load, CPU temperatures were reaching nearly 70°C.

To improve cooling, I installed an external 40x40x10 mm PWM fan that was originally used on an Odroid HC4. The fan was mounted using screws, which required drilling holes in the case cover. I also added several ventilation holes, in the case cover above the CPU area to improve airflow. After these modifications, the CPU temperature now stays around 48°C.

 

1. Install wiringOP

Follow the instructions from the wiringOP project:

 Download wiringOP

 $ apt-get update
 $ apt-get install -y git
 $ git clone https://github.com/orangepi-xunlong/wiringOP.git

 Build wiringOP

 $ cd wiringOP
 $ ./build clean
 $ ./build

 Verify the installation:

 $ gpio readall

This command should display the Orange Pi 5 Max GPIO pin map.

 

2. Configure GPIO Pin 7 as a PWM Output

 In Armbian, configure GPIO Pin 7 (PWM3_IR_M3) as a PWM output.

 $ sudo armbian-config

 Navigate to:

 System
 └─ Kernel
      └─ Overlays

 Select:

  rk3588-pwm3-m3

  Press the space bar to enable it, save the configuration, and reboot the system.

 

3. Install opifancontrol: https://github.com/jamsinclair/opifancontrol

 $ su
 $ cd /usr/local/bin/
 $ wget https://github.com/jamsinclair/opifancontrol/blob/main/opifancontrol.sh
 $ chmod +x /usr/local/bin/opifancontrol.sh

 $ curl -sSL https://raw.githubusercontent.com/jamsinclair/opifancontrol/main/install.sh | bash

Enable the service to start automatically at boot:

 $ systemctl enable opifancontrol.service

Start the service:

 $ systemctl start opifancontrol.service

Check the service status:

 $ systemctl status opifancontrol.service

 

4. PWM Fan Wiring

 I used a 5V, 4-wire, 4,000 RPM fan from an Odroid HC4.

 Connection details:

 Fan Wire   Function                     GPIO Pin

 Red            +5V Power                    Pin 4

 Black          GND                              Pin 6

 Blue            PWM Speed Control  Pin 7

 Yellow        TACH (RPM Sensor)    Not Connected

 

5. Adjust the Fan Control Configuration

Edit the configuration file:

 $ sudo nano /etc/opifancontrol.conf

 My settings are:

 TEMP_LOW=45
 FAN_LOW=60

 TEMP_MED=60
 FAN_MED=75

 TEMP_HIGH=70
 FAN_HIGH=100

 RAMP_UP_DELAY_SECONDS=30
 RAMP_DOWN_DELAY_SECONDS=60

 

After saving the configuration file, restart the service:

 $ sudo systemctl stop opifancontrol.service

 $ sudo systemctl start opifancontrol.service

 

With these settings and the hardware modifications described above, my Orange Pi 5 Max now operates significantly cooler, maintaining temperatures around 48°C while running multiple Docker services

 

 

20260604_155156_1.jpg

Edited by malima17

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines