RUE Logo

Tutorial 5.10: Fabrication Outputs

Generating, verifying, and releasing complete manufacturing data packages for PCB fabrication and assembly

Introduction to Fabrication Output Generation

The fabrication output package is the final deliverable that translates your PCB design into manufacturing instructions. Even a perfectly designed board will be manufactured incorrectly if the output files are wrong, incomplete, or ambiguous. This tutorial covers the complete output generation workflow, file verification procedures, and common errors that cause manufacturing problems.

Complete Output File Set

File CategoryFormatPurposeRecipient
Copper layersGerber RS-274XDefines copper pattern for each layerPCB fabricator
Solder maskGerber RS-274XDefines mask openings (top and bottom)PCB fabricator
SilkscreenGerber RS-274XDefines legend/marking (top and bottom)PCB fabricator
Solder pasteGerber RS-274XStencil openings for paste applicationAssembly house
Board outlineGerber RS-274XMechanical board outline and cutoutsPCB fabricator
Drill filesExcellon (NC Drill)Drill locations, sizes, and typesPCB fabricator
Pick-and-placeCSV/TXTComponent positions and rotationsAssembly house
Netlist (test)IPC-D-356Net connectivity for electrical testPCB fabricator (test)
BOMExcel/CSVComponent identification and quantitiesAssembly house
Fab drawingPDF/GerberManufacturing notes and specificationsPCB fabricator
Assembly drawingPDFComponent placement referenceAssembly house
Stackup specPDF/DocumentLayer stack details and impedance targetsPCB fabricator

Checkpoint: Gerber RS-274X Generated for All Layers

Review Criteria

Gerber files in RS-274X format (or Gerber X2 extended format) are generated for every required layer. Layer naming follows industry convention. All apertures are embedded (not external). Files open correctly in a Gerber viewer with proper alignment.

Required Gerber File List (8-Layer Board Example)

LayerFilename ConventionExtensionContent
Top Copperproject_Top_Cu.gbr.GTL or .gbrLayer 1 copper pattern
Inner Layer 2project_In2_Cu.gbr.G2L or .gbrLayer 2 (GND plane)
Inner Layer 3project_In3_Cu.gbr.G3L or .gbrLayer 3 signal
Inner Layer 4project_In4_Cu.gbr.G4L or .gbrLayer 4 (Power plane)
Inner Layer 5project_In5_Cu.gbr.G5L or .gbrLayer 5 (GND plane)
Inner Layer 6project_In6_Cu.gbr.G6L or .gbrLayer 6 signal
Inner Layer 7project_In7_Cu.gbr.G7L or .gbrLayer 7 (Power plane)
Bottom Copperproject_Bot_Cu.gbr.GBL or .gbrLayer 8 copper pattern
Top Solder Maskproject_Top_Mask.gbr.GTS or .gbrTop mask openings
Bottom Solder Maskproject_Bot_Mask.gbr.GBS or .gbrBottom mask openings
Top Silkscreenproject_Top_Silk.gbr.GTO or .gbrTop legend
Bottom Silkscreenproject_Bot_Silk.gbr.GBO or .gbrBottom legend
Top Pasteproject_Top_Paste.gbr.GTP or .gbrTop stencil openings
Bottom Pasteproject_Bot_Paste.gbr.GBP or .gbrBottom stencil openings
Board Outlineproject_Edge_Cuts.gbr.GKO or .gbrBoard outline + cutouts

Gerber Generation Settings

Recommended Gerber output settings:
===================================
Format:         RS-274X (embedded apertures) or Gerber X2
Coordinate:     Metric (mm) preferred for modern fabs; imperial (inch) also accepted
Resolution:     4.6 (4 integer, 6 decimal in metric = 0.001um precision)
                or 2.5 (2 integer, 5 decimal in imperial = 0.00001 inch)
Units:          Millimeters (preferred) or Inches
Zero suppress:  Leading zero suppression (most common)
Mirroring:      NEVER mirror any layer in output (fab does this for bottom layers)
Polarity:       Positive (dark is copper) for signal layers
                Negative (clear is opening) sometimes used for plane layers
                (Check fabricator preference - most prefer all positive)
            
Altium Designer - Gerber Output

File > Fabrication Outputs > Gerber Files. Configure: Format = RS-274X, Units = Metric/mm, Format = 4:6. Select all required layers in the Layers tab. Under "Apertures", ensure "Embedded" is selected. Under "Advanced", set film size to match board dimensions + margin. Generate to project Output folder.

KiCad - Gerber Output

File > Fabrication Outputs > Gerbers (.gbr). Select output directory. Check all required layers in the Layers list. Set coordinate format to 4.6 (mm). Enable "Subtract soldermask from silkscreen" to prevent silk on pads in output. Enable "Use Protel filename extensions" for maximum compatibility. Click "Plot" then "Generate Drill Files" for Excellon.

Cadence Allegro - Gerber Output

Manufacture > Artwork. Define film parameters for each layer. Set format to RS-274X. Configure device type and resolution. Under "General Parameters" set coordinates and precision. Use "Create Artwork" to generate all defined films. Verify with Manufacture > Artwork > View Artwork.

Checkpoint: Excellon Drill File with Correct Format

Review Criteria

NC drill files in Excellon format contain all drill hits with correct sizes, positions, and types (plated vs non-plated). Drill file format (units, zero suppression, coordinate format) matches the Gerber files. Separate files for PTH and NPTH. Tool table is complete.

Drill File Requirements

FileContentsFormat
PTH (Plated Through Hole)All plated holes: vias, component through-holesExcellon 2
NPTH (Non-Plated)Mounting holes, tooling holes, slots (non-plated)Excellon 2
Blind/Buried (if used)Separate file per drill span (L1-L3, L6-L8, etc.)Excellon 2
Back-drill (if used)Back-drill locations with depth specificationExcellon 2 + notes

Drill File Verification

  1. Open in Gerber viewer: Load drill file alongside copper Gerber. Verify drill hits align with pads
  2. Check tool table: All drill sizes match design (no extra/missing tools)
  3. Verify unit consistency: Drill file units match Gerber file units
  4. Count hits: Total drill count should match the design's drill summary report
  5. Check for duplicates: No drill hit at the same location twice (causes over-drilling)
  6. Verify PTH/NPTH separation: Mounting holes must be in NPTH file, not PTH
  7. Slot definition: Routed slots defined as slot (G85 command) not as multiple drill hits

Common Drill File Format

Excellon Drill File Header Example:
M48                          ; Header start
METRIC,LZ                    ; Metric units, Leading Zero suppression
T1C0.200                     ; Tool 1: 0.200mm diameter
T2C0.300                     ; Tool 2: 0.300mm diameter
T3C0.400                     ; Tool 3: 0.400mm diameter
T4C1.000                     ; Tool 4: 1.000mm diameter
T5C3.200                     ; Tool 5: 3.200mm (mounting hole)
%                            ; End of header
T1                           ; Select tool 1
X015000Y020000               ; Drill at X=15.000, Y=20.000
X015500Y020000               ; Drill at X=15.500, Y=20.000
...
T2                           ; Select tool 2
X010000Y010000
...
M30                          ; End of file
            

Common Pitfall: Unit Mismatch Between Gerber and Drill

Gerber files generated in millimeters but drill file generated in inches (or vice versa). The result: all drill holes are offset from their pads by a scaling factor. This error may not be obvious if only checking a few holes near the origin. Always verify at LEAST the four board corners and one central point that drill hits align precisely with pad centers. Most Gerber viewers have an alignment check overlay feature.

Checkpoint: Pick-and-Place File Coordinates Verified

Review Criteria

Component centroid file includes all SMD components with correct X/Y position, rotation angle, and board side (top/bottom). Coordinates are spot-checked against Gerber overlay for at least 5 components on each side. File format matches assembly house requirements.

Pick-and-Place File Format

Standard CSV Format:
RefDes, PosX(mm), PosY(mm), Rotation(deg), Side, Value, Package
C1, 25.400, 12.700, 0, Top, 100nF, 0402
C2, 25.400, 14.200, 180, Top, 100nF, 0402
U1, 50.000, 40.000, 0, Top, STM32F4, LQFP-64
U2, 30.000, 25.000, 90, Bottom, LM3671, SOT-23-5
R1, 22.000, 10.000, 270, Top, 10K, 0402
...

Required columns:
  - Reference Designator (unique identifier)
  - X Position (component center/origin, in mm or mils)
  - Y Position (component center/origin, in mm or mils)
  - Rotation (degrees, CCW from positive X axis)
  - Side (Top or Bottom)

Optional but recommended:
  - Component Value
  - Package/Footprint name
  - Part Number / MPN
            

Verification Procedure

  1. Open pick-and-place file in spreadsheet (verify all columns parse correctly)
  2. Count components: total should match BOM component count (SMD only)
  3. Verify Top/Bottom assignment matches actual board side
  4. Overlay centroid coordinates on Gerber copper layer in viewer
  5. Spot-check 5+ components per side:
    • Check X,Y of IC center aligns with footprint center
    • Check rotation is correct (pin 1 in right position)
    • Verify asymmetric components (connectors, ICs) have correct orientation
  6. Check for missing components (compare ref-des list to BOM)
  7. Verify origin/datum point matches assembly house requirement (usually board corner or fiducial)

Common Pitfall: Rotation Convention Mismatch

Different EDA tools and assembly houses use different rotation conventions. Altium uses the component's zero rotation as placed in the library, while some assembly machines reference rotation from the tape orientation. A 0-degree rotation in the file might mean "as drawn" or might mean "with pin 1 at a specific compass direction." Always confirm the rotation convention with your assembly house and spot-check that the rotation values in your file result in correct placement orientation.

Checkpoint: IPC-D-356 Netlist for Testing

Review Criteria

IPC-D-356 netlist is generated for bare-board electrical testing. All nets are present in the file. Net count matches the design. Test point access provides adequate coverage for flying-probe or fixture testing.

IPC-D-356 Netlist Purpose

The IPC-D-356 netlist file tells the bare-board electrical tester which points should be connected (net assignments) and which should be isolated. The tester verifies:

IPC-D-356 File Format

IPC-D-356 Format Example:
P  JOBNAME    UNITS=MM
999
327VCC          A01X+015000Y+020000X0060Y0060R000 S1
327VCC          A02X+015500Y+020000X0050Y0050R000 S1
327GND          A01X+010000Y+010000X0060Y0060R000 S1
327GND          A02X+010500Y+010000X0050Y0050R000 S1
327NET1         A01X+020000Y+030000X0040Y0040R000 S1
327NET1         A02X+025000Y+030000X0040Y0040R000 S1
999

Each record (327 type) contains:
  - Net name
  - Access point designation
  - X,Y coordinates of test point
  - Pad dimensions
  - Rotation
  - Side (S1=top, S2=bottom)
            

Verification Steps

  1. Generate IPC-D-356 file from EDA tool
  2. Verify net count in file matches design net count
  3. Check that all nets have at least 2 test points (otherwise untestable)
  4. Verify single-pin nets are properly flagged
  5. Calculate test coverage: (testable nets / total nets) x 100%
  6. Target: 99%+ coverage for production boards; 95%+ minimum

Checkpoint: Fabrication Drawing with Notes

Review Criteria

A complete fabrication drawing includes all manufacturing specifications: material, surface finish, copper weights, impedance requirements, IPC class, drill table, stackup cross-section, and any special processing requirements. No critical information is missing or ambiguous.

Required Fabrication Drawing Contents

Fabrication Drawing Checklist:
================================

GENERAL INFORMATION:
[ ] Board name and part number
[ ] Drawing revision and date
[ ] Board dimensions (overall L x W x T)
[ ] Number of layers
[ ] IPC Class (Class 2 or Class 3)
[ ] Surface finish (HASL, ENIG, OSP, Immersion Silver, etc.)
[ ] Solder mask color (both sides)
[ ] Silkscreen color (both sides)

MATERIAL SPECIFICATION:
[ ] Base material (FR-4, High-Tg, Rogers, etc.)
[ ] Specific laminate (e.g., "Isola 370HR" or "TU-872")
[ ] Tg requirement (e.g., "Tg >= 170C by DSC")
[ ] UL flame rating (UL94 V-0 typical)
[ ] Dk/Df values at operating frequency (for controlled impedance)

COPPER AND STACKUP:
[ ] Stackup cross-section diagram with all layer labels
[ ] Copper weight per layer (oz)
[ ] Dielectric thickness between layers (mil or mm)
[ ] Core and prepreg identification (style numbers)
[ ] Overall board thickness with tolerance (e.g., 1.6mm +/- 10%)

IMPEDANCE CONTROL:
[ ] Impedance table: Layer, Type (SE/Diff), Target, Tolerance, Width, Spacing
[ ] Impedance test coupon requirement
[ ] TDR measurement report required (yes/no)

DRILL INFORMATION:
[ ] Drill table (all tool sizes, plated/non-plated, count)
[ ] Minimum and maximum drill sizes
[ ] Aspect ratio of smallest via
[ ] Blind/buried via specification (if used)
[ ] Back-drill specification (if used)
[ ] Slot routing specification

SPECIAL PROCESSES:
[ ] Via fill type (if via-in-pad used) per IPC-4761
[ ] Edge plating (if required)
[ ] Selective gold plating (e.g., connector fingers)
[ ] Carbon printing (for contacts/switches)
[ ] Peelable mask (for selective soldering areas)
[ ] Countersink/counterbore details
            

Surface Finish Selection Guide

FinishCostShelf LifeFlat PadsFine PitchWire Bonding
HASL (SnPb)Low12 monthsPoorNo (>0.5mm only)No
HASL (Lead-Free)Low12 monthsPoorNo (>0.5mm only)No
ENIGMedium-High12+ monthsExcellentYesYes
OSPLow6 monthsGoodYesNo
Immersion SilverMedium6 monthsGoodYesNo
Immersion TinMedium6 monthsGoodYesNo
Hard Gold (Edge)High24+ monthsN/AN/AYes
Good: Complete Fab Drawing

Drawing includes full stackup cross-section with dimensions, impedance table with 5 profiles, drill chart, material callout ("Isola 370HR per IPC-4101/126"), surface finish spec (ENIG per IPC-4552), IPC-6012 Class 2 compliance, all special notes (via fill, back-drill). Fabricator can quote and build without questions.

Bad: Incomplete Fab Drawing

Drawing states "8-layer FR-4, ENIG, 1.6mm" with no impedance table, no stackup detail, no material spec, no IPC class. Fabricator emails 12 questions that delay production by a week. Board arrives with wrong Dk material, impedance 15% off target, and 2.0oz copper on signal layers (wrong - too thick).

Checkpoint: Stackup Specification Document

Review Criteria

A dedicated stackup document (separate from or included in the fab drawing) specifies every layer with material, thickness, copper weight, and function. Impedance calculations reference this stackup. Document is sent to fabricator for confirmation before production.

Stackup Document Content

STACKUP SPECIFICATION
=====================
Project: [Name]  |  Rev: [A]  |  Date: [2024-03-15]
Total Layers: 8  |  Total Thickness: 1.57mm (+/- 10%)
Material: Isola 370HR  |  Dk: 4.04 @ 1GHz  |  Df: 0.012

Layer | Type      | Function    | Cu (oz) | Thickness | Material
------+-----------+-------------+---------+-----------+---------
L1    | Signal    | High-Speed  | 0.5     | 17.5um    | Copper
      | Prepreg   |             |         | 99um      | 2x1080(62%RC)
L2    | Plane     | GND         | 1.0     | 35um      | Copper
      | Core      |             |         | 127um     | 370HR core
L3    | Signal    | General     | 0.5     | 17.5um    | Copper
      | Prepreg   |             |         | 508um     | 2x7628(48%RC)
L4    | Plane     | VCC (split) | 1.0     | 35um      | Copper
      | Core      |             |         | 127um     | 370HR core
L5    | Plane     | GND         | 1.0     | 35um      | Copper
      | Prepreg   |             |         | 508um     | 2x7628(48%RC)
L6    | Signal    | General     | 0.5     | 17.5um    | Copper
      | Core      |             |         | 127um     | 370HR core
L7    | Plane     | VCC2(split) | 1.0     | 35um      | Copper
      | Prepreg   |             |         | 99um      | 2x1080(62%RC)
L8    | Signal    | High-Speed  | 0.5     | 17.5um    | Copper

IMPEDANCE TARGETS:
  Layer 1 (Microstrip): 50 ohm SE @ 5.5mil width, ref L2 GND
  Layer 1 (Diff pair):  100 ohm @ 4.0mil/5.0mil W/S, ref L2 GND
  Layer 3 (Stripline):  50 ohm SE @ 4.5mil width, ref L2+L4
  Layer 3 (Diff pair):  100 ohm @ 3.5mil/5.0mil W/S, ref L2+L4
            

Checkpoint: Assembly Drawings (Top/Bottom)

Review Criteria

Assembly drawings for both top and bottom sides show component outlines with reference designators, polarity marks, and special assembly instructions. Drawings are readable at 1:1 scale with clear orientation reference.

Assembly Drawing Requirements

Output Verification Workflow

  1. Generate all outputs from EDA tool to a dedicated release folder
  2. Open ALL Gerbers in a standalone viewer (GerbView, ViewMate, or online viewer):
    • Align all layers using common reference point
    • Verify layer count matches design
    • Check that no layers are accidentally mirrored
    • Verify copper layers show expected patterns
    • Check plane layers (should show anti-pads and clearances correctly)
  3. Verify drill alignment: Overlay drill file on copper - hits must center on pads
  4. Check mask alignment: Overlay mask on copper - openings must expose all pads
  5. Verify board outline: Must be a closed shape on the outline layer
  6. Cross-check BOM vs Pick-and-Place: Same component count, same ref-des list
  7. Run online DFM check: Upload to fabricator's online checker (JLCPCB, PCBWay offer free DFM analysis)

Common Pitfall: Stale Copper Pour in Gerber Output

Copper pours (ground fills, power planes) are not automatically regenerated before Gerber export in some tools. If you made routing changes after the last pour regeneration, the Gerber will show the old pour shape - potentially with clearance violations, islands, or missing connections. ALWAYS regenerate ALL copper pours immediately before generating fabrication outputs. In KiCad: Edit > Fill All Zones. In Altium: Tools > Polygon Pours > Repour All. In Allegro: Shape > Global Dynamic Shape Parameters > Repour.

Complete Output Generation Workflow

Pre-Output Checklist

  1. Run final DRC - confirm ZERO violations
  2. Regenerate all copper pours / zone fills
  3. Re-run DRC after pour regeneration
  4. Verify design matches latest schematic (run netlist comparison / ECO check)
  5. Lock all component positions (prevent accidental movement)
  6. Save design file with version tag

Output Generation Sequence

  1. Generate Gerber files (all copper + mask + silk + paste + outline)
  2. Generate NC Drill files (PTH, NPTH, blind/buried separately)
  3. Generate Pick-and-Place centroid file
  4. Generate IPC-D-356 netlist
  5. Generate BOM (from schematic, cross-reference with layout)
  6. Create/update fabrication drawing
  7. Create/update assembly drawings (top + bottom)
  8. Create/update stackup specification

Post-Output Verification

  1. Open all Gerbers in standalone viewer - visual inspection
  2. Verify layer alignment (copper + mask + paste + silk + drill)
  3. Check board outline is closed and correct size
  4. Verify drill hits align with pads on all layers
  5. Spot-check pick-and-place coordinates (minimum 5 per side)
  6. Upload to fabricator's online DFM tool for automated checking
  7. Package all files into ZIP with readme file listing contents

Common Output Errors

ErrorSymptomPrevention
Missing layer in outputFabricator asks "where is layer 5?"Use output template that includes ALL layers
Wrong units (mm vs inch)Board manufactured 25.4x too large/smallVerify units in header of Gerber and drill files
Mirrored bottom layerBottom components in wrong orientationNever mirror layers - output as-designed
Stale copper pourMissing ground connections, DRC violationsRegenerate all pours before output
Old netlist in outputMissing nets, wrong connectivitySync from schematic immediately before output
Paste openings wrongToo much/little solder, defectsVerify paste layer has correct aperture reductions
Board outline not closedFabricator cannot determine board shapeVerify closed outline polygon before output
Duplicate drill hitsOver-drilled holes, weakened barrelsCheck drill file for duplicate coordinates
Industry Standards References
  • IPC-2524B: PWB Fabrication Data Quality Rating System
  • IPC-D-356A: Bare Board Electrical Test Netlist Format
  • IPC-2581C: Generic Requirements for Printed Board Assembly Products Manufacturing Description Data (ODB++ alternative)
  • UCAMCO Gerber Format Specification: RS-274X and Gerber X2 format definitions
  • IPC-2515B: Sectional Requirements for Implementation of Artwork
  • IPC-NC-349: Computer Numerically Controlled (CNC) Formatting (Excellon drill format reference)
  • IPC-7351B Section 8: CAD Library Documentation (output documentation requirements)