Every teardown scraps a unit.
Failures are few. Open one without a question and it's gone for nothing.
AI failure analysis for hardware
A lamp glows dim on one side, only on cold mornings. The issues list blames the LED lot. Closeout read 5,313 raw log rows, asked for one test, scrapped nothing, and proved the cause. Then it wrote the fix.
Yield drops. An issue opens. The blame moves down the line.
Failures are few. Open one without a question and it's gone for nothing.
Logs in one system. FA reports in another. The change log in an inbox. Nobody reads them together.
A lot gets swapped. The weather warms up. Yield recovers. Nobody knows if the fix worked.
480 units. 8 stations. 3 days. No summary and no hints. The model reads every raw row in one call. Code computes every rate.
unitU0006ts2026-10-27T06:25:00stationS1-shellopOP-3a1eventassembleresultokambient_c21.2unitU0006ts2026-10-27T06:29:00stationS2-pcbaopOP-3a1eventplaceresultokdriver_reelDRV-A-R3unitU0006ts2026-10-27T06:32:00stationS3-screwsopOP-e58eventscrewdriveresultoktorque_ncm27.7unitU0006ts2026-10-27T06:35:00stationS4-speaker-hapticopOP-2d9eventplaceresultokunitU0006ts2026-10-27T06:37:00stationS5-batteryopOP-3a1eventfitresultokunitU0006ts2026-10-27T06:41:00stationS6-dome-bondopOP-3a1eventbondresultokfixtureF2dome_offset_mm0.073led_lotL-2604unitU0006ts2026-10-27T06:44:00stationS7-flash-calopOP-3a1eventflash_calresultokfw1.4.2calwrittenboot_ms50unitU0006ts2026-10-27T06:46:00stationS8-functional-packopOP-2d9eventtesttestT-OPT-01cameraCAM-2uniformity0.036limit0.05resultpassunit_temp_c22.2unitU0006ts2026-10-27T06:47:00stationS8-functional-packopOP-2d9eventtesttestT-TCH-01nestN2baseline_drift8limit30resultpassunitU0006ts2026-10-27T06:48:00stationS8-functional-packopOP-7c2eventtesttestT-AUD-01snr_db24.5limit18resultpassunitU0006ts2026-10-27T06:49:00stationS8-functional-packopOP-7c2eventtesttestT-PWR-01rail_mv3285resultpassunitU0016ts2026-10-27T07:15:00stationS1-shellopOP-2d9eventassembleresultokambient_c19.7unitU0016ts2026-10-27T07:19:00stationS2-pcbaopOP-7c2eventplaceresultokdriver_reelDRV-A-R3unitU0016ts2026-10-27T07:22:00stationS3-screwsopOP-7c2eventscrewdriveresultoktorque_ncm28.9unitU0016ts2026-10-27T07:25:00stationS4-speaker-hapticopOP-3a1eventplaceresultokunitU0016ts2026-10-27T07:27:00stationS5-batteryopOP-7c2eventfitresultokunitU0016ts2026-10-27T07:31:00stationS6-dome-bondopOP-e58eventbondresultokfixtureF2dome_offset_mm0.056led_lotL-2604unitU0016ts2026-10-27T07:34:00stationS7-flash-calopOP-91feventflash_calresultokfw1.4.2calwrittenboot_ms50unitU0016ts2026-10-27T07:36:00stationS8-functional-packopOP-7c2eventtesttestT-OPT-01cameraCAM-2uniformity0.211limit0.05resultfailunit_temp_c20.7unitU0016ts2026-10-27T07:37:00stationS8-functional-packopOP-b04eventtesttestT-TCH-01nestN1baseline_drift14limit30resultpassunitU0016ts2026-10-27T07:38:00stationS8-functional-packopOP-b04eventtesttestT-AUD-01snr_db23.1limit18resultpassunitU0016ts2026-10-27T07:39:00stationS8-functional-packopOP-e58eventtesttestT-PWR-01rail_mv3307resultpassunitU0016ts2026-10-27T08:24:00stationS8-functional-packopOP-91feventretesttestT-OPT-01cameraCAM-2uniformity0.209limit0.05resultfailunit_temp_c22unitU0037ts2026-10-27T09:04:00stationS2-pcbaopOP-7c2eventplaceresultokdriver_reelDRV-A-R2unitU0037ts2026-10-27T09:07:00stationS3-screwsopOP-7c2eventscrewdriveresultoktorque_ncm28.3unitU0037ts2026-10-27T09:10:00stationS4-speaker-hapticopOP-3a1eventplaceresultokunitU0037ts2026-10-27T09:12:00stationS5-batteryopOP-91feventfitresultokunitU0037ts2026-10-27T09:16:00stationS6-dome-bondopOP-91feventbondresultokfixtureF2dome_offset_mm0.044led_lotL-2604unitU0037ts2026-10-27T09:19:00stationS7-flash-calopOP-91feventflash_calresultokfw1.4.2calwrittenboot_ms50unitU0037ts2026-10-27T09:21:00stationS8-functional-packopOP-e58eventtesttestT-OPT-01cameraCAM-2uniformity0.236limit0.05resultfailunit_temp_c20.4unitU0037ts2026-10-27T09:22:00stationS8-functional-packopOP-91feventtesttestT-TCH-01nestN2baseline_drift12limit30resultpassunitU0037ts2026-10-27T09:23:00stationS8-functional-packopOP-7c2eventtesttestT-AUD-01snr_db25.8limit18resultpassunitU0037ts2026-10-27T09:24:00stationS8-functional-packopOP-2d9eventtesttestT-PWR-01rail_mv3306resultpassunitU0037ts2026-10-27T10:09:00stationS8-functional-packopOP-3a1eventretesttestT-OPT-01cameraCAM-2uniformity0.204limit0.05resultfailunit_temp_c22unitU0046ts2026-10-27T09:45:00stationS1-shellopOP-e58eventassembleresultokambient_c18.9unitU0046ts2026-10-27T09:49:00stationS2-pcbaopOP-91feventplaceresultokdriver_reelDRV-A-R1unitU0046ts2026-10-27T09:52:00stationS3-screwsopOP-7c2eventscrewdriveresultoktorque_ncm28.2unitU0046ts2026-10-27T09:55:00stationS4-speaker-hapticopOP-e58eventplaceresultokunitU0046ts2026-10-27T09:57:00stationS5-batteryopOP-e58eventfitresultokunitU0046ts2026-10-27T10:01:00stationS6-dome-bondopOP-b04eventbondresultokfixtureF2dome_offset_mm0.032led_lotL-2604T-OPT-01 failure rate, split by code
first-pass failures passed on retest. A warm retest hides the bug, so the yield report looks better than the line.
LED lot L-2604 issued to S7 kitting.
LED lot L-2611 received. IQC sample of 32 passed.
ECN-0417: second-source LED driver DRV-B approved; mixed with DRV-A from today.
HVAC fault on line 2. Morning ambient below spec until repair.
S6 fixture F2 preventive maintenance overdue (scheduled 2026-10-24).
S7 flashing fw 1.4.2 (unchanged since EVT1).
Muse Wonder proposes the causes. SubQ Snap 1.1 scores them and picks the cheapest test that splits them. The finding goes back in. Gemini 4 Argon tries to break the answer blind. Repeat until one cause holds.
Next test · scraps nothing · 3 h
Booted at 8 C with a logic analyser on the LED driver. Driver ready at 188 ms. Firmware calibration write at 50 ms: NACK. Uniformity 0.199.
Every round, in full
Bars are scores from the scorer, not probabilities. The tick at 0.85 is the confirm threshold. Tap a cause for its evidence.
Why this oneTests H6; scraps 0 unit, 3 h.
Booted at 8 C with a logic analyser on the LED driver. Driver ready at 188 ms. Firmware calibration write at 50 ms: NACK. Uniformity 0.199.
Once H7 holds, Muse Wonder writes the firmware patch. Compiled C judges it. A failed check sends it back.
The patch model saw
It never saw
--- firmware.c (shipped)+++ firmware.c (attempt 2)@@ -3,10 +3,28 @@ #define CAL_TARGET 42 int fw_calibrate(void) {- hal_delay_ms(50); /* fixed boot-time write slot */- return hal_led_write_cal(CAL_TARGET); /* 1 accepted, 0 dropped */+ int start_ms = hal_time_ms();++ for (;;) {+ if (hal_led_read_cal() == CAL_TARGET) {+ return 1;+ }++ if (hal_led_driver_ready()) {+ if (hal_led_write_cal(CAL_TARGET) &&+ hal_led_read_cal() == CAL_TARGET) {+ return 1;+ }+ }++ if (hal_time_ms() - start_ms >= 1000) {+ return 0;+ }++ hal_delay_ms(1);+ } } int fw_cal_applied(void) {- return hal_led_read_cal() >= 0 ? 1 : 0;+ return hal_led_read_cal() == CAL_TARGET ? 1 : 0; }
Gate · compiled C, run by code
Accepted. Every check passed.
Attempt 2 passed every check. The gate rejected 1 before it. Code made that call, not a model.
The bug, in time and in parts
Drag to rotate
Cold fault: the driver needs 180 ms, firmware writes at 50 ms. Calibration drops. One sector stays dim. The parts test fine.
| Station | Part | Spec (fictional) |
|---|---|---|
| S1-shell | Touch cap | BC-110 · PC, soft-touch |
| S6-dome-bond | Dome | BC-160 · frosted PC, 1.2 mm |
| S6-dome-bond | Diffuser ring | BC-161 · opal PMMA |
| S7-flash-cal | LED ring | BC-170 · 12 RGB LEDs + driver |
| S3-screws | Screws ×4 | BC-130 · M2×5 PT |
| S2-pcba | Main PCBA | BC-120 · SoC, IMU, mics |
| S4-speaker-haptic | Speaker + haptic | BC-140 · 20 mm, ERM |
| S5-battery | Battery | BC-150 · Li-po 1200 mAh |
| S1-shell | Base housing | BC-111 · PC/ABS |
Exploded beacon and timing are drawn from the fictional product. All synthetic.
Widen the T-OPT-01 limit from 0.05 to 0.24 and yield jumps. 15 units with a real defect ship too. The gate blocks any change that frees a known-bad unit.
Run both firmware builds yourself. Every result is compiled C on the server. No model decides a pass.
113cold lamps failing
Built with