BDRLABVANCOUVER · 49.28°N
BDR-25-02Rev △4INTERNAL◐ ONGOING

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
Revision history
△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×.
FIG. 1 — BDR-25-02-AREV △4

BDR-25-02-A — reserved. Telecentric lens over a 300 mm cross-slide. Four ring-light quadrants fire in sequence.

Spec — as measured
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
Disciplines: MEC FAB ELE CV.
§01 · Brief

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.

§02 · Constraints

The targets, and what we actually hit.

Constraints set at kickoff for BDR-25-02, with the measured result and the method.
ConstraintTargetAchievedHow 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%Missed121 of 1,776 good joints flagged
Time per board< 60 s42 smedian of 31 boards, 60 joints each
Optical resolution at the board< 15 µm/px12 µm/pxUSAF 1951 target, centre and four corners
No per-board fixtureOne adjustable frame for everything we makeOne frame, four board outlines testedmeasured 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.

§03 · Mechanism

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.

FIG. 3.1 — BDR-25-02-BRESERVED
Reserved. Four-quadrant exposures and the recovered normal field for one starved fillet.
§05 · Perception

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.

Perception benchmarks for BDR-25-02, with method, conditions and sample size.
MetricValueMethodConditionsSample
Insufficient solder30 / 31 foundtwo independent manual audits as ground truthmatte fillets includedn = 31 defects
Bridging22 / 22 foundsame audit0.5 mm pitch and coarsern = 22 defects
Tombstoned passive11 / 11 foundsame audit0402 and largern = 11 defects
Cold or dull joint15 / 20 foundsame auditthe class the rig is worst at, by a distancen = 20 defects

Where it fails

  1. 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.
  2. 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.
  3. Conformal coating throws specular highlights the photometric stack reads as fillet edges. Coated boards are inspected before coating or not at all.
  4. 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.
§06 · Result

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.

17 d3 d4 d3 d4 d3 dBrief2025-04-07Telecentric optics on the stage, first images2025-04-1031-board audit set labelled by hand2025-04-14 — two people, independentlyFour-quadrant ring light2025-04-17Classifier trained on 12 features2025-04-21Full 31-board run2025-04-24

Elapsed days between recorded milestones, drawn to scale from the dates. The overall dimension runs from the brief to the last entry.

§07 · Revisions

What changed since.

Revision history for sheet BDR-25-02.
RevDateChangeBy
△42025-08-06Added the fourth board outline to the frame. Teach time 22 → 10 min.RM
△32025-05-12Published the sheet and the 1,860-joint labelled set.DZ
△22025-04-24Feature set 30 → 12. False calls 11.4% → 6.8%; misses unchanged at 6.RM
△12025-04-17Coaxial 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.

§08 · Record

Who built it, and when.

Record — as filed
Entry
INTERNAL
Status
◐ ONGOING
Brief
2025-04-07
Demo
2025-04-24
Elapsed
17 d
Built by
DZ, RM
Disciplines on this sheet
MEC
Mechanical design
FAB
Fabrication and finishing
ELE
Electronics and PCB
CV
Perception and learned models
MEC · FAB · ELE · CV
§09 · Commission

Send us the thing that is not working.

We built REFLOW-VIS in 17 days, brief to demo. Send us the problem you have and we will tell you what it takes.
Send us the problem →
Sheet BDR-25-02 · Rev △4 · 2025-08-06