A failed ionic contamination test on a cleaned PCBA is rarely a board defect—it is almost always leftover flux residue, dissolved salts carried in by the rinse water, or contaminants from handling. The fix starts by isolating which of those three families the reading came from, not by swapping the cleaning chemistry.
What Does a Failing Ionic Contamination Test Actually Measure?
The common method is the ROSE test under IPC-TM-650, method 2.3.25. You immerse the assembly in an extraction solution—usually a water and isopropanol mix—and measure how far the liquid’s resistivity drops. That drop converts to a sodium-chloride equivalence, reported as micrograms of NaCl per unit area.
Here is the part buyers miss: the number is a total ionic load, not a reliability verdict. It tells you residue is present and roughly how much, nothing more. I read it as “how much ionic stuff is on the board,” then decide whether that amount matters for the product class. A consumer remote and an implantable lead are not held to the same bar, and the test does not know which one it is measuring.
For high-reliability work—medical, automotive, aerospace—a pass on ROSE is not the finish line. The real question is whether that residue will migrate under humidity and bias, and that is what SIR testing (IPC-TM-650 2.6.3.3) answers. When the board class calls for it, ROSE is a screening step, not proof.
Where Does the Contamination on a Failed Board Come From?
Four sources cover most failures I have seen on the line:
- Flux and solder-paste residue. The wash did not remove it, or the cleaner was not matched to the flux. The reading clusters near components and under low-standoff parts.
- Rinse-water carryover. The final rinse water itself carried dissolved ions, which plate onto the board as it dries. The reading tracks your DI loop’s resistivity that shift.
- Handling salts. Bare-hand contact, a sweat droplet, or an ESD event leaves sodium and chloride right where a finger touched—no pattern near components, just random single boards.
- Test-method artifact. An aged extraction solution, a dirty cell, or a temperature drift swings the reading. Same board, no process change, different result.
I would log the failure pattern before touching anything. A cluster near parts is a wash problem; one random board in a lot is a handling problem; a whole lot at a steady rate is a system problem. The pattern names the cause faster than any chemistry change.
Is Your Test Method Hiding the Real Cause?
Before you blame the cleaner, rerun the test cleanly. Use fresh extraction solution, a calibrated cell, and the specified temperature. I have watched a “fail” turn into a pass with nothing changed on the line, just because the previous solution had sat open for weeks.
Watch these three:
- Solution age. Isopropanol pulls water and carbon dioxide from air; the baseline drifts. Cap it, date it, replace on a schedule.
- Cell cleanliness. A film on the electrodes mimics contamination. Clean the cell between runs.
- Temperature. Resistivity is temperature-sensitive. Run at the method’s set point, not “room temp.”
If the board still fails on a correct rerun, the contamination is real and on the board. Then you move to the line.
Which Fix Matches Each Cause?
How Do You Trace the Source on the Line?
Run a quick isolation set before committing to a fix:
1. Take a board that failed and give it a second validated wash, then retest. If the reading drops sharply, the first wash was incomplete—flux, not water or hands.
2. Run a bare-board coupon and a gloved-hand versus bare-hand pair through the same handling. If the bare-hand coupon fails and the gloved one passes, handling is your leak.
3. Log final-rinse resistivity at the moment of failure. If it was out of band, the water is the carrier.
| Source | Signature | First Check | First Fix |
|---|---|---|---|
| Uncleaned flux or paste | Reading drops after a second wash; high near components | Rewash a sample, retest | Raise wash temperature and dwell within the supplier’s safe band; verify cleaner concentration |
| Rinse-water carryover | Reading tracks final-rinse resistivity | Log DI resistivity at fail time | Tighten RO/DI to the 15–18 MΩ·cm band; add a final DI rinse |
| Handling salts | Random single boards; high sodium and chloride | Gloved vs bare-hand coupon pair | ESD-safe handling, gloves, no bare contact with assemblies |
| Test-method artifact | Same board flips pass/fail with no process change | Rerun on calibrated cell, fresh solution | Replace extraction solution; clean cell; hold temperature |
| Incompatible or no-clean flux | Reading holds after a validated clean | Confirm flux type and halide load | Match cleaner to the flux, or switch to a compatible flux |
On the flux row, the fix is a process-window change, not a machine swap. On the water row, the fix is water quality up front. On the handling row, the fix is discipline on the floor. Match the fix to the row, or you will spend on a new cleaner the board never needed.