Wasting nothing, I wanted to use the lil’ temperture sensors that my obsolete Corsair fan controller game with

Corsair Temperature Sensor
Such a cutie

Somehow it took me way too long to determine that they are 25k NTC Thermistors. Mainly because many fancy thermistor libraries for arduino out there support a huge list of types, with no indication of what is the most popular.

After this feat of detective work, I can basically hand the rest of this post to adafruit’s fantastic guide on how to use it surprisingly accurately with an actual algorithm to get a temperature in Celsius. For hardware, chuck in in series with a normal resistor to create a voltage divider, and use the analog pins to take measurements at the midpoint.

One small detail you’ll want to know when using more than one at a time, is that when you first call analogRead() on a different pin, the value returned will be fairly wrong. After a few milliseconds it’ll settle down, but still fluctate a bit. Taking multiple reads, throwing out the first, then using an average is a decent idea.

But there is one temperature sensor that eluded me, the ‘water temperature’ reported by my Corsair H110i AIO. Making the radiator fans react to the water temperature is perfect and would be a great stat to track. Problem is, this is reported to the link software via a mini USB cable that plugs straight into the CPU block.

Corsair All-in-one Cooler block and pump
yes it already has plenty of other cables sticking out

Making my arduino behave as a USB host is gonna require extra hardware, and possibly a massive pain to reverse engineer the protocol. If only there was an easier way…

Corsair All-in-one Cooler block and pump dismantled

Oh look it’s an identical sensor! Corsair must have got a great deal on these. How did I discover this? I needed to refill the water and was opening the whole thing anyway.

Corsair All-in-one Cooler block and pump circuit board
It’s the two flimsy wires next to the USB socket

Over on the other side, which doesn’t require opening where the water is, we’ve got the thermistor soldered to the board. Instead of working out how to communicate with the existing circuit, I just rerouted the thermistor to my own wire. I replaced it with a normal 12k resistor so that the pump’s controller doesn’t freak out.

Now we’ve got identical thermistors hooked up to the CPU, GPU, and general case air, and can make decent automatic changes to the case fan speeds automatically.

While this is enough for a functional PC fan controller, I still want more. So stay tuned.