1 / 3
Gateron Compatible Thin Hitbox — zdjęcie 1
1 / 3

Gateron Compatible Thin Hitbox

Zamów wydruk tego modelu

Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.

Zapisane na tym urządzeniu.

Informacje o modelu

Źródło
Printables
Kategoria
Video Games
Licencja
Creative Commons — Attribution — Share Alike

Designed for a friend who wanted a low profile hitbox that worked with his switches. It has 14.05mm square holes that fit tightly with Gateron's mechanical switches. It is specifically designed to make use of a RP2040 Zero that can be hot glued at the back of the bottom tray.

As the top tray is thick and sturdy, the bottom tray is quite thin and flexible, so be careful with it. Hot glue can and will melt the thin surface that the RP2040 Zero sits on, so keep a flat tool or surface handy so that you can keep the tray from deforming while the glue cools down.

This makes use of 4 Heat Inserts (M3xD5xL4) and 4 M3 screws (I honestly don't know the size, 5mm to 6mm probably?) If you don't want to buy Heat Inserts, you could try filling the holes with hot glue and quickly putting the screws in them or mod the model to make the holes smaller. It also uses a RP2040 Zero (chinese clone or official Waveshare both work fine) and a USB-C cable.

The MX compatible buttons were taken from here: Arcade Button caps for MX and kailh low profile keyboard switches

Included in attached photos are how it is wired. If you want to wire it exactly the same the following code will probably work great, but you can just map the coords to make any wiring order work. The bare copper wire is the shared ground of all the switches which are each directly wired to GPIO.

The RP2040 is configured with KMK and Circuit Python with the following code:

import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.scanners.keypad import KeysScanner

GPIO to key mapping

_KEY_CFG = [ board.GP6, board.GP7, board.GP8, board.GP9, board.GP10, board.GP11, board.GP12, board.GP13, board.GP14, board.GP15, board.GP26, board.GP27, board.GP28, board.GP29, ]

Keyboard implementation class

class MyKeyboard(KMKKeyboard): def init(self): # create and register the scanner self.matrix = KeysScanner( # require argument: pins=_KEY_CFG, # optional arguments with defaults: value_when_pressed=False, pull=True, interval=0.02, # Debounce time in floating point seconds max_events=64 ) # good luck mapping the coords, it is a struggle self.coord_mapping = [ 9, 10, 13, 12, 11, 7, 8, 4, 0, 1, 6, 5, 3, 2 ]

keyboard = MyKeyboard()

configure the keymap to output whatever your fighting game uses

Top Button 1, Top Button 2

Direction Button x 4

Top Row Attack Button x 4

Bottom Row Attack Button x 4

keyboard.keymap = [ [ KC.A, KC.B, KC.C, KC.D, KC.E, KC.F, KC.G, KC.H, KC.I, KC.J, KC.K, KC.L, KC.M, KC.N, ] ]

if name == 'main': keyboard.go()

Printed in light colored PETG, which means you can see the little led of the RP2040 flashing through the top Plate, you can code yourself some poor man's RGB if you have the know how.

Tagi