Originally Posted by Recursion
Nice work. I don't like Linux because I have some bad experience with it and also with other open source project. I have also written a driver for a fan controller in Linux but most likely it was just copy and paste and also a driver with only terminal support is just too geeky. It's also open source but it's too much work and don't pay anything. Hence I would like to know what has changed in the new firmware? Is this just good advertising (and they changed just the hardware id and some ports). Or did they make serious improvement worth the money? The usb chip is only a few dollar in 1-100 lots. BTW. I have tried to make my Linux driver compatible for Windows, too, but it needs 0-ring rights.
I have had bad experiences with both Windows and Linux. I currently run Linux Mint V14, as it has most of my day to day programs ported, or equivalents. I tend to virtualize windows when I need to run it. There is a lot of bad open source or commercial software out there.
I know open source isn't going to make me money, I just do it for some fun and for the challenge of reverse engineering a piece for hardware.
The key difference between the V4 and original Kuhler is how it handles fan speed control. The GEN1 Kuhlers use a simple linear formula, Ie: a fan_start and fan_full temperature with simple linear interpolation between those 2 single points, while the V4 GEN2 Kuhlers have 4 [really 6] different points that can be set and ramp up linearly between those points. The linux driver supports all those features as well.
The hardware is also different, as they use a higher pressure pump, and a split flow radiator.
The firmware also handles mode switching a bit better [there is a single "get_status" command, instead of a get_status packet unique to each mode.
Libusb typically handles the ring-0 rights, so all my driver would need are normal permissions. Thinking about it, I would probably have to adjust some of the headers for Windows equivalent functions like semaphore, shared memory, etc.
I'd have added a GUI, but I figure people could use the relativly simple API and make their own, and most server admins usually use text mode anyway.