PI4-ICE-TOWER-FAN
| ||
| ||
Introduction
Overview
This is an ultra-thin ice tower cooler that only supports Raspberry Pi 4B. It includes ultra-thin fans and supports fan speed regulation. The speed can be controlled by programming the GPIO pins of the Raspberry Pi, and the heat sink is ultra-thin.
Features
- Ultra Thin
- Support fan speed regultion
- Support Raspberry Pi 4B ONLY
- Good Heat dissipation effect
- 4010 speed-adjustable Fan with PWM
Gallery
- PI4-ICE-TOWER-FAN Outlook
- PI4-ICE-TOWER-FAN-B Outlook
- Compare with other products
Compare with other products from Dimensions
- Structure of the heat dissipation system
- Benchmark by using sysbench on Raspberry Pi 64Bit OS.
- Wiring
When used with FAN Adapter, the default PWM pin is D12(GPIO12) ,You can switch to TXD or D18 by modifying the 0R resistor.
How to assemble
- 1. Fix the bracket to the ICE tower cooler with M2.5 screws.
- 2. Peel off the protective film of the thermal pad and paste it on top of the CPU and Memory chip.
- 3. Fix the copper pillar to the bracket.
- 4. Fix the ICE tower cooler to Raspberry Pi 4B with M2.5 nuts.
- 5. Connect the Red wire to Raspberry Pi's GPIO on 5V.
- 6. Connect the Black wire to Raspberry Pi's GPIO on GND.
- 7. Connect Blue wire to Raspberry Pi's GPIO on TXD(GPIO14)/D12(GPIO12)/D18(GPIO18) or connect to FAN Adapter (default pwm pin is D12(GPIO12)).
Package Includes
- 1 x FAN Adapter
(OPTIONAL)
- 1 x Ultra Thin ICE Tower Cooler
- 4 x M2.5 Screws
- 4 x Copper Pillar
- 1 x Screw driver
- 4 x Thermal Pad
- 1 x Acrylic panel
How to control fan speed
- Controlled by Raspberry Pi OS:
1. Connect the pins of the cooling fan to the Raspberry Pi or FAN Adapter. Make sure you have already connected the Red wire to 5V, the Black wire to the GND pin, and Blue Wire to PWM (can be connected to TXD(GPIO14)/GPIO 12/GPIO18).
2. Turn on Raspberry Pi and log in, open a terminal and enable Fan control as following Steps:
Typing following command in terminal:sudo raspi-config
3. Navigate to Performance options
4. Navigate to Fan
5. Select yes
6. Input 12
means using GPIO12 as PWM output Pin.
7. Change the threshold trigger temperature to 60 degrees.
8. Confirm it.
9. Navigate to Finish
and reboot Raspberry Pi as required to take effect.
How to enable it via Programming
- Make sure RPi.GPIO library has been installed.
pip freeze |grep RPi.GPIOIf feedback is:
RPi.GPIO==0.7.0means library is OK.
- Open a terminal and create a file named: pwm-fan.py
- Copy and paste following code into the file and save it.
Demo1
import RPi.GPIO as GPIO import time import subprocess GPIO.setmode(GPIO.BCM) ##Set to false, other processes occupying the pin will be ignored GPIO.setwarnings(False) GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,100) print("\nPress Ctrl+C to quit \n") dc = 0 pwm.start(dc) def ReadTemp(): # view CPU temperature file = open("/sys/class/thermal/thermal_zone0/temp") cpu = float(file.read()) / 1000 file.close() print('CPU temperature is: %2.2f' % cpu) time.sleep(5) try: while True: temp = subprocess.getoutput("vcgencmd measure_temp|sed 's/[^0-9.]//g'") ReadTemp() if round(float(temp)) >= 40: dc = 100 pwm.ChangeDutyCycle(dc) time.sleep(0.05) else: dc = 0 pwm.ChangeDutyCycle(dc) time.sleep(0.05) except KeyboardInterrupt: pwm.stop() GPIO.cleanup() print("Ctrl + C pressed -- Ending program")
Demo2
import RPi.GPIO as GPIO import time import subprocess as sp # initializing GPIO, setting mode to BOARD. # Default pin of FAN Adapter is physical pin 32, GPIO12; Fan = 32 #if you connect to pin txd physical pin 8, GPIO14,then set to :Fan = 8 GPIO.setmode(GPIO.BOARD) GPIO.setup(Fan, GPIO.OUT) p = GPIO.PWM(Fan, 50) p.start(0) try: while True: temp = sp.getoutput("vcgencmd measure_temp|egrep -o '[0-9]*\.[0-9]*'") # print(temp) if float(temp) < 48.0: p.ChangeDutyCycle(0) elif float(temp) > 48.0 and float(temp) < 60.0: p.ChangeDutyCycle(100) time.sleep(0.1) elif float(temp) > 60.0: p.ChangeDutyCycle(100) time.sleep(0.1) except KeyboardInterrupt: pass p.stop() GPIO.cleanup()
Run Demo code
- Execute it by typing:
python3 pwm-fan.py
- The fan will be turned on when the CPU temperature is reached to 65 degrees.
- If you connect TXD (GPIO14), the corresponding number in the code needs to be changed to 14;
GPIO.setup(14, GPIO.OUT) pwm = GPIO.PWM(14,100)
if it is connected to FAN Adapter, the default is to connect D12 (GPIO12), run the code as follows:
GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,100)
How to enable it via Programming
- Make sure RPi.GPIO library has been installed.
pip freeze |grep RPi.GPIOIf feedback is:
RPi.GPIO==0.7.0means library is OK.
- Open a terminal and create a file named: pwm-fan.py
- Copy and paste following code into the file and save it.
Demo1
import RPi.GPIO as GPIO import time import subprocess GPIO.setmode(GPIO.BCM) ##Set to false, other processes occupying the pin will be ignored GPIO.setwarnings(False) GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,100) print("\nPress Ctrl+C to quit \n") dc = 0 pwm.start(dc) def ReadTemp(): # view CPU temperature file = open("/sys/class/thermal/thermal_zone0/temp") cpu = float(file.read()) / 1000 file.close() print('CPU temperature is: %2.2f' % cpu) time.sleep(5) try: while True: temp = subprocess.getoutput("vcgencmd measure_temp|sed 's/[^0-9.]//g'") ReadTemp() if round(float(temp)) >= 40: dc = 100 pwm.ChangeDutyCycle(dc) time.sleep(0.05) else: dc = 0 pwm.ChangeDutyCycle(dc) time.sleep(0.05) except KeyboardInterrupt: pwm.stop() GPIO.cleanup() print("Ctrl + C pressed -- Ending program")
Demo2
import RPi.GPIO as GPIO import time import subprocess as sp # initializing GPIO, setting mode to BOARD. # Default pin of FAN Adapter is physical pin 32, GPIO12; Fan = 32 #if you connect to pin txd physical pin 8, GPIO14,then set to :Fan = 8 GPIO.setmode(GPIO.BOARD) GPIO.setup(Fan, GPIO.OUT) p = GPIO.PWM(Fan, 50) p.start(0) try: while True: temp = sp.getoutput("vcgencmd measure_temp|egrep -o '[0-9]*\.[0-9]*'") # print(temp) if float(temp) < 48.0: p.ChangeDutyCycle(0) elif float(temp) > 48.0 and float(temp) < 60.0: p.ChangeDutyCycle(100) time.sleep(0.1) elif float(temp) > 60.0: p.ChangeDutyCycle(100) time.sleep(0.1) except KeyboardInterrupt: pass p.stop() GPIO.cleanup()
Run Demo code
- Execute it by typing:
python3 pwm-fan.py
- The fan will be turned on when the CPU temperature is reached to 65 degrees.
- If you connect TXD (GPIO14), the corresponding number in the code needs to be changed to 14;
GPIO.setup(14, GPIO.OUT) pwm = GPIO.PWM(14,100)
if it is connected to FAN Adapter, the default is to connect D12 (GPIO12), run the code as follows:
GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,100)
FAQ
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)