Skip to content

Known Limitations

SpookyyQ edited this page May 11, 2026 · 1 revision

Known Limitations

The protocol is still being reverse-engineered from observed web-driver behavior and captured HID frames.

Battery Level

Battery reporting is known but not reliable enough for the public UI yet.

Known queries:

Status:  03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a
Battery: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49

Observed battery replies can contain several percent-looking bytes that do not always agree with the official web driver. The app currently keeps parsing logic in code, but the README marks battery level as not implemented.

Button Remapping

The app has a Button Assignment tab, but it is currently a visual preview only. No verified button-remapping write frames are implemented.

Needed before enabling:

  • Captures for left, right, middle, forward, backward, and DPI-cycle assignments.
  • Confirmation of whether mappings are stored per profile or globally.
  • Confirmation of restore-default behavior.

DPI Value Write

The current DPI write frame is verified for a captured value, but the exact role of byte[8] = 0x77 is still unknown.

Current frame shape:

ENCAP=0x18
byte[4]=0x04
byte[5]=byte[6]=(dpi / 50) - 1
byte[8]=0x77

The app selects the DPI stage before writing the value.

Work Mode / Polling Apply Overlap

ENCAP=0xB9 appears in two places:

  • as the apply frame after changing polling rate
  • as the work-mode setting read from block 0xB4

Both behaviors are documented because both are present in captures/tests. This address may be overloaded by the web driver or context-dependent.

Ultra Performance

The UI knows about Ultra Performance as a concept, but raw mode 2 is not verified and is not sent as a normal selectable work mode.

Related Devices

Support for IPI FLOAT 88, QI Pro, and other IPI-compatible mice requires:

  • HID vendor/product IDs
  • usage page and usage
  • status/battery captures
  • block-read captures
  • write captures for DPI, polling rate, LOD, and advanced settings

Clone this wiki locally