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 .

Author: Ditilar Vokus
Country: Croatia
Language: English (Spanish)
Genre: Medical
Published (Last): 8 November 2008
Pages: 17
PDF File Size: 18.79 Mb
ePub File Size: 18.14 Mb
ISBN: 185-7-92516-668-4
Downloads: 89245
Price: Free* [*Free Regsitration Required]
Uploader: Melabar

And I have actually no idea what they mean. As far as I know, there’s nothing in the USB HID protocol that handles this kind of k570 battery status, light meter… in a standard way.

Here’s the interesting packets that I noticed once I excluded the noise: This keyboard, like many of the new wireless devices from Logitech, uses the Unifying interface. Here’s a quick example.

Logitech K keyboard and Unifying Receiver Linux support

To sniff what happens on the USB, you need to load the usbmon Linux kernel module. We’re going to write a small application using libusb. To be continued Unfortunately, this approach has at least one major drawback. Unknown 0xffff ] Leftover Capture Data: 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.

Here’s the interesting packets that I noticed once I excluded the noise:. USB stuff you need to know You don’t need supporr know much about USB to understand what I’ll write about below, but for the sake of comprehensibility I’ll write a couple of things here before jumping in.

There’s also several types of packets in the USB wire protocol, and at least two of them interest us there, they are:. Simply doing modprobe usbmon will work. What the packets mean The “go for the light meter” packet The packet sent from the computer to the keyboard is the following.


All of this and more is well and better explained in the chapter 13 of Linux Device Drivers, Third Edition. supporrt

It’s an USB receiver that can be attached up to 6 differents devices mouse, keyboards…. Endpoints are regrouped into an interface. Fortunately, it was easy to decode.

At one point they are emitted supporg 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 logitec period.

Well, actually, you can’t decode them like that, unless you’re a freak or a Logitech engineer.

With that document, I may be able to understand the part I reverse engineered and convert this to a more useful and generic library using the hidraw interface so we don’t have to disconnect the devices from the kernel driver.

Someone should write code to get the battery status and light meter from Linux: It’s not perfect and does not check for error codes, be careful.

With this driver, each device attached to the receiver is recognized as one different device. The “light meter and battery values” packet This is most interesting packet. Anyway, my k75 was the following: You can then use Wireshark which know how to use usbmon devices and understand the USB protocol.

My problem is that there’s obviously no way to know the battery status from Linux, the suppot application only working on Windows. Sniffed data Once everything was set-up, I ran my beloved Wireshark.

You might want to take a look at it if you want k50 reverse engineer on USB. I discovered a bit too late that Drew Fisher did a good presentation on USB reverse engineering at 28c3.


Pushing this same button while the application is running will makes the light meter activated: To achieve that, you need a virtual machine emulator that can do USB pass-through. We have to disconnect the Logitech Unifying Receiver from the kernel. They’re in the 20 bytes leftover in the capture data part, indicated by Wireshark, at the end of the packet: Recently, a driver called hid-logitech-dj has been added to the Linux kernel.

There’s also several types of packets in the USB logitedh protocol, and at least two of them interest us there, they are: So the first task to accomplish is, unfortunately, to reverse engineer the program.

Logitech K750 keyboard and Unifying Receiver Linux support

This opens a whole new world. 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. With all this, the next step was clear: Building our solar app Now we’ve enough information to build our own very basic solar application. Now you probably wonder where the data are in this. This activity being quite energy consuming, it emptied the whole battery.

It has an incredible useful feature: A device might contains one or several configurations. 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….