corsair-psu icon indicating copy to clipboard operation
corsair-psu copied to clipboard

ax 1600i support?

Open gilvbp opened this issue 1 year ago • 5 comments

Hello, would it be possible to have support for the PSU Ax 1600i? I saw that you already have the dump file.

gilvbp avatar Jun 26 '23 13:06 gilvbp

It is very hard to do. The AXi series uses a Silicon Labs CP2103 USB<->UART bridge connected to a Silicon Labs C5081F300 mixed mode DSP with a firmware (possibly talking SMBUS to the PSU). On the OS site you see a plain serial port but you can not use it as such, because it "speaks" only a proprietary "language". This means you have to write 2 in 1 drivers, and fake UART drivers are a bit problematic. It would also mean to duplicate code which may not be accepted into the mainline kernel. This is the reason only serial port connecting userspace tools exists to query the PSUs micro-controller.

wgottwalt avatar Jun 27 '23 04:06 wgottwalt

I created something for reading rail details and setting fan speed here: https://github.com/Jon0/ax1600i

Jon0 avatar Sep 03 '23 10:09 Jon0

@Jon0, great work! Thanks for the update!

gilvbp avatar Sep 03 '23 13:09 gilvbp

@Jon0 Just another https://github.com/ka87/cpsumon copy, this time in Rust, but with the same 256 byte raw data block (without understanding it?). And also again a virtual serial port connecting tool (because of the usb<->serial bridge), but this time able to set the fan speed but supporting only the AX1600i. I wonder if there ever was an attempt to write a driver.

wgottwalt avatar Sep 04 '23 04:09 wgottwalt

Its mostly similar to cpsumon but I found that didn't work - I looked at some wireshark dumps of the corsair software and found the ax1600i needs an extra byte (0x12) written on every message https://github.com/Jon0/ax1600i/blob/05b6b7a403e070e10c3bdbd6fe53fbba0b174e84/src/psu.rs#L83

Jon0 avatar Sep 04 '23 04:09 Jon0