CorsairLightingProtocol icon indicating copy to clipboard operation
CorsairLightingProtocol copied to clipboard

Support New iCue Commander Core?

Open JoseArtunedo opened this issue 3 years ago • 34 comments

Thank you first of all, for your great project, its potential is undeniable.

Will support be added for the new Icue Commander Core?

image https://www.amazon.es/gp/product/B08G1Q3GZR?psc=1

I was investigating, and I have not seen a trace, but the temperature sensors could be included in the arduino code or it is not possible.

Thank you

JoseArtunedo avatar Jan 11 '21 22:01 JoseArtunedo

The link does not work and I can't find any reference for the iCue Commander Core.

Legion2 avatar Jan 12 '21 15:01 Legion2

Hello. Please tell me which type of thermistors is suitable for Commander Pro? Will this work? € 0,83 | 5PCS/LOT Thin Film Thermistor ntc 10k 1% 25mm SMD 103 Membrane Temperature Sensor for 3D Printer Termistor https://a.aliexpress.com/_BTrsYz

kostyamat avatar Jan 14 '21 04:01 kostyamat

10 k ohm Thermistor should work

Legion2 avatar Jan 14 '21 08:01 Legion2

El enlace no funciona y no puedo encontrar ninguna referencia para el iCue Commander Core.

I do not know why the link I sent cannot be displayed. I leave you another.

Also adding the diagram of connections.

https://www.corsair.com/es/es/Categor%C3%ADas/Productos/Accesorios-%7C-Piezas/Commander-CORE-RGB-&-PWM-Fan-Controller/p/CW-8960071

Squematic

JoseArtunedo avatar Jan 15 '21 16:01 JoseArtunedo

Hola. Dígame qué tipo de termistores es adecuado para Commander Pro. esto funcionara? € 0,83 | 5 unids / lote termistor de película delgada ntc 10k 1% 25mm SMD 103 Sensor de temperatura de membrana para termistor de impresora 3D https://a.aliexpress.com/_BTrsYz

Great this info comes to me, I was also looking for and had the doubt if they were 10K, I had the original commander pro at home, I measured and if they are 10k to work.

JoseArtunedo avatar Jan 15 '21 17:01 JoseArtunedo

I think it should be possible to support the Commander Core, now only the USB PID is required, so iCUE will detect it.

Legion2 avatar Jan 15 '21 18:01 Legion2

I think so, it's basically an all-in-one commander pro + Lighting Node Core. It will simplify everything to the maximum. With this, it is simply all you need to be able to control PWM and lighting from the same place.

The USB PID, is taken from an original controller, or what is the way to obtain it?

JoseArtunedo avatar Jan 15 '21 19:01 JoseArtunedo

The features of a commander core can already be realized with this library, just combine the commander pro and the MultipleFans example.

The USB PID can be obtained from the original device or by guessing it.

Legion2 avatar Jan 15 '21 19:01 Legion2

I am waiting to receive a Corsair iCUE H150i ELITE CAPELLIX, which contains the Commander Core, if you explain to me how I can obtain or know the USB Pid I will provide it to you. Is this part I do not know how to do it, I have the basic knowledge of arduino and programming

JoseArtunedo avatar Jan 15 '21 19:01 JoseArtunedo

I am waiting to receive a Corsair iCUE H150i ELITE CAPELLIX, which contains the Commander Core, if you explain to me how I can obtain or know the USB Pid I will provide it to you. Is this part I do not know how to do it, I have the basic knowledge of arduino and programming

Have you found the PID yet? You can use HWiNFO or just device manager to find the PID. In HWiNFO, expand Ports->USB in the device tree. Then expand all of the USB controllers and hubs until you find the Commander Core. PID is listed in the Hardware ID line. It'll look like:

Hardware ID: USB\VID_1B1C&PID_1B2D

Spegs21 avatar Feb 11 '21 19:02 Spegs21

Using USBDeview, here is the information from my Commander Pro attached to a H150i Capellix

Device Name: CORSAIR iCUE Commander CORE PID: USB\VID_1B1C&PID_0C1C<device serial number here>

z0rlac avatar Feb 11 '21 19:02 z0rlac

Device Name: CORSAIR iCUE Commander CORE PID: USB\VID_1B1C&PID_0C1C

Looks good, I will try this weekend to create a sketch for the commander core.

Legion2 avatar Feb 11 '21 20:02 Legion2

I tried to use the PID and iCUE tries to use the devices, but it does not show up in iCUE. Here is an excerpt from the iCUE log:

2021-02-14T19:26:22 I cue.dev.hidenumerator: Found device VID 6940 PID 3100 Usage Page 65472 Usage 3072
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.hid_device_detector: DeviceInstance(Path: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}", InstanceId: "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000", ParentInstanceId: "USB\\VID_1B1C&PID_0C1C\\FB66DF55421900F8\u0000") inserted.
2021-02-14T19:26:22 I cue.hid_device_detector: Add open task: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" with delay 0 ms.
2021-02-14T19:26:22 I cue.hid_device_detector: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" opened.
2021-02-14T19:26:22 I cue.hid_device_detector: Mark all tasks as finished.
2021-02-14T19:26:22 I cue.devices: Begin attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status b= 0
2021-02-14T19:26:22 I cue.devices: End attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status a= 0
2021-02-14T19:26:22 I cue.devices: Created new device"Commander CORE" (vid=1b1c, pid=c1c); ready:false

@z0rlac can you look into the iCUE logs CUELogs and compare them to my logs.

Legion2 avatar Feb 14 '21 20:02 Legion2

Intenté usar el PID e iCUE intenta usar los dispositivos, pero no aparece en iCUE. Aquí hay un extracto del registro de iCUE:

2021-02-14T19:26:22 I cue.dev.hidenumerator: Found device VID 6940 PID 3100 Usage Page 65472 Usage 3072
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "input")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.dev.mgr: Candidate device for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))  not found.
2021-02-14T19:26:22 I cue.dev.mgr: No manifest for QMap(("bus", "hid")("devInstanceId", "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000")("hid-direction", "output")("hid-type", "report")("hid-usage", "3072")("hid-usagepage", "65472")("model-name", "Commander CORE")("usb-pid", "3100")("usb-vid", "6940")("vendor", "Corsair"))
2021-02-14T19:26:22 I cue.hid_device_detector: DeviceInstance(Path: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}", InstanceId: "hid\\vid_1b1c&pid_0c1c&mi_02\\7&52bfe76&0&0000", ParentInstanceId: "USB\\VID_1B1C&PID_0C1C\\FB66DF55421900F8\u0000") inserted.
2021-02-14T19:26:22 I cue.hid_device_detector: Add open task: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" with delay 0 ms.
2021-02-14T19:26:22 I cue.hid_device_detector: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" opened.
2021-02-14T19:26:22 I cue.hid_device_detector: Mark all tasks as finished.
2021-02-14T19:26:22 I cue.devices: Begin attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status b= 0
2021-02-14T19:26:22 I cue.devices: End attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#7&52bfe76&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status a= 0
2021-02-14T19:26:22 I cue.devices: Created new device"Commander CORE" (vid=1b1c, pid=c1c); ready:false

@ z0rlac, ¿puedes mirar los registros de iCUE CUELogsy compararlos con mis registros?

Hello what version of iCue are you using. You have the latest beta of the program closed, if not, tell me where I can filter it for you.

JoseArtunedo avatar Feb 14 '21 21:02 JoseArtunedo

I have iCUE 3.37.140. You can export the logs in the iCUE settings image in the exported zip there is a CUELogs folder with the log files.

Legion2 avatar Feb 14 '21 21:02 Legion2

I have 4.5.134, where I think new data was attached, for the Commader Core. Talk to me here Discord (Jaren # 0618) and if you want to try the code under that version or I will provide you with the closed beta.

JoseArtunedo avatar Feb 14 '21 21:02 JoseArtunedo

I have access to the closed beta, but I don't use it, because it does not receive the normal updates.

Legion2 avatar Feb 14 '21 21:02 Legion2

Ahh oki, then the only thing I can do is try the skets in that version to see if it works for me.

JoseArtunedo avatar Feb 14 '21 21:02 JoseArtunedo

I did not modify any sketch, just changed the PID in the device config AppData\Local\arduino15\packages\Legion2\hardware\avr\0.3.0\boards.txt

Legion2 avatar Feb 14 '21 21:02 Legion2

Same problems you have, I have obtained the same results. The name of the device does not matter what it is, the important thing is the pid.

From what I've been testing, I've given Commader Core different names, and the iCue log does seem to have a bug with the Commander Core, so if it detects that pid 0x0c1c

2021-02-15 00:11:26.103 I cue.sys_info.win: Info: prop=Size class=Win32_DiskDrive returned=false
2021-02-15 00:11:26.106 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.107 I cue.devices: Manifest for device (vid=c45, pid=7697) not found.
2021-02-15 00:11:26.107 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.107 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.107 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.107 I cue.devices: Manifest for device (vid=c45, pid=7697) not found.
2021-02-15 00:11:26.108 I cue.devices: Manifest for device (vid=c45, pid=7697) not found.
2021-02-15 00:11:26.108 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.108 I cue.devices: Manifest for device (vid=c45, pid=7697) not found.
2021-02-15 00:11:26.108 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.109 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.109 I cue.devices: Manifest for device (vid=258a, pid=1007) not found.
2021-02-15 00:11:26.109 I cue.devices: Manifest for device (vid=c45, pid=7697) not found.
2021-02-15 00:11:26.109 I cue.hid_device_detector: DeviceInstance(Path: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}", InstanceId: "hid\\vid_1b1c&pid_0c1c&mi_02\\8&311d48f2&0&0000", ParentInstanceId: "USB\\VID_1B1C&PID_0C1C\\FB66DF55421900F5\u0000") inserted.
2021-02-15 00:11:26.109 I cue.hid_device_detector: Add open task: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" with delay 0 ms.
2021-02-15 00:11:26.110 I cue.hid_device_detector: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" opened.
2021-02-15 00:11:26.110 I cue.hid_device_detector: Mark all tasks as finished.
2021-02-15 00:11:26.111 I cue.devices: Begin attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status b= 0
2021-02-15 00:11:26.111 I cue.devices: End attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status a= 0
2021-02-15 00:11:26.111 I cue.devices: Created new device"Commander CORE" (vid=1b1c, pid=c1c); ready:false
2021-02-15 00:11:26.671 I cue.sys_info.win: Info: prop=Caption class=Win32_PnpEntity returned=false
2021-02-15 00:11:26.734 I cue.sys_info.win: Info: prop=DeviceID class=Win32_PnpEntity returned=false
2021-02-15 00:11:27.305 I cue.sys_info.win: Info: prop=Name class=Win32_PnpEntity returned=false
2021-02-15 00:11:27.891 I cue.sys_info.win: Info: prop=Manufacturer class=Win32_PnpEntity returned=false
2021-02-15 00:11:27.944 I cue.sys_info.win: Info: prop=Service class=Win32_PnpEntity returned=false
2021-02-15 00:12:29.303 I cue.hid_device_detector: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" removed.
2021-02-15 00:12:29.303 I cue.hid_device_detector: Add close task: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
2021-02-15 00:12:29.304 I cue.hid_device_detector: "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" closed.
2021-02-15 00:12:29.304 I cue.hid_device_detector: Mark all tasks as finished.

I will continue investigating.

JoseArtunedo avatar Feb 15 '21 00:02 JoseArtunedo

Is there anything I can help with? I exported my system info and logs. Under the "Corsair Devices" in SystemInfo.txt I have these two entries:

Device name : Corsair CORSAIR iCUE Commander CORE (serial number removed) Status : DeviceConnected (0x1) Working speed : High Speed (0x2) Connected to : USB xHCI Compliant Host Controller ? Root Hub ? Port 5 USB VID : 0x1b1c USB PID : 0xc1c Hub driver : Standard, USB 3.0 Device supports USB 3.0 : Device support flags : Port protocol support :

--

Device name :
Status : DeviceConnected (0x1) Working speed : Full Speed (0x1) Connected to : USB xHCI Compliant Host Controller ? Root Hub ? Port 5 USB VID : 0x1b1c USB PID : 0x1c05 Hub driver : Standard, USB 3.0 Device supports USB 3.0 : Device support flags : Port protocol support :

z0rlac avatar Feb 15 '21 07:02 z0rlac

Thanks for sharing. I'm a little lost. Maybe for @Legion2 knows better**

For this device I keep getting this.

Device name : Corsair CORSAIR iCUE Commander CORE USB VID: 0x1b1c USB PID: 0xc1c

2021-02-15 13:42:29.659 I cue.devices: Begin attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status b= 0
2021-02-15 13:42:29.659 I cue.sys_info.win: Info: prop=Manufacturer class=Win32_DiskDrive returned=false
2021-02-15 13:42:29.659 I cue.devices: End attaching to "Commander CORE" (vid=1b1c, pid=c1c) "\\\\?\\hid#vid_1b1c&pid_0c1c&mi_02#8&311d48f2&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}" status a= 0
2021-02-15 13:42:29.659 I cue.devices: Created new device"Commander CORE" (vid=1b1c, pid=c1c); ready:false
2021-02-15 13:42:29.666 I cue.sys_info.win: Info: prop=Size class=Win32_DiskDrive returned=false
2021-02-15 13:42:30.250 I cue.sys_info.win: Info: prop=Caption class=Win32_PnpEntity returned=false
2021-02-15 13:42:30.304 I cue.sys_info.win: Info: prop=DeviceID class=Win32_PnpEntity returned=false

Also try this device, and it does recognize it Device name : HX750i (Power supply)

USB VID: 0x1b1c USB PID: 0x1c05 image

JoseArtunedo avatar Feb 15 '21 13:02 JoseArtunedo

Ah yes, I do have HX750i installed and connected via USB, so we can be sure that is not the PID for the Commander Core

z0rlac avatar Feb 15 '21 13:02 z0rlac

Device Information
Device Manufacturer: Corsair Product Name: CORSAIR iCUE Commander CORE Serial Number: a20a30705ecb3abad56b36f52091005f USB Version Supported: 2.00 USB Device Speed: USB 2.0 High-speed Driver Description: USB Composite Device Hardware ID: USB\VID_1B1C&PID_0C1C

Driver Information
Driver Manufacturer: (标准 USB 主控制器) Driver Description: USB Composite Device Driver Provider: Microsoft Driver Version: 10.0.19041.488 Driver Date: 21-Jun-2006 DeviceInstanceId USB\VID_1B1C&PID_0C1C\A20A30705ECB3ABAD56B36F52091005F Location Paths PCIROOT(0)#PCI(0801)#PCI(0003)#USBROOT(0)#USB(1) 微信截图_20220211194339

cnn123666 avatar Feb 11 '22 11:02 cnn123666

I added the information in my latest PR #270. It still won't show; I'm guessing we are missing new commands that iCue is sending to it or it doesn't like the device ID.

I'd like to get the info for a Commander Core XT as it doesn't have the integrated pump controller and would probably be easier to support.

Spegs21 avatar Feb 16 '22 18:02 Spegs21

If I try to configure a Commander Pro by changing the TinyUSB sketch from CORSAIR_LIGHTING_NODE_PRO to CORSAIR_COMMANDER_PRO it doesn't show in iCue with a Pico. I still need to try modifying the command pro sketch for TinyUSB to see if it works. This leads me to believe that simply changing PIDs is not enough to get something to show up. @Legion2 when you tested this here did you use the commander pro sketch?

Spegs21 avatar Feb 24 '22 17:02 Spegs21

I don't know which sketch I used. You must use the commander pro sketch, because it has more commands, which need to exist else icue will not detect the device

Legion2 avatar Feb 24 '22 22:02 Legion2

DEVICE DESCRIPTOR
    bLength: 18
    bDescriptorType: 0x01 (DEVICE)
    bcdUSB: 0x0200
    bDeviceClass: Device (0x00)
    bDeviceSubClass: 0
    bDeviceProtocol: 0 (Use class code info from Interface Descriptors)
    bMaxPacketSize0: 64
    idVendor: Corsair (0x1b1c)
    idProduct: Unknown (0x0c1c)
    bcdDevice: 0x0100
    iManufacturer: 1
    iProduct: 2
    iSerialNumber: 3
    bNumConfigurations: 1

CONFIGURATION DESCRIPTOR
    bLength: 9
    bDescriptorType: 0x02 (CONFIGURATION)
    wTotalLength: 66
    bNumInterfaces: 2
    bConfigurationValue: 1
    iConfiguration: 0
    Configuration bmAttributes: 0xc0  SELF-POWERED  NO REMOTE-WAKEUP
        1... .... = Must be 1: Must be 1 for USB 1.1 and higher
        .1.. .... = Self-Powered: This device is SELF-POWERED
        ..0. .... = Remote Wakeup: This device does NOT support remote wakeup
    bMaxPower: 50  (100mA)

INTERFACE DESCRIPTOR (0.0): class HID
    bLength: 9
    bDescriptorType: 0x04 (INTERFACE)
    bInterfaceNumber: 0
    bAlternateSetting: 0
    bNumEndpoints: 2
    bInterfaceClass: HID (0x03)
    bInterfaceSubClass: No Subclass (0x00)
    bInterfaceProtocol: 0x00
    iInterface: 0

HID DESCRIPTOR
    bLength: 9
    bDescriptorType: 0x21 (HID)
    bcdHID: 0x0100
    bCountryCode: Not Supported (0x00)
    bNumDescriptors: 1
    bDescriptorType: HID Report (0x22)
    wDescriptorLength: 34

ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x84  IN  Endpoint:4
        1... .... = Direction: IN Endpoint
        .... 0100 = Endpoint Number: 0x4
    bmAttributes: 0x03
        .... ..11 = Transfertype: Interrupt-Transfer (0x3)
    wMaxPacketSize: 768
        ...0 0... .... .... = Transactions per microframe: 1 (0)
        .... ..11 0000 0000 = Maximum Packet Size: 768
    bInterval: 1

ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x04  OUT  Endpoint:4
        0... .... = Direction: OUT Endpoint
        .... 0100 = Endpoint Number: 0x4
    bmAttributes: 0x03
        .... ..11 = Transfertype: Interrupt-Transfer (0x3)
    wMaxPacketSize: 1024
        ...0 0... .... .... = Transactions per microframe: 1 (0)
        .... ..00 0000 0000 = Maximum Packet Size: 0
    bInterval: 1

INTERFACE DESCRIPTOR (1.0): class HID
    bLength: 9
    bDescriptorType: 0x04 (INTERFACE)
    bInterfaceNumber: 1
    bAlternateSetting: 0
    bNumEndpoints: 1
    bInterfaceClass: HID (0x03)
    bInterfaceSubClass: No Subclass (0x00)
    bInterfaceProtocol: 0x00
    iInterface: 0

HID DESCRIPTOR
    bLength: 9
    bDescriptorType: 0x21 (HID)
    bcdHID: 0x0100
    bCountryCode: Not Supported (0x00)
    bNumDescriptors: 1
    bDescriptorType: HID Report (0x22)
    wDescriptorLength: 21

ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x83  IN  Endpoint:3
        1... .... = Direction: IN Endpoint
        .... 0011 = Endpoint Number: 0x3
    bmAttributes: 0x03
        .... ..11 = Transfertype: Interrupt-Transfer (0x3)
    wMaxPacketSize: 768
        ...0 0... .... .... = Transactions per microframe: 1 (0)
        .... ..11 0000 0000 = Maximum Packet Size: 768
    bInterval: 1

The commands are 1024 bytes and the responses are 768 bytes. ~~The commands appear to be encrypted, they do not follow the same patterns as supported devices and I see no discernable patterns.~~

OpenRGB actually has a controller implementation.

Spegs21 avatar Feb 27 '22 02:02 Spegs21

20220409164301 20220409164252 The Commander core and Commander coreXT I think Commander core and Commander coreXT have the same hardware, and Commander core can write to Commander coreXT firmware. Commander Core has a cold head interface, which contains PWM, temperature probe (monitoring water temperature), light, ID (used to identify the model of water cooling radiator) Commander Core XT has a small board attached to it, which brings out the temperature probe, light, and ID.

cnn123666 avatar Apr 09 '22 10:04 cnn123666

These images are very interesting to see how these products are designed, although it is not necessary (in quotes)

Here the important thing is to know the ID of each device (As recognized by windows and the iCue software) So that when using the arduino, said ID is the same and iCue can be fooled and access the functionalities of these devices, without that ID, the device will not appear in iCue.

If it is true that when we see these images we can see what it does, and thus add the functions when creating an emulate a project.

At the moment the Commander Core ID has been obtained; but could not "emulate so that it appears in iCue" I don't know if the Commander Core XT ID is known; could you share it to try (at the beginning of this question you can see how to get it) For Commander Pro, there is already a project that works and is recognizable in iCue

JoseArtunedo avatar Apr 09 '22 18:04 JoseArtunedo

These images are very interesting to see how these products are designed, although it is not necessary (in quotes)

Here the important thing is to know the ID of each device (As recognized by windows and the iCue software) So that when using the arduino, said ID is the same and iCue can be fooled and access the functionalities of these devices, without that ID, the device will not appear in iCue.

If it is true that when we see these images we can see what it does, and thus add the functions when creating an emulate a project.

At the moment the Commander Core ID has been obtained; but could not "emulate so that it appears in iCue" I don't know if the Commander Core XT ID is known; could you share it to try (at the beginning of this question you can see how to get it) For Commander Pro, there is already a project that works and is recognizable in iCue

Unfortunately, it's a bit more complicated than that. The protocol is completely different for these devices. I've used Wireshark to sniff the HID packets to and from my Command Core and it doesn't look anything the controller implementation in the repo. I've been able to decode some of the commands and values but I haven't had much time to work on it.

Additionally, these devices use a microcontroller with USB High-Speed capability, now confirmed thanks to @cnn123666 . This is evident in the packet size I posted above as well as Full-Speed maxes out at 64 bytes per HID packet for interrupt transfers. No Arduinos and few third-party boards support HS. I think we can still get most of the functionality because it doesn't seem like it uses much of the packet but a lot of work still needs done on figuring out the protocol.

Spegs21 avatar Apr 09 '22 18:04 Spegs21

@JoseArtunedo Is this what you want? Device Information
Device Manufacturer: Corsair Product Name: CORSAIR iCUE COMMANDER CORE XT Serial Number: d10f20a08ac184aa6c3a0c065091005f USB Version Supported: 2.00 USB Device Speed: USB 2.0 High-speed Driver Description: USB Composite Device Hardware ID: USB\VID_1B1C&PID_0C2A

Driver Information
Driver Manufacturer: (Standard USB Host Controller) Driver Description: USB Composite Device Driver Provider: Microsoft Driver Version: 10.0.19041.488 Driver Date: 21-Jun-2006 DeviceInstanceId USB\VID_1B1C&PID_0C2A\D10F20A08AC184AA6C3A0C065091005F Location Paths PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(6)#USB(3)

cnn123666 avatar Apr 10 '22 09:04 cnn123666

This is used when ICUE is not started (CORSAIR ICUE COMMANDER CORE XT) Device Information
Device Manufacturer: Corsair Product Name: Corsair, PID=1D0B Serial Number: - USB Version Supported: 2.00 USB Device Speed: USB 2.0 High-speed Driver Description: USB Composite Device Hardware ID: USB\VID_1B1C&PID_0C2A

Driver Information
Driver Manufacturer: (Standard USB Host Controller) Driver Description: USB Composite Device Driver Provider: Microsoft Driver Version: 10.0.19041.488 Driver Date: 21-Jun-2006 DeviceInstanceId USB\VID_1B1C&PID_0C2A\D10F20A08AC184AA6C3A0C065091005F Location Paths PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(6)#USB(3)

cnn123666 avatar Apr 10 '22 09:04 cnn123666

This is used when ICUE is not started (CORSAIR ICUE COMMANDER CORE ) Device Information
Device Manufacturer: Corsair Product Name: Corsair, PID=1D0B Serial Number: - USB Version Supported: 2.00 USB Device Speed: USB 2.0 High-speed Driver Description: USB Composite Device Hardware ID: USB\VID_1B1C&PID_0C1C

Driver Information
Driver Manufacturer: (Standard USB Host Controller) Driver Description: USB Composite Device Driver Provider: Microsoft Driver Version: 10.0.19041.488 Driver Date: 21-Jun-2006 DeviceInstanceId USB\VID_1B1C&PID_0C1C\E00800207C8A5ABA2DD366F53091005F Location Paths PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(3)

cnn123666 avatar Apr 10 '22 09:04 cnn123666