Verdict: 5 of 6 mechanisms fixed. 1 new failure — and it sits on the golden runs that never failed once in Chapter 2.
v4 → v5 paired comparison · 384 runs · 4 fixes applied · 1 regression surfaced
Diff table — 4 buckets
Fix confirmation — before/after
Fix 1: Active probing — motor_driver_open standby channel
| v4 | v5 | |
|---|---|---|
| ECU-B (standby) detection | 0/18 (blind) | 18/18 |
| Coverage | 50% | 100% |
| Detection timing (ECU-B) | — | 50–104 ms (mean 94 ms) |
Mechanism: periodic 50 ms diagnostic pulse on standby motor; 2-probe debounce. Detection is not instant — requires at least one full probe cycle.
Fix 2: Drift monitor retune — torque_sensor_drift threshold
| v4 | v5 | |
|---|---|---|
| Threshold | 0.15 N·m | 0.06 N·m |
| Mild detection time | 210–230 ms (all 12 breach 150 ms) | 83–116 ms |
| Mild FTTI pass (150 ms gate) | 0/12 | 12/12 |
| Moderate detection time | 110–130 ms | 55–68 ms |
Fix 3: Bias monitor sensitivity — angle_sensor_bias threshold
| v4 | v5 | |
|---|---|---|
| Threshold | 0.80 deg | 0.40 deg |
| Mild detected | 8/12 (4 misses: 2 urban, 2 park) | 12/12 |
| Coverage | 88.9% | 100% |
Fix 4: B-channel recalibration + settling
| v4 | v5 | |
|---|---|---|
| Handover RWA failures | 18/48 | 0/48 |
| Max deviation | 8.81 deg | 0.15 deg |
| Settling time | 20–30 ms + 3×error | 15–25 ms (pre-loaded integral) |
Mechanism: b_sensor_gain forced to 1.0; B controller pre-loads integral state from standby tracking.
The regression
4 golden runs went green → red
The most stable tests in the entire campaign — fault-free baselines that passed every metric in Chapter 2 — now throw false alarms in v5.
Root cause
| Affected runs | gld_001, gld_002, gld_003, gld_004 |
| Operating point | High-speed only (120 kph). Urban and park golden runs are clean. |
| DTC that fires | torque_sensor_drift (both A and B channels simultaneously) |
| Source fix | Fix 2 — drift monitor threshold lowered from 0.15 → 0.06 N·m |
| Physical cause | At 120 kph, combined tire-road coupling noise (5–70 Hz) produces torque feedback peaks exceeding 0.06 N·m for sustained periods (>25 ms), tripping the debounce window. At 50/5 kph, amplitude is well below threshold. |
| Real fault present? | No. These are fault-free baseline runs. The alarm is false. |
Why this matters
A human cannot compare 384 test pairs by hand. These 4 false alarms hide inside thousands of passing results. They land on the golden runs — the most stable tests in the whole campaign. Automated paired-run diffing catches it in minutes.
Acceptance verdict
5 of 6 mechanisms fixed. 1 new failure — and it sits on the golden runs that never failed once in Chapter 2.
The retuned torque_sensor_drift monitor (Fix 2, threshold 0.15 → 0.06 N·m) now trips on normal high-speed road/tire noise. The fix that closed 12 timing breaches opened 4 false alarms on the most stable tests in the campaign.
Analysis performed on paired ground-truth timing data from v4 (sbw_ch2) and v5 (sbw_ch3) datasets. 384 runs × 5 sources × 2 versions = 3,840 files compared.
All data in this series is synthetic, generated to mirror a real steer-by-wire validation program. No customer data is used.
Next in the series: the noise filter fix, where the change that clears every gate turns out to have quietly eaten the detection margin. If your regression diff still lives in spreadsheets, we would like to talk: founders@movedot.com, or www.movedot.ai.
