GhostHIDe is a transparent USB HID proxy that intercepts and modifies input device data in real-time. The system sits between USB peripherals (mouse/keyboard) and the host computer, appearing as a standard composite HID device requiring no driver installation.
Built on Zephyr RTOS for embedded platforms, the system uses two CH375 USB controller modules-both operating as USB hosts. One module handles mouse enumeration and data processing, while the other manages keyboard input for hotkey detection and control. This dual-controller architecture enables simultaneous processing of both mouse and keyboard.
Project Goal: Implement custom 9-bit UART protocol implementation on platforms without native 9-bit UART support, enabling reliable command/data differentiation. Create recoil compensation patterns and implement algorithm to apply compensation values to input data.
The universal HID parser dynamically adapts to diverse device formats-validated against real hardware HID descriptors from Zowie, Razer, Logitech, and Raspberry Pi. It handles variable button counts (3-16), axis resolutions (8-bit/16-bit), Report ID detection, and both boot protocol and descriptor-based devices.