Settle is yet another Bitaxe tuner. It's goal is to keep the Bitaxe at a target ASIC temperature while at the same time tuning out errors. I have my Bitaxe in the garage where the ambient temperature can change a lot. It's simple in practice, no PID tuning or complex algorithms.
The "algorithm" can be described like this
- Collect metrics every 10 seconds, keeping some averages for hash rate or error rate.
- At the adjustment interval (15m default) decide to increase, decrease, or keep frequency (no adjustment) depending on temp and power usage.
- If an adjustment was done we're in tuning mode T1. Core voltage is dropped until expected hash rate is below expected or asic errors is above threshold (0.10). This is so we can have decent efficienty in T2.
- After T1 finishes we're in tuning mode T2, error correction. Core voltage is raised until expected hash rate and errors are tuned out. Settling on an efficient voltage.
- Repeat
NOTE It's importent before running to copy settings.example.yaml to settings.yaml and set your desired temperature range and maxPower for your power supplies. If you have one of those standard 6A 5V power supplies using the 80% rule it would be 24 watts.
The Bitaxe has good temperature overheat protection but it can't protect from overloading a power supply. Use at your own risk and monitor.
You can override some settings per Bitaxe if needed.
defaults:
tempLow: 61
tempHigh: 65
maxPower: 29
overrides:
Supra401:
maxPower: 24I'm running Settle 24/7 controlling 7 Bitaxe, streaming it live here https://www.youtube.com/watch?v=DPI6yd_cu6A
Install the Go programming language https://go.dev/doc/install.
Copy settings.example.yaml to settings.yaml and update this for your needs.
Run with go run main.go. By default Settle will try and find all Bitaxe. To limit which Bitaxe are tuned pass the host names go run main.go Supra401 Gamma_led1
To build as a binary
go build
./settle
