When a weak signal gets decoded, it is the software doing it, not the radio. Four FT8 decoders — Decodium 1.0.611, JTDX 2.2.159, WSJT-X 3.2.0 and MSHV 2.76.5 — were pointed at the same antenna and the same audio feed on 7.074 MHz, and left to decode the same air for 70 minutes. Nothing about the antenna, the radio, or the band changed between them: whatever difference showed up came from the decoding software alone.
Method
All four applications ran at the same time against one shared soundcard input. For every 15-second cycle, the decoded message text logged by each app was pulled from its own ALL.TXT, de-duplicated, and compared as a set of unique messages — not as a raw line count, since Decodium's own log writes each decode twice (a known quirk, collapsed out before counting).
Four rounds ran over roughly 70 minutes: a baseline round with every app on its stock settings, then three rounds after JTDX, WSJT-X and MSHV were each raised to the deepest search settings this trial could find in their configuration files. Decodium's settings were never touched, at any point. The fourth round was taken 40 minutes after the second, specifically to see whether the margin would settle down with time.
| Application | Decodes | Per cycle | vs Decodium |
|---|---|---|---|
| Decodium | 896 | 40.7 | — |
| JTDX | 616 | 28.0 | +45.5% |
| WSJT-X | 541 | 24.6 | +65.6% |
| MSHV | 46 | 2.1 | +1839% |
| Application | Decodes | Per cycle | vs Decodium |
|---|---|---|---|
| Decodium | 850 | 31.5 | — |
| JTDX | 668 | 24.7 | +27.2% |
| WSJT-X | 650 | 24.1 | +30.8% |
| MSHV | 78 | 2.9 | +989% |
| Application | Decodes | Per cycle | vs Decodium |
|---|---|---|---|
| Decodium | 1526 | 37.2 | — |
| JTDX | 1042 | 25.4 | +46.4% |
| WSJT-X | 965 | 23.5 | +58.1% |
| MSHV | 139 | 3.4 | +998% |
| Application | Decodes | Per cycle | vs Decodium |
|---|---|---|---|
| Decodium | 1872 | 43.5 | — |
| JTDX | 1224 | 28.5 | +52.9% |
| WSJT-X | 1167 | 27.1 | +60.4% |
| MSHV | 184 | 4.3 | +917% |
Decodium's own count moved with the band, not with anything on its side: 40.7, then 31.5, then 37.2, then 43.5 decodes per cycle, with nothing ever changed in its settings. Round 2's narrower margin looks less like an effect of raising the competitors' settings and more like a quieter five minutes on the band — and Round 4, forty minutes later under the same settings, produced the widest JTDX margin of the night. The lead never settled to one number.
What changed between Round 1 and Round 2
Every other app's own configuration file, edited with the app closed and reopened to confirm the change survived. Decodium was left untouched throughout.
JTDX
NDepth was already at 3 (max). Aggressive and NFT8Cycles were raised to match WSJT-X's own values — the only evidence available for their ceiling.
WSJT-X
FT8AP, Aggressive (5), NDepth (3), FT8Sensitivity (3) and NFT8Cycles (3) were already at their apparent maximum once the app had written its live settings back to disk on a clean close.
MSHV
dec_depth and ap_decode were already at 3 and 1 for FT8. Deep search was the one relevant knob found off. MSHV runs elevated on this machine and had to be closed and relaunched by the operator.
A later check — 18.100 MHz, midday
A different band and a different time of day, run hours after the four rounds above, included specifically to answer one question: has MSHV caught up? It is not comparable in absolute terms to Rounds 1–4.
| Application | Decodes | Per cycle | vs Decodium |
|---|---|---|---|
| Decodium | 955 | 53.1 | — |
| MSHV | 605 | 33.6 | +57.9% |
| WSJT-X | 588 | 32.7 | +62.4% |
| JTDX | 559 | 31.1 | +70.8% |
Decodium's lead held, same as every round the night before. The real change is further down the table: MSHV is no longer the outlier. It edged out both WSJT-X (+2.9%) and the just-restarted JTDX (+8.2%), sanity-checked by message overlap with Decodium (36 of 43 MSHV messages in a sample cycle matched exactly). Three apps now sit within 9% of each other — only Decodium stands apart, by more than 55% over all three.
An earlier attempt at this same check (12:23–12:33 UTC) had to be discarded: JTDX's own log had gone silent at 10:42 UTC and stayed at zero for almost two hours despite the process staying alive — a stall, not a reception result. It was restarted before the run above.
The limits of this test
Verdict
Decodium held a positive, repeatable lead over both JTDX and WSJT-X in all four rounds, even after those two were raised to the deepest search settings this trial could find. The size of that lead did not settle: +27% to +53% against JTDX, +31% to +66% against WSJT-X, depending on which few minutes of band noise the window happened to catch. Round 4 — run specifically to test whether the narrower Round 2 margin would hold — instead produced the widest JTDX margin of the night, which argues against a genuine settling effect from the settings change.
133 cycles across four rounds is enough to say the lead is real; it is not enough to quote a single number with confidence. A longer trial — thirty minutes to an hour in one continuous run, ideally spanning a full band opening — is the next step before treating any one figure as the answer.
fastldpc, Decodium's own LDPC decoder, is a separate piece of work already documented at ft2.it/fastldpc; this shootout measures the full decoding chain end to end, not one component in isolation.
73 de Martino IU8LMC