Check out my first novel, midnight's simulacra!
Counterforce
Counterforce is my project for next-level computer cooling, management, modeling, and visualization, borne out of a few years spent watercooling. My first nascent writeup was posted to reddit's r/watercooling on 2022-08-18. I want to bring Linux to the same levels of hardware awareness long available to Windows users through tools like HWInfo...and then wildly surpass those levels. The ambitious end goal is to automatically model the physical cooling system, and associate it with sensors without human interaction. The rapid rise in power consumption and heat generation driven by recent CPUs, GPUs, and SSDs mean more users concerned with what was once considered "extreme cooling" (AMD's second generation Threadripper processors, for instance, were explicitly marketed with an expectation of water cooling). I expect this project to require several years, along with some custom hardware, and it might prove infeasible for arbitrary builds.
The core principles of this effort include:
- Users ought not need to know (or pretend to know) the relationships between hardware control and cooling effect.
- Control of audible noise is almost as important as control of cooling effect.
- Changes within and without the system ought be integrated into control in realtime, and without user intervention.
- Quality visualization is critical for understanding the generation and elimination of heat.
- Closed source has no place in the coolant loop.
This is less a single software project than a movement, perhaps a manifest. Changes will be necessary in a variety of tools. A single database of coolant hardware is likely to emerge, though that is not an explicit goal.
Stage I: Linux sensor/control support
Various coolant elements require closed source to properly use them. Perhaps foremost among these are the excellent products of Germany's Aquacomputer and California's Corsair. Almost all overclocking management requires closed-source Windows-only tools. This is ridiculous: the space of controls and data exported by these devices is fairly small. A fan exposes a single scalar control (PWM level) and generates a single scalar datafeed (revolutions per unit time). A pump is the same. A thermistor generates a single scalar datafeed (measured temperature).
There ought be a single API to access these various hardwares, with unified open source TUI/GUI apps atop them. Linux ought support these controls, including writes to firmware.
Major efforts here would include:
- Dusting-off and enhancement of the it87 driver for ITE chips
- Improvement of Linux's smbus and i2c layers
- Reverse engineering of Aquacomputer and Corsair products to produce Linux drivers
- Development of a cross-platform UI for control and data import