REFLOW-VIS_
Our reflowed boards were failing at bring-up for reasons that were visible under a microscope if anyone had looked. The rig images every joint on a board under four-quadrant lighting and flags the ones worth a human eye.
- Detection rate
- 92.9%
- 78 of 84 defects found; n = 1,860 joints on 31 boards, ground truth from two independent manual audits
- False call rate
- 6.80%
- 121 of 1,776 good joints flagged, same 31 boards
- Board time
- 42 s/board
- median of 31 boards at 60 joints each, including stage moves
- Build
- 17 d
- Brief → Full 31-board run
- △4 · 08-06
- Added the fourth board outline to the frame. Teach time 22 → 10 min.
- △3 · 05-12
- Published the sheet and the 1,860-joint labelled set.
- △2 · 04-24
- Feature set 30 → 12. False calls 11.4% → 6.8%; misses unchanged at 6.
- △1 · 04-17
- Coaxial light → four-quadrant ring. Fillet contrast on matte joints up about 3×.
BDR-25-02-A — reserved. Telecentric lens over a 300 mm cross-slide. Four ring-light quadrants fire in sequence.
- Pixel pitch
- 12 µm · USAF 1951 target, centre and four corners
- Field of view
- 38 mm
- Stage travel
- 300 mm
- Joints audited
- 1860
- Defects in the set
- 84
- Parts
- 62
What we were asked for.
Three boards in a row failed at bring-up for reasons that turned out to be visible: one bridge, one tombstone, one joint with almost no solder on it. Each cost about half a day of debugging a design that was fine.
The rig had to earn its bench space in a week of use, which set the whole specification. It only has to be better than a tired person with a loupe at eleven at night.
The targets, and what we actually hit.
| Constraint | Target | Achieved | How measured |
|---|---|---|---|
| Detection of the four defect classes we care about | > 90% | 92.9% | n = 84 defects across 31 boards, two independent manual audits as ground truth |
| False calls | < 5% | 6.8%Missed | 121 of 1,776 good joints flagged |
| Time per board | < 60 s | 42 s | median of 31 boards, 60 joints each |
| Optical resolution at the board | < 15 µm/px | 12 µm/px | USAF 1951 target, centre and four corners |
| No per-board fixture | One adjustable frame for everything we make | One frame, four board outlines tested | measured against our four most common outlines |
Targets were set at kickoff, before the first part was cut. A target we missed stays on the sheet with the number we actually got.
How it moves.
A telecentric lens on a 300 mm cross-slide over a board frame with four adjustable corners. Telecentric because a joint imaged off-axis changes shape with position, and a fillet that looks starved at the edge of frame is the fastest way to build a rig nobody trusts.
The frame is the only one-off part. Everything else is a stage, a lens and a light, because the failure mode of an internal tool is that it becomes a project.
How it sees.
Four ring-light quadrants fire in sequence and the four exposures are combined into a surface-normal estimate per pixel — photometric stereo, no learned component. A solder fillet has a characteristic normal field, and a starved one does not.
On top of that: twelve hand-chosen features per joint, mostly normal-field moments and the fillet area against the pad footprint, fed to a gradient-boosted tree trained on 1,860 hand-labelled joints. We started with thirty features and cut to twelve because the extra eighteen were fitting our own board layouts rather than solder. That cut took false calls from 11.4% to 6.8% and did not move the misses.
| Metric | Value | Method | Conditions | Sample |
|---|---|---|---|---|
| Insufficient solder | 30 / 31 found | two independent manual audits as ground truth | matte fillets included | n = 31 defects |
| Bridging | 22 / 22 found | same audit | 0.5 mm pitch and coarser | n = 22 defects |
| Tombstoned passive | 11 / 11 found | same audit | 0402 and larger | n = 11 defects |
| Cold or dull joint | 15 / 20 found | same audit | the class the rig is worst at, by a distance | n = 20 defects |
Where it fails
- Anything under a package. BGA and QFN joints are not visible to this rig at all and it does not pretend otherwise — those boards go to X-ray or they go to bring-up.
- Cold joints are a texture problem, not a shape problem, and a quarter of them get through. Five of the six missed defects in the audit set were cold joints.
- Conformal coating throws specular highlights the photometric stack reads as fillet edges. Coated boards are inspected before coating or not at all.
- The false call rate means a human still looks at about four joints per board. That is a triage tool, not an inspection machine, and calling it the second thing would be a lie.
What it did.
78 of 84 defects found across 31 boards and 1,860 joints, with 121 good joints flagged that did not need flagging. 42 seconds a board.
The false call target was missed by nearly two points and it is the right miss to have: a flagged good joint costs four seconds of squinting, a missed bridge costs half a day. We tuned the threshold toward false calls deliberately and would do it again.
It has caught eleven real defects on our own boards since April, which is roughly five days of bring-up we did not spend. It stays ONGOING because the cold-joint class is still bad and we keep adding to the labelled set.
Elapsed days between recorded milestones, drawn to scale from the dates. The overall dimension runs from the brief to the last entry.
What changed since.
| Rev | Date | Change | By |
|---|---|---|---|
| △4 | 2025-08-06 | Added the fourth board outline to the frame. Teach time 22 → 10 min. | RM |
| △3 | 2025-05-12 | Published the sheet and the 1,860-joint labelled set. | DZ |
| △2 | 2025-04-24 | Feature set 30 → 12. False calls 11.4% → 6.8%; misses unchanged at 6. | RM |
| △1 | 2025-04-17 | Coaxial light → four-quadrant ring. Fillet contrast on matte joints up about 3×. | DZ |
What we would do next
Cold joints need a different measurement, not a better classifier. Surface roughness under grazing illumination at 850 nm is the experiment we have not run.
The labelled set is 31 boards of our own layouts. It needs boards from someone else before any of these numbers generalise.
Automatic pad-location from the Gerbers instead of a taught origin per board outline. Right now teaching a new outline is ten minutes of clicking.
Who built it, and when.
- Entry
- INTERNAL
- Status
- ◐ ONGOING
- Brief
- 2025-04-07
- Demo
- 2025-04-24
- Elapsed
- 17 d
- Built by
- DZ, RM
- MEC
- Mechanical design
- FAB
- Fabrication and finishing
- ELE
- Electronics and PCB
- CV
- Perception and learned models