A 3D-printed DIY joystick keyboard for gaming, FOSS alternative to GMk
You can find reference build photos in images/wiring
- Arduino Pro Micro
- PS2 Joystick module
- 3 x M3 screws for the lid
- 2 x M2 screws? (something to attach the joystick module to the holes)
- Pro micro compatible USB cable for flashing and connecting
All stls parts can be found in the STL directory
- Custom Lid
- Electronic's Box
- Joystick module Holder
- CE3PRO Pro Micro Holder, by Pakwaule on Thingiverse
To customize the parts (e.g: change the lid), you can found the STEP file used in this directory.
According to this Pro micro diagram:
I used the following pinout:
const uint8_t Pin_Joystick_X = A0; // Turn left/right
const uint8_t Pin_Joystick_Y = A1; // Turn up/down
const uint8_t Pin_Button_Switch = 8; // Button of the MX Switch
const uint8_t Pin_Button_Joystick = 9; // Button of the joystick
This can be wired as you like, but there are two factors to consider:
- You must wire the joystick X and Y axes to Analog entries on the board (Green entries that start with A)
- The 6x6xY button is hardwired to GND and RST, to allow easier flashing on the board from the outside
- Arduino IDE
- Pro Micro board drivers
- keyboard.h library (can be installed from Arduino IDE)
To install the custom firmware, you have:
-
Open the arduino file, in the IDE.
-
Install the Pro micro board drivers
-
Upload the script via the IDE. While the upload is running, make sure to press the Reset button installed in the pinout.
The defaults buttons used in the joystick keyboard are:
const char up_key = 'k';
const char left_key = 'h';
const char down_key = 'j';
const char right_key = 'l';
const char joysick_key = 'o';
const char switch_key = 177; //ESC key
You can customize them as you like, but you have to reflash the board after changes.