Model review audits
Leaderboard / Silent Carrier

DeepSeek V4 Pro

DeepSeek Rank 14 of 14 Graded 17 Sep 2026 DM-1701 · HR-C6000 · AT1846S · STM32F405 · P25
Overall grade
F D C B A D 53 / 100

Right pivot. Wrong arithmetic.

DeepSeek V4 Pro gets the shape of the problem right. The sample source is the blocker, the manual and the stock analysis give I2S to an external codec, and the honest fix is the M17 discriminator tap with the C6000 left to drive the speaker. It is also the only audit to read the demodulator’s control loops: no frequency tracking, ad hoc timing gains of 0.5 and 0.001, no lock detection. Those quotes are exact. Then it is the only audit to find the repository’s own vocoder measurement and the only one to misread it.

4.36M instructions per 20 ms frame is 303% of what a 72 MHz core can issue in 20 ms, not the ~60% it reports, and the decoder it calls “at least as expensive” needs 11–16×. That slip turns the CPU wall into a margin and sends the plan to a 168 MHz clock and a polyphase resampler instead. The delivered file also carries a first draft, four pages of reasoning, and a retracted single most important code bug that was never a bug. 16 of 26 claims hold, which puts it at D.

Claims that check out
16 / 26
5 overstated, miscounted or miscited · 5 wrong
Decode-critical issues found
1 of 4
CPU miscounted; filters and the 8 kHz rule untouched
Its own CPU citation
303%
of the 20 ms budget; it read it as 60%
What the file contains
2 reviews
a draft, its reasoning, and a broken tool call

ConditionsClean room: a fresh copy of the repository (46eebda with its uncommitted changes, its own docs and the HR-C6000 manual) with no earlier reviews, reviewed by one model through an isolated agent harness with no network, skills or memory.

The run, not graded8 min · 16 agent steps · 41 tool calls · 17K output tokens · Alibaba Cloud Token Plan · interactive

Scorecard

How the 53 breaks down

Weights reflect the question asked: find what stops P25 decoding and say how to fix it. Accuracy carries the most weight because a wrong review does harm; coverage and root cause together outweigh it because an accurate review of the wrong things does not help.

Where the points went

The 100-point grade split into the rubric’s weighted slots: filled is earned, empty is lost, with the other models on this task for scale.

GPT-6 Astra
89/ 100
GPT-5.6 Sol
84/ 100
HY4 Preview
77/ 100
GPT-5.6 Luna
75/ 100
UNIONALPHA
74/ 100
Grok 4.6
70/ 100
Muse Spark 1.3 Contributor
68/ 100
DeepSeek V4.1 Flash
66/ 100
GLM 5.3
65/ 100
Gemini 3.8 Flash
64/ 100
Qwen3.8 Max
63/ 100
Qwen3.8 Flash
59/ 100
GLM 5.3 Flash
56/ 100
DeepSeek V4 Pro
53/ 100
  • 1Accuracy & evidence30 pts
  • 2Coverage of decode problems25 pts
  • 3Root cause & prioritisation15 pts
  • 4Fix plan & acceptance gates15 pts
  • 5Originality & attribution10 pts
  • 6Clarity & calibration5 pts
Accuracy & evidence30% of the grade
6018.0 pts

16 of 26 claims hold, and its reading of the demodulator’s loops is exact. Five are wrong, including the arithmetic on its own CPU citation, a “no raw 4FSK modem mode” that the manual contradicts, and a NID bug it retracts four pages later inside the same file.

Coverage of decode problems25% of the grade
338.3 pts

Finds the microphone question, the discriminator tap, the clock contention and the demodulator’s missing frequency tracking, and reaches for a measured vocoder figure. It never looks at the inherited filters, the capture export, the parser, starvation or the 8 kHz rule.

Root cause & prioritisation15% of the grade
649.6 pts

Puts the sample source first and the hardware tap as the answer, which is the right pivot. But it rests that on a wrong claim about the chip’s modem, never touches the analog filtering, and downgrades the vocoder to “marginal”.

Fix plan & acceptance gates15% of the grade
609.0 pts

The first two steps, the acceptance test then the tap, are the right ones. The five that follow spend the effort on a 168 MHz clock, a polyphase resampler, fixed-point conversion and a Gardner loop, while the de-emphasis, the broken capture export and the vocoder go unfixed.

Originality & attribution10% of the grade
626.2 pts

The control-loop critique is new: no other audit read the timing loop or noticed the missing AFC. Most of the rest restates the manual, the stock report and the bring-up log, and one of its own citations points at a document that isn’t in the tree.

Clarity & calibration5% of the grade
482.4 pts

The final review is well organised, but it is delivered inside a file that also holds an earlier draft, four pages of “wait, I misread” reasoning, and an unterminated tool-call block. A reader meets a retracted critical bug before the real review.

Weighted total 53, grade D. Grade scale: A ≥ 90 · B 80–89 · C+ 75–79 · C 70–74 · C− 65–69 · D 50–64 · F < 50
Headline findings

Six things to know about this review

Holds up

It names the blocker and the honest fix

The manual gives I2S to an external codec or vocoder and ends FM receive at the speaker; the stock firmware uses 0xE0=0xC9 in the speaker path; the firmware itself prints source=UNVERIFIED. So the samples are most likely microphone audio, and a stable clock is not the right signal. Its answer is the M17 tap from AT1846S pin 9 to an MCU pin, with the C6000 left to drive the speaker, run only after the carrier-keyed acceptance test confirms the source.

manual §4.5, §6 · analysis/stock-p25/REPORT.md:175–176 · p25mon.c:519 · STAGE3-BRINGUP.md:134

New reading

It is the only audit to read the control loops

Nobody else opened the timing recovery. It quotes the loop exactly — first = next_sample + 0.5·delta, period += 0.001·delta — and notes there is no proportional-integral design and no out-of-lock detection, so a phase wrap past half a symbol tracks silently. It also finds there is no frequency tracking at all: one DC estimate per window against PLLs that drift. Both check out in the source, along with its list of the float operations in the hot path.

p25_4fsk.c:162, 187–210, 236–241

Critical error

It misreads its own CPU measurement by five times

It is the only audit to find the repository’s measured vocoder number: the IMBE encoder at 4.36M instructions per 20 ms frame. A 72 MHz core issues about 1.44M in that time, so the figure is 303% of the budget. The review calls it “~60% of the 72 MHz budget” and concludes the budget is “marginal”. Emulated, the decoder it calls “at least as expensive” needs 11–16× the CPU. The arithmetic it had in hand was the wall it missed.

STAGE4-TX-FEASIBILITY.md:36 · mbelib.c:306 · Core/Src/main.c:269–274

Critical error

Two premises that send the work sideways

“No documented raw 4FSK/C4FM modem mode” is how it rules the chip out. Manual §5.4.6 documents exactly that: one-layer mode demodulates 4FSK and stores 36 bytes per frame in receive RAM, which is 4,800 symbols per second, P25 Phase 1’s own rate. And it calls the linear resampler unfit for production. Rerun through the firmware’s own resampler, 24 kHz decodes the same frames as a direct 38.4 kHz path, with equal or fewer symbol errors and images 41 dB down.

manual 2552–2638 · p25_resample.c · resampler_check.py

Wrong

A retracted “most important bug” ships in the file

Four pages of the delivered review argue that the NID parser collects only 22 of the 32 dibits the BCH decoder needs, and call it “the single most important code bug found”. The parser packs 32 of 33 dibits and skips only the status symbol, so the full codeword arrives. The review works this out itself and retracts it — in the same file, after the reader has read it, along with an unterminated tool-call block wrapping the final review.

p25rx.c NID parser · DEEPSEEKV4PRO_REVIEW.md lines 288–512

Major gap

The front end and the instruments go unexamined

It never opens the analog chain: no 0x34, no de-emphasis, no AT1846S filter set, though de-emphasis alone leaves 0 of 180 frames in the model. It never opens the diagnostics either: the capture export that ships the wrong halfwords, the parser that passes incomplete streams, the starvation counter that never counts. It also cites P25-HARDWARE-REVIEW.md as agreeing with it. That file is referenced by the README but is not in the tree.

HR-C6000.c:2851 · AT1846S.c:191–217 · p25mon.c:123, 460–466 · README.md:157

Claim check

26 claims, checked one by one

16 hold, 5 overstated, miscounted or miscited, 5 wrong. Each claim was checked at the lines it cites.

Every claim and its verdict 
  • Holds
  • Qualifiedoverstated, miscounted or doubtful
  • Wrong
DeepSeek V4 Pro26 claims checked

16 hold · 5 qualified · 5 wrong · 62% hold

Decode-critical issues

Found 1 of 4

The audits track 4 issues that stop this radio decoding P25. This review: CPU miscounted; filters and the 8 kHz rule untouched. How the review treated each, from the provenance table:

IssueDeepSeek V4 Pro
The I2S stream is most likely microphone audio raised§1–§2, with the tap as the fix
HR-C6000 de-emphasis on the capture path absent
AT1846S FM filters, low-frequency bit, 25 kHz absent
Manual: I2S frame clock “must be 8KHz” absent
Vocoder needs 11–16× the 72 MHz CPU partlycites 4.36M, calls it 60%