Hasty Briefsbeta

Bilingual

Storing 2 bytes of data in your Logitech mouse

5 hours ago
  • #USB
  • #HID++
  • #Logitech
  • The author had a 'dumb idea' to use a Logitech MX Vertical mouse as a tiny USB drive for data storage.
  • Logitech mice use the HID++ protocol, partially documented and partially reverse-engineered, with 33 features exposed.
  • HID++ 2.0 involves a feature table where each feature ID maps to a device-specific index, used for subsequent calls.
  • Attempts to use undocumented features like 'TemplateBytesNVS' for non-volatile storage were made, but some were blocked by macOS's IOHIDManager.
  • The device name register accepted writes but ignored them, while the DPI register successfully stored and retained a 2-byte value across devices.
  • The project, though yielding only 2 bytes of storage, provided deep insights into HID++, macOS HID management, and device behavior.
  • The investigation emphasized learning through experimentation rather than documentation, uncovering unexpected behaviors and system limitations.
  • The author concludes that the value was in the exploration and understanding gained, not the practical outcome.
  • A Rust tool was developed for this purpose and is available on GitHub for others to experiment with their Logitech mice.