Hurra Input Devices
Hurra is a family of bare-metal firmware and host tooling that sits between a USB HID device and your computer. It enumerates a real HID device (mouse, keyboard, controller) on a USB host port, replays that device to the PC on a USB device port, and lets you inject your own mouse and keyboard input on top of the live HID stream over a serial command link.
Injected motion passes through an always-on humanization filter (sub-pixel jitter, micro-correction, and dwell) so synthetic input blends with the real device stream.
USB HID device ──→ Hurra USB host ──┐
│ (firmware proxies + injects)
Host PC USB ←── Hurra USB device ───┘
↑
│ injected input
Host PC USB ──→ UART bridge ──→ Hurra command link
The firmware forwards every real HID report through unchanged, merges in any input you inject over the serial link, and sends the combined stream to the host PC.
Download firmware & app How it works
The family
Live
Hurra v3
WCH CH32H417 dual-core RISC-V. USB High-Speed host capture (up to ~8 kHz mice) cloned to a Full-Speed device, with the relay split across two cores. The newest target — source on GitHub.
Shipping
Hurra v2
SparkFun MicroMod Teensy (NXP i.MX RT1062). The proven firmware: EHCI host +
device controllers, Hurra binary and Ferrum ASCII protocols, humanization. Has
tagged releases and a prebuilt firmware.hex.
Host
hurra-app
The host-side companion. hurra-bridge exposes a Ferrum-compatible virtual COM
port and a KMBox Net (UDP) endpoint, so existing tools work unchanged.
Prebuilt binaries for macOS, Linux, and Windows.
Choosing a target
| Hurra v3 | Hurra v2 | |
|---|---|---|
| MCU | WCH CH32H417 (dual-core RISC-V) | NXP i.MX RT1062 (Cortex-M7) |
| Board | CH32H417QEU6 USB 3.0 dev board | SparkFun MicroMod Teensy + ATP carrier |
| Host-side USB | USBHS — High-Speed (480 Mbps), ~8 kHz | USB2 EHCI host |
| PC-side USB | USBFS — Full-Speed (12 Mbps), ~1 kHz | USB1 EHCI device |
| Command link | USART1 @ 921600 (on-board WCH-LinkE VCP) | LPUART3 @ 4 Mbaud (CH343 bridge) |
| Status | Live — source on GitHub | Shipping, tagged releases |
| Prebuilt firmware | Build from source | firmware.hex |
What stays the same across versions
- Two command protocols — Hurra binary (fast TinyFrame framing, the default) and Ferrum ASCII (text protocol for legacy tooling).
- The host app —
hurra-apptalks the Hurra protocol and bridges it to Ferrum VCOM or KMBox Net, unchanged between firmware targets. - Humanization — always-on jitter / micro-correction / dwell on injected motion.
Intended use
The Hurra firmware and tooling are published for authorized testing, security research, input-automation development, and education. Use them only on systems and accounts you own or are explicitly permitted to test.