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.
    • 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 ?

                          87
                          Online

                          99.6k
                          Users

                          28.1k
                          Topics

                          187.1k
                          Posts

                          Copyright © 2021 recalbox.com