Skip to content

feat(hid): support LIGHTSPEED receivers and RGB effects#351

Draft
LuisUrrutia wants to merge 4 commits into
AprilNEA:masterfrom
LuisUrrutia:g502-x-plus-lightspeed-lighting
Draft

feat(hid): support LIGHTSPEED receivers and RGB effects#351
LuisUrrutia wants to merge 4 commits into
AprilNEA:masterfrom
LuisUrrutia:g502-x-plus-lightspeed-lighting

Conversation

@LuisUrrutia

Copy link
Copy Markdown

Summary

Adds support for Logitech LIGHTSPEED gaming receivers and the RGB effect path used by the G502 X PLUS.

Changes

  • Recognize known LIGHTSPEED receiver PIDs, including 046d:c547, and probe them with the HID++ 1.0 receiver registers used for Unifying-style slot enumeration.
  • Route LIGHTSPEED paired devices through the existing slot-addressed DeviceRoute::Unifying shape to avoid changing the serialized route wire format.
  • Mark modern RGB feature IDs 0x8071 / 0x8081 as lighting-capable and try RgbEffects (0x8071) before falling back to per-key lighting.
  • Clarify the CLI no-device hint so LIGHTSPEED users are not directed toward unsupported Add Device flows.

Validation

  • cargo fmt --all -- --check
  • cargo test -p openlogi-core -p openlogi-hidpp -p openlogi-hid -p openlogi-cli
  • OPENLOGI_LOG=debug cargo run -- list built and ran, but the local macOS USB device tree did not show a Logitech receiver at that time (system_profiler SPUSBDataType also found none), so real G502 X PLUS hardware behavior still needs a connected-device check.

Notes

046d:c547 is the LIGHTSPEED receiver PID for the G502 X PLUS case this patch targets. The device exposes RGB EFFECTS (0x8071) and PER KEY LIGHTING V2 (0x8081), so the lighting path needs the newer RGB effects family in addition to the older 0x8070 / 0x8080 paths.

Why: G502 X PLUS ships on a LIGHTSPEED receiver and reports RGB Effects 0x8071 plus Per Key Lighting V2 0x8081, so the existing Bolt/Unifying and older RGB paths could not surface or drive its lighting.

Changes:
- Recognize LIGHTSPEED receiver PIDs and enumerate them with the Unifying-style HID++ 1.0 receiver registers.
- Try RGB Effects 0x8071 for solid colors before falling back to per-key lighting.
Why:
G502 X Plus devices paired through LIGHTSPEED can expose RGB and host-hook mouse buttons without the MX-line ReprogControls table, so they need model-specific identity and UI handling.

Changes:
- detect G502-family model IDs and names, including the live G502 X Plus IDs
- add a two-perspective G502 button layout with read-only native controls
- keep display-only gaming controls out of runtime binding projection until their protocol is implemented
- document follow-up protocol and diagnostics work in IMPROVEMENTS.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant