A device might contains one or several configurations. Interfaces are regrouped into a configuration. Endpoints are regrouped into an interface. To communicate with an USB device, we communicate with one of its endpoints. You don't need to 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.
You can then use Wireshark which know how to use usbmon devices and understand the USB protocol. To sniff what happens on the USB, you need to load the usbmon Linux kernel module. Both KVM and VirtualBox can do that, but VirtualBox works much better with USB and allow hot(un)plugging of devices, so I used it. To 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.Īnyway, my plan was the following: run the Logitech application inside a virtual machine running Windows, give it direct access to the USB keyboard, and sniff what happens on the USB wire. You might want to take a look at it if you want to reverse engineer on USB. I discovered a bit too late that Drew Fisher did a good presentation on USB reverse engineering at 28c3. So the first task to accomplish is, unfortunately, to reverse engineer the program. Let's reverse engineer thisĪs 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. Pushing this same button while the application is running will makes the light meter activated: the application will tell you how much lux your keyboard is receiving. When pressed, a LED will light up on the keyboard: green if the keyboard is receiving enough light and is charging, red if the keyboard does not receive enough light and is therefore discharging. On the keyboard, there's a special "light" button (up right).
The Logitech application under Windows works that way: you launch it, and it displays the battery charge level. With this driver, each device attached to the receiver is recognized as one different device.
Recently, a driver called hid-logitech-dj has been added to the Linux kernel. On old Linux kernel, the Unifying receiver is recognized as only one keyboard and/or one mouse device. It's an USB receiver that can be attached up to 6 differents devices (mouse, keyboards…). This keyboard, like many of the new wireless devices from Logitech, uses the Unifying interface.
Someone should write code to get the battery status and light meter from Linux: challenge accepted! How the keyboard works This activity being quite energy consuming, it emptied the whole battery. My problem is that there's obviously no way to know the battery status from Linux, the provided application only working on Windows.Īnd one dark night, while fragging on QuakeLive, my keyboard stopped working: it had no battery left.
It has an incredible useful feature: while being wireless, it has no need for disposable or rechargeable batteries, it uses solar power! I'm particularly picky on keyboards, but this one is good. It includes visible solar cells at the top of the keyboard, with the Logitech logo printed on the encasing between them.A year ago, I bought a Logitech Wireless Solar Keyboard K750. The Logitech K750 keyboard is a thin (1/3”) keyboard with physical keys. Fortunately, the battery isn’t too difficult to remove and replace.
There are two versions of the Logitech K750 keyboard on the market: one that is compatible with Windows computers and one that is compatible with Macs.Ī common problem with this keyboard is the limited life span of the rechargeable battery. The Logitech K750 keyboard connects to a Logitech Unifying Receiver that plugs into a port on the chosen device. The keyboard is fast to set up, thin and portable, and designed to be comfortable on the hands so users don’t have complaints after long days of typing. In addition to being designed with the environment in mind, the Logitech K750 is optimized for user comfort and ease of use.
For instance, the keyboard is PVC free and comes in a fully recyclable box. In addition, Logitech claims the keyboard was designed to minimize its negative environmental impact. This makes the Logitech K750 Keyboard one of the most sustainable keyboards out there. The Logitech K750 Keyboard is a wireless keyboard that uses solar cells to keep a small battery charged in order to provide its own power.