What if waste heat isn't waste?
Can we do data centers better? Make them run more efficiently, and make people want them around instead of protest against them? Well, what about moving to ocean submerged data centers? Turns out it is not a great idea, only in specific situations do they make sense. Or river based ones? River-cooling is the financially rational version of the ocean idea. The ocean case's ecology is better (no fish, no warming trend), but you pay for it with marine engineering. River = better NPV, harder permit. Ocean = easy thermodynamics, brutal economics at small scale. So no easy scale worthy ideas pop out, Microsoft and Google have been looking for a golden location for decades and are only finding niche applications.Â
Well, let's look at some of the broad problems and see if there is a win-win solution buried in here somewhere. I've been thinking about the amount of heat generated by data centers, particularly as AI drives computing power—and therefore energy consumption—higher and higher. Who could use the waste heat from a data center? Or a better engineering exergy question is:
What industry needs a large, continuous amount of heat at roughly the same temperature a data center naturally produces?
That changes the problem. Instead of trying to find a way to get rid of waste heat, we're looking for a process that can use the heat where it is already being produced. I love turning waste streams into revenue streams. Some interesting candidates emerge:

What I find particularly interesting is that drying doesn't necessarily need high-temperature heat. Lumber, agricultural products, food, biomass, and other manufacturing/materials all have processes where relatively low-grade heat can be useful.
So I decided to play with the idea on a ridiculously small scale. Instead of a data center, I'm using a liquid-cooled CPU as the heat source and seeing whether I can capture that heat and use it to dry lumber. It's obviously not an economically meaningful heat source, that's not the point. The point is to see whether the physics works:
Electrical power → computation → liquid cooling → heat exchanger → warm air → moisture removal from wood
If I can measure the electrical input, coolant temperatures, airflow, air temperature, and change in lumber mass, I can start building an actual energy balance. Let's go!
Step 1. The Plan

Step 2. Build

For a prototype build, a fish tank pump salvaged from an aquaponic build is enough. And since we are using mineral oil, I had to locate some nylon tubing as it is the least reactive flexible piping for this coolant. As a Material Engineer it would be unacceptable to have an unexpected material fail - we fail in controlled conditions only. Â

Mineral oil grade 70 is the go-to for this project. It is extremely thin, it seems almost like rubbing alcohol in consistency. Water is about 4X as thermally conductive as oil in this case, but unless you have ultrapure water, the hazard from electrical conduction is too great.  (For reference: Air~0.026 W/m·K, Mineral oil~0.13–0.15 W/m·K, Water
~0.60 W/m·K.) Â

I could not find a fish tank that was the correct dimension for this project, so I settled on a 'build the box from scratch' plan. An old sheet of plexiglass salvaged from somewhere - and some very specific solvent - and we just make exactly what we need. Not a production strategy, but fine for pilot or project level work. Probably moot, but I went with plexiglass as it will fail mechanically before the flashpoint of the oil. Also, it is all I had.Â

It is a strange feeling to pour fluid all over a perfectly good computer. There is a part of your brain that runs thru a checklist of safety and a constant "Are you sure about this?".

There is some complaining from the computer when powering up that it has an issue with its hard drive fan, otherwise runs fine. Oil is recirculated from the tank to a rescued radiator that has mild air flow. The pump, which was complainy in water, seems delighted to work in mineral oil. Flow rate estimate is 150-200 mL/min.Â
Step 3. Radiator Testing

Before submerging the Dell in oil, I established a baseline thermal profile by running a 24-hour stress test with the system operating in air. The test progressively increased CPU load in three-hour intervals to evaluate thermal behavior under increasingly demanding conditions.
CPU core temperatures were recorded at 10-minute intervals throughout the 24-hour test. Temperature data was collected from each of the four CPU cores, along with the CPU package sensor, using the coretemp kernel module.
The analysis tracked temperature trends, identified heating and cooling cycles, measured core-to-core temperature variation, and evaluated available thermal margin. The results were used to verify that the system remained stable and within its safe operating limits, with a critical temperature threshold of 99°C.

Running the same test in the oil under identical conditions produced the expected result: the oil smoothed out the temperature peaks and valleys. That is, the oil acted as a thermal buffer, reducing rapid changes in temperature while maintaining a stable overall temperature throughout the test.
This indicates that the relatively simple radiator system was adequate for removing the generated heat. The flat cooling slope from inter-run the peak temperature suggests that the system was able to adequately handle the heat flow - and not let it accumulate between runs.
Another way to interpret the results is that the air-cooled system reached thermal equilibrium at its peak temperature more quickly than the oil-cooled system. In contrast, the oil showed a weaker tendency to flatten the temperature response near the peak. This suggests that while small, there may be additional operating margin in the system. For example, the flow rate could potentially be reduced, or other system parameters adjusted, while still maintaining an effective cooling solution.
Immersion allows essentially the same computation to operate at a lower component temperature while transferring the heat into a controllable thermal loopÂ
The radiator works. Moving on.
Step 4. Instrumentation
I changed the initial build slightly to use an Arduino Uno to monitor temperature and a PZEM-004T to monitor current, voltage, phase, etc. The ESP32 was just overkill for this project. The Uno has 5 - DS18B20 Waterproof Temperature Probes that were placed at critical locations in the oil tank. The PZEM is spliced into the power cord of the computer and it doesn't capture the system peripherals (pump 4.8W, monitor, 1.5W USB fan for radiator).

PZEM-004T 100A version with CT. (Power, voltage, Phase and current)
Power Run 1. Four 3hr cycles of increasing CPU load while measuring power, temps:

The first step was monitoring CPU temp vs. how much power was being drawn from the wall. As expected, they tracked pretty clearly.Â

5 Sensors placed around the tank. The top, Pink is the intake to the pump and set at the edge of the cpu cooling fan. The orange is the return from the radiator, the black is ambient air, and the other two are in dead oil spaces in the case.

Then it becomes possible to determine heat quality, commonly called exergy. Not all energy is equal, and the quality of energy available from higher temperatures becomes clear as it peaks with CPU load/Power input.
Power Run 1. Conclusion:
- The run completed **99.9%** of the planned 12 h (all 4 cycles x 3 phases; final sample at t = 43170 s.
- Wall power scaled cleanly with the stepped load (~70 W at 1 core, ~83 W at 2 cores, ~111 W at 4 cores, vs ~43 W idle). A linear fit gives ~55.4 W baseline + ~0.56 W per load-percent (~56 W marginal from idle to full load).
- CPU temperature stayed in a safe band (50-66 C) even at sustained 100% load on all 4 cores across all 4 cycles, with large margin to throttling/critical thresholds.
- **Heat recovery:** a mean of 36.4 W was rejected to the oil loop, i.e. **42.9% of wall power** on average. Capture fraction falls sharply with load: ~47-53% at 25%, ~44% at 65%, and only **~34% at 100%** - at full load ~37 W of the extra power bypasses the radiator loop entirely and is rejected passively through the open tank surface and walls (the warmth felt off the tank). Lidding/insulating the open tank is the top recovery opportunity.
- **Exergy (heat quality):** only ~7.2% of the rejected heat is recoverable as work (~2.6 W mean, 3.0 W max), as expected for low-grade heat at these coolant temperatures (carnot factor is computed off the ~46 C pump-intake temp vs ~23 C ambient). Exergy rises modestly with load (2.53 W at 25% vs 2.81 W at 100%). Raising hot-side temperature is the dominant exergy lever: 46->60 C lifts the factor to ~11%, 46->80 C to ~16%. Pump intake drawn from the CPU cooler exhaust plume (hottest oil, before mixing into the ~39 C bulk) preserves delivered temperature; pink1's current position in the pump intake flow correctly measures delivered temp.
- **Thermal carryover at cycle boundaries:** the 25% phases of cycles 2-4 start hot from the preceding 100% phase (cpu up to 62-63 C early in the phase, heat mean ~36.5-37.1 W vs 32.8 W in cycle 1). This shows up in the cycle4-vs-cycle1 drift: +4.2 C at 25%, but only +1.7 C at 65% and +0.4 C at 100%. Power is repeatable within ~0.6 W across all phases, so the rig is stable and the measurements are trustworthy.
- Integrated over the 11.99 h logged: **1055 Wh consumed, 437 Wh rejected as heat, 31.3 Wh of exergy** available.
- Full 12 h coverage is achieved; no rerun needed. Ambient conditions were stable throughout (black TC 23.2 +/- 0.2 C), so cross-phase comparisons are clean.
Power Run 2. Increase exergy

In an attempt to increase the exergy, the computer box was wrapped in insulating styrofoam panels. This caused the overall thermal load to be too much for the radiator to discharge between cycles and the safety cutoff for the CPU temp kicked in and stopped the test.Â
Power Run 2. Conclusion: The radiator was unable to move heat away from the computer fast enough.Â
Power Run 3. Retune the process to remove excess insulation. Cap off the top of the tank - but remove the side insulation.


Retune heat rejection:
25%:Â +0.38 WÂ (+1.1%)
65%:Â -0.27 WÂ (-0.7%)
100%: +0.04 WÂ (+0.1%)
Retune exergy:
25%:Â +0.26 WÂ (+10.1%)
65%:Â +0.19 WÂ (+7.4%)
100%: +0.22 WÂ (+7.7%)
Power Run 3. Conclusion: Lowering the insulation factor a bit allowed the test to complete. Increases in exergy were modest but clear. This suggests that full insulation can be effective if the radiator is optimized to remove heat.Â