Usb button controller
recepbugra24·usb-button-controller
About the Usb button controller PCB
Usb button controller is an open source WCH CH32/CH55x PCB design by recepbugra24, published on GitHub. It is a 2-layer board measuring 41.8 × 25.3 mm, with 20 components from 13 distinct parts.
Its main chip is the CH552G, from the WCH CH32/CH55x family. Other key parts include the KF128L-5.08-3P. By type, the board carries 8 resistors, 5 capacitors, 3 diodes, 2 ICs and 1 switch.
From the project
A minimal USB HID keyboard board that reads two externally wired buttons and sends keystrokes to a host computer. No drivers required — the host enumerates it as a standard keyboard.
A minimal USB HID keyboard board that reads two externally wired buttons and sends keystrokes to a host computer. No drivers required — the host enumerates it as a standard keyboard.
Designed around the WCH CH552G, an 8-bit MCU with an integrated USB device controller, on-chip 24 MHz oscillator and on-chip 5 V to 3.3 V regulator. This removes the crystal, load capacitors, reset network and programming header that a comparable AVR design would need, and cuts the controller cost from roughly $4.70 to $0.31 per unit.

Main components on the Usb button controller
Usb button controller bill of materials (BOM)
20 components, 13 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | CH552G WCH(南京沁恒) | SOP-16_L10.0-W3.9-P1.27-LS6.0-BL | U1 |
| 1 | KF128L-5.08-3P KEFA(科发) | CONN-TH_3P-P5.08_KF128L-5.08-3P | U2 |
| 1 | C318884 SW_Push | SW_SPST_TL3342 | SW1 |
| 1 | TYPE-C 16PIN 2MD(073) TYPE-C 16PIN 2MD SHOU HAN(首韩) | USB-C-SMD_TYPE-C-16PIN-2MD-073 | USB1 |
| 2 | USBLC6-2SC6 ST(意法半导体) | SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BL | D1, D2 |
| 1 | C2286 LED | LED_0603_1608Metric | D3 |
| 3 | C14663 100nF | C_0603_1608Metric | C1, C2, C4 |
| 1 | C19702 10uF | C_0603_1608Metric | C3 |
| 1 | C49678 100nF | C_0805_2012Metric | C5 |
| 2 | C23186 5.1k | R_0603_1608Metric | R1, R2 |
| 1 | C25804 10k | R_0603_1608Metric | R3 |
| 2 | C23162 4.7k | R_0603_1608Metric | R4, R6 |
| 3 | C21190 1k | R_0603_1608Metric | R5, R7, R8 |
Usb button controller design files
The KiCad project lives in the recepbugra24/usb-button-controller repository on GitHub; these links point at the commit this page was built from.
Usb button controller: common questions
What microcontroller does the Usb button controller use?
The Usb button controller is built around the CH552G, from the WCH CH32/CH55x family.
How big is the Usb button controller PCB?
The Usb button controller measures 41.8 × 25.3 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the Usb button controller?
20 components, from 13 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the Usb button controller design files?
From the recepbugra24/usb-button-controller repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the Usb button controller design in my own project?
The repository has no license, so all rights stay with recepbugra24. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Usb button controller without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug WCH CH32/CH55x firmware against it before you order a PCB.
Similar boards
WCH CH32/CH55x
CH32X-48
rgoulter
224.6 × 74.2 mm112 parts2LNo license230WCH CH32/CH55x
CH32X-60-ANSI-Improved
rgoulter
285 × 94.2 mm149 parts2LNo license230WCH CH32/CH55x
CH32X-75
rgoulter
285 × 94.2 mm318 parts2LNo license230WCH CH32/CH55x
CH552-48
rgoulter
224.6 × 74.2 mm107 parts2LNo license230WCH CH32/CH55x
Idawgz32
ChrisChrisLoLo
98.7 × 45.5 mm81 parts2LGPL-3.077WCH CH32/CH55x
Pointify
luftaquila
23.1 × 20.7 mm8 parts2LGPL-3.042