The miner is a machine. Drive it.
Team Redline replaces the BC04's stock controller with a screen, a cockpit, five drive modes and a closed-loop autotuner — 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.
The specs on this page come from 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. To be precise about what that covers: 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. |
hashRate is raw GH/s — the headline dial's round-up never touches the API. Drive modes: boot_mode 0 NORMAL · 1 TURBO · 2 CUSTOM · 4 ECO · 5 REDLINE. One honest caveat: the past-spec consent gate lives in the cockpit — the API assumes you meant it.
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 the BC04's stock controller, drop this in, scan the setup QR, mine.
The Team Redline controller, flashed and ready — a drop-in replacement for the Hammer BC04's stock controller.
Hammer BC04 · 4× BM1370. Hashboard auto-detection is in development — one screen, many miners.
Checking the grid…