Push button (ON/OFF) script problems?
-
Hello everyone!
I installed a momentary switch as described on the wiki and it works great. The only issue I'm having is that sometimes, when I plug/unplug an usb controller or usb stick, Recalbox turns off (or on) out of the blue. Has someone else experience this behavior? -
I've had such weird behaviours when playing around with the HDMI cable without using the power script ... D**n, what an unuseful comment I just wrote lol
-
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
-
thanks! I'll try it and report back!
-
I have this behaviour as well. But I am not using any start / stop scripts. I just start recalbox and sometimes it reboots when I plug in a USB controller. I do not know what to do
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.
-
@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.
Hi,
Coud you explain your fan control script ? Thx -
I've looked into
https://github.com/recalbox/recalbox-buildroot/blob/rb-4.1.X/board/recalbox/fsoverlay/recalbox/scripts/powerswitch.sh
and
https://github.com/recalbox/recalbox-buildroot/blob/rb-4.1.X/board/recalbox/fsoverlay/recalbox/scripts/rpi-pin56-power.py
but I still can't find which value I should change. Any hints, please? -
I'm working on a super script, I think it will help you.
-
@supernature2k the word SUPER before any other is always nice to read! Looking forward!
-
@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.
-
Awesome!!!!!
But I'm not sure 'bout the infinite loop.
Maybe add a time.sleep somewhere for less CPU?
whatcha think @subs ?
-
@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.
-
@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.
-
Yes I think so, at the end of the while.
1 or 0.5 seconds would be ok too I guess.
-
@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....
-
@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)
-
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?
- On my Linux Desktop I create an empty textfile in which I paste the fan-script posted here.
- I rename the file into fancontrol.py and move it into /recalbox/share/system/ on the sd-card.
- 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! -
Where the hell do I paste the fan script ????
-
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 -
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)