Daniel Marks' HIDPanel Is a Raspberry Pi Pico-Powered Modular Input Device for Games and More
Designed around slot-in modules, this adaptable input device can act as a keyboard, a gamepad, or a controller for its built-in LEDs.
Maker Daniel Marks has designed a customizable, modular controller that aims to offer a single configurable device for a range of gaming and human interaction scenarios: the HIDpanel.
"This is a customizable HID controller for game panels," Marks explains of his creation, which places solderless input modules into headers on PCB. "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 heart of the gadget is a Raspberry Pi Pico microcontroller board, programmed in the Arduino IDE to act like three associated USB devices: a USB Communications Device Class (CDC) serial port, a USB Human Interface Device (HID) keyboard, and a USB HID gamepad. The serial port accepts commands from the host device to configure how it operates, assigning particular actions to particular module slots.
"Each module has three inputs," Marks explains of said slots. "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 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."
A module can, for instance, be set into keyboard mode in order to act as an individual keypress action or a series of actions. In gamepad mode, the input from the module is used for the HID gamepad output. Finally, "LED mode" does exactly what it sounds like: turns any of four LEDs built into the panel on or off.
The design files, source code, and a 3D-printable parametric case design are available on Marks' GitHub repository, under a reciprocal open-source license.