Skip to content

Userland linux driver for Moga bluetooth gamepads in "A" mode

License

Notifications You must be signed in to change notification settings

jakobend/moga-uinput

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moga-uinput

Userland linux driver for Moga bluetooth gamepads in "A" mode

Architecture

moga-uinput runs as a daemon that monitors D-Bus connection messages from org.bluez. When a Moga gamepad is found, a thread is spawned that creates a new virtual UInput device for it, opens a bluetooth serial port and listens to incoming messages from the gamepad. These are then translated to UInput events, which are sent to the UInput device via libevdev.

Prototype

A working prototype can be found in moga-uinput.py. It only implements the per-gamepad logic, but also device discovery.

Requirements:

usage: moga-uinput.py PLAYER=1/2/3/4

To do

  • Add inline documentation to prototype
  • Document Moga serial protocol
  • Implement userland driver in C