Skip to content


Switch branches/tags

Mobile Gamepad

Mobile Universal Gamepad for RetroPie (


Quick installation and start

  • Run below installation script
# Install nodejs (tested with nodejs v12.17.0)
sudo apt-get update && sudo apt-get upgrade
curl -sL | sudo -E bash -
sudo apt-get install -y nodejs

# Install Grunt Command Line Interface
sudo npm install -g grunt-cli

# Clone project MobileGamePad and install dependencies
git clone
cd mobile-gamepad
npm install

# Run MobileGamepad
sudo grunt start
  • Open in mobile browser the below URL (Mobile phone and Raspberry Pi have to be on the same network)
  • Run gamepad in background and enable on startup
# Enable Mobile gamepad on startup
sudo npm install pm2 -g
sudo pm2 start
sudo pm2 startup
sudo pm2 save

RetroPie configuration

  • Copy config file
sudo cp /other/retropie/MobileGamePad.cfg /opt/retropie/configs/all/retroarch-joypads/

Install application on mobile phone

  • Open chrome browser with url http://[ip_address_raspberry_pi]:8888
  • Open chrome menu (right top corner)
  • Select option Add to home screen
  • Add application title MobileGamepad
  • The shortcut should be added to home screen

Standalone installation step 1 Standalone installation step 2 Standalone installation step 3

Additional tools

The below tool allows check gamepad connection and sending events

sudo apt-get install input-utils
  • Dump out all the input devices and the associated details about the device.
sudo lsinput
  • Display input events
sudo input-events [number]
  • Display keyboard mapping of a particular event device
sudo input-kbd [number]


  • Simulate mouse (Z Axis, Rotate Z Axis) by moving mobile phone (for Quake, etc.) [In progress]
  • Add second joystick (Z Axis, Rotate Z Axis) to move mouse (for Quake, etc.)
  • Add simple KODI or other installation package
  • Integrate gamepad with LaunchBox

Problem solved

  • No more problems with battery in gamepad
  • No more problems with multi-players
  • One gamepad uses everywhere