A Python utility to control fan speeds on AMD Radeon GPUs on Windows.
- I made this just cause my Mac Pro had an overheating issue and I required a proper solution.
- Windows 10
- AMD Radeon GPU (tested on Radeon 5700)
- AMD Radeon drivers installed
- Python: Minimum 3.6 (untested) || Recommended 3.13 (tested on 3.13.2)
- Packages: pystray, pillow (automatically installed if missing)
The script will automatically install required packages (pystray, pillow) if they're not found.
Simply run the script without arguments to show GPU temperature and fan speed in the system tray:
python gpu_fan_controller.py
This will:
- Display current temperature and fan speed in the system tray icon
- Update readings approximately every 2 seconds
- Provide a right-click menu with various fan control options
Set a specific fan speed (0-100%):
python gpu_fan_controller.py 75
This sets the fan speed to 75%.
Apply a saved fan curve:
python gpu_fan_controller.py curve
Fan curves can be configured through the system tray interface.
Maintain a specific GPU temperature (default 70°C):
python gpu_fan_controller.py temp
Or specify a custom temperature:
python gpu_fan_controller.py temp 65
The temperature control algorithm is adaptive:
- It starts in aggressive mode to quickly reach the target temperature
- Once temperature is stable, it switches to a gentler mode to minimize fan noise
- If temperature becomes unstable again, it automatically switches back to aggressive mode
Return to automatic fan control (let the GPU manage fan speeds):
python gpu_fan_controller.py disable
You can also use auto or default instead of disable.
When running in system tray mode:
- The icon displays temperature in the top line and fan speed in the bottom line
- The icon color changes based on temperature (green=cool, orange=warm, red=hot)
- Right-click the icon to access the menu with various control options
- Hover over the icon to see exact temperature, fan speed, and active control mode
From the system tray menu, you can:
- Select "Configure Fan Curve" to open the Fan Curve Setup dialog
- Enter a name for your curve
- Define up to 5 temperature/fan speed points using the sliders
- Click OK to save your curve and choose whether to enable it
The fan curve dialog provides an intuitive interface for setting temperature/fan speed pairs.
From the system tray menu, you can:
- Select "Configure Temp Target" to open the Temperature Control Setup dialog
- Adjust your desired target temperature using the slider
- Set minimum and maximum fan speeds
- Click OK to save your settings and choose whether to enable temperature control
Fan curves are saved to the config folder and automatically loaded when you restart the application.
- Be careful when setting very low fan speeds as it may lead to overheating
- Monitor your GPU temperature using the system tray icon
- A minimum fan speed of 30-40% is recommended for most systems under load
- Use the
Auto Controloption in the system tray menu to return to automatic control when you're done
- This script requires administrator privileges to control fan settings
- Running at your own risk - improper fan settings could potentially damage your hardware
If you encounter issues:
- Make sure you have the latest AMD drivers installed
- Run the script with administrator privileges (right-click → Run as administrator)
- Verify that your GPU is an AMD Radeon model
- Try using the
disablecommand to reset to default settings - If the system tray icon doesn't appear, check that pystray and pillow are installed
If the application freezes when opening configuration dialogs:
- Make sure you're using the latest version of the script
- Try waiting a few seconds - sometimes dialog boxes appear behind other windows
- Check that no antivirus or security software is blocking the program
- On Windows, ensure you have the correct permissions to create GUI windows
- Try running the application with administrator privileges