Make the most of your warranty. Register Your Product File a warranty claim. Having issues with your keyboard, mouse or Logitech Options on macOS. Wireless Solar Keyboard K Support. Questions about your Wireless Solar Keyboard K? We’ve got the answers, videos, downloads and information you .
|Published (Last):||18 May 2008|
|PDF File Size:||18.38 Mb|
|ePub File Size:||8.35 Mb|
|Price:||Free* [*Free Regsitration Required]|
But sending this to the keyboard will trigger an interesting thing: Sniffed data Once everything was set-up, I ran my beloved Wireshark. Found keyboard 0x0x24ec8e0 Charge: This activity being quite energy consuming, it emptied the whole battery. That means that while we’re waiting for the packet, we’re dropping packets corresponding to other events from every connected device key presses, pointer motions…. It’s an USB receiver that can be attached up to 6 differents devices mouse, keyboards….
Logitech K keyboard and Unifying Receiver Linux support
Well, actually, you can’t decode them like that, unless you’re a freak or a Logitech engineer. Interrupt packets, a packet send spontaneously; Controls packets, used for command and status operations. Here’s a quick example. It’s not perfect and does not check for error codes, be careful. This opens a whole new world. Here’s the interesting packets that I noticed logitecj I excluded the noise: A device might contains one or several configurations.
Logitech K750 keyboard and Unifying Receiver Linux support
There’s also several types of packets in the USB wire protocol, and at least two of them interest us there, they are: With all this, the next step was clear: As far as I know, there’s nothing in the USB HID protocol that handles this kind of functionality battery status, light meter… in a standard way.
Unfortunately, this approach has at least one major drawback. My problem is that there’s obviously no way to know the battery status from Linux, the provided application only working on Windows.
Therefore I’m considering this as some sort of useful mark for now. Knowing we’re looking for 2 values battery charge and light meterwe just need to observe and compare the packet emitted on the wire with the values displayed by the Logitech Solar App.
This is most interesting packet.
Once everything was set-up, I ran my beloved Wireshark. You don’t need to know much about USB to understand logktech I’ll write about below, but for the sake of comprehensibility I’ll write a couple of things here before jumping in. Now we’ve enough information to build our own very basic solar application.
To sniff what happens on the USB, you need to load the usbmon Linux kernel module. At one point they are emitted less often and do not contain the value for the light meter anymore, suggesting that the control packet sent earlier triggers the activation of the light meter for a defined period. Suplort achieve that, you need a virtual machine emulator that can do USB pass-through. I did not need it, but I learned a few things.
Let’s logltech engineer this As far as I know, there’s nothing in the USB HID protocol that handles this kind of functionality battery status, light meter… in a standard way. And one dark night, while fragging on QuakeLive, my keyboard stopped working: I’ve no idea what the GOOD part of the packet is about, but it’s present in every packet and it’s actually very handy to recognize such a packet.
You might want to take a look at it if you want to reverse engineer on USB.
What the Logitech application does The Logitech application under Windows works that way: There’s also several types of packets in the USB wire protocol, and at least two of them interest us there, they are:.
Supprt pressing the “light” button, an URB of type interrupt is olgitech by the keyboard to the computer; An URB control packet is sent by the computer to the keyboard in response; Regularly URB interrupt packets are sent just after.
Here’s the interesting packets that I noticed once I excluded the noise:. They’re in the 20 bytes leftover in the capture data part, indicated by Wireshark, at the end of the packet: Unknown 0xffff ] Leftover Capture Data: