Tagged: , , ,

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
  • juicebox
    Post count: 1

    I am trying so setup a script that will execute an [ESC] when a button is pushed (wired to the GPIO). I have tried writing a bash script using xdotool to no avail and have now switched gears to a python script using uinput. Here is my script:

    #!/usr/bin/env python
    import RPi.GPIO as GPIO
    import os
    import time
    import uinput
    GPIO.setup(6, GPIO.IN)
    KEY_EVENTS = (uinput.KEY_ESC, uinput.KEY_X)
    DEVICE = uinput.Device(KEY_EVENTS)
    while True:
            GPIO.wait_for_edge(6, GPIO.FALLING)
            print("Button pressed...")
            start_time = time.time()
            GPIO.wait_for_edge(6, GPIO.RISING)
            time_pressed = time.time() - start_time
            if time_pressed < 6:
                    print("[ESC] key sent")
                    print("Power down")
                    os.system("sudo reboot")

    After the pi boots, I exit the emulator and run

    ./myscript.py $

    Then restart the emulator, load a ROM, and push my little black button. You’re not gonna believe this but, the damn thing doesn’t work. If I hit the [ESC] on my keyboard, I get back to the menu without fail. I know the input logic is working because I can see the returned output lines in the terminal window, and the logic that drives rebooting if the button is pushed for more that 6 secs works well. Any help here would be appreciated.

    Post count: 2


    I’ve tried to do the same thing and stumbled into the same issue :(

    Did you find a solution ?

    thanks in advance :)

    Post count: 81

    You have to press the GPIO 3 times in a row to register the esc key being pressed.

    I rewrote snesdev to only need it to be pushed once. Build from my git and replace the snesdev included with retropie:


    Post count: 2

    first, thanks for answering so quickly.
    I was aiming for a solution that was not using snesdev, like juicebox here above.
    but with a lot of my research results pointing to snesdev, it was my fallback option if plan A was not working.

    I’ll try your version, thanks for sharing.

    Which gpio pin do I have to connect my switch to? I just need the reset button.


Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.