The miner is a machine. Drive it.
Team Redline replaces your miner's stock controller with a screen, a cockpit, five drive modes and a closed-loop autotuner. Plug it in — it detects the board and drives it, the same cockpit across your whole fleet — on firmware that tells the truth even when the truth is AT LIMIT.
Switch from the web or the device's own buttons. Four of the five presets apply live — no reboot. TURBO and REDLINE run past the spec sheet, so they ask first: every time, never remembered. Click them here and the site asks the same way the cockpit does.
The cards show the same numbers the cockpit ships. REDLINE's line is a 30-minute validated run; the others are tuner targets anchored in the measured sweep — the receipts, including what isn't validated yet, are in the numbers section.
The whole cockpit — dashboard, pit lane, pit radio, setup portal — ships in under 20 KB gzipped. The stock bundle is 547 KB — minified Vue plus its assets — whose 309 KB vendor chunk alone takes ~20 seconds to arrive on a −85 dBm WiFi link. First paint here is seconds, not half a minute, and the build fails itself if it ever crosses 100 KB.
The cockpit makes zero external calls — no CDN, no price ticker, no phone-home. The firmware's one outbound call is NTP time sync, and it fails harmlessly when there's nothing to reach. And when the WiFi radio blacks out behind the heatsink, the cockpit dims, says NO SIGNAL, and keeps retrying — because the radio can black out for minutes while the miner keeps hashing.
| Accepted | 1,847 |
|---|---|
| Rejected · stale | 3 |
| Rejected · low diff | 1 |
| Nonces found | 412,806 |
The stock firmware counts the pool's setup acknowledgements as accepted shares — it logs share ACCEPTED about seven seconds after boot, every boot. Physics says no: at 4 TH/s and difficulty 65,536, a real share lands roughly once every seventy seconds. Team Redline counts only real accepted work and checks itself against the pool's own records. That's the standard this whole table is held to.
| Stock Hammer OS | Team Redline | |
|---|---|---|
| "Share accepted" | counts pool acks as shares — ACCEPTED logs ~7 s after boot | counted only for real accepted work — verified against the pool's own API |
| Hashrate reported | ×1.1 fudge factor baked into the API | raw in the API; only the headline readouts round up — next 0.1 TH, snapping to the next 0.5 milestone within 2% — and we tell you exactly how |
| Web UI size | 547 KB minified bundle, no source | 19.7 KB gzipped, everything — 27.8× smaller, both bundles measured |
| First paint at −85 dBm | 20–30 seconds | single-digit seconds, same link |
| Per-chip stats | chip attribution broken (chip_id always 0), chip temp always 0.0 | four real CYLINDERS — rolling per-chip hashrate + hw errors, web and screen |
| Reject reasons | collected by the firmware, never exposed — API always returns [] | listed by reason, as they happen |
| Autotune | a menu — gated off for every model it ships on | permanent closed-loop per-mode tuner with honest TUNING · TUNED · AT LIMIT states |
| Operating modes | three, no validated targets | five drive modes anchored in a measured sweep — live-switch, consent-gated past spec |
| Ethernet | not in its vocabulary | wired-first boot + live failover — verified by pulling the cable mid-mining |
| WiFi gone wrong | a failed join boot-loops — USB reflash to recover | setup AP + QR + captive portal; retries your WiFi every 3 min and self-heals |
| External calls | GitHub releases + a BTC price service | zero from the cockpit; the firmware's one call is NTP time sync, harmless offline |
| After an update | stale chunks — hard-refresh roulette | hashed immutable assets — a plain reload is always current |
320×170, four pages, one button to cycle them. Five-second ticks, Montserrat numerals, the same night-cockpit palette — and the red stays reserved for the painted band and the warnings. Thirty seconds idle on any page walks you back to RACE.
Plug it in and it reads the board it's on — chip count, power topology, voltage envelope, drive-mode targets — and adapts. The same cockpit, the same five modes, whether that's a Hammer, an Octaxe, a Nexus, or a NerdQAxe++. Nobody buys six screens.
4× BM1370
8× BM1370 · 12 TH
8× BM1370 · 9.6 TH
4× BM1373
4× BM1370 · 6 TH
4× BM1370 · 4.8 TH
Detection is automatic — no board-select, no config file. More boards land as they're validated on the bench; this list is what ships today.
The figures in this section are the Hammer BC04's — a 68-point measured V/f/temp sweep, every point applied live to real silicon, sampled by nonce count, guarded at 72 °C and 165 W. The guards never fired. Anchor points were then held for 30-minute validation runs and cross-checked against the pool's own API. Every board runs its own measured profile. To be precise about what the BC04 numbers cover: REDLINE ships at exactly its validated point; TURBO and NORMAL ship one conservative rung off theirs — deliberate margin the autotuner closes; ECO's point is a target the tuner hunts, not a validated run.
| Mode | Validated point | 30-min validation | Pool-side |
|---|---|---|---|
| Redline | 925 MHz · 5334 mV actual | 7.55 TH · 162.0 W · 21.47 J/TH · 58.8 °C | 0 invalid shares |
| Turbo | 875 MHz · 5172 mV actual | 7.22 TH · 139.0 W · 19.24 J/TH · 53.5 °C | 0 invalid shares |
| Normal | 750 MHz · 4719 mV actual | 6.08 TH · 95.4 W · 15.68 J/TH · 43.9 °C | 0 invalid shares |
| Eco | 600 MHz · tuner-held mV | target 4.8 TH at ≤14.48 J/TH — found and held live by the autotuner; the dial reads AT LIMIT if the room won't allow it. Not yet 30-min validated | — |
And a word about the tach: this is solo mining. The needle is real, the odds are long — block difficulty is measured in trillions, and every lap is a lottery ticket. The LAP RECORD page exists because the record is the point. The dashboard prints the odds instead of hiding them.
Everything the cockpit shows rides one JSON API on the miner itself — the dashboard has no private line. Poll it, script it, feed your own monitoring. It lives on your LAN and answers anything on it: no cloud, no keys, no SDK.
| Endpoint | What it does |
|---|---|
| GET /api/system/info | The whole dash in one JSON — raw hashrate, per-cylinder rates and hw errors, temp, power, shares with reject reasons, autotune state, uptime, link. The cockpit itself polls this every 5 s. |
| PATCH /api/system | Change what's running: drive mode (live, no reboot), fan, pool config, custom V/f. The mode buttons make exactly this call. |
| POST /api/system/restart | Pit stop — the chain re-enumerates and mining resumes in ~40 s. |
| POST /api/tune | Apply a live V/f point without persisting it — a crash recovers to safe settings. The 68-point tuning sweep ran through this endpoint. |
| GET /api/system/wifi/scan | Nearby networks, sorted by signal. |
| WS /api/ws | Pit radio — the live log stream over WebSocket. |
| GET /api/system/log/download | The log ring buffer as a file. |
Before you wire in: plain HTTP on your LAN, port 80 — no auth, no TLS, no SDK. hashRate is raw GH/s (÷1000 for TH/s); per-chip chipData[].hashrate is already TH/s. Most endpoints return HTTP 200 even on a logical error and put the real status in a code string — read the body. Drive modes: boot_mode 0 NORMAL · 1 TURBO · 2 CUSTOM · 4 ECO · 5 REDLINE; presets apply live, CUSTOM applies on restart, and the past-spec consent gate lives in the cockpit — the API assumes you meant it. Firmware v1.9.9-s3.
Examples are a Hammer BC04 (DeviceModel: "BC04", ASICModel: "BM1370"); on another board those fields, the chip count, and the mode targets reflect whatever's detected — a Nexus S1 reports BM1373, an Octaxe eight chips, and so on. The shape is identical.
The whole status contract; the cockpit polls it every 5 s. Values are raw. Note passwords come back in cleartext — keep this on a trusted LAN.
Abridged of a few always-constant fields. Units: hashRate GH/s, voltage/ current in mV/mA, top-level coreVoltage in 10-mV units (535 = 5.35 V) but autotune.coreVoltage in mV. Read reject reasons from message.
Send any subset — only the keys present are acted on. Presets switch live; CUSTOM (2) persists your V/f and applies on the next restart; pool changes hot-apply.
Unparseable/empty body → HTTP 400 {"code":"400","msg":"Invalid JSON"}.
Replies, waits 400 ms, then reboots — expect the socket to drop right after the reply. No body.
Applies to the running chain without writing NVS — a reboot restores stored settings. Note the key is voltage here, not coreVoltage.
Blocking scan (~1.5–2 s), up to 20 results, deduped by SSID (strongest kept).
authmode: 3 = secured (WPA2+), 1 = open.
Plain-text ESP-IDF log lines, newline-delimited — not JSON. On connect you get the last 400 lines replayed, then the live tail (flushed every 500 ms). Max 4 concurrent clients; frames you send are ignored.
The last up-to-400 log lines as text/plain (chunked, sent as an attachment). Same format as the WS stream.
The screen shows a QR. Your phone's camera joins the miner's own WPA2 setup network — no app, no account.
A captive portal pops on its own — a 2 KB setup page. No address to type (it's 192.168.4.1 if you want it anyway).
Pick your network, type its password, done. The miner reboots onto your WiFi and shows its new address on its screen.
It never boot-loops. Wrong password, dead router — the setup AP comes back, and the miner retries your stored WiFi every 3 minutes, so a router outage self-heals with no hands. USB is for flashing, not for rescue.
Prefer copper? The firmware boots wired-first — with a cable in, the WiFi radio never even initializes. Pull the cable mid-race and it walks to WiFi with a share gap under a minute; plug it back and the route returns to wired within seconds, WiFi kept as warm standby. Verified the honest way: by pulling the cable while it mined.
The kit is the controller: a 320×170 color dash with two buttons, preloaded with Team Redline firmware. Pull your miner's stock controller, drop this in, scan the setup QR, mine.
The Team Redline controller, flashed and ready — a drop-in replacement for your miner's stock controller.
It auto-detects the board on plug-in and adapts — chip count, power, mode targets. Six boards and counting; see the compatibility list.
Checking the grid…