ZeroTrace HID
SilentTrace
Auto-switch between USB-HID and BLE-HID transports
SilentTrace is the firmware's transport selector. It detects whether the device is USB-connected, BLE-paired, or both, and routes script primitives to the right transport without operator action.
Behavior
| State | Transport | Notes |
|---|---|---|
| USB plugged into target | USB-HID | Full feature set (keyboard + mouse + gamepad + MSC). |
| BLE paired, USB unplugged | BLE-HID | Keyboard + media keys only; mouse primitives no-op. |
| Both active | USB-HID prefers | USB takes precedence; BLE remains paired but idle. |
Switching is instant (under 10 ms) when transports go up or down — no script restart, no manual mode toggle.
What's BLE-only
The BLE side exposes the same write, writeLn, press, and delay primitives as USB. BLE-specific extras:
- Battery service (target sees the device's battery level)
- HID over GATT (standard BLE-HID profile, every target supports it)
What BLE can't do:
mouseMove,mouseAbs,mouseClick,mouseScroll,mouseJitter,mouseDrawgamepad press/stick/hat- MSC mode
These primitives no-op silently in BLE mode and return a flag in the live execution log so you can see they were skipped.
Use cases
- Drop a USB device, pair over BLE — operate after the cable is removed.
- Multi-target operation — one device, several targets at different ranges.
- Battery-backed BLE-only deployment — lowest power profile, longest unattended runtime.