Modular PC/Game Controller

A modular pc/gaming controller framework that allows users to individualize the controller to fit their needs.

Public Chat
Similar projects worth following
Everyone is physically different, and what works for one person often does not work for another. Sometimes those differences can become compounded by conditions outside of our control. Whether it be aging, injury, or just the nature of how we are born, these differences can have severe impacts on our daily lives and limit our hobbies.

This control system, consisting of a central "hub" is designed to allow people of all different ability types to create an input system that will allow them to enjoy games and computing in a much more comfortable manner. The open nature of this project, and simple plug interface, will allow for flexibility that is just not offered by many other systems out there.

Problem to solve:

Lack of, or expense of, available peripheral devices to allow all individuals to access computer and gaming content regardless of body type or ability.


Initial plan is to use a modular base that can accept input from external devices that will allow those devices to emulate mouse movement and keyboard input.

Steps to achieve:

  1. Decide on device to use for hub/base
    1. Raspberry Pi 0 w
      1. built in wifi/bluetooth
      2. a variety of “gadgets” available for emulation
      3. inexpensive
      4. small
      5. no direct analog input
    2. Arduino Leonardo
      1. Easy to use
      2. open hardware design can easily be built into custom projects
      3. analog inputs
    3. Arduino Micro
      1. See Leonardo
      2. Small Form Factor
    4. Metro M0
      1. Arduino form factor and compatibility
      2. plenty of room for programming and processing
      3. Faster than the Arduino options
  2. Decide on how modules will interact
    1. I2C
    2. Direct GPIO
    3. bluetooth/wifi
  3. Build base prototype
    1. Experiment with methods of interactions
    2. Start small with simple keyboard/mouse
  4. Create documentation and protocol for module interfacing
  5. Design Modules for various interactions

Initial Thoughts:

Initial thoughts are to use a Raspberry pi due to the flexibility that built in bluetooth and wifi could bring. Also, the smaller form factor and performance characteristics make it more capable than some of the others. The lack of true analog inputs, on the other hand, will make it a bit tougher for end users to create compatible devices.

Another consideration is how I want to interface. Using a microcontroller approach could aleviate a lot of the issues, but could also complicate programming. On the plus side a good I2C or wifi library would eliminate a lot of wiring headaches between the unit and the base.

Using direct GPIO interface is straightforward and will probably be my initial approach as it is likely the simplest to achieve with bare parts (buttons, switches, etc).

The biggest issue will be standardizing everything. I want the inputs to be as simple to manage as possible so designs can be made to plug directly in with minimal customization.

  • 1 × Raspberry Pi zero w

  • Finished Initial Raspberry Pi Prototype Model

    Brad Tee04/19/2018 at 17:12 0 comments

    Created a first prototype rendering for the Raspberry Pi version of the project the other day. It's funny how doing one part of a task can inform elements of another.

    Initially, I was in favor of using individual inputs from the control units into the base, but now I'm not so sure. It would make the actual creation of controllers more approachable for the users, but a straight I2C approach would be much cleaner. The main issue with going that route that I am still struggling with is the added complexity and expense of needing some sort of microcontroller in the control device to conduct the I2C communication.

    Also, looking at it in 3D, the header location/count will very likely change, but it will work for testing purposes as is.

    Work goes on though, with the initial prototype done, next step will be to print a copy to see how it will come out.

    Wish me luck!

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates