The majority of Corsair projects are controlled via USB i.e. keyboards & AIO's. For those there exists projects like
- ckb / ckb-next https://github.com/ckb-next/ckb-next
- OpenCorsairLink https://github.com/audiohacked/OpenCorsairLink (works well on my H150i)
Lower level, a number of libraries & language bindings exist
- Official Corsair Windows only SDK http://forum.corsair.com/v3/forumdisplay.php?f=271
- Asus Aura SDK https://www.asus.com/campaign/aura/us/SDK.html also windows only but has support for controlling memory.
- RGB.net https://github.com/DarthAffe/RGB.NET
Decompiling the SDK dll or wrapping it would probably work, beyond my skill tho
Hows are the LEDs controlled?
Not much technical information on this, several reviews (e.g. https://www.bit-tech.net/reviews/tech/c ... -review/2/) mention the following
"Its LINK software communicates with the MCU on the DIMMs over the SM bus"
Some troubleshooting information here http://forum.corsair.com/v3/showthread.php?t=168055 mentions enable "SPD write" in your BIOS which also hints at how it works. No such setting on my Asus but it works in Windows without issue regardless.
This thread shows some success for gskill memory https://gitlab.com/CalcProgrammer1/Keyb ... /issues/85 via I2C
On my system i2cdetect on the SMBus comes up with three addresses which are empty so that's a no go.
Code: Select all
# i2cdetect -l
i2c-3 i2c NVIDIA i2c adapter 6 at 17:00.0 I2C adapter
i2c-10 i2c NVIDIA i2c adapter 7 at 65:00.0 I2C adapter
i2c-1 i2c NVIDIA i2c adapter 1 at 17:00.0 I2C adapter
i2c-8 i2c NVIDIA i2c adapter 2 at 65:00.0 I2C adapter
i2c-6 i2c NVIDIA i2c adapter 9 at 17:00.0 I2C adapter
i2c-4 i2c NVIDIA i2c adapter 7 at 17:00.0 I2C adapter
i2c-11 i2c NVIDIA i2c adapter 8 at 65:00.0 I2C adapter
i2c-2 i2c NVIDIA i2c adapter 2 at 17:00.0 I2C adapter
i2c-0 smbus SMBus I801 adapter at 5000 SMBus adapter
i2c-9 i2c NVIDIA i2c adapter 6 at 65:00.0 I2C adapter
i2c-7 i2c NVIDIA i2c adapter 1 at 65:00.0 I2C adapter
i2c-5 i2c NVIDIA i2c adapter 8 at 17:00.0 I2C adapter
i2c-12 i2c NVIDIA i2c adapter 9 at 65:00.0 I2C adapter
# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- 56 -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
So yeah, its a fail for now but eventually someone smarter than me should be able to sort it out.

