Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Unsolved Script to turn off cooler

    Recalbox General
    script turn cooler
    7
    24
    9319
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • azvarel
      azvarel @ian57 last edited by

      @ian57 so we went back to the script.

      Zodian Theme | #SNESProject

      1 Reply Last reply Reply Quote 0
      • Substring
        Substring @azvarel last edited by

        @azvarel the script looks like it takes 100% CPU, but it looks logically correct.
        The electronic schematic is very simple and could help someone like @ian57 who wants to drive a 12V power supply 😄

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        1 Reply Last reply Reply Quote 1
        • lackyluuk
          lackyluuk Translator last edited by

          @azvarel @Substring just add a time.sleep(1) or (2) into the while() loop

          NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

          1 Reply Last reply Reply Quote 0
          • tikiandskull
            tikiandskull last edited by

            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.

            azvarel 1 Reply Last reply Reply Quote 0
            • azvarel
              azvarel @tikiandskull last edited by

              @tikiandskull nothing is stupid, any idea is valid, where would you find this thermal switch?

              Zodian Theme | #SNESProject

              tikiandskull 1 Reply Last reply Reply Quote 0
              • tikiandskull
                tikiandskull @azvarel last edited by tikiandskull

                @azvarel maybe something like this link text It can be found on amazon, conrad, etc some works in 5v others in 12v.

                Afterwards, I do not know how it could be positioned, but probably with the probe as close as possible to cpu

                (sorry for my poor English 🙂 )

                1 Reply Last reply Reply Quote 0
                • Pdagarcia
                  Pdagarcia last edited by Pdagarcia

                  #!/usr/bin/env python3

                  import os
                  from time import sleep
                  import signal
                  import sys
                  import RPi.GPIO as GPIO

                  pin = 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 checks

                  def 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 temp

                  def 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

                  1 Reply Last reply Reply Quote 0
                  • Pdagarcia
                    Pdagarcia last edited by Pdagarcia

                    With this transistor 2N4401 600 mA, 40V and 5v fan Works perfectly.

                    azvarel 1 Reply Last reply Reply Quote 0
                    • azvarel
                      azvarel @Pdagarcia last edited by

                      @Pdagarcia where would you put this script?

                      Zodian Theme | #SNESProject

                      1 Reply Last reply Reply Quote 0
                      • lackyluuk
                        lackyluuk Translator last edited by lackyluuk

                        @azvarel I would place the script into /recalbox/scripts and call the script as a background process from the startup directory /etc/init.d for example as S32StartFanControl
                        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

                        NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

                        azvarel 1 Reply Last reply Reply Quote 0
                        • azvarel
                          azvarel @lackyluuk last edited by

                          @lackyluuk thanks 😃

                          Zodian Theme | #SNESProject

                          1 Reply Last reply Reply Quote 0
                          • marcelogarbin
                            marcelogarbin last edited by

                            @azvarel I'm with the same problem, did you work? which method did you use?

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Want to support us ?

                            73
                            Online

                            99.6k
                            Users

                            28.1k
                            Topics

                            187.1k
                            Posts

                            Copyright © 2021 recalbox.com