Keyboard basic information
input: 16 buttons, 1 joystick (PS4 joystick), 1 knob (EC11)
Lighting: 1 RGB lamp bead (dimmable), 1 blue SMD LED light, 5 white SMD LED light (keyboard light, unified control, dimmable)
interface: TypeC interface, 2*4pin curved pin interface (SW download port and serial port)
In terms of hardware,
the PCB size is limited to 10cm, and two-layer boards cost money It's not too expensive either.
There is no hot-swappable or positioning board, and the key shaft is directly welded to the PCB. I personally don’t have this need, and I can modify it myself if I want to.
The chute at the C port of the shell is for the convenience of using right-angle TypeC cables. The Greenlink cable I use just has enough space. If you use other cables, you can consider expanding the slot.
In order to reduce the overall width and save material of the casing, one side of the PCB is flush with the side, and the PCB is not completely covered.
The screws use M2 countersunk heads, 16 or 17mm. The nut is an M2 insert nut with an outer diameter of 3mm and a height of 2mm.
RGB lamp beads generally come in two types: frosted and transparent. I feel that the frosted ones look better.
For STM32
, STM32F103C6T6 is used. The advantage is that it is cheap, but the disadvantage is that the memory and program storage are small. The memory is saved as much as possible in the program. For the program, the O2 optimization space is required to be sufficient.
If you want to do secondary development and feel that there is not enough space, you can change to C8T6. There are some precautions when doing so, which are written in the open source file.
However, if you do not consider secondary development, there is no problem in using C8T6 directly, and you can ignore the precautions.
The median value of the joystick can be corrected, and the method is also written in the open source file.
The program is downloaded using SW. The TypeC port of the keyboard itself cannot be used for downloading. You need to use those pin headers to connect to the downloader for downloading.
If you modify it to serial port download, in addition to correcting the boot level, you also need to pay attention to one thing, that is, the serial port download will clear the FLASH and then write it, but the SW will not,
and the keyboard configuration data uses the FLASH of the chip itself. The last 1K bytes are stored, so if the serial port is downloaded, the host computer must be used to write the configuration again.
Of course, when you download the program for the first time, you have to use the host computer to write the configuration before it can be used.
In terms of functions,
Station B shows the video: https://www.bilibili.com/video/BV1VT411W78P
The device can store two sets of keyboard configurations and four sets of rocker knob configurations, as shown in the left half of the picture below:
The functions that the buttons can achieve are shown on the right side of the picture above Half, for more details (including the functions that the joystick knob can achieve), please see the open source documents.
The upper computer
is written in QT. Since QT has better support for serial ports, a CDC serial port is added to the USB part of the keyboard in addition to the HID to configure the keyboard function.
Generally, Win10 can directly recognize this serial port, but Win7 and Win8 may require a driver, so the driver is also included in the source file.
A relatively detailed description has been written for the use of the host computer. In this description, you can also understand all the functions of the keyboard.