I’m building WarpAxe, an open-source firmware for the Bitaxe Gamma, written from scratch in Rust (GPLv3). It replaces AxeOS on the device and speaks the same HTTP API, so tuners, dashboards and fleet tools that talk to AxeOS keep working.
What it does differently
Signed online updates: the miner fetches a new release and checks its signature before it installs it.
One image for all supported boards: the board is detected on the first start; your Wi-Fi and pool settings from AxeOS are kept.
Stratum V1 (optional TLS) and Stratum V2, with a fallback pool.
Web UI in 8 languages, including a Swarm page that shows every miner on your LAN (AxeOS, NerdOS, ForgeOS or WarpAxe).
Host-tested drivers: chip, chain and board drivers run in CI against a simulated chain and I²C bus.
Where AxeOS is ahead: far more boards, years of use by a large community, plus things WarpAxe doesn’t have (yet): scoreboard, themes, the BAP accessory port, Wi-Fi setup over Bluetooth. The README has a side-by-side comparison, checked against the AxeOS source; corrections welcome.
Status: early, v0.1.6. It mines 24/7 on my Gamma 602 (about 1.33 TH/s at 17.7 J/TH) and on a NerdQAxe++. Other boards have a profile but haven’t been tested yet. Please read the supported-boards list before you flash.
Install / go back: install from the browser at WarpAxe Flasher (Chrome/Edge over USB). Going back to AxeOS takes one flash with the official Bitaxe flasher.
WarpAxe v0.1.9 is out. For the Bitaxe Gamma little changes (API: core current with its limit, cause of a regulator stop, the build’s git hash). The main work went into the Nerd boards: they now pace work like NerdOS and hash on par with it (NerdOctaxe 11.59 vs 11.71 TH/s at the pool), and the NerdAxe Gaia and BitForge Nano run (Nano on its Standard preset at the pool: 2.19 TH/s vs 2.10 on ForgeOS).
Release notes: WarpAxe v0.1.9 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
• Profiles for the Gamma Duo (650), Gamma Turbo (801), Naja Duo (1201) and Gamma Hex (1300), matched against AxeOS’s source (pins, regulator, EMC2103 fan chip, colour display on Naja/Hex). None has run on hardware yet; each is offered on the first start and taken only when you pick it.
• Heads-up for Gamma Duo owners: v0.1.9 took a Duo for a plain Gamma (its board version 650 lies in the Gamma’s 600 range). Please use v0.1.10 or later on a Duo.
• The regulator now shows on the Gamma’s type plate, and the dashboard marks the current as input or output as the board measures it.
For Bitaxe owners mainly: AxeOS’s hashrateMonitor is there with the same JSON (per chip total, four domains, error counter) and errorPercentage, read from the chips’ own counters once a second, plus errorPercentage1m over a minute; domain watchdogs work unchanged. The 0/1 fields (isUsingFallbackStratum, useFallbackStratum, useNTP, autofanspeed) are numbers again as in AxeOS. The Gamma Duo and Gamma Turbo profiles have now run on hardware at a user’s; Naja Duo and Hex still haven’t. The Naja Duo and Hex show the Bitaxe wordmark on the boot screen, with skot’s consent (thanks!).
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe v0.1.13 is out. Two things that may interest BM1373 owners: the BM1373 really has eight hash-domain counters — four at 0x88–0x8B as on the BM1370 and four more at 0xAC–0xAF, each counting an eighth of the 0x8C total (found with a read-only register scan on a NerdAxe Gaia). AxeOS reads the first four and doubles them; WarpAxe now reads all eight. And on the Naja Duo, free values now go up to 600 MHz, the documented overclock (untested by me). Also fixed: replies to several register reads in a row could be cut off in the receive buffer, which is where “empty” domains came from.
Release notes: WarpAxe v0.1.13 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
arpAxe v0.1.14 is out. Mainly for Nerd boards: the second fan output (M1) now follows the chips by default, as on NerdOS. Before, it followed the regulator temperature, and a NerdOctaxe-γ v2.2 overheated on auto because its regulator stayed cool while the chips heated up — linked fans fixed it. The fans also stay at full while the chips warm up after a start or an overheat stop. And the API now reports NerdOS’s stratum.usingFallback next to AxeOS’s isUsingFallbackStratum, so scripts for either firmware keep working. Thanks to John11 for the testing.
Release notes: WarpAxe v0.1.14 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
arpAxe v0.1.15 is out. One finding that may matter beyond WarpAxe: the TPS546 keeps its output on through an ESP reset, so during an update restart or in ROM download mode the ASICs sit powered at their last clock with nothing controlling fans or temperature. On a BitForge Nano, three minutes in download mode gave 82 °C chip / 95 °C regulator. WarpAxe now switches the core voltage off before every restart and first thing at boot. Also new: the web flasher saves a full flash backup before installing and can restore it (in Chrome on macOS that needed small acknowledged read packets — the serial driver drops bytes of 0xFF-heavy data otherwise).
Release notes: WarpAxe v0.1.15 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe v0.1.16 is out. A finding that may matter beyond WarpAxe: the TPS546 only regulates accurately (and only warns on undervoltage) between 0.25 and 0.75 V at its reference, so the clean output range is 0.25–0.75 V divided by VOUT_SCALE_LOOP — 1–3 V on the 0.25 most boards use. WarpAxe now never commands a core voltage below that and publishes the floor as regulatorMinMv. On the NerdAxe Gaia the stock firmware’s 0.25 put every voltage (800–970 mV) below the range; after a cold start the board’s own straps set 0.5, so WarpAxe uses that now (7 h at 340 MHz / 950 mV: 945 mV in every minute, 0 rejects, same power). Also new: the Wi-Fi radio no longer uses modem sleep, ping ~65 ms → ~7 ms.
Release notes: WarpAxe v0.1.16 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
Quick follow-up: v0.1.17 lifts the clock cap on the Gamma Duo and Gamma Turbo. With ?oc the clock is free there, as on the plain Gamma and in AxeOS; core voltage stays capped at 1250 mV. Thanks to John11, who runs two Turbos at 850 MHz under AXP90 coolers.
Release notes: WarpAxe v0.1.17 - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.20. For Bitaxe owners: the online-update bar no longer gets stuck at “Writing 100 %” on some networks (thanks John11), and GET /api/v2/dashboard now reports the hash rate and the error hash rate per chip in NerdOS’s format, so a weak chip shows up before the pool rejects anything. New and experimental: the same image also runs on a LilyGO T-Display-S3 (NerdMiner hardware) and hashes on the ESP32-S3 itself, about 290 kH/s.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.21. For Bitaxe owners with more than one chip (Gamma Duo, Gamma Turbo): the hash counter card now has a total line, all chips’ counted hash rate and errors together (an idea from John11). On the experimental T-Display-S3 (NerdMiner hardware) the CPU really runs at 240 MHz now, about 290 kH/s, and it can mine over Stratum V2 on WarpPool.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.22. For Bitaxe owners: an update that does not boot now rolls back to the previous version by itself (after one reinstall over USB, which writes the new bootloader; settings are kept), and pool or worker changes apply at once without a restart. New board: the NerdNOS (BM1397), at 300 MHz the pool counted about 190 GH/s with WarpAxe against 180 with its stock firmware.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
arpAxe is at v0.1.24. For Nerd board owners: the BM1370 on the NerdQAxe++, NerdOctaxe and NerdQX (Q1370) now starts with NerdOS’s chip init instead of ESP-Miner’s. ESP-Miner changed a core-clock trim in August (0x0C to 0x10), and with that my NerdOctaxe at 700 MHz sometimes came up with one hash domain at about 3 % of its rate, until a power cycle. With NerdOS’s value it came up clean 6 times out of 6. Bitaxes keep ESP-Miner’s init.
Also since my last post, v0.1.23: on every board the dashboard shows the best difficulty since the last start next to the all-time best, which survives restarts; the NerdNOS display’s device page shows the ESP32 temperature, effective rate, Wi-Fi signal and restart clock instead of dashes; and the Bitcoin whitepaper is no longer built into the image (the web UI links to the copy next to the installer), which leaves about 180 KB more room.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.25. The web UI now shows whether the miner’s clock is set: the Network tab says if and when NTP last synchronised and how far the clock is from your browser’s, and the dashboard warns only when the time is missing while the pool needs it (TLS or Stratum V2 with authentication) or the clock is more than five minutes off. The hash-counter bars got calmer thresholds (yellow below 80 % of the chip’s mean, red below half), so normal spread no longer colours a healthy chip.
Side result for BM1373 owners: I compared NerdOS’s and ESP-Miner’s BM1373 init on a NerdAxe Gaia, 4 × 1 h alternating at 380 MHz / 960 mV. Same rate (97.4 vs 97.0 % of nominal on the miner’s re-hashed nonces), same error count. Details in docs/05 of the repo.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.27. Settings has a new field for the power supply’s rating in watts (several miners on one supply split its rating between them); the dashboard asks for it until it is set, and the API gives it as psuWatts, so a tuner can stay below it (WarpTune keeps under 80 % of it). The stock firmwares only carry a fixed maximum per board, which says nothing about the supply actually connected. The power card also shows input voltage, core voltage and core current on separate rows now; the input current only where the board measures it. On a Bitaxe the ~40 A shown are the core current at about 1.1 V, not what the 5 V supply delivers.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.28. It now announces itself over mDNS the way AxeOS and NerdOS do: .local, and _http._tcp with the _axeos subtype and the same TXT items, so tools that discover Bitaxes that way find it. The API reports mdnsHostname and fullHostname like AxeOS. Thanks to John11 for spotting the gap.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe is at v0.1.29. This one is only for the T-Display-S3 without a mining chip (NerdMiner hardware): it now hashes about 340 kH/s instead of 292. The firmware writes the next block into the ESP32-S3’s SHA peripheral while the engine is still running, and every batch is spot-checked in software. The cycle-by-cycle measurements of the S3’s SHA engine are in docs/06 of the repo. Boards with mining chips are unchanged.
Release notes: Releases - dvb-projekt/dvb-WarpAxe - Forgejo: Beyond coding. We forge.
WarpAxe now has a user manual for beginners, in English, German, French and Spanish (PDF): installing from the browser with a backup of the stock firmware first, the first start and the setup hotspot, every page of the web UI, the display, updates and rollback, and the way back to stock. dvb-WarpAxe — Installation & User Manual (free PDF)
v0.1.30 also fixes a few texts in the web UI and on the display; mining is unchanged.
WarpAxe v0.1.31 is out. The device display is now yours to arrange: choose the LCD pages, their order and start page, and what the cockpit shows (big number, three places, footer), with a live view in the settings; on the OLED pick the slides. The swarm page now also lists cgminer-API miners on your network: the network search finds them on its own and the miner reads them read-only. Confirmations open on the page (they also work in the hotspot sign-in window now), and the image got 200 KB smaller with all 8 languages kept.
WarpAxe v0.1.32 is out. Most important: the overheat stops now match the stock firmware. A Bitaxe stops at 75 °C chip / 105 °C regulator like AxeOS (earlier versions only stopped at 90 / 145), the Nerd boards at NerdOS’s 70 / 70; every board was checked against its stock source. New: up to eight saved pools that you switch with one click without a restart, a payout display that works for solo mining other SHA-256 coins (BCH, eCash, DigiByte and other forks, CashAddr included), the chip error rate on the dashboard, and updates that always go through, even after days of uptime.