
HIDControls
profdc9/HIDPanel
A customizable HID USB device with buttons, encoders, sliders, potentiometers, etc.

A customizable HID USB device with buttons, encoders, sliders, potentiometers, etc.
HIDPanel is an open-source printed circuit board by profdc9, from the profdc9/HIDPanel repository on GitHub. It is a 2-layer board of 116.8 × 134.6 mm with 48 parts on 106 nets, routed with 1,358 tracks and 177 vias.
It is built around the 74HCT00D. Its parts include 10 resistors, 6 capacitors, 6 ICs, 4 diodes and 1 transistor. It belongs with the RP2040 boards of this library.
This is a customizable HID controller for game panels. The HIDPanel has positions for up to 15 plug in control modules. These modules can be single buttons, button pairs, rotary encoders, rotary potentiometers, slide potentiometers, and dual axis joysticks (PS4 or Xbox One type replacement joysticks).
The device appears as a USB CDC serial port, a USB HID keyboard, and a USB HID gamepad. The actions of each module is configured through the serial port. A command string configures the Keyboard or Gamepad controls to be triggered in response to each action.
The commands are sent via the USB CDC serial port terminated by the enter character. Here are the commands:
SET <module number> <action number> <action command string>
Sets the action command string corresponding to the action number for the given module number (1 to 15).
SHOW <module number>
Shows the current command strings for the module number. If the module number is zero, show the action strings for all of the modules.
WRITE
Writes the current configuration to flash memory to be restored on power up.
HELP
Display the help (the list of commands).
Each module has three inputs. Switch 1, which is a digital only input, switch 2, which is digital or analog, and an analog input, which can be used as a digital or analog input.
The action numbers are:
The command string is a sequence of one or two character codes separated by commas. It should not contain any spaces. There are three modes. The mode needs to be selected before the commands for the mode are used. Multiple modes may be used in the command string by switching between them. The default is keyboard mode.
Examples:
Complete commands:
Pictures:
The following is a pciture of the HIDPanel with different controls in it. In module 1 is a single push button. In module 3 is a rotary potentiometer, In module 4 is a slide switch. In module 6 is a rotary encoder. In module 8 is a push-on push-off button. Modules 9 and 13 have a digital gamepad. Modules 10 and 14 have a slide potentiometer. Modules 11 and 15 have a dual axis joystick.

This is the 3-d printed cover that goes over the HIDPanel. It is a parametric FreeCAD model and the port openings can be customized in FreeCAD before outputting the cover for the particular modules used.

| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | ModulePlug | HIDPanel:ModulePlug | M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15 |
| 6 | 100 nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C2, C3, C4, C5, C6 |
| 4 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R5, R6, R7, R10 |
| 4 | 220R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R3, R4 |
| 4 | LED | LED_THT:LED_D3.0mm | D1, D2, D3, D4 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 4051 | Package_DIP:DIP-16_W7.62mm_Socket | U3, U4, U5 |
| 1 | 150R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R8 |
| 1 | 2N3904 | Package_TO_SOT_THT:TO-92_Inline_Wide | Q1 |
| 1 | 2PosTerminal | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | 2k2 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R9 |
| 1 | 74HCT00 | Package_DIP:DIP-14_W7.62mm_Socket | U2 |
| 1 | Jumper_3_Bridged12 | Jumper:SolderJumper-3_P1.3mm_Bridged2Bar12_Pad1.0x1.5mm | JP1 |
| 1 | Pico | HIDPanel:RPi_Pico_SMD_TH | U1 |
| 1 | TL431LP | Package_TO_SOT_THT:TO-92_Inline_Wide | U6 |
It measures 116.8 × 134.6 mm and has 2 copper layers, 1.6 mm thick.
48 parts, built around the 74HCT00D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the profdc9/HIDPanel repository on GitHub, at the commit this page was made from: the board is HIDPanel/HIDPanel.kicad_pcb and its schematic HIDControls/HIDControls.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask profdc9 before reusing the design.

profdc9/HIDPanel
A customizable HID USB device with buttons, encoders, sliders, potentiometers, etc.




tebl/RC6502-Apple-1-Replica
An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!

electrified/rc2014-ym2149
KiCad schematics and gerbers for a YM sound card for the RC2014. See it in action here: https://www.youtube.com/watch?v=-iLwi9FagFE


