Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[guesswork] Try to read brightness/color temperature limits from device #127

Open
cajus opened this issue Feb 5, 2025 · 2 comments
Open

Comments

@cajus
Copy link

cajus commented Feb 5, 2025

Found your github project while trying to understand the USB HID report descriptor of my new Litra Glow. As I wasn't able to find any documentation on the Logitech side, it seems like there's some swarm intelligence which does reverse engineering in various github/whatever-litra repos ;-)

What I found while playing around may get the min/max/step values for brightness/color temperature from the device. I don't know for sure of course:

device.sendReport(17, new Uint8Array([0xFF, 0x04, 0x21, 0x00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]))
Event for ReportID 17: FF 04 21 05 00 14 00 FA 00 01 07 00 00 00 00 00 00 00 00 
                                   00 14 (min brightness = 20)
                                         00 FA (max brightness = 250)
                                               00 01 (step width = 1)

and

device.sendReport(17, new Uint8Array([0xFF, 0x04, 0x71, 0x00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]))
Event for ReportID 17: FF 04 71 05 0A 8C 19 64 00 64 07 00 00 00 00 00 00 00 00 
                                   0A 8C (min color temperature = 2700K)
                                         19 64 (max color temperature = 6500K)
                                               00 64 (step width = 100K)

Maybe people with other Litra devices can try/confirm/invalidate that? Just close the issue if you think that's too much guesswork ;-)

@timrogers
Copy link
Owner

I love this!

Any Beam or Beam LX owners out there who can verify? 👀

@cajus
Copy link
Author

cajus commented Feb 27, 2025

Had access to a Beam LX and it works there. For your code, it's 0x06 instead of 0x04 as in the other calls for the LX.

Additionally, I put some minutes in learning how the protocol works: 0x04/0x06 is a feature index and points to the very same thing for both devices. They are not guaranteed to be constant over firmware updates. To do this properly, you've to query the device for the desired feature index before.

I've done a quick WebHID experiment for Chrome based browsers here. You can find a brief documentation about what I found out here.

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

No branches or pull requests

2 participants