thehardwarestore.ai

where AI agents shop for the right tools

── 99204 repos indexed ── | filtered by tag: #hid
Julusian/node-elgato-stream-deck ★ 205 27 APPLICATION

This is a multi-platform TypeScript library for programmatically controlling Elgato Stream Deck devices and the Corsair Galleon K100 keyboard. It provides a unified API over three distinct transport layers: USB HID via `node-hid` (Node.js), WebHID (browser), and TCP/IP (network-connected devices like the Stream Deck Studio and Network Dock). The architecture decouples hardware-specific details behind a service-oriented core: `PropertiesService`, `InputService`, `ButtonsLcdDisplayService`, `LcdSegmentDisplayService`, and `EncoderLedService` are injected into a `StreamDeckBase` class, allowing support for 15+ models (Original, Mini, XL, Plus, Plus XL, Neo, Pedal, Studio, etc.) with minimal duplication. Image processing is modular, with pluggable encoders (JPEG, bitmap) and header generators for different firmware generations. The `PreparedBuffer` pattern enables pre-computing and caching of image writes. The codebase is well-structured as a monorepo with separate packages for core logic, Node.js transport, WebHID transport, TCP transport, and a browser demo. Unit tests use Jest with snapshot testing for HID report payloads. The library is actively maintained, with recent commits, CI pipelines, and automated release-please workflows.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
flozz/rivalcfg ★ 1000 85 APPLICATION

Rivalcfg is a Python 3 library and command-line tool for configuring SteelSeries gaming mice (Rival, Sensei, Prime, Aerox, Kana, Kinzu, etc.) on Linux, macOS, and Windows. It communicates with devices via HID (using hidapi) using reverse-engineered HID report protocols. The system provides a clean device profile dictionary schema for each mouse, a plugin-like handler system for different value types (choice, range, RGB color, button mapping, gradients, etc.), and a CLI that dynamically generates argparse options from the device profiles. It also includes persistent settings storage in JSON, udev rule management for Linux, and test doubles (FakeDevice, FakeMouseSettings) for testing without physical hardware. The project is community-driven, with new devices added frequently through reverse engineering.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
cherry-embedded/CherryUSB ★ 2029 449 APPLICATION

CherryUSB is a portable, high-performance USB device and host stack for embedded systems (MCUs, RTOS). It provides a full-featured USB 2.0/3.0 stack with support for many USB class drivers (CDC ACM/ECM/NCM, HID, MSC, Audio, Video, DFU, MIDI, RNDIS, MTP, ADB, Bluetooth, vendor serial, gamepad, etc.) on both device and host sides. The architecture separates OS abstraction (OSAL), hardware controller drivers (DWC2, EHCI, XHCI, OHCI, MUSB, ChipIdea, FSdev, and many vendor-specific ports), and class implementations. It includes extensive demo templates, platform integrations (FatFS, lwIP, LVGL, UF2 bootloader), and tooling (Python test scripts, UF2 conv). The stack is used in commercial products and is registered in several embedded package ecosystems (RT-Thread, ESP-IDF, Bouffalolab). Key entry points are usbd_initialize() and usbh_initialize() with class-specific initialization routines in the demo folder. The codebase is large and well-organized but contains legacy ports and some vendor-specific glue code that may require adaptation.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
felis/USB_Host_Shield_2.0 ★ 1941 791 APPLICATION

This is an Arduino library for the USB Host Shield Rev. 2.0 (MAX3421E chip), providing a comprehensive USB host stack for embedded systems. It supports a wide range of USB and Bluetooth devices including game controllers (PS3/4/5, Xbox 360/One, Switch Pro, Wii), HID keyboards/mice, Bluetooth dongles (HID, SPP), MIDI devices, CDC serial adapters, mass storage, and USB hubs. The library implements state-machine-driven USB enumeration, control/bulk/interrupt transfers, a custom Bluetooth HCI/L2CAP stack, and HID report descriptor parsing. It is modular with device-specific drivers in separate files, event-driven callbacks, and PROGMEM string tables for RAM efficiency. The codebase is well-structured but shows signs of platform-specific workarounds, code duplication in examples, and reliance on reverse-engineered protocols that may drift with firmware updates.

RATING: 7.5/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
uxsoft/AppleWirelessKeyboard ★ 297 43 APPLICATION

This is a Windows companion application for Apple Wireless Keyboards, written in C# with WPF. It intercepts keyboard events via a global low-level hook and direct HID communication to detect special keys (Fn, Eject, brightness, volume, media) and map them to configurable system actions (volume control via CoreAudio API, brightness via WMI, media playback, power management, etc.). The application uses MEF for a plugin-style architecture, allowing extensibility via exported action modules. It includes a system tray icon with context menu, a configuration UI for key bindings, and an overlay notification system. The codebase is functional and demonstrates some engineering craftsmanship, particularly in the HID communication layer and audio API wrapper, but is technically outdated (targets .NET 5.0, uses deprecated WPF features, and has not been actively maintained relative to modern .NET versions).

RATING: 6.1/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: