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

Support for 046d:c532 Logitech, Inc. Unifying Receiver #4

Open
ranma opened this issue Jan 7, 2017 · 0 comments
Open

Support for 046d:c532 Logitech, Inc. Unifying Receiver #4

ranma opened this issue Jan 7, 2017 · 0 comments

Comments

@ranma
Copy link

ranma commented Jan 7, 2017

This is not really a plugin dongle, but a internal USB board from a Logitech Revue device.
It's listed as USB id 046d:c532 in lsusb:
Bus 001 Device 069: ID 046d:c532 Logitech, Inc. Unifying Receiver

Comparing to the regular unifying receiver the USB descriptor is reasonably similar:
FWIW firmware functions (sniffing etc) seem to work fine after flashing the research firmware.

--- /tmp/unifying.googletv      2017-01-07 16:03:16.836122815 +0100
+++ /tmp/unifying.k400  2017-01-07 16:03:35.956016041 +0100
@@ -2358,7 +2358,7 @@
         wMaxPacketSize     0x0008  1x 8 bytes
         bInterval              10
 
-Bus 001 Device 055: ID 046d:c532 Logitech, Inc. Unifying Receiver
+Bus 001 Device 057: ID 046d:c52b Logitech, Inc. Unifying Receiver
 Device Descriptor:
   bLength                18
   bDescriptorType         1
@@ -2366,10 +2366,10 @@
   bDeviceClass            0 (Defined at Interface level)
   bDeviceSubClass         0 
   bDeviceProtocol         0 
-  bMaxPacketSize0         8
+  bMaxPacketSize0        32
   idVendor           0x046d Logitech, Inc.
-  idProduct          0xc532 Unifying Receiver
-  bcdDevice           25.00
+  idProduct          0xc52b Unifying Receiver
+  bcdDevice           24.01
   iManufacturer           1 
   iProduct                2 
   iSerial                 0 
@@ -2462,7 +2462,7 @@
           bCountryCode            0 Not supported
           bNumDescriptors         1
           bDescriptorType        34 Report
-          wDescriptorLength      93
+          wDescriptorLength      98
          Report Descriptors: 
            ** UNAVAILABLE **
       Endpoint Descriptor:

Interestingly it's not recognized by the Logitech Unifying app.

The chip is a nRF24LU1+ (NRF24LU1P1024IK).

After updating the USB id in prog/usb-flasher/unifying.py I get:

[2017-01-07 17:31:41.659]  Computing the CRC of the firmware image
[2017-01-07 17:31:41.763]  Preparing USB payloads
[2017-01-07 17:31:41.812]  Found Logitech Unifying dongle - HID mode
[2017-01-07 17:31:41.812]  Detaching kernel driver from Logitech dongle - HID mode
[2017-01-07 17:31:42.053]  Putting dongle into firmware update mode
[2017-01-07 17:31:42.057]  10:FF:8F:81:F1:03:00
[2017-01-07 17:31:42.061]  10:FF:81:F1:01:25:00
[2017-01-07 17:31:42.062]  Incompatible Logitech Unifying dongle (type 25). Only Nordic Semiconductor based dongles are supported.
Makefile:33: recipe for target 'logitech_install' failed

Patching that check as well I get:

[2017-01-07 17:41:29.256]  Putting dongle into firmware update mode
[2017-01-07 17:41:29.260]  10:FF:8F:81:F1:03:00
[2017-01-07 17:41:29.262]  10:FF:81:F1:01:25:00
[2017-01-07 17:41:30.863]  Found Logitech Unifying dongle - firmware update mode
[2017-01-07 17:41:30.863]  Putting dongle into firmware update mode - firmware update mode
[...]
usb.core.USBError: [Errno 13] Access denied (insufficient permissions)

(it failed to reconnect with permission denied because after reenumeration with the new id the usb device is owned by root again)

The bootloader now shows up in lsusb as:
Bus 001 Device 070: ID 046d:aaaa Logitech, Inc.

Updating the device permissions again and rerunning finishes the update:

[...]
[2017-01-07 17:43:41.353]  Mark firmware update as completed
[2017-01-07 17:43:41.737]  20:00:00:01:02:6B:32:FF:FF:FF:FF:FF:FF:FF:32:FF:FF:FF:FF:FF:6B:5C:06:F4:28:24:A5:55:97:9E:7A:4F
[2017-01-07 17:43:41.737]  Restarting dongle into research firmware mode
[2017-01-07 17:43:41.739]  70:00:00:00:02:6B:32:FF:FF:FF:FF:FF:FF:FF:32:FF:FF:FF:FF:FF:6B:5C:06:F4:28:24:A5:55:97:9E:7A:4F

Which seems to have worked?
Bus 001 Device 071: ID 1915:0102 Nordic Semiconductor ASA
this matches the "Logitech dongle flashed with research firmware" usb id from unifying.py.

Firmware functions (sniffing etc) seem to work fine after flashing the research firmware.

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

1 participant