gameKey Ergonomic Controller

Arduino-based ergonomic adjustable game controller
121
273
0
2795
updated September 14, 2023

Description

PDF

Updates:

Sept 06, 2023
  • There was an error in the thumb cluster PCB where the navigation switch was lacking its common/column pin and was tied to ground - resolved on GitHub for the KiCAD and gerber files. If you have an older PCB, you can work around this by cutting the trace from Pin 1 of the JS5208 pads and wiring it directly between that pin and C4. New PCBs have a pad for C(olumn) marked on the bottom silkscreen.

gameKey Controller

This is an attempt at an easy to print and easy to build adjustable ergonomic game controller. It is based around two custom PCBs, hosting a SparkFun Pro Micro as the main controller (hooked to up to 30 buttons), and a daughterboard containing a joystick and navigation switch for additional controls, including analog.

It uses a combination of M2 and M3 heat-set inserts and as narrow a variety of attachment hardware as reasonably possible. The primary goal is simplicity without sacrificing adjustability or quality.

The entire assembly can be mirrored at the part level to create a version intended to be used with your right hand instead of your left - with the exception of the thumb back/body parts. The control PCB will fit in either direction.

This project can be found in a more complete form on GitHub in the following repositories:

2023/02/18: Version 2.0 of the firmware and companion app are released, adding in-hardware shift layers and slightly less crash-prone serial communication.

https://github.com/andrewb435/gameKey-STL
https://github.com/andrewb435/gameKey-PCB
https://github.com/andrewb435/gameKey-Firmware
https://github.com/andrewb435/gameKey-Companion

Printing Notes


The middle and ring finger assemblies are identical. Index is the same, but with a special MainA part to allow the addon to attach. Pinky is a 100% mirror of the Index, with every involved printed part being mirrored.

All printed parts are unique with the exception of:

  • 3x Finger_Main-Mount for Index/Middle/Ring (Pinky has a mirrored version)
  • 2x Finger_MainA and Finger_MainB for the Middle and Ring fingers
  • 4x short button paddles
  • 19x of the long paddles

The palm rest may need support in the center depending on your printers bridging capability. The thumb cluster front and back need supports.
 

Assembly notes

Heatset inserts should also be in the A side of all parts. All shell assembly inserts/bolts are M2, and all adjustment inserts/bolts are M3. All buttons use 10mm snippets of 1.75mm filament as an axel/pivot.

Insert sizes:

  • M3 x D4.2 x L3
  • M2 x D3 x L2.5
Fingers

The switches nestle into the pockets in the A sides of all printed parts and are wired in place. All switches share a common wire that goes to the Column pad on the main control board, with the exception of the side button, which get dedicated lines to their specific row/column pad.

Side button assemblies are bolted to the side of the Index/Pinky A-sides before the main buttons go in, as the bolt is under the button at the bottom of the main clusters.

Thumb Cluster

The cap for the joystick needs to be inserted into the housing before the circuit board with the Alps RKJXV122400R stick, as it needs a bit of finagling around the lower edge insert. The navigation switch is an E-Switch JS5208 5 position.

Palmrest

The palmrest itself has 3 M3 inserts in the bottom, with the M3x35 Socket Head Cap Screws going through the lower plate, mid section, and into the palm. The control board has a single M2 insert and screw to fasten and locate it on the base plate.

Wiring:


Most of the fingers and thumb should be straightforward, common pins to the Column pads (C0...C4), but the last column (C5) gets a collection of common pins from several different buttons. This may be changed in a future revision on the PCB, but for now the easiest way is making a small pigtail splitter by soldering the separate wires heading there to a single wire that gets attached to the board.

Status

As of original posting, the firmware is mostly feature complete, and the configuration application is viable but rough. PCBs can be ordered inexpensively from JLPCB and the main board has the proper files for PCBA to handle the 30 diodes on the bottom.

Tags



Model origin

The author marked this model as their own original creation.

License


Highlighted models from creator

View more