WarpAxe: open-source Rust firmware for the Bitaxe Gamma (early, feedback welcome)

WarpAxe v0.1.33 is out. It’s a small release: every text in the web UI and on the device display was proofread in all eight languages, in a full first pass and then a second one by independent editors. Two outright errors were fixed along the way: a Japanese help text said the opposite of what the setting does, and a hint pointed to a switch in the wrong place. The installer page and the manuals got the same treatment. Updates are fast again, too: about 60 s on a NerdQAxe++ instead of 2½ minutes. T-Display-S3 owners: the update to v0.1.33 still takes the slow path and sits at “verifying” for about 5 minutes. Leave it alone; it restarts by itself.

WarpAxe v0.1.34 is out, with a self-test like the one in AxeOS, except that it runs while the miner keeps mining: about 80 seconds, a ✓ or ✗ for each check (chip count, per-chip and per-domain hashrate, error rate, core voltage, regulator, fans, temperatures, input voltage), shown in the web UI, on the display and in the API. Also new: a diagnostics file for support (no passwords, wallet and Wi-Fi name masked), an event log that survives restarts, and a notice after a crash. If you use WarpTune, update it to v1.42.1 first.

WarpAxe v0.1.35 is out. The main change is a safer first start: when the board can’t be identified for sure, the web UI offers only the boards that fit, checks the chosen one against the parts on the miner before any of its pins is switched, then starts the chips at a cautious voltage and counts them before the normal settings apply, followed by one self-test. The BitForge Nano and the NerdAxe Gaia are now recognised without asking, and the event log shows in the web UI’s language. Nothing changes for miners that already run WarpAxe.

State October 2026

A first overview of what WarpAxe does, as of v0.1.35, grouped by topic. It is early firmware; corrections and questions welcome.

Boards
Runs 24/7 on my own Bitaxe Gamma, NerdQAxe++ (Rev 6.1), NerdOCTAXE-γ (Rev 3.1), NerdAxe Gaia, BitForge Nano and NerdNOS. Runs at users’ on a Bitaxe Gamma Duo, a Gamma Turbo and a NerdOCTAXE-γ v2.2. Profile only, not run yet: NerdQAxe++ Rev 7, Bitaxe Naja Duo, Bitaxe Gamma Hex, NerdAxe Gamma, NerdQX — only if you can restore the stock firmware over USB.

First start
One image for every board. The board is recognised, or the web UI offers only the boards that fit; either way it is checked against the parts on the miner before the chips get power, the chips start at a cautious voltage and are counted, then a self-test runs once. Wi-Fi, pools (AxeOS 2.15’s saved list too), clock, voltage, fan settings and temperature limits are taken over from AxeOS/NerdOS. Without a network: a WPA2 setup hotspot, password on the device display.

Mining and pools
Stratum V2 with the authority key checked, Stratum V1 with optional TLS, a fallback pool that hands back on its own, up to eight saved pools switched with one click and no restart, and a coinbase payout check that decodes the worker’s address for any SHA-256 coin (base58, bech32/bech32m, CashAddr).

Safety
Overheat stops checked for every board against its stock firmware (Bitaxe 75 / 105 °C as AxeOS, NerdQAxe++/NerdOctaxe 70 / 70 °C as NerdOS, plus a 105 °C regulator stop on the one-fan NerdAxe boards, where NerdOS has none); regulator faults (STATUS_WORD) shown with codes and handled like an overheat stop; implausible sensor and regulator readings rejected before the control loops see them; core voltage off before every restart and update.

Updates
The miner fetches releases itself; releases are signed, and one click installs after a SHA-256 and BIP-340 signature check. An update that doesn’t start rolls back (bootloader from v0.1.22). The browser installer saves a full flash backup of the stock firmware first and keeps the settings.

Diagnostics
Self-test on a click while mining (about 80 s, nine checks with their figures, in the web UI, on the display and in the API), a diagnostics file for support (no passwords, addresses and Wi-Fi name masked), an event log of the last 32 events across restarts, and a notice after a panic or watchdog reset.

Web UI, display, API
Web UI in eight languages, over Wi-Fi and over the USB cable; mDNS name like AxeOS; a read-only swarm page for AxeOS, NerdOS and WarpAxe miners and cgminer-API miners; a choosable display with a live view. AxeOS-compatible API, plus explicit states for tuners (chain stopped/starting, overheat cause, one-minute error rate, running self-test).

New in October (v0.1.31–v0.1.35)
Choosable display; overheat stops checked for every board against its stock firmware (before v0.1.32 a Bitaxe stopped too late, at 90 / 145 °C); saved pools; payout check for any SHA-256 coin; chip error rate on the dashboard; all texts proofread in eight languages; self-test, diagnostics file, event log and crash notice; a safer first start with the board check.

What the stock firmwares have that WarpAxe doesn’t
Far more boards and years of use by a large community. AxeOS: scoreboard, themes, the BAP port and Bluetooth Wi-Fi setup. NerdOS: two-factor login for updates, dual-pool mining, InfluxDB/Grafana export, alerts, a ninth language, and Ethernet in its v1.1.1 beta. If you need any of that, stay with the stock firmware.

WarpAxe v0.1.36 is out, and this one is about the BitForge Nano.

I read ForgeOS v1.7, the Nano’s open-source stock firmware, and brought WarpAxe in line with it: the chip temperature sensor now uses ForgeOS’s diode ideality 0x37 instead of ESP-Miner’s 0x24 (measured back to back, 0x24 read 8.2 °C higher on the same chip), so the 75 °C chip stop applies where ForgeOS applies it (the 105 °C regulator stop has its own sensor and is unchanged), and the fan target moves to 52 °C, so chips and fans run as before; and the regulator warns at 38 A and shuts down at 40 A, with input over-voltage at 13.5 V, as ForgeOS sets them.

Also new, on every board: a pool asking for an implausible extranonce2 size is refused. Other boards keep their temperatures and limits.

WarpAxe v0.1.37 is out. It changes nothing in how the miner mines; it is about crashes. A user’s Gamma crashed in the restart at the end of an online update and left no core dump, so first: the core dump partition grows from 64 to 256 KB (it only comes with a USB install, since an online update never rewrites the partition table), and a panic now leaves “last words” (task, file:line, message; a stack overflow leaves its task name) in RTC memory that the next boot logs and the diagnostics file carries, dump or not. A crash during a restart is recorded with the step it happened in. That made our own Gamma show the likely cause: the interrupt watchdog (300 ms) firing during an NVS sector erase, which can take up to 600 ms, right before the reset; and a crash inside a flash operation never leaves a dump. The timeout is now 1000 ms. The user’s miner (v0.1.34) reported a panic rather than a watchdog reset, so this is likely, not proven. Also fixed: the false crash banner after every browser install since v0.1.34.

WarpAxe v0.1.38 is out; mining is unchanged. The main fix: System → Download mode crashed on every entry up to v0.1.37. TinyUSB was uninstalled while stdout still pointed at its CDC port, and the next log line (typically from esp_wifi_stop) hit a deleted mutex and asserted. Flashing still worked, but the next boot showed a crash. The console now goes back to USB-Serial/JTAG first. The 256 KB core dump partition from v0.1.37 caught the full 70 KB dump that confirmed it. Also: the flashing tool’s reset out of download mode no longer reads as a crash, and the raw RTC reset cause is in the API and the diagnostics file. The core dump download masks the Wi-Fi, pool and hotspot passwords, the SSID and the worker names and addresses (same-length x, CRC32 recomputed); pool hosts and IPs stay. A second install request is refused while one runs. In the first five minutes after boot, the Sv2 connect waits up to 20 s for NTP, and a certificate that fails against a clock NTP hasn’t confirmed yet no longer counts towards the fallback.