NerdNOS firmware V2.1.0: more stable, cooler, faster
What the new firmware does, why we built it that way, and the measurements behind it.
The BitMiner24 firmware V2.1.0 is the firmware for the NerdNOS, the Bitcoin solo miner with an ESP32-S3 and a Bitmain BM1397 ASIC, the chip generation of the Antminer S17. It is open source under the MIT licence and builds on the NerdMiner_v2 project. We measured it on a unit from current production and improved it where it matters day to day: the NerdNOS keeps running, notices problems itself and fixes them before you do.
lightbulbWhat is new in V2.1.0
- Self-healing: if the chip goes quiet, the firmware restarts it. If the pool stops accepting shares, it reconnects and, if needed, restarts the whole device.
- About 140 GH/s at 250 MHz: more than at 300 MHz, and about 7 °C cooler.
- Full speed after every start: a clock ramp and a speed check keep the chip from coming up slow.
- Plain-language status: the display and the dashboard say what is going on: too hot, chip silent, address refused, no pool.
- Pool answers are read: accepted, rejected and stale shares apart, plus the pool's verdict on your address.
- Careful thermal protection and safe saving of your settings, even during a power cut.
- Compatible: the Hashlink app, the settings format and the factory partition layout stay supported.
syncWhy we built in self-healing
Some NerdNOS units stopped after minutes to hours: display and fan kept going, the dashboard said "KEINE NONCES" (no nonces), and only unplugging helped. The cause was in the firmware. Every restart of the mining chip while running, for example after the thermal protection kicked in, went wrong: on a reset the chip falls back to a slow link speed of 115,200 baud, while the ESP32 kept sending at 3.125 MBaud. From then on the two no longer understood each other.
We fixed it in three layers that build on each other:
- Every chip restart works. Before each start the link speed is reset, the chip is left without power for half a second, and reading pauses until the chip answers.
- Stall watchdog: if the chip returns no result for five minutes while it has work, it is restarted automatically.
- Supervisor: a watchdog of its own checks what counts: does the pool accept shares? If not, it first opens a fresh pool connection and then restarts the whole device, exactly like pulling the plug. The pauses in between grow, so a pool outage does not cause a restart loop.
The supervisor waits on purpose while the chip cools down, while WiFi is gone or while the pool refuses your address. A restart would not help there, so the display tells you what to do instead.
ecoWhy 250 MHz instead of 300 MHz
More clock sounds like more power. On the NerdNOS the board fixes the chip's core voltage at about 1.18 volts, while other BM1397 miners run at 1.4 volts. At the low voltage a growing share of the cores cannot keep up as the clock rises. So we measured, counting the results the chip actually returns, precise to about four percent:
| Clock | Hashrate from results | Chip temperature |
|---|---|---|
| 250 MHz (default) | 139 and 141 GH/s | 53 °C |
| 275 MHz | 100 GH/s | 57 °C |
| 300 MHz | 116 and 128 GH/s | 60 °C |
| 325 MHz | 145 GH/s | 62 °C |
250 MHz delivers the rate of the best higher clocks, repeatably, at the lowest temperature. Less heat means less stress on the chip and its power stage, and a calmer fan over the years.
trending_upFull speed after every start: clock ramp and speed check
The BM1397 does not always come up equally fast. With the clock set in one step, the chip often ran at only 58 to 78 GH/s after power-on. When every core starts at full clock at once, the tightly rated core voltage dips for a moment. So the firmware now starts the chip at 100 MHz and raises the clock under load in steps of 6.25 MHz, the way the cgminer driver for this chip does it. In three starts after an update, the deep drop did not occur once.
On top of that, the firmware measures the chip's speed one minute after every start. Below 0.47 GH/s per MHz, that is 117.5 GH/s at 250 MHz, it starts the chip again, up to five times. The dashboard field warm_reinits shows whether that happened.
warningThermal protection that thinks along
The temperature is the median of five readings, so a single outlier triggers nothing. Only after three readings above 80 °C, or one at 85 °C, does the firmware switch the chip off. Below 70 °C it starts again at a reduced clock, and after five minutes below 65 °C at full clock. At 250 MHz the NerdNOS sits at around 53 °C, well below all of that.
infoSee at a glance what is going on
The display shows a status at the top right. Whenever it reads something other than MINING, it tells you what to do:
Too hot: give the NerdNOS more air. It resumes by itself.
Chip silent: check the power supply (5 V, at least 2.4 A) and unplug once.
Enter your own Bitcoin address; the pool refuses it or the default is still set.
No pool: check the pool address and the internet connection.
In the browser, the NerdNOS dashboard shows hashrate, temperature, clock, accepted shares and the firmware version. Open it at the IP address the Hashlink app shows after the network scan, the one in your router's device list, or at nerdnos-xxxx.local.
power_settings_newThe button on top: reset
The button on top of the NerdNOS is there for resetting. Hold it for 5 seconds and WiFi and settings are cleared; the NerdNOS then restarts in setup mode and you set it up again in the Hashlink app or through the WiFi NerdMinerAP. Handy when you move to a new WiFi or pass the NerdNOS on.
lockSecurity and openness
Settings can only be changed from the NerdNOS's own page and from apps on your home network; other websites are turned away, and so is the trick of disguising a foreign website as the device (DNS rebinding). The device never hands out the pool password. We check every firmware file on this page against its SHA-256 before delivery. The firmware is licensed under MIT.
memoryTechnical data
| Controller | ESP32-S3, 16 MB flash, 8 MB PSRAM |
| Mining chip | Bitmain BM1397 (Antminer S17 generation) |
| Clock | 250 MHz default, 175 MHz under thermal protection |
| Hashrate | about 140 GH/s |
| Core voltage | about 1.18 V, fixed by the board |
| Chip temperature | about 53 °C at room temperature |
| Pool | public-pool.io, port 21496 (changeable) |
| Protocol | Stratum v1 with version rolling (BIP 310) |
| Display | 1.9 inch, 320 × 170 pixels |
| Setup | Hashlink app (Bluetooth) or WiFi NerdMinerAP |
| Firmware | V2.1.0-BM24, MIT licence |
shopping_bagYour own block, from your desk
The NerdNOS mines solo on the real Bitcoin network: if it ever finds a block, the whole block reward goes to your address. It runs alongside, and the firmware keeps it running. Shipped from Stuttgart, support in German and English.
