Unsolved Script to turn off cooler
- 
					
					
					
					
 @ian57 so we went back to the script. 
- 
					
					
					
					
 
- 
					
					
					
					
 @azvarel @Substring just add a time.sleep(1) or (2) into the while() loop 
- 
					
					
					
					
 Well, maybe i say a stupidity but with a thermal switch? It avoids the question of the script and you can choose one with a temperature of closing and opening of your choice. 
- 
					
					
					
					
 @tikiandskull nothing is stupid, any idea is valid, where would you find this thermal switch? 
- 
					
					
					
					
 
- 
					
					
					
					
 #!/usr/bin/env python3 import os 
 from time import sleep
 import signal
 import sys
 import RPi.GPIO as GPIOpin = 27 # The pin ID, edit here to change it 
 maxTMP = 50 # The maximum temperature in Celsius after which we trigger the fan
 sleepTime = 30 # The time to sleep between temp checksdef setup(): 
 GPIO.setmode(GPIO.BCM)
 GPIO.setup(pin, GPIO.OUT)
 GPIO.setwarnings(False)
 return()def getCPUtemperature(): 
 res = os.popen('vcgencmd measure_temp').readline()
 temp =(res.replace("temp=","").replace("'C\n",""))
 print("temp is {0}".format(temp)) #Uncomment here for testing
 return tempdef fanON(): 
 print("Fan on ...")
 setPin(True)
 return()def fanOFF(): 
 print("Fan off ...")
 setPin(False)
 return()def getTEMP(): 
 CPU_temp = float(getCPUtemperature())
 if CPU_temp > maxTMP:
 fanON()
 sleep(sleepTime) # Sleep additional time in order to ensure that we stay below max temp ...
 else:
 fanOFF()
 return()def setPin(mode): # A little redundant function but useful if you want to add logging 
 GPIO.output(pin, mode)
 return()try: 
 setup()
 while True:
 getTEMP()
 sleep(sleepTime) # Read the temperature every x amount of seconds ...
 except KeyboardInterrupt: # trap a CTRL+C keyboard interrupt
 GPIO.cleanup() # resets all GPIO ports used by this script
- 
					
					
					
					
 With this transistor 2N4401 600 mA, 40V and 5v fan Works perfectly. 
- 
					
					
					
					
 @Pdagarcia where would you put this script? 
- 
					
					
					
					
 @azvarel I would place the script into /recalbox/scriptsand call the script as a background process from the startup directory/etc/init.dfor example asS32StartFanControl
 This could look like this (just one proposal, you can do it however you like it):#!/usr/bin/python import subprocess try: subprocess.Popen(["python","/recalbox/scripts/fanControl.py"]) except KeyboardInterrupt: print "Quit"I have called my script that I start as fanControl.py
- 
					
					
					
					
 @lackyluuk thanks  
- 
					
					
					
					
 @azvarel I'm with the same problem, did you work? which method did you use? 
 
			
		 
			
		
 
			
		 )
 )