- This topic has 1 reply, 1 voice, and was last updated 10 years ago by .
Viewing 2 posts - 1 through 2 (of 2 total)
Viewing 2 posts - 1 through 2 (of 2 total)
- The forum ‘GPIO Adapter, ControlBlock etc.’ is closed to new topics and replies.
On July 30, 2025, the U.S. Executive Order “Suspending Duty-Free De Minimis Treatment For All Countries” came into effect. This removes the previous duty exemption for low-value packages and introduces new procedural requirements that are still being defined by U.S. Customs and the United States Postal Service. In response, DHL has announced a temporary halt to standard postal parcel shipments into the U.S. and Puerto Rico. Dismiss
Skip to contentHomepage › Forums › RetroPie Project › GPIO Adapter, ControlBlock etc. › Custom GPIO buttons tied to keyboard events
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 !
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 ?