Skip to content

UBC-Thunderbots/mobile-gamepad

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobile Gamepad

Thunderbots changes 🌩️

  • The library by default is for an RPI, so we have to update the events to be 64 bits already tracked here
  • The original joystick had a finite number of states (up, down, left, right, up-left, etc..) but we would like an analog joystick.

Both these changes are tracked in this commit: e3b983f88810d9ac5624d4c8eff1b04d0cc4f62e

We also changed the server.js to index.js so that we can create a package

Instructions on how to create a new package:

sudo npm install -g bundle-deps
bundle-deps
npm pack

Mobile Universal Gamepad for RetroPie (http://mobilegamepad.net/)

MobilaGamepad

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 https://deb.nodesource.com/setup_12.x | 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 https://github.com/sbidolach/mobile-gamepad.git
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)
http://[ip_address_raspberry_pi]:8888
  • Run gamepad in background and enable on startup
# Enable Mobile gamepad on startup
sudo npm install pm2 -g
sudo pm2 start app.sh
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]

TODO

  • 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

Packages

No packages published

Languages

  • JavaScript 70.3%
  • CSS 18.8%
  • HTML 10.7%
  • Shell 0.2%