Recalbox Forum

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

    Push button (ON/OFF) script problems?

    Recalbox General
    push button onoff script
    13
    34
    17977
    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.
    • lackyluuk
      lackyluuk Translator last edited by lackyluuk

      @PenPen: I am sorry for this way too late answer. Not sure if you need an answer anymore

      Here is an example with GPIO pin 14 for controlling the fan. The indents might not be correct 😉 I had a little trouble with copy/paste the code 😄
      Hope I can help you with this

      #!/usr/bin/env python
      
      import os
      import time
      import RPi.GPIO as GPIO
      
      GPIO.setwarnings(False)
      GPIO.setmode(GPIO.BCM)
      #Set max. temperature of CPU
      TEMP_MAX = 67
      ON_TIME = 200
      #Set pin 14 as transistor gate
      GATE = 14
      #Set pin 14 as an output and shut down
      GPIO.setup(GATE, GPIO.OUT)
      GPIO.output(GATE, False)
      
      def getCPUtemperature():
      	 res = os.popen('vcgencmd measure_temp').readline()
      	return(res.replace("temp=","").replace("'C\n",""))
      
      while True:
      
      		temp_float = float(getCPUtemperature())
      
      	try:
      		if (temp_float > TEMP_MAX):
      			# ein
      			GPIO.output(GATE, True)
      			time.sleep(ON_TIME)
      			# aus
      			GPIO.output(GATE, False)
      		else:
      			GPIO.output(GATE, False)
      		
      except KeyboardInterrupt:
      	print float(getCPUtemperature())
      	print "power off fan..."
      	GPIO.output(GATE, False)
      	print "cancelling..."
      

      Forgot to attach a short drawing. I used the official RaspberryPI 5V DC fan.

      0_1474305851135_Unbenannt.PNG

      NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

      PenPen 1 Reply Last reply Reply Quote 1
      • supernature2k
        supernature2k last edited by

        Awesome!!!!!

        But I'm not sure 'bout the infinite loop.

        Maybe add a time.sleep somewhere for less CPU?

        whatcha think @subs ?

        Pi powered NES | Gameboy HD | RecalStation | RecalDrive
        Upvote messages if it has been useful ;)

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

          @lackyluuk said in Push button (ON/OFF) script problems?:

          @PenPen: I am sorry for this way too late answer. Not sure if you need an answer anymore

          Thanks ! I'll buy composants tomorrow.

          Raspberry Pi 3 > NeoGeo piX
          Recalbox 4.1 OC@1375Mhz
          https://forum.recalbox.com/topic/4006/wip-neogeo-pix

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

            @supernature2k yes, this could be a good idea. Would it be useful to have a time.sleep in the while loop? So it checks the temp only every 2 seconds for example.

            NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

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

              Yes I think so, at the end of the while.

              1 or 0.5 seconds would be ok too I guess.

              Pi powered NES | Gameboy HD | RecalStation | RecalDrive
              Upvote messages if it has been useful ;)

              1 Reply Last reply Reply Quote 1
              • dh04000
                dh04000 @lackyluuk last edited by

                @lackyluuk said in Push button (ON/OFF) script problems?:

                The only scripts I use are two selfmade scripts for changing the system volume via gpio and a fan control. But I do not think this has an impact.

                How do you do this? The gpio volume control? Could you post this script?

                Also, I have OP's problem with crashing after installing the gpio on/off button with usb controller unpluging, as well as sometimes random.

                @supernature2k said in Push button (ON/OFF) script problems?:

                Some switches are very sensitive (especially old ones) and it can trigger some events when slightly moved.
                I have the same problem with my NES power switch.

                You can easily edit the script and change the function so that the button must be pressed x seconds to trigger the shutdown. it should solve this kind of problem.

                D**n, THAT IS a useful comment 😛

                How do I change the time to be longer? I think my gpio momentary switch might be picking up some signal from my speakers, wifi, light system, something....

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

                  @dh04000 Here is a wiki article that I wrote. This should help you. I used the Hifiberry Shield to access the ALSA controls.

                  https://github.com/recalbox/recalbox-os/wiki/Audio-HiFiBerry-(EN)

                  NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

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

                    Hello, I'm completley new to this stuff so just to make shure I don't damage my Raspberry can someone confirm that following these steps will make the fan-control script work?

                    1. On my Linux Desktop I create an empty textfile in which I paste the fan-script posted here.
                    2. I rename the file into fancontrol.py and move it into /recalbox/share/system/ on the sd-card.
                    3. On Recalbox i quit emulationstation, open the terminal and navigate to the share/system directory and make my script executable with chmod +x fancontrol.py so it is ran at boot

                    And last question (for now:) - where in the script should i paste the time.sleep(1) so it only checks every second for the temp?
                    Thanks in advance!

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

                      Where the hell do I paste the fan script ????

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

                        calm down @miserytom 😄

                        I suggest you to put it into /recalbox/scripts and then in /etc/init.d (where all startup scripts are located) you could place another script which is starting your fan script in a background process

                        NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

                        azvarel Pedro Vieira 2 Replies Last reply Reply Quote 0
                        • azvarel
                          azvarel @lackyluuk last edited by

                          @paradadf

                          I'm having a similar problem, I noticed two situations that happened with version 4.0 final the first was that in recalbox.conf the system.power.switch=PIN56ONOFF command duplicated several times, and the second that if I do screenscrapper of a very large romset example GBA simply out of nothing Rpi is turned off.

                          There is a third option, the wifi in the recalbox shows that it is not connected, however I get access with your ip (this for me is very strange)

                          Zodian Theme | #SNESProject

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

                            @azvarel i would say the things that you mention aren't related to this topic. Please, create your own threads if you consider appropriate and there aren't already existing ones.

                            Pd. The duplicates are a known bug

                            If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

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

                              Sorry for my ignorance, but I did not mention that this was after I put the power button on the gpio if it is not related to this topic, I really will do.

                              Zodian Theme | #SNESProject

                              1 Reply Last reply Reply Quote 0
                              • paradadf
                                paradadf Staff last edited by

                                It isn't.

                                If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

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

                                  Lo tengo montado en mi bartop, me pasa algo parecido cuando enciendo/apago la luz de la marquesina o enciendo/apago los altavoces, se me apaga el sistema, e probado de todo, incluso desconectando todo los gpio de control, y solo dejando los cables 5 6 conectados sin interruptor ni pulsador sigue pasando igual, solo soluciono el problema desactivando la opción del interruptor. No es problema de corto ni nada de eso ya que aunque los conecte a diferentes enchufes la luz y los altavoces sigue pasando, también e probado diferentes cables gpio, diferentes rasp, y demás y nada sigue pasando. Tal vez sea un problema del script si alguien le pasa, o puede revisar o algo, aria un gran favor.

                                  paradadf 1 Reply Last reply Reply Quote 0
                                  • Wopy
                                    Wopy last edited by

                                    Añadir que como dicen arriba, cuando activas la opción de on/off pin 5 6 , duplica el código como 5 o 6 veces, desconozco si pasaba antes de la 4.0 final, ya que la primera vez que lo e activado a sido en 4.0 final.

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

                                      @Fran-Rdg-Gnd since this is an english thread, please use english 😉

                                      NintendoRS | Nintendo Adapter Box | Cardboard Recalbox

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

                                        paradadf will translate it when I connect, Has more correct English

                                        1 Reply Last reply Reply Quote 0
                                        • paradadf
                                          paradadf Staff @Wopy last edited by

                                          A fast translation from what @Fran-Rdg-Gnd wrote:

                                          He uses the script on his bartop. Something similar happens to him when he turns of/off the lights on the marquee or the speakers. His recalbox gets shut down, even disconnecting every other cable attached to the gpio and leaving the bare two cables on pins 5/6 without switch. The only way to "solve" the problem is by deactivating the script. He also says that it isn't a short circuit problem because this even happens when the lights/speakers are plug into a separate adaptor power adaptor. He has tested it on different cables, different RPis and every time he gets the same behaviour.

                                          If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

                                          voljega 1 Reply Last reply Reply Quote 0
                                          • voljega
                                            voljega Banned @paradadf last edited by

                                            @paradadf I had the problem too just connecting a controller or the ethernet cable even with an off switch so I'm not using it nor the script anymore...

                                            I understand why this coul happen wuth a momentary script but I don't get why this is a case with on off switch, isn't it possible to detect in that case if the switch is circuit closed or not before shutting down ?

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

                                            Want to support us ?

                                            89
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com