Homepage Forums RetroPie Project GPIO Adapter, ControlBlock etc. Custom GPIO buttons tied to keyboard events

Tagged: , ,

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #105040
    vertpingouin
    Participant

    Hi everyone !

    I try to add custom buttons in my project. Those button should allow access to save state, loadstate etc… function in retroarch. I plugge my buttons on the GPIO a like described here for example
    http://blog.thestateofme.com/2012/08/10/raspberry-pi-gpio-joystick/

    Then I wrote a little python script in order to map my buttons and trigger some uinput keyboard events.

    from time import sleep
    import RPi.GPIO as GPIO
    import uinput
    
    keypad = uinput.Device([uinput.KEY_N])
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(4, GPIO.IN)
    
    pause = .1
    
    while True:
            if (GPIO.input(4)):
                    keypad.emit_click(uinput.KEY_N)
                    sleep(pause)
    

    I launch the script as admin (needed for GPIO python lib).
    The button press detection works without problem.
    When I’m in console, I can see ‘n’ ar input. ‘n’ key is mapped to the “next shader” function in retroarch, this works with a usb keyboard… But not with my buttons.

    Somehow, my script is only effective in console. As long as I launch emulstation or retroarch, it fails.

    Help would be much appreciated. I can’t figure it out and I really want to implement this with python which should bring a great flexibility to my project !

    #105259
    vertpingouin
    Participant

    I realize that the tty where my commands are sent is not the graphic tty (tty6). So i might be a clue, but I don’t know how to send uinput strokes to a specific tty.

    I anyone knows…

    Unless, Il just plug in my arduino micro and make it act like a keyboard, but it seems a bit too much.
    I would like to keep hardware side as simple as possible.

    Anyone ?

Viewing 2 posts - 1 through 2 (of 2 total)
  • The forum ‘GPIO Adapter, ControlBlock etc.’ is closed to new topics and replies.