Bridging the Gap Between CAD & CAM

Gerber X3 is the 2020 version of the de facto standard data file format for printed circuit board (PCB) design data transfer.

With this version of the Gerber format the designer is now able to transfer the BOM and CPL data in one simple and easily readable file format.

This X3 standard will include component data in the Gerber data.

Component location is geometrical data which includes centroid, outline, fiducial locations and the footprints and as such it fits naturally in a Gerber image file.

Combining bare board and component data in Gerber files allows a holistic review of the final board.

The workflow simplifies the transfer of component information from the CAD to the Assembly CAM system.

The advantage is that the data is in a single unified format that the CAM system can simply import, analyse, visualise and automatically generate the outputs for the various assembly equipment.

Thus, saving time and reducing costs.

As with the very first Gerber format, X3 is a simple human readable ASCII format. This allows engineers to easily detect and correct any anomaly quickly.

As always, this version is backwards compatible and users of older systems will be able to read Gerber X3 data but use only those features which are supported by their current system.

The Gerber X3 file contains a new set of data defined as the Component Layers (Top & Bottom).

Within this data set there are a set of new attributes dedicated to components where all the necessary information about each component on each layer can be defined.

Component Layers

The following sections detail the attributes that are used to define the components.

The coordinate system of the component layers as for all layers: a right-handed system when the PCB is viewed from the top.

Identifying a Component Layer

.FileFunction value

Usage

Component,L,(Top|Bot)
L <'p'>

Where <'p'> specifies the copper layer number to which the components described in this file are attached.
(Top|Bot) indicates if the components are on top, upwards, or on the bottom, downward, of the layer to which they are attached.

An example, the component layers of a four-layer board.

%TF.FileFunction,Component,L1,Top*%
%TF.FileFunction,Component,L4,Bot*%

Component Properties

These are identified by the .AperFunction values and object attributes and can only be used in the Component layers.

.AperFunction value

Usage

ComponentMain
Defines the Centroid of a component
ComponentOutline,
Defines the outline of the component.

4 different types of outlines are defined as:
<'type'> = (Body|Lead2Lead|Footprint |Courtyard)

.C,<'refdes'>
Identifies the component reference descriptor.

<'refdes'>=<'field'>

.CRot,<'decimal'>
Defines the rotation angle of the component.
CMfr,<'field'>>
Manufacturer
.CMPN,<'field'>
Manufacturer part number
.CVal,<'field'>
Value (e.g. 220nF)
.CMnt
Component mount type (TH, SMD, Fiducial, Other)
.CFtp,<'field'>
Footprint name
.CPgN,<'field'>
Package name
.CPgD,<'field'>
Package description
.CHgt
Component height
.CLbN,<'field'>
Library name
.CLbD,<'field'>
Library description
.CSup,<'SN'>,<'SPN'>
<'SN'> is a field with the supplier name.

<'SPN'> is a field with a supplier part name

The Pin Locations

The pin locations are included in the component layer to define location and rotation of the components.

.AperFunction value

Usage

ComponentPin(Top|Bot)
Defines the position of Pin 1 and/or any other Pins.

Object attribute

Usage

.P,<'refdes'>,<'number'>[,<'function'>]
Identifies the pin reference descriptor, pin number or name and optionally the pin function.

<'refdes'>=<'field'>
<'number'>=<'field'>
<'function'>=<'field'>

Example File

This is an example of a top component layer file.

It is assumed that the reader has a general knowledge of that Gerber format as only the new, component related, commands are annotated.

Commands

Annotation

%TF.GenerationSoftware,KiCad,Pcbnew,(5.99.0-
190-g0fd48dd4f-dirty)*%
%TF.CreationDate,2019-10-02T18:52:55+02:00*%
%TF.ProjectId,kit-dev-coldfirexilinx_
5213,6b69742d-6465-4762-9d63-
6f6c64666972,2*%
%TF.SameCoordinates,PX3e22018PY8d89728*%
%TF.FileFunction,Component,L1,Top*% This file is the top component layer
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
%MOMM*%
%LPD*%
G04 Aperture begin list*
%ADD10C,0.3*% The aperture for the flash with the main component information
%TA.AperFunction,ComponentOutline,Courtyard*%
%ADD11C,0.1*% The aperture to draw the outline
%TA.AperFunction,ComponentPin*%
%ADD12P,0.36X4X0.0*% The aperture to flash the pin 1 location
%ADD13C,0*% The aperture for the other pin Locations
%TD*%
G04 Aperture end list*
G04 Begin component info*
D10* Select main component aperture
%TO.C,R301*% Attach reference descriptor R301
%TO.CFtp,R_0805_2012Metric*%
%TO.CVal,4K7*% Attach value
%TO.CMnt,SMD*% Attach mount type
%TO.CRot,-90*% Attach rotation
X218250000Y-73000000D03* Flash at reference point
D11* Select outline aperture
X219250000Y-71310000D02* Draw outline
X217250000Y-71310000D01* Draw outline
X217250000Y-74690000D01* Draw outline
X219250000Y-74690000D01* Draw outline
D12* Select key pin aperture
%TO.P,R301,1*% Attach ref. description and pin number
X218250000Y-72045000D03* Flash at key pin location
D13* Select subsequent pin aperture
%TO.P,R301,2*% Attach pin 2 ident
X218250000Y-73955000D03* Flash at key pin location
%TD*% Clear attributes before next component
G04 Next component*