NTP heating

I was looking for a way to improve the accuracy of my NTP server. It is already connected to a GPS receiver but maybe there is an other way.
Then I found this article about heating up your NTP-server to stabilize its clock-frequency.

The story is that if the environment temperature of the NTP-server is constant as much as possible, that then inaccuracies of the system clock are smaller.
So I wanted to build an environment with a stable, warm, temperature.

Incandescent light bulbs are difficult to get hold of these days. So I decided to use 3 block erupter dongles I had laying around. The hashrate of these modules (even 7 of them; around 2GH/s) is too low to make a profit, but they are easy to control and to let generate heat at will (upcycling!).

I installed my NTP server (a raspberry pi connected to a GPS receiver) in a cool box. To the raspberry pi, I connected a powered USB hub (capable of providing 0.6A per block erupter) with the block erupters installed in it. Also in the cool box is a micro controller which measures the temperature of the box and announces it on the MQTT software bus.

I took this python script and added code in it that checks an MQTT topic. Then by that temperature, the script decides wether to let the erupters "mine" (constantly the same hash) or not. The adapted script can be found here. Please note that there is an IP-addresses in it (of the MQTT server) and an MQTT topic that needs to be adapted. The script also requires a /dev/ttyUSB0-path of the block erupter.

Please ignore the 'device broken' messages: it means the block erupter made a calculation mistake. That is not important as the results are thrown away anyway.

In half an hour it increased the box temperature from 20 to 23 degrees celsius. Outside temperature (outside of the cool box) was 10.5 degrees.

Click on image for more details, with annotations

As you can see I upgraded to even 7 block erupters as with 3 it was difficult to get the temperature above 25 degrees.
In idle mode they produce 0.5 watt of heat per piece, when running around 2.5 watt.

I've added a fan to distribute the heat better and to speed up the process.

4 raspberry pi 2s stacked above each other. One is for controlling the block erupters.


I replaced the script by one that lets the miners mine at a real pool (using bfgminer) but controlled by the temperature:

The temperature controlling system was off for a night (due to failure of the temperature monitoring circuit - this triggers an auto-off protection). This immediately affects the clock frequency as visible in this Grafana-graph:

I now also let the CPUs of the Raspberry Pis do bitcoin mining (again with a control loop) to keep them at 60 degrees celsius.

For contact info, see this page.

mastodon icon toot this