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

A customizable HID USB device with buttons, encoders, sliders, potentiometers, etc.
HIDControls is an open-source printed circuit board by profdc9, from the profdc9/HIDPanel repository on GitHub. It is a 2-layer board of 83.8 × 91.4 mm with 65 parts on 81 nets, routed with 427 tracks and 9 vias.
Its parts include 21 capacitors, 17 resistors, 12 switches and 1 connector.
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 |
|---|---|---|---|
| 21 | 100 nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C2, C3, C4, C10, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22 +5 |
| 17 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2, R3, R7, R8, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20 +1 |
| 8 | 6mm | Button_Switch_THT:SW_PUSH_6mm | SW2, SW8, SW9, SW10, SW11, SW12, SW13, SW14 |
| 6 | ModulePlug | HIDControls:ModulePlug | M1, M3, M4, M7, M8, M11 |
| 3 | ModulePlug | HIDControls:RightPartModulePlug | M9, M10, M12 |
| 3 | ModulePlug | HIDControls:LeftPartModulePlug | M2, M5, M6 |
| 1 | 2031N | HIDControls:Linear-Pot-2031N | RV2 |
| 1 | 5mm TOGGLE, SS12D10 | HIDControls:5mmSPDTtoggle | SW7 |
| 1 | 6mm | Button_Switch_THT:SW_PUSH_6mm | SW1 |
| 1 | 8x8 SWITCH | Button_Switch_THT:SW_Push_2P2T_Toggle_CK_PVA2xxH1xxxxxxV2 | SW6 |
| 1 | ALPS EC11 | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW5 |
| 1 | ALPS RK09K | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV1 |
| 1 | AnalogJoystick | HIDControls:AnalogJoystick | J1 |
It measures 83.8 × 91.4 mm and has 2 copper layers, 1.6 mm thick.
65 parts. 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 HIDControls/HIDControls.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.


drandyhaas/KiCadRoutingTools
A set of Python/Rust tools to aid routing in KiCad


PiTracLM/PiTrac
Launch monitor using low-cost raspberry pi and camera hardware to determine ball launch speed, angles and spin. See https://discord.gg/vGuyAAxXJH (permalink)



0x23/nmWave-Interferometer
An Open Source Interferometer for Accurate Distance Measurements

kiu/lofence
LoFence is a LoRaWAN capable IoT electric fence monitoring system running on the The Things Network.