Case study
GMK87 Configurator: reconstructing Zuoya keyboard USB HID control
GMK87 Configurator reconstructs the Zuoya GMK87 keyboard's USB HID control exchanges from captures of its official application. It documents 64-byte report framing and image-upload sequences, and provides desktop, CLI and Node.js controls for display images, RGB lighting and clock synchronization.
- Targets
- Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Stars
- 59
- Last commit
- 2026-09-22
- Language
- JavaScript
- License (GitHub)
- MIT
GitHub data as of 2026-11-09
Requirements & limits
- Prerequisites: Zuoya GMK87 keyboard; the CLI requires Node.js 14 or later.
- Prerequisites: Linux users need the included udev rule for HID access without root.
- Limits: Image uploads support at most 36 frames across both display slots.
- License: MIT licence.
Cite
BibTeX
@misc{gmk87-configurator-case,
title = {{GMK87 Configurator: reconstructing Zuoya keyboard USB HID control}},
howpublished = {\url{https://github.com/codedgar/gmk87-node}},
url = {https://github.com/codedgar/gmk87-node},
urldate = {2026-11-08},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/gmk87-configurator-case/}}
}Plain text
GMK87 Configurator: reconstructing Zuoya keyboard USB HID control. https://github.com/codedgar/gmk87-node (accessed 2026-11-08). Awesome REA entry: https://awesomerea.org/resources/gmk87-configurator-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · codedgar/gmk87-node · Revision a9a1e90
- ANALYSIS.md GitHub · codedgar/gmk87-node · Revision a9a1e90
More in Protocols
- Ajazz AK820 Pro: reconstructing keyboard lighting control on Linux · Case study
- OPUS-QUAD Pro DJ Link Reverse Engineer Packet Analysis: mapping device traffic · Case study
- MiraBox StreamDock: reconstructing USB device control · Case study
- SiriRemote-Linux: decoding Siri Remote Bluetooth input · Case study
- ZydDash: decoding ePowerFun scooter telemetry for an ESP32 dashboard · Case study
- catlink-local: reconstructing CATLINK Open X local control · Case study