Hi Guys,
Fantastic work on the protocol specification. I got myself a Corsair Link Bridge based on this thread in the hope that it might have somehow worked with the Bridge.
Sadly, even with modified IDs, although I can get a handle to the device in the CorsairLink init, I can't get the ID or anything further.
Has any work been done towards the Analog bridge? I bought this to go in my headless server so I can log some PSU stats, I don't run Windows anywhere so I don't even know what information the PSU can give since I've never been able to run the software.
I have the output of lsusb if it's of any use;
$ sudo lsusb -D /dev/bus/usb/001/002
Device: ID 1b1c:0c06 Corsair
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1b1c Corsair
idProduct 0x0c06
bcdDevice 0.03
iManufacturer 1 Corsair Memory, Inc.
iProduct 2 RM-Series C-Link Adapter
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 27
Report Descriptor: (length is 27)
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Main ): Output, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
If I run the modified OpenCorsairLink with the new IDs in place of either the CLINK or the H80I devices I get the following:
$ sudo ./OpenCorsairLink
Open Corsair Link (Cooling Node):
Error: Unable to write() No data available
Device ID: 00 mismatch. Not Corsair Cooling Node
Cannot initialize link.
I get the same thing using the other method and my ID.
Anyone able to point me in the right direction? I have zero experience with HID devices but am happy to write up the rest of the code required to communicate with the device if someone can help get me communicating with it.