A hand-wired 3d-printed mechanical keyboard intended for one hand with an analog thumbstick for movement. The layout matches the left side of large "battleship" keyboards with their extra bank of 2x5 1u F keys.
- 40 keys
- Swappable analog thumbsticks
- Low profile ( 1.50cm case height, 3cm from desk to keytop. 1cm bezel)
- QMK firmware
- VIA integration
From left to right
2x5 ortho layout
0.25u open space
1x5 1.25u keys replacing the ~, tab, caps, shift, cntl keys
5x5 ortho layout
Analog thumbstick
- 6 3d printed parts ( at least 180mm print surface )
- 1 usb arduino pro micro
- Analog thumbstick + breakout board
- 50 cherry footprint switches
- 45 1u keycaps
- 5 1.25u keycaps
- 50 fast switching diodes
- Enameled Magnet Wire (30 or 32 awg)
- Ribbon cable
- M3 screws
- USB cable
Decide on if you are going to use the large PS/XBOX style thumbstick or the mobile sliding style thumbstick.
- Print out the switch plate and two (front, back) arduino controller mounts
- Print the approriate thumbstick mount peices
a. If you are using the large thumbstick print the large stand, mount, and cover
b. If you are using the sliding thumbstick print the sliding stand - Follow the QMK guides for hand-wiring a matrix
For the diodes I chose wire wrap the diodes to the switch post and bend the legs so they hooked into the next diode.
For the columns I chose to wire wrap the top and bottom most switch posts and alternate the side the wire made contact with the other switch posts.
For connecting the rows and columns to the arduino the ribbon cable is used and kept neat.
- Wire the rows to the pro micro as follows:
row 0 = pin 10, row 1 = pin 16, row 2 = pi 14, row 3 = pin 14, row 4 = pin 15
(these are the pins in order from the edge furthest from the usb connector moving towards it)
- Wire the columns to the pro micro as follows:
col 0 = pin 2, col 1 = pin 3, col 2 = pin 4, col 3 = pin 5, col 4 = pin 6, col 5 = pin 7, col 6 = pin 8, col 7 = pin 9
- Epoxy or glue the arduino stand mounts in the correct location.
The analog thumbstick is wired to the arduino using the ribbon cable. A connection can be placed in the middle of the cable to allow the thumbstick type to be swappable or the thumbstick can be wired directly to the arduino.
- Solder the wire the ground and vcc from the arduino to the thumbstick
- Solder the wire the pro micro analog in pins
x-axis to pin A1
y-axis to pin A2
click to pin A3
-
Pass the ribbon through the channel of the 3d-printed stand
-
Solder the GND, VCC, and analog input wires to the underside of the thumbstick breakout board's GND, VCC, x axis, y axis, and click pins.
-
Screw the breakout board to the stand. If using the large thumbstick place the cover on the thumbstick before screwing in the board.
-
Screw the stand to the plate from the inside of the plate wall
- The three analog pins can be used for more than just thumbsticks. It could be also be wired to:
- An 8-way HAT using voltage dividers
- A rotery encoder knob and push button or mousewheel
- Linear potentiometer thumb sliders for throttle
- Ergodox style thumb cluster of hal effect swiches for analog values
-
The thumbstick reports as an HID device for a DirectInput joystick. Some games require XInput, some don't allow both XInput and mouse input. A collection of other tools are required such as Joystick Gremlin, x360ce and antimicro to manage the input.
It would be nice to implement an analog to keypress map similar reWASD, antimicro, or the MAME input mapper. -
Easier swap thumb device? Right now the bottom cover needs to be unscrewed so the internal screws can be removed to replace the thumb device. If possible having the screw mounts on the outside and the cable connector on the keyboard case wall would allow easier changing of the thumb device.