The engineering design references the open-source project by TheLight: https://oshwhub.com/TheLight/zi-ding-yi-jian-pan
Physical images:

Demo video:
[Open Source] Let's DIY a multi-functional keyboard with custom key layout, hot-swappable switches, and RGB functionality_Bilibili_ The
demo board designed by bilibili: (Type-C interface)
The schematic diagram defaults to a USB-B interface (USB-B is used because soldering is simple = =). If you want to change it to a Type-C interface, it is recommended to add a 5.1k resistor to the CC pin to identify C to C or A to C connections. The WS2812B is directly connected to a 5V power supply and has relatively high brightness. You can add resistors to adjust it yourself.
There are three PCB files: one is a USB-B interface board with a shell, one is without a shell, and the other is a Type-C interface PCB board with a 5.1k resistor added.
The 3D shell automatically generated by JLCPCB EDA had a problem after printing: the board was difficult to insert, and the slider was too tight. To use the shell generated by EDA, it's recommended to modify the 3D printing model
program design based on TheLight's code, adding a WS2812B driver and implementing a gradient breathing light effect. The button detection and HID upload parts were also modified.
The default button functions are:
three regular buttons: cut, copy, and paste;
a rotary encoder button: mute; and a
rotary encoder button: volume control.
According to the original code, these buttons cannot be pressed simultaneously (like Ctrl + V). After modification, this function can be barely achieved, but there are significant problems. Due to the underlying button detection, debounce, and long-press logic, it's difficult to trigger the simultaneous press function; it only triggers with a long press. Currently, there's no solution, so a method of directly setting a single button to upload the Ctrl + V button has been implemented
. The cost is not high, approximately 15 yuan per unit (5 yuan for the shell, made on Taobao; components total less than 10 yuan).