Main Content

What is this?

This is a custom gaming keypad with four hot-swappable mechanical keys and customizable RGB LEDs. It is powered by an STM32F103Cx microcontroller and is programmed through the Arduino IDE. Its keys can be programmed on the fly through the driver program provided or through composite serial communication.

Feature List:

Fast STM32F103Cx microcontroller allows for low input latency.
USB Full Speed with 1000hz polling rate.
Hot-swappable keys.
EEPROM setting storage.
On-the-fly Key Customization (with GUI for Windows users)
Three RGB Modes with capability to add more.
Fully open source.
Modular and easy to carry.
How are the keys arranged?

The keys are arranged in the pattern of the keys “A S Z X” that appears on most keyboards. This means that if two of the keys are used for gaming (such as tapping in osu) then the rest can be used for other applications.

What do I need to build this?

In addition to the materials listed, you will also need advanced soldering skills (for soldering fine-pitch LQFP package and the micro-USB port).


I base my materials off Digikey components, but if you can find them on other distributors, then that works too.

Custom PCB
1x STM32F103CxT6 (x can be replaced with 4, 6, 8, or B, though keep in mind that you need to check the size of the compiled code to make sure they fit on the flash memory)
2x 7.3mm height tactile switches
4x Reverse mount 4-PLCC LEDs
6x 0805 10K ohm resistors
4x 0805 68 ohm resistors
5x 0805 1.5K ohm resistors
3x N-channel SOT-23-3 3.3V level MOSFETs
3x 0805 100nF capacitors
2x 0805 1uF capacitors
2x 0805 20pF capacitors
1x 0805 4.7uF capacitor
1x MCP1703T-3302T/DB 3.3V voltage regulator
1x 1210 500mA PTC resettable fuse
1x USB3090 micro USB A/B port
1x Row of 90 degree headers
1x 8MHz HC-49 crystal
4x Round rubber bumpers
4x Kailh hot swap sockets
4x Cherry MX RGB or equivalent switches”

Link to article