Skip to content
A python GPIO controller
CSS Python HTML Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

GPioneer has been deprecated in favor of GPIOnext


A Python Based GPIO Controller
This is a GPIO controller that is fully compatible with RetroPie (and PiPlay). For anyone that is familiar with Adafruit's RetroGame Utility, this is very similar. The main difference being that this is user friendly and full featured.

What's New?

  • Configuration tool to auto map buttons to keystrokes
  • web-front end to easily modify settings/will auto integrate with piplay's web frontend
  • supports button combinations for additional keystrokes
  • map multiple keystrokes/commands to a single button
  • It supports system commands! (you can map volume/shutdown/etc to buttons)

How to install

in terminal type:
cd ~
git clone
bash gpioneer/
That's it! The installer is still very much in the beta stage, so let me know if you have problems. But I have tested it on several clean raspbian/piplay images with no problem.

How to use

After the installer runs, you will be prompted to run the configuration tool. You will be prompted to press each direction twice to register the correct gpio pins (note: after registering 'up', you can skip any configuration by pressing up twice). Then you will be prompted for Exit, start, select, coin and 6 general buttons. Multiple buttons pressed in unison will register as unique button presses, so button1, button2, or button1 + button2 together are all unique. After running the configuration, GPioneer will automatically run in the background. You can customize any buttons or add your own custom combos by going to the web interface on a local computer (Pi's ip address / if you have piplay installed, go to the 'database admin->GPioneer' section)

If you want to assign multiple keystrokes or system commands to a single button, (in the web interface) separate them with ',' (comma).

Advanced configuration

/etc/rc.local has been modified to auto run GPioneer, add any of these flags to modify the runtime settings
Optional Flags
  • --combo_time 'Time in milliseconds to wait for combo buttons'
  • --key_repeat 'Delay in milliseconds before key repeat'
  • --key_delay 'Delay in milliseconds between key presses'
  • --pins 'Comma delimited pin numbers to watch'
  • --use_bcm 'use bcm numbering instead of board pin'
  • --debounce 'Time in milliseconds for button debounce'
  • --pulldown 'Use PullDown resistors instead of PullUp'
  • --poll_rate 'Rate to poll pins after IRQ detect'
Configuration Flags
  • -c 'Configure GPioneer'
  • --configure 'Configure GPioneer'
  • --button_count 'Number of player buttons to configure'
You can’t perform that action at this time.