Problème power script



  • @supernature2k alors en gros j’ai un cable qui va du pin3 au bouton sanwa et un cable qui va du pin6 au bouton sanwa. Je ne savais pas qu’il y avait une polarité ?

    Pour la ligne dans recalbox.conf c’est bien celle ci !


  • Moderator
    Team
    Creator
    Moderator

    @lainbebop non y a pas vraiment de polarité si c'est un bouton simple. Par contre PIN 3?!?

    PIN 3 c'est pour RESET



  • @supernature2k

    Pardon pin5 et pin6 selon ce schéma!!

    alt text

    C’est un bouton comme ça
    alt text



  • j'ai exactement le même problème lainbebop. J'ai brancher sur 5 et 6 avec un bouton poussoir, configurer PIN356PUSHRESET mais quand je suis dans un émulateur ça fait un hard reset. Bizarrement cela fonctionne bien que sur nintendo 64 mais pour les autres consoles cela fait un hard reset.



  • @supernature2k @Tactys
    J'ai fait la dernière MAJ,

    • Appui long : rien
    • Appui court : rien
    • 2 appuis courts : Pi éteint (hard :/)

    Tu as aussi tenté d'installer le script sur cette page @Tactys ?



  • @lainbebop J'ai fait la dernière Maj aussi mais j'ai pas installer le script.


  • Moderator
    Team
    Creator
    Moderator

    @lainbebop Hi,
    J'ai refait un test hier sur une recalbox fraîchement mise à jour et j'ai bien le comportement attendu sur les deux boutons.

    Peux tu re-verifier ton recalbox.conf et ton cablage?



  • @supernature2k

    (on doit tagger et mettre le text dans 2 posts séparés sinon "flagged as spam :( )



  • This post is deleted!


  • Voici le recalbox.conf ! A noter qu'avant la MAJ ne n'avais pas le PIN356PUSHRESET que je l'ai ajouté, et qu'après la MAJ j'avais 10fois cette ligne et plus les autres (qui étaient commentés ";"!) j'ai donc tout supprimé pour ne laisser que celui là :

    # System Variable
    # You can configure your recalbox from here
    # To set a variable, remove the first ; on the line
    
    
    
    # ------------ A - System Options ----------- #
    #    Uncomment the system.power.switch you use
    system.power.switch=PIN356PUSHRESET
    
    
    ## fbcp FrameBuffer Copy Program
    ## For small TFT screen on GPIO and SPI
    ## See https://github.com/recalbox/recalbox-os/wiki/Utility---Use-of-fbcp-for-small-TFT-screen-%28EN%29 for details
    ## Needed for Waveshare 3.2" 3.5" TFT screen, 2.8" Adafruit screen
    ## See https://github.com/recalbox/recalbox-os/wiki/TFT-Screen-SPI-Bus-%28EN%29
    ## for support and configuration details needed by /boot/config.txt
    system.fbcp.enabled=0
    
    ## Recalbox Manager (http manager)
    system.manager.enabled=1
    ## 1 or 2, depending on the manager version you wish
    system.manager.version=2
    
    ## Recalbox security
    # enforce security
    #   samba password required
    #   disable virtual gamepads
    system.security.enabled=0
    
    ## Recalbox API (REST)
    system.api.enabled=0
    
    ## Allow a specific resolution for ES only from the command : tvservice -m [MODE]
    ## Leave commented for the default usual behaviour
    ;system.es.videomode=CEA 4 HDMI
    
    ## EmulationStation
    ### menu style
    ### default -> default all options menu
    ### none -> no menu except the game search menu
    ### bartop -> less menu, only needed for bartops
    emulationstation.menu=default
    ### Select a system to show on boot (use rom directory name) (string)
    emulationstation.selectedsystem=favorites
    ### Show the gamelist of the first or selected system on boot (0,1)
    emulationstation.bootongamelist=0
    ### Disable system view ES will boot and show ONLY the first or selected system (0,1)
    emulationstation.hidesystemview=0
    ### Parse Gamelists only. Show only games listed in gamelist.xml files (0,1)
    emulationstation.gamelistonly=0
    ### Force basicgameList view to be displayed, even if your game systems are scraped (0,1)
    emulationstation.forcebasicgamelistview=0
    
    ## Emulator special keys
    ## default -> default all special keys
    ## nomenu -> cannot popup the emulator menu
    ## none -> no special keys in emulators
    system.emulators.specialkeys=default
    
    ## Show or hide kodi in emulationstation (0,1)
    kodi.enabled=1
    ## Start kodi at launch (0,1)
    kodi.atstartup=0
    ## set x button shortcut (0,1)
    kodi.xbutton=0
    
    ## Allow a specific resolution for Kodi only from the command : tvservice -m [MODE]
    ## By default is using the default resolution of your screen
    kodi.videomode=default
    
    ## Kodi can wait for a network component before starting
    ## waithost is the ip or hostname that must answer to a ping to validate the availability
    ## waittime is the maximum time waited when kodi boots
    ## if waitmode is required, kodi will not start if the component is not available
    ## if waitmode is wish, kodi will start if the component is not available
    ## if waitmode is not set or has another value, kodi will start immediately
    ;kodi.network.waitmode=required
    ;kodi.network.waittime=10
    ;kodi.network.waithost=192.168.0.50
    
    ## Hyperion
    ## Hyperion allows you to use an ambilight like led system on your recalbox
    ## Use hypercon to create your configuration file, and copy it in /recalbox/share/system/configs/hyperion/hyperion.config.json
    hyperion.enabled=0
    
    
    # ------------ B - Network ------------ #
    ## Set system hostname
    system.hostname=RECALBOX
    ## Activate wifi (0,1)
    wifi.enabled=1
    ## Wifi SSID (string)
    wifi.ssid=Livebox-CF56
    ## Wifi KEY (string)
    ## after rebooting the recalbox, the "new key" is replace by a hidden value "enc:xxxxx"
    ## you can edit the "enc:xxxxx" value to replace by a clear value, it will be updated again at the following reboot
    ## Escape your special chars (# ; $) with a backslash : $ => \$
    wifi.key=enc:U2FsdGVkX19bTpsXwvHmV1S+UUKJMMot/DmZYLtq8TNmN0c3xQdMHgSLwcUFCnxi
    
    # secondary wifi (not configurable via the user interface)
    ;wifi2.ssid=new ssid
    ;wifi2.key=new key
    
    # third wifi (not configurable via the user interface)
    ;wifi3.ssid=new ssid
    ;wifi3.key=new key
    
    ## Samba share
    system.samba.enabled=1
    ### Virtual Gamepads
    system.virtual-gamepads.enabled=1
    ### SSH
    system.ssh.enabled=1
    
    # ------------ C - Audio ------------ #
    ## Set the audio device (auto, hdmi, jack)
    audio.device=jack
    ## Set system volume (0..100)
    audio.volume=77
    ## Enable or disable system sounds in ES (0,1)
    audio.bgmusic=1
    
    
    
    # -------------- D - Controllers ----------------- #
    # Enable support for standard bluetooth controllers
    controllers.bluetooth.enabled=1
    
    
    ## Please enable only one of these
    # -------------- D1 - PS3 Controllers ------------ #
    ##Enable PS3 controllers support
    controllers.ps3.enabled=1
    ## Choose a driver between bluez, official and shanwan
    ## bluez -> bluez 5 + kernel drivers, support official and shanwan sisaxis
    ## official -> sixad drivers, support official and gasia sisaxis
    ## shanwan -> shanwan drivers, support official and shanwan sisaxis
    controllers.ps3.driver=bluez
    
    
    # ------------ D2 - GPIO Controllers ------------ #
    ## GPIO Controllers
    ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
    controllers.gpio.enabled=0
    ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
    controllers.gpio.args=map=1,2
    
    
    # ------------ D3 - Steam Controllers ------------ #
    ## Enable steam controller service
    controllers.steam.enabled=0
    
    
    ## DB9 Controllers
    ## Enable DB9 drivers for atari, megadrive, amiga controllers (0,1)
    controllers.db9.enabled=0
    ## db9 arguments
    controllers.db9.args=map=1
    
    ## Gamecon controllers
    ## Enable gamecon controllers, for nes, snes psx (0,1) 
    controllers.gamecon.enabled=0
    ## gamecon_args
    controllers.gamecon.args=map=1
    
    ## XGaming's XArcade Tankstik and other compatible devices
    controllers.xarcade.enabled=1
    
    
    
    # ------------ F - Language and keyboard ------------ #
    ## Set the language of the system (fr_FR,en_US,en_GB,de_DE,pt_BR,es_ES,it_IT,eu_ES,tr_TR,zh_CN)
    system.language=fr_FR
    ## set the keyboard layout (fr,en,de,us,es)
    system.kblayout=fr
    ## Set you local time
    ## Select your timezone from : ls /usr/share/zoneinfo/ (string)
    system.timezone=Europe/Paris
    
    
    
    # ------------ G - UPDATES ------------ #
    ## Automatically check for updates at start (0,1)
    updates.enabled=1
    # Update type : default to stable
    updates.type=stable
    
    
    # ------------ H - HERE IT IS - GLOBAL EMULATOR CONFIGURATION ------------ #
    ## The global value will be used for all emulators, except if the value
    ## is redefined in the emulator
    
    ## Set game resolution for emulators
    ## select your mode from the command : tvservice -m [MODE]
    ## CEA 5 HDMI : 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced 
    ## CEA 4 HDMI : 1280x720 @ 60Hz 16:9, clock:74MHz progressive
    ## use 'default' for using the default resolution
    ## use 'auto' : switches to CEA 4 HDMI if supported, else keep the current resolution
    ## (string)
    global.videomode=DMT 9 HDMI
    
    ## Shader set 
    ## Automatically select shaders for all systems
    ## (none, retro, scanlines)
    global.shaderset=none
    
    ## Once enabled, your screen will be cropped, and you will have a pixel perfect image (0,1)
    global.integerscale=0
    
    ## Set gpslp shader for all emulators (prefer shadersets above). Absolute path (string)
    global.shaders=
    
    ## Set ratio for all emulators (auto,4/3,16/9,16/10,custom)
    global.ratio=auto
    
    ## Set smooth for all emulators (0,1)
    global.smooth=1
    
    ## Set rewind for all emulators (0,1)
    global.rewind=0
    
    ## Set autosave/load savestate for all emulators (0,1)
    global.autosave=0
    
    ## Enable retroarchievements (0,1)
    ## Set your www.retroachievements.org username/password
    ## Escape your special chars (# ; $) with a backslash : $ => \$
    global.retroachievements=0
    global.retroachievements.hardcore=0
    global.retroachievements.username=
    global.retroachievements.password=
    
    ## Set retroarch input driver (auto, udev, sdl2)
    ## If you don't have issues with your controllers, let auto
    global.inputdriver=auto
    
    ## If you do not want recalboxOS to generate the configuration for all emulators (string)
    ;global.configfile=/path/to/my/configfile.cfg
    
    # ------------ I - EMULATORS CHOICES ----------- #
    ## You can override the global configuration here
    ## Here is the snes example
    ;snes.videomode=CEA 4 HDMI
    snes.core=snes9x_next
    ;snes.shaders=/recalbox/share/shaders/shaders_glsl/mysnesshader.gplsp
    snes.ratio=4/3
    ;snes.smooth=0
    ;snes.rewind=1
    ;snes.autosave=0
    ;snes.emulator=libretro
    ;snes.integerscale=0
    ## If you do not want recalboxOS to generate the configuration for the emulator : 
    ;snes.configfile=/path/to/my/configfile.cfg
    
    ## Default cores for RPi3
    snes.core=snes9x_next
    gba.core=mgba
    mame.core=mame078
    nes.core=quicknes
    
    ## NeoGeo emulator 
    ## You can use pifba or a libretro core (fba2x,libretro)
    neogeo.emulator=libretro
    ## If you set libretro as neogeo.emulator, the line below sets the retroarch core (fba,imame4all)
    neogeo.core=fba
    
    ## N64 emulator is configured to display a screen with a 640x480 resolution (native n64 resolution)
    ## So you must use one of these video modes (DMT 4 HDMI,CEA 1 HDMI).
    ## If your screen is not compatible with one of these video modes, please check the recalbox's wiki.
    n64.videomode=DMT 4 HDMI
    ## If you are using a CRT screen, please change the setting above with this one : 
    # n64.videomode=default
    
    ## Dreamcast emulator
    ## Like N64, such a CPU intensive emulator needs a small resolution
    ## Consider DMT 4 HDMI (640*480) or DMT 9 HDMI (800*600). If you have a black screen on dreamcast, try DMT 9 HDMI here
    dreamcast.videomode=DMT 4 HDMI
    
    ## Configurations generated by Recalbox
    system.es.menu=default
    controllers.xboxdrv.enabled=0
    controllers.xboxdrv.nbcontrols=2
    fba.ratio=4/3
    mame.ratio=4/3
    nes.ratio=auto
    nes.emulator=libretro
    psx.ratio=4/3
    psx.rewind=0
    fba.rewind=0
    

    Pour les branchements, j'ai juste 2 fils qui partent du bouton, directements branchés sur le GPIO :

    1_1523001248972_1.jpg

    0_1523001248964_2.jpg

    Merci de ton aide !


  • Moderator
    Team
    Creator
    Moderator

    @lainbebop la conf et les branchements sont bons :/

    Peux-tu vérifier que le fichier existe bien?

    Tu dois avoir un fichier rpi-pin356-power.py sous /recalbox/scripts/



  • @supernature2k

    0_1523290293960_Capture d’écran 2018-04-09 à 18.11.01.png

    Je pense que oui ?


  • Moderator
    Team
    Creator
    Moderator

    @lainbebop désolé mais là je suis à court d'idées :/

    un petit ps pour voir si le script tourne bien en arrière plan?



  • Voilà ce que j'obtiens avec le ps :

    PID   USER     COMMAND
        1 root     init [3]
        2 root     [kthreadd]
        3 root     [ksoftirqd/0]
        4 root     [kworker/0:0]
        5 root     [kworker/0:0H]
        6 root     [kworker/u8:0]
        7 root     [rcu_sched]
        8 root     [rcu_bh]
        9 root     [migration/0]
       10 root     [migration/1]
       11 root     [ksoftirqd/1]
       12 root     [kworker/1:0]
       13 root     [kworker/1:0H]
       14 root     [migration/2]
       15 root     [ksoftirqd/2]
       16 root     [kworker/2:0]
       17 root     [kworker/2:0H]
       18 root     [migration/3]
       19 root     [ksoftirqd/3]
       20 root     [kworker/3:0]
       21 root     [kworker/3:0H]
       22 root     [kdevtmpfs]
       23 root     [netns]
       24 root     [perf]
       25 root     [khungtaskd]
       26 root     [writeback]
       27 root     [crypto]
       28 root     [bioset]
       29 root     [kblockd]
       30 root     [kworker/0:1]
       31 root     [rpciod]
       32 root     [kswapd0]
       33 root     [vmstat]
       34 root     [fsnotify_mark]
       35 root     [nfsiod]
       44 root     [kthrotld]
       45 root     [bioset]
       46 root     [bioset]
       47 root     [bioset]
       48 root     [bioset]
       49 root     [bioset]
       50 root     [bioset]
       51 root     [bioset]
       52 root     [bioset]
       53 root     [bioset]
       54 root     [bioset]
       55 root     [bioset]
       56 root     [bioset]
       57 root     [bioset]
       58 root     [bioset]
       59 root     [bioset]
       60 root     [bioset]
       61 root     [bioset]
       62 root     [bioset]
       63 root     [bioset]
       64 root     [bioset]
       65 root     [bioset]
       66 root     [bioset]
       67 root     [bioset]
       68 root     [bioset]
       69 root     [VCHIQ-0]
       70 root     [VCHIQr-0]
       71 root     [VCHIQs-0]
       72 root     [iscsi_eh]
       73 root     [dwc_otg]
       74 root     [kworker/1:1]
       75 root     [DWC Notificatio]
       76 root     [kworker/u8:1]
       77 root     [irq/92-mmc1]
       78 root     [VCHIQka-0]
       79 root     [SMIO]
       80 root     [deferwq]
       81 root     [kworker/u8:2]
       82 root     [bioset]
       83 root     [mmcqd/0]
       84 root     [kworker/2:1]
       85 root     [jbd2/mmcblk0p2-]
       86 root     [ext4-rsv-conver]
       87 root     [kworker/2:1H]
       88 root     [kworker/1:2]
       91 root     [kworker/0:1H]
       92 root     [kworker/3:1]
      114 root     /sbin/syslogd -n
      117 root     /sbin/klogd -n
      155 root     dbus-daemon --fork --print-address 5 --print-pid 6 --session
      162 root     [kworker/3:1H]
      165 root     [kworker/1:1H]
      166 root     [kworker/0:2]
      167 root     /sbin/udevd -d
      204 root     [cfg80211]
      206 root     [brcmf_wq/mmc1:0]
      207 root     [brcmf_wdog/mmc1]
      210 root     [kworker/3:2]
      242 dbus     dbus-daemon --system
      255 root     /usr/sbin/connmand -n
      310 root     [ipv6_addrconf]
      317 root     /usr/sbin/wpa_supplicant -u
      319 root     [kworker/3:3]
      411 root     [jbd2/mmcblk0p3-]
      412 root     [ext4-rsv-conver]
      531 root     /usr/sbin/lircd -n --driver=default --device=/dev/lirc0 --output
      921 root     {emulationstatio} /usr/bin emulationstation
     1009 root     /usr/libexec/bluetooth/bluetoothd --noplugin=sixaxispair
     1093 root     /usr/sbin/ntpd -g
     1099 avahi    avahi-daemon: running [RECALBOX.local]
     1109 root     /usr/sbin/dropbear -R
     1122 root     smbd -D --configfile=/etc/samba/smb.conf
     1124 root     {smbd-notifyd} smbd -D --configfile=/etc/samba/smb.conf
     1125 root     {cleanupd} smbd -D --configfile=/etc/samba/smb.conf
     1140 root     nmbd -D --configfile=/etc/samba/smb.conf
     1154 root     {powerswitch.sh} /bin/bash /recalbox/scripts/powerswitch.sh star
     1164 root     python /recalbox/scripts/rpi-pin356-power.py -m push
     1170 root     node virtualgamepads.js
     1189 root     {S94manager} /bin/sh /etc/init.d/S94manager start
     1191 root     node dist/server.js
     1207 root     /sbin/getty 38400 tty2
     1209 root     [kworker/u9:0]
     1210 root     [hci0]
     1211 root     [hci0]
     1213 root     [kworker/u9:1]
     1214 root     /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow -
     1215 root     [kworker/u9:2]
     1216 root     /usr/bin/node server.js
     1320 root     /usr/sbin/dropbear -R
     1357 root     -sh
     1369 root     ps
    

    TEST 1

    J'ai réinstallé RECALBOX sur une autre SD, sans support externe (j'ai débranché ma clé usb), pour tester.
    Donc install propre, sans jeux si ce n'est ceux déjà présents dans RECALBOX.

    Et bien c'est pareil !

    • Appui court : rien
    • Appui long : rien ou coupure du courant
    • Appuis répétés : coupure du courant

    TEST 2

    J'ai débranché mon bouton du GPIO et j'ai mis un couteau (en métal) entre les 2 PIN 5 et 6 : même comportement qu'avec le bouton, coupure du courant du Pi

    T_T




  • Moderator
    Team
    Creator
    Moderator

    @lainbebop

    try this please:

    import RPi.GPIO as GPIO
    import time
    import os
    import thread
    import datetime
    import socket
    import sys
    import argparse
    from datetime import datetime
    from configgen import recalboxFiles
    # this last one retrieves emulators bin names
    
    parser = argparse.ArgumentParser(description='power manager')
    parser.add_argument("-m", help="mode onoff or push", type=str, required=True)
    args = parser.parse_args()
    
    mode = args.m
    
    IPADDR = "127.0.0.1"
    PORTNUM = 55355
    # IP and port for retroarch network commands
    
    POWERPLUS = 3
    RESETPLUS = 2
    LED = 14
    
    GPIO.setwarnings(False)		# no warnings
    GPIO.setmode(GPIO.BCM)		# set up BCM GPIO numbering 
     
    GPIO.setup(RESETPLUS, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    # GPIO on pin 3 is the GPIO 2 in BCM mode
    #to Reset+
    
    GPIO.setup(POWERPLUS, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    # GPIO on pin 5 is the GPIO 3 in BCM mode
    #to Power+
    
    GPIO.setup(LED, GPIO.OUT)
    GPIO.output(LED, True)
    # GPIO on pin 8 is the GPIO 14 in BCM mode
    #to LED+
    
      
    # Define a threaded callback function to run in another thread when events are detected  
    def button_pressed(channel):
    	if channel == POWERPLUS:
    		speed=0.15
    		shutdownstring="shutdown -h now"
    		nwcommand="QUIT"
    		
    	elif channel == RESETPLUS:
    		speed=0.05
    		shutdownstring="shutdown -r now"
    		nwcommand="RESET"
    		
    	timer = 0
    	flag = True
    	while flag:
    		if GPIO.input(channel) == False:
    			timer += 1
    			print "Button pressed"
    		elif GPIO.input(channel) == True:
    		
    			print "Button released"
    			print timer
    		
    			#timer adds 1 each 0.1 seconds if timer = 10, button is pressed for 1s
    			if (timer > 10):
    				offreset(speed, shutdownstring)
    				print "shutdown"
    			elif (timer >=1):
    				print "retroarch"
    				killthatshit(channel)
    				
    			timer = 0
    			flag = False
    		time.sleep(0.1)
    		
    	
    #	on power short press, trying to kill all listed emus 
    def killthatshit(channel):
    	if channel == POWERPLUS:
    		for bin in recalboxFiles.recalboxBins:
    				print bin
    				proc = os.path.basename(bin)
    				print proc
    				os.system("killall -9 "+proc)
    
    # 	on long button press clean stop	of ES then shutdown -h or -r		
    def offreset(speed, shutdownstring):
    	thread.start_new_thread( blink, (speed, ))
    	flag=True
    	pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
    	os.system("/etc/init.d/S31emulationstation stop")
    	while flag:
    		flag = False
    		for pid in pids:
    				try:
    					print pid
    					commandpath = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read()
    					if "emulationstation" in commandpath:
    						flag = True
    				except IOError:
    					continue
    	os.system(shutdownstring)
    
    # threaded blinking function for LED	
    def blink(speed):
    	while True:  
    			GPIO.output(LED, False)
    			time.sleep(speed)
    			GPIO.output(LED, True)
    			time.sleep(speed)
    
    
    # 	sending network command to retroarch (only exit and reset atm)		
    def retroarch(nwcommand):
    	try:
    		s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    	except socket.error:
    		print 'Failed to create socket'
    		sys.exit()
    	s.sendto(nwcommand, (IPADDR, PORTNUM))
    		
    
    GPIO.add_event_detect(RESETPLUS, GPIO.BOTH, callback=button_pressed, bouncetime=2)
    GPIO.add_event_detect(POWERPLUS, GPIO.BOTH, callback=button_pressed, bouncetime=2)
    while True:
    	time.sleep(0.2)
    


  • @supernature2k

    J'ai remplacé le contenu du fichier rpi-pin356-power.py par ton code :

    Pression longue :

    Sous ES : écran noir et petit logo en bas puis extinction : ça marche ?
    Sous Emulateur : délai de 2sec puis coupure (sans écran noir?) : c'est normal ?

    Pression courte :

    sous ES : Pas de réaction (normal ?)
    sous émulateur : pas de réaction (pas normal ?)



  • This post is deleted!

  • Moderator
    Team
    Creator
    Moderator

    mount -o remount, rw /
    


  • @supernature2k
    Oui merci j’ai fini par trouver !
    Voir mon post au dessus j’ai réussi :) mais appui court ne fonctionne pas :/


Log in to reply
 

Want to support us ?

Join us on :

150
Online

42819
Users

17174
Topics

129141
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.