3.6 Quality Gates & Data Capture Requirements
A digital system that only "records" production is a passive historian. To prevent defects, the MES must act as an active filter. We apply the 10x Rule of Cost: A defect found at Solder Paste Inspection (SPI) costs $0.10 to fix (wipe and reprint). Found at In-Circuit Test (ICT), it costs $10 (rework). Found in the field, it costs $1,000 (RMA + Reputation).
Quality Gates are the distinct checkpoints where value is verified. If the gate is not passed, the unit must not physically move to the next operation.
The Standard Gate Topology
Every manufacturing line must implement these minimum control points.
1. Incoming Quality Control (IQC)
- Scope: Raw materials (PCBs, Components, Chemicals).
- Gate Logic:
- If AQL Sample = Fail → Then Quarantine entire Supplier Lot.
- If Manufacturer CoC (Certificate of Compliance) missing → Then Block receiving.
- Mandatory Record: Supplier_Lot, Internal_Lot, Expiry_Date, Inspector_ID, AQL_Result.
2. Solder Paste Inspection (SPI)
- Scope: The most critical process (accounting for ~70% of SMT defects).
- Gate Logic:
- If Volume/Area < Threshold → Then Stop Conveyor.
- Action: Wash board and reprint. Never touch up paste by hand.
- Mandatory Record: Volume_%, Area_%, Height_µm, Offset_X/Y.
3. Automated Optical Inspection (AOI)
- Scope: Component placement and solder joint quality.
- Gate Logic:
- If Pre-Reflow Fail → Then Correction by Operator allowed.
- If Post-Reflow Fail → Then Route to Rework Station.
- Mandatory Record: Image_URL (Defect photo), Ref_Des, Defect_Type (Tombstone, Shift, Bridge).
4. In-Circuit Test (ICT)
- Scope: Electrical physics (Open, Short, R/L/C values).
- Gate Logic:
- If Measurement > High_Limit OR < Low_Limit → Then Hard Fail.
- Action: Lock Unit. Cannot advance to FCT.
- Mandatory Record: Component_Name, Measured_Value, Limits, Pin_Number.
5. Functional Circuit Test (FCT)
- Scope: Product behavior (Boot up, LED color, RF power, Button press).
- Gate Logic:
- If Firmware Checksum Mismatch → Then Reload FW or Fail.
- If Test Aborted → Then Treat as Fail (do not allow "skip").
- Mandatory Record: Full Log_File (ASCII/JSON), Firmware_Version.
6. Packout / OBA (Final Gate)
- Scope: Cosmetic, Accessories, Labeling, Weight.
- Gate Logic:
- If Unit Weight outside tolerance (indicating missing manual/battery) → Then Alarm.
- If Genealogy incomplete (Child part missing) → Then Block Shipping Label print.
- Mandatory Record: Weight_g, Box_ID, Cosmetic_Check_Confirm.
Digital Poka-Yoke (Mistake Proofing)
Poka-Yoke is not just a physical fixture; it is a digital constraint. The MES must make it impossible to perform the wrong action.
Interlocking Flow
- Concept: A unit cannot enter Station B if it failed Station A.
- Mechanism: Scanner at Station B queries MES status.
- Result: If Status ≠ "Pass" → Then Machine Start Button Disabled.
Masked Scanning (Input Validation)
- Concept: Preventing the operator from scanning the "Part Number" when the system expects the "Serial Number."
- Mechanism: Regex Pattern Matching.
- Result: If Input matches PN-.* pattern but Field expects SN-.* → Then Auto-Clear Field & Play Error Sound.
Pick-to-Light Integration
- Concept: Ensuring the operator picks the correct screw/part.
- Mechanism: Digital I/O connected to bin lights.
- Result: If Hand breaks light curtain of Bin B instead of Bin A → Then Tool disables (Torque Driver loses power).
Statistical Process Control (SPC) Integration
Don't just detect defects; detect drift. Pass/Fail is binary; SPC is analog.
Real-Time Trigger Logic
We apply Western Electric Rules to parametric data (e.g., Reflow Temp, Torque, Test Voltage).
- Rule 1 (Outlier): 1 point > 3σ from mean.
- Action: Stop Line. Machine is broken.
- Rule 2 (Trend): 7 consecutive points on one side of the mean.
- Action: Warning Alert. Process is drifting (e.g., tool wear). Call Process Engineer.
- Rule 3 (Instability): Standard Deviation increases by 20% over 50 units.
- Action: Warning Alert. Process is becoming loose.
Cpk / Ppk Requirements
- Target: Cpk ≥ 1.33 (4 Sigma) is the minimum for "Capable" processes.
- Control: If Cpk drops < 1.0 → Then Force "Engineering Review" state.
The Mandatory Data Schema
For every test event, the machine or operator must commit a transaction with these fields. "Pass/Fail" is insufficient; we need granular evidence.
1. The Header (Context)
- Test_Session_ID (UUID)
- Unit_SN
- Station_ID / Fixture_ID (Critical for isolating "Bad Socket" issues)
- Operator_ID
- Timestamp_Start / Timestamp_End (For Cycle Time analysis)
2. The Result (Outcome)
- Overall_Status: PASS / FAIL / ABORT / ERROR.
- Note: "ERROR" means the machine crashed, not the unit failed. Retest allowed.
- Mode: PRODUCTION / ENGINEERING / GRR (Gauge R&R).
3. The Defect List (If Fail)
- Defect_Code: Standardized taxonomy (e.g., S01 = Solder Short, P04 = Missing Part).
- Location: The Reference Designator (e.g., U14, R202).
- Measured_Value: The actual reading that triggered the fail (e.g., 4.9V).
Disposition & Routing Logic
The "Result" field drives the physical path of the unit.
- PASS: Update Status to Complete. Enable move to Next_Op.
- FAIL: Update Status to Failed. Lock unit from Next_Op.
- Route: Auto-move to "Repair_Loop".
- Unlock: Only a "Repair Action" (documented fix) can reset the status to Ready_For_Retest.
- SCRAP: Update Status to Scrapped.
- Trigger: If Unit fails same test > 3 times (The "Lemon Rule") → Then Auto-Scrap. Do not allow infinite rework loops.
Final Checklist
Category | Metric / Control | Threshold / Rule |
Coverage | Gate Presence | 100% of defined gates (IQC → Packout) active. |
Poka-Yoke | Interlock | Machine is electronically disabled if previous step ≠ Pass. |
SPC | Drift Control | Alert triggers on 7-point trend or Cpk < 1.33. |
Schema | Data Fields | Header + Result + Defect List mandated for every record. |
Taxonomy | Standardization | All machines use the same Defect Codes (Global Dictionary). |
Limits | Parametric Data | Store the Value (4.5V), not just the Bit (Pass). |
Lemon | Loop Control | Max 3 Retests allowed before forced Scrap. |
Identity | Fixture Tracking | Record Fixture_ID to detect bad test sockets (e.g., "Socket 4 always fails"). |