The diagram above is validated against HCD_Config.h from firmware 1.7.1.
The original draft used sequential key numbers; the firmware deliberately
reverses each physical row so the front-panel numbering matches the 3 × 3
software preview.
| Quantity | Component | Specification |
|---|---|---|
| 1 | Arduino Pro Micro USB-C | ATmega32U4, 5 V / 16 MHz |
| 9 | Mechanical switches | Cherry MX or compatible |
| 2 | N-channel MOSFETs | IRLB8721, TO-220 |
| 1 | Red connection LED | 5 mm |
| 1 | White COB LED strip | 5 V, approximately 5 cm |
| 4 | Resistors | 100 Ω: two MOSFET gate resistors and two in series for the red LED |
| 1 | USB-C cable | Must support both data and power |
| As required | Hook-up wire and heat-shrink tubing | For wiring and insulation |
The white 5 V COB strip must include its own current limiting. The red LED uses two 100 Ω resistors in series, for a total of 200 Ω. The nine switches do not need external resistors because the firmware enables the Pro Micro's internal pull-ups. No MOSFET gate pull-down resistor is used in the validated HCD-BASE assembly.
| Quantity | Part | Use |
|---|---|---|
| 1 | HCD-BASE enclosure set | Main printed enclosure |
| 1 | Front white-light cover | Print in white or transparent/translucent filament |
| 9 | MX keycaps | Cherry MX compatible |
| 4 | M2 × 10 screws | Feet |
| 4 | M3 × 8 screws | Arduino and MOSFET supports |
| 2 | M2 × 4 screws | Front white-light cover |
| 3 | M2 × 10 screws | Cherry MX switch support |
This requires 7 M2 × 10 screws in total. The red connection LED is installed without a separate diffuser or cover.
All switch inputs use the ATmega32U4 internal pull-ups. Connect each switch between its assigned pin and GND.
| Front-panel control | Pro Micro pin |
|---|---|
| Key 1 | D4 |
| Key 2 | D3 |
| Key 3 | D2 |
| Key 4 | D7 |
| Key 5 | D6 |
| Key 6 | D5 |
| Key 7 | D10 |
| Key 8 | D9 |
| Key 9 | D8 |
| Connection MOSFET gate | 21 (A3) |
| Key-feedback MOSFET gate | 1 (TX) |
Pins 14, 15, 16, 18, 19 and 20 are unused in the V1 and reserved for future expansion.
Both lights are switched on the low side by separate logic-level N-channel MOSFETs. The validated wiring is:
- Connect the Pro Micro output to the MOSFET gate through a 100 Ω resistor.
- Connect the MOSFET source to GND.
- Connect the positive side of each light directly to +5 V.
- For the bare red LED, connect its negative side through the two series 100 Ω resistors (200 Ω total) to the MOSFET drain.
- For the ready-made 5 V COB strip, connect its negative side directly to the MOSFET drain, without adding another series resistor.
Each individual bare LED still needs a suitable current-limiting resistor, typically 150–330 Ω at 5 V depending on its forward voltage and desired current. For a ready-made 5 V LED module or strip that already includes resistors, do not add a second series resistor. The LED supply and Pro Micro must share GND.
Use MOSFETs that switch fully from a 5 V logic signal, such as a 2N7000 for a small indicator LED or an AO3400A for a higher-current light. No flyback diode is needed for a purely LED load.
Both MOSFET gate outputs are active-high. Pin 0 remains unused. Native USB serial on the Pro Micro does not consume pins 0 and 1.
The connection channel turns on after the desktop app sends HCD_PING. It turns
off if no heartbeat is received for three seconds. The feedback channel only
operates while that app connection is active: it turns on while at least one of
the nine keys is held and turns off after the last key is released. With no app
heartbeat, both lights remain off.