2019-04-07

Better cooling for the build farm

Purpose


After creating the 3rd version of my build farm I figured the cooling was not optimal due to the thermal tape having a non negligible resistance.

I sketched an idea of a variation of the cooling system involving a thick aluminum thermal plate to conduct the heat to a large heatsink. The L-shaped aluminum stands would have to be turned :



Realisation

It took me a while to find the required components. On eBay I found a 15x15x1cm aluminum plate, and a not-so-large 14x81x4.4cm heat sink. I would have liked a taller heat sink but couldn't find one with these dimensions.

Turning the L-shaped aluminum block required to drill new holes because the fixation on the small side appears just behind the extension connector on the board, so I had to move the board further from the edge :


After all it was probably not the best solution, it would likely have been easier to drill new holes on the small side so that they'd clear out of the connector, because even with this margin, it was painfully difficult to put a washer and a nut on the bolt.

I kept the thick copper plates that I cut last time. I tried to cut small ones in the thinner plate (0.8mm) that I bought earlier, but since copper is soft, it's very difficult to keep them flat while cutting so I fear that my bent plates will make poor thermal contact.

In order to fix the boards, I bought longer bolts (20mm) with springs. I looked for 3mm compression springs but didn't find any quickly available. Ideally I'd like 1cm tall, 0.8mm thick springs for 3mm bolts. So I went for the closest solution I found by cutting 5.5mm springs.

The aluminum plates and the heat sink are all fixed to the thick plate using 12mm cone-headed bolts entering conic holes that I drilled into the thick plate :


I was careful to put a little bit of thermal paste between CPU and copper plate, copper plate and L-shaped aluminum plate, this one and the thick bottom plate, and the thick plate and the heat sink. The way to properly put thermal paste is to deposit a little bit of it then stir it using a cutter blade until it becomes so thin that it appears gray-transparent and not thick white anymore. It must almost not stick when it's this thin, so that it only touches once crushed by the screws. The final assembly looks clean :


Tests

I put all the boards under strong stress by running cpuminer for about 8 hours and monitoring each board's temperature. It turns out that as can be expected, the center board is the hottest one and the edge ones the least. In addition, and this was unfortunate, the center one is the most overclocked so the one spreading the most heat.

The temperature in the center reached 84 degrees Celcius (throttling starts at 85 and no throttling happened, so it was close to the limit). The edge boards were at 77 degrees. I measured with a thermal gun and it showed the boards were only at 67 degrees and the heat sink at 64. First, this proves that the thermal contact is much better than the previous one if only 3 degrees are lost between the CPU and the heat sink. But where are these 20 extra degrees ?

I tried installing silent fan on top of the heat sink and the overall CPU temperatures fell down to 51 degrees only, with the aluminum parts at ambient temperature.

I found that if I stopped the test, in one second the reported CPU temperature falls by 10 degrees, and the next second by 7 extra degrees to reach 67, which happens to be the temperature I measured on the board and aluminum blocks.

So it looks like under load the CPU die can be 17 degrees higher than its outer package, and that when the load drops it's light enough to immediately reach the package temperature. A difference of 14 degrees between the package and the die looks huge to me, but I don't even know if silicon conducts heat well or not, so maybe this is normal and expected. It's just sad that the CPU die remains this hot when the board can be touched just beneath it.

Anyway what matters is that the CPU can now be properly cooled enough to avoid throttling at all.

I measured the power usage during the tests. A non-overclocked board (2.016+1.512 GHz) draws exactly 8.0 watts under cpuminer (6.58W under cpuburn). An overclocked board (2.112+1.704 GHz) draws 10.35W (8.34 under cpuburn).

So the whole solution is able to dissipate around 45W, which is not bad.

Improvements

I thought about placing the heat sink vertically so that air flows better from bottom to top but I figured that the thermal contact between the heat sink and the plate would be very poor and completely offset any possible gains.

I also though about placing the thick plate directly on the desk so that part of the heat also spreads in the desk. This however requires to use longer cables, but that may be a nice option  when combined with a small 8-port switch.

Hanging the block to the wall could be another solution to let the air flow along the heat sink.

Anyway the results are impressively good already, I'm even tempted to give a bit more voltage to the CPUs and see if I can recover a few hundred MHz.