-
v1.36.0
StableAll checks were successfulCI / Rust clippy (push) Successful in 2m2sCI / Rust fmt (push) Successful in 1m15sCI / Rust test (push) Successful in 6m10sCI / UI (SvelteKit) (push) Successful in 1m20sCI / Security Audit (push) Successful in 1m20sdocs / build (push) Successful in 38sRelease / Docker Multi-Arch (push) Successful in 24m16sRelease / Binary aarch64-unknown-linux-gnu (push) Successful in 12m3sRelease / Binary x86_64-unknown-linux-gnu (push) Successful in 10m53sRelease / Linux .deb + .rpm (amd64) (push) Successful in 2m6sRelease / Linux .deb + .rpm (arm64) (push) Successful in 1m52sRelease / Linux AppImage (aarch64) (push) Successful in 27sRelease / Linux AppImage (x86_64) (push) Successful in 27sRelease / Cosign sign artifacts (push) Successful in 28sRelease / Forgejo Release (push) Successful in 38sreleased this
2026-10-03 06:41:11 +00:00 | 136 commits to main since this releaseCalibration by button for dvb-WarpTune. Calibration only ever lowers the
core voltage below the hand-tuned point at the same frequency, so a miner
never draws more power than there. Each voltage is judged on one window of
200 pool shares, which still varies by several percent: a good voltage can
occasionally fall short, and calibration then keeps more voltage, never
less. A confirmation window near the floor and per-chip checks follow in a
later release.Added
- dvb-WarpTune:
chip_error_trigger(under[defaults]or per miner)
turns off the step-down and the up-hold on the firmware's chip error
rate. WarpAxe v0.1.11 reports an instant value with a counter-restart
spike after voltage writes and a BM1373 baseline of 5–8 %; with the
trigger on, a healthy NerdAxe Gaia was walked from 400 to 320 MHz.
Default on. The journal keeps the reading either way, and WarpTune
prefers WarpAxe's 1-minute rate (errorPercentage1m, v0.1.12) over
the instant value. - Devices page: calibration by button ("Einmessen"). Logged in, every
device WarpTune controls live gets Start calibration; the sidecar then
measures the miner's Eco step and its Max step (the hand-tuned point)
one after the other — the reference voltage first, on 200 pool shares,
then 10 mV less at a time until a step falls short — about 6–8 hours,
the miner keeps mining. The card shows the stage, the voltage under
test, the shares counted, the time left and a progress bar, with Pause
and Stop; at the end the voltage found per step against the reference
with the measured power and pool-side hashrate, and Apply / Discard.
Nothing changes before Apply; the hand-tuned point stays the ceiling
and the restore point. No button on an Avalon, on maker presets (BitForge
Nano), in dry run or without a pool feed — the line says why. Eight
languages, phone layouts. - Command path pool → WarpTune:
POST /api/admin/tune/calib(admin only,
audit actiontune.calib.<action>) forwards start / stop / pause /
resume / apply / discard to the sidecar's newPOST /calib/{host}/{action},
guarded by a shared key:[mining.tune] token_envon the pool and
sidecar.control_token_envin warptune.toml name the same environment
variable — or the key is entered under Admin → Profile → dvb-WarpTune
coupling and stored insecrets.toml(tune_token), the way for
Umbrel. Without the key the sidecar refuses every command; the
snapshot stays readable.scripts/setup-warptune.shexports
warptune-control-tokento the service asWARPTUNE_TOKEN. - WarpTune: the calibration job pins the miner to the stage's step (energy
mode and the PV budget pause, every guard stays on and ends the stage),
journals every state change and continues after a restart of the
service where it was — the open voltage step keeps the shares it had
already counted (journalsamples now carry the share difficulty).
Applied voltages are journaled and become the step voltages from then
on, also after a restart; a reboot that puts the hand point back is
followed by a step down to the calibrated voltage once settled.
[defaults] calib_max_steps(6) andcalib_timeout_s(4 h) bound a
stage; a reference that is short of good ends its stage without a
result. A failure the regulator's guards call on the firmware's
reading, short of the 200 shares a verdict needs, does not end a stage
(the voltage is held off and tried again; a second failure there, or a
share-based one, does), and a stage that times out below a good
voltage ends with that voltage. - WarpTune, calibration: Apply takes each found voltage over with a
reserve —[defaults] calib_margin_mv, 20 mV by default, never above
the stage's reference (the lowest good voltage sits one step above a
failure; the reserve is the headroom). The result rows on the devices
page show both ("1200 → 1180 mV, takes over 1200 mV (+20 reserve)"),
the journal'sCalibAppliedline carriesfoundnext topoints. - WarpTune: a calibrated voltage is re-adjusted in operation. When a
calibrated step falls short of good on the pool's shares (200 under the
bar, or clearly under it sooner; too many rejects count too), the
regulator raises that step's voltage by 10 mV, up to the reference, and
journals it as the new calibrated voltage instead of only stepping the
frequency down. Heat, current, dead chips and the firmware's own stops
keep their frequency downs. - WarpTune: the chip error rate lines are per miner —
error_down_pct
(step down, default 2 %) anderror_up_max_pct(hold the way up and
"short of good", default 1 %) under[defaults]or per[[miner]]; a
BM1373 (NerdAxe Gaia) runs a healthy baseline of 5–8 %. The trigger acts
on the firmware's 1-minute rate only (errorPercentage1m, WarpAxe
≥ 0.1.12; the instant value is journaled, never acted on), not within
60 s of a point change, and steps down on two decisions in a row. - WarpTune: the journal memory of a host (steps judged healthy, voltage
verdicts, core currents, calibrated voltages) ends at a firmware change
of family or major (BitMaker → WarpAxe) with adevice_changedline,
as it does at a board swap; an update inside the family keeps it. - WarpTune: an invariant test runs the regulator over a grid of
temperatures, hashrate ratios, error rates, input voltages and core
currents in every mode and checks each point change against the
window's top, the ladder cap, the hand voltage, a calibrated voltage,
the restore point and the Eco cap.
Fixed
- Devices page: the running voltage search no longer reads
"Calibrated" — that word belongs to the calibration by button. The line
now says Voltage checked, the voltage found against WarpTune's table
voltage for the step ("needs 960 mV (table 940)" / "runs at the table
voltage") and why: the voltage that failed below it with its chip error
rate and the rate now ("at 950 mV too many chip errors (4.6 %, now
3.3 %)"), or "hashrate too low" where the firmware counts no errors.
The power figure is marked as an estimate; the pool-side hashrate, a
snapshot unrelated to the voltage, is gone from the line. WarpTune
journals the chip error rate with every trial verdict
(error_pct); older lines give it from their reason text. - WarpTune, Eco: a step was judged on one J/TH reading against the
all-time minimum of every sample it had ever produced; the firmware's
10-minute average overshoots by 10–15 % now and then, so the minimum
was a bar every later reading failed. A Gamma walked 525 → 400 MHz on
2026-09-30 and saw-sawed 525 ↔ 500 all morning on 2026-10-01 (thirteen
writes in 100 minutes against a breaker of twelve an hour), a
NerdQAxe++ 600 ↔ 590, a Gaia 350 ↔ 340. A step's efficiency is now the
settled mean of its readings with the hashrate capped at the expected
rate, fresh for an hour; Eco leaves a step after three decisions in a
row and only for a step that can be better (measured better, or less
core voltage), and the way back up stays closed while the worse reading
is fresh. - WarpTune: the shutdown restore is written also after live control was
switched off; the miner used to stay on whatever point the last write
left it at, and the next start took that for the hand point (Gaia
2026-09-30: breaker at 320 MHz, restore point 400 → 320). A start
withoutstockwarns when the point it finds differs from the last
start's restore point.stockis range-checked and capped at the
ladder's voltage ceiling;voltage_max_mvcaps the ladder curve also
without a trial;voltage_min_mv/voltage_max_mvare checked whether
the trial is on or not;ladder_cap_mhzmay go down to 200;
calib_max_steps,calib_timeout_sandcalib_margin_mvare
range-checked. - WarpTune, calibration: with
voltage_trialon, the step voltage came
from the trial memory (the search's own verdicts, one reserve below the
applied voltage) and the re-adjustment was off; the Octaxe's 700 MHz
would have run at the found 1180 mV instead of the applied 1200, and
the trial would have probed below it again. A calibrated step is
written at its calibrated voltage, the trial does not go below it, the
raise works with a window; only a running job searches below. - WarpTune: a write that failed with an HTTP error was never retried for
a non-urgent decision (the proposal counted as "unchanged"); live-off
mid-calibration left the job running with its writes dropped (it is
stopped and journaled now); a dead chip that does not come back was
rebooted every three minutes until the write breaker tripped (the
fourth restart within an hour switches live control off). - WarpTune, calibration: a non-urgent move off the pinned step did not
end the stage (it waited for a step just marked unstable, up to the
timeout); any Down or Restore off the step ends it now, the trial does
not give a pinned step up, and a reference short of good on the way back
up ends the stage with the lowest good voltage. A stage starts without
the trial's failure holds at its frequency (a 92 % error spike after a
write had held 1200 mV off for an hour); the timeout clock continues
across a restart; with 200 shares counted the hashrate reading no
longer gates the verdict (WarpAxe 0.1.12 moves 1–3 % per five minutes
whatever the point does). - WarpTune: the core current measured on a step is tied to the voltage
it was measured at (journaled with it); a reading at another voltage
is scaled and held under 97 % of the warn line, and a higher step
bounds a lower one only at a voltage at or above the target's. - WarpTune, voltage trial: an early "short of good" call on fewer than
200 shares has to beat the share count's own noise (two standard
deviations, 2/√n) as well as the fixed 10-point gap. Forty shares read
±16 %, and a VarDiff move right after a voltage write skews the first
minutes further: the Octaxe's 650 MHz @ 1200 mV was failed twice at
77 % and 83 % on 41 shares while the reading said 97–98 % and 1210 mV
booked 98–101 % on 203 (2026-10-01). The verdict text names the
1-minute error rate, not the instant value. - WarpTune, calibration: a stage's result is the lowest voltage judged
good strictly above the highest voltage judged bad, and a voltage good
once and bad on a second measurement counts as bad. The old rule
looked for a good verdict exactly one step above the failure and found
none when the step above had been overturned; the Octaxe's run of
2026-10-01/02 (Eco good 1210…1160, 1150 bad, 1160 bad again; Max good
1210…1170, 1160 and 1170 bad) ran on in both stages until a guard
stepped the miner off and failed the whole job without a result. A
guard that ends a stage after good voltages were measured now ends it
with their result (Eco 1170 → 1190 with the reserve, Max 1180 → 1200
on that run); only a stage without one fails. A reference that is
short of good on the way back up has no result above it and fails. - WarpTune, command path: a calibration command the miner loop has not
picked up within 60 s is dropped (a Start must not fire hours later when
the device answers again), and a command against a miner entry older
than 90 s is refused with 409. A finished job leaves the snapshot after
a day, so the regulator's own trial line shows again. - WarpTune, calibration: a stage's reference (and a search step on the
window's floor) no longer waits for a trial verdict the regulator only
reports when it is news to its trial memory. The Octaxe's re-run on
2026-10-01 sat on the Eco reference for 1.5 h: 650 MHz @ 1210 mV had
been read back from the day before's verdicts, the point was judged
healthy at 08:12Z and no verdict followed. The stage now takes the
regulator's share vote directly. - Devices page, calibration: the progress line names the stage as "Eco
step (1/2)" / "Max step (2/2)", so a finished first stage no longer
reads like a finished calibration. - UI translations (es, fr, it, ja, pt-BR, zh): the three list pages carry
one name each, the same in the menu and as the page title (wallets,
Stratum logins, devices); in Spanish, Japanese and Chinese two pages had
shared a title, in Italian the menu item for the logins was named like
the devices page. The size profiles are translated (es, fr, ja still
showed the German "Klein / Mittel / Gross"). - Header: the nav takes its own line whenever it does not fit beside the
logo and the status pills, measured from the items themselves. A fixed
breakpoint at 1100 px let the nav slide under the pills at wider
windows, logged in and in German. - Admin → Notifications: the HTTP notice keeps its distance from the
status row below and its badge sits at the first line. - Devices page: the WarpTune tooltip line for the PV surplus budget shows
the watts instead of a literal{w}(placeholder written with single
braces).
dvb-WarpPool v1.36.0 — Downloads
Docker
git.warppool.org/dvb-projekt/dvb-warppool:v1.36.0(multi-arch amd64+arm64, ohne v-Präfix)Native packages
- Linux .deb: amd64 + arm64 →
apt install ./dvb-warppool_*.deb - Linux .rpm: amd64 + arm64 →
dnf install ./dvb-warppool-*.rpm - Linux AppImage: x86_64 + aarch64 portable
- Linux tarballs: x86_64 + aarch64 for manual installs
- macOS .dmg: added shortly after publish (built separately) — or build from source
- Windows .msi: paused since the forge migration (no Windows runner yet)
Signatures
SHA256SUMS+ cosign bundle (SHA256SUMS.bundle, project key)- SBOM (SPDX) for all dependencies
Verify (project public key
cosign.pubin the repo root):cosign verify-blob \ --key cosign.pub \ --bundle SHA256SUMS.bundle \ SHA256SUMS sha256sum --check SHA256SUMSFirst-time setup: run
dvb-warppool-setupfor the first-run wizard.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- dvb-WarpTune: