Gerber format

From Infogalactic: the planetary knowledge core
(Redirected from Gerber file)
Jump to: navigation, search
Gerber format
GbrX2 128x128 white bg.png
Filename extension .gbr
Internet media type application/vnd.gerber
Uniform Type Identifier (UTI) com.ucamco.gerber.image
Developed by Ucamco (Initially by Gerber Systems Corp.)
Initial release August 27, 1980; 43 years ago (1980-08-27)
Latest release
Revision 2017.03
(March 8, 2017; 7 years ago (2017-03-08))
Type of format Image file format
Standard Gerber Format Specification
Website https://www.ucamco.com/en/file-formats/gerber

The Gerber format is an open ASCII vector format for 2D binary images.[1] It is the de facto standard used by printed circuit board (PCB) industry software to describe the printed circuit board images: copper layers, solder mask, legend, etc.[2][3][4]

Gerber is used in PCB fabrication data.[5] PCBs are designed on a specialized electronic design automation (EDA) or a computer-aided design (CAD) system.[6] The CAD systems output PCB fabrication data to allow manufacturing. This data typically contains a Gerber file for each image layer (copper layers, solder mask, legend or silk...). During bare board fabrication Gerber is the standard input format for photoplotters and all other fabrication equipment needing image data, such as legend printers, direct imagers or automated optical inspection (AOI) machines or for viewing reference data in different departments. Gerber files also contains a 'stencil' layer for solder paste and the central locations of components to allow the PCB assembler to create the stencil and place and bond the components.[7]

There are two major generations of Gerber format:

  • Extended Gerber, or RS-274X. This is the current Gerber format. In 2014 the graphics format was extended with the option to add meta-information to the graphics objects. Files with attributes are called X2 files, without X1 files.[8][1]
  • Standard Gerber, or RS-274-D. This obsolete format was revoked. It no longer conforms to the Gerber format specification and can therefore no longer be called a Gerber format.[9][10][11]

The standard file extension is .GBR or .gbr[1] though other extensions are also used.

PCB fabrication data

PCBs are designed on a specialized electronic design automation (EDA) or a computer-aided design (CAD) system.[6] The CAD systems PCB fabrication data to allow fabrication.[5] Fabrication data contains a Gerber file for each image layer (copper layers, solder mask, legend or silk...). Drilled hole information is also transferred in Gerber but for historic reasons the Excellon format is often used.[12] Typically, all these files are "zipped" into a single archive that is sent to the PCB bare board fabrication shop. The fabricator loads them into a computer-aided manufacturing (CAM) system to prepare data for each step of the PCB production process.[13]

The .FileFunction attribute is the standardized method to do link each layer in the PCB with its corresponding Gerber file in the fabrication data.[1] If attributes are not supported only informal methods are available. A simple informal method is to express the file function clearly in the file name. Sometimes the file extension is abused to indicate the file function - e.g. .BOT for the bottom layer rather than the standard extension .GBR. This is very impractical as the customary link between format and extension is lost.[10][14][15]

PCB Fabrication Data must comply with a number of rules: all layers must be aligned, a profile layer must be included, etc.[16][17]

The CAD netlist can be embedded in the Gerber files.[1][18] However, for historic reasons, netlists often are described in a separate file in IPC-D-356A, an electrical test format.[19]

The material stack up, components and finishes are typically provided in informal text files or drawings.[20] Ucamco recommends using a subset of IPC-2581 for this non-image information.[10][21]

Extended Gerber

RS-274X, extended Gerber or X-Gerber, was originally released in September 1998.[1]

It is a human readable ASCII format.[22] It consists of a stream of commands generating an ordered stream of graphics objects. The graphics objects can be positive or negative. Superimposed in the correct order they create the final image.

A Gerber file contains the complete description of a PCB layer image without requiring any external files. It has all the imaging operators needed for a PCB image. Any aperture shape can be defined. Planes and pads can be specified without the need to paint or vector-fill as in Standard Gerber. (However some implementations still use painting, problematical for the users of those files.)[23]

Released in February 2014, Gerber X2 adds additional metadata to the image.[24] Attributes allow to add metadata to a Gerber file. Attributes are akin to labels providing information associated with image files, or features within them. Examples of metadata conveyed by attributes are:

  • The function of the file. Is the file the top solder mask, or the bottom copper layer, etc.?
  • The part represented by the file. Does it represent a single PCB, an array, a coupon?
  • The function of a pad. Is the flash is an SMD pad, or a via pad, or a fiducial, etc.

For more information about attributes see X2 FAQ or intro video in the external links. [1] [25] [26] [27] [8]

An example of a Gerber file:

G04 Short version a file taken from the Example Job 1, created by Filip Vermeire, Ucamco*
%TF.FileFunction,Copper,Bot,L4*%
%TF.Part,Single*%
%FSLAX35Y35*%
%MOMM*%
%TA.AperFunction,Conductor*%
%ADD10C,0.15000*%
%TA.AperFunction,ViaPad*%
%ADD11C,0.75000*%
%TA.AperFunction,ComponentPad*%
%ADD12C,1.60000*%
%ADD13C,1.70000*%
%SRX1Y1I0.00000J0.00000*%
G01*
G75*
%LPD*%
D10*
X7664999Y3689998D02*
X8394995D01*
X8439999Y3734999D01*
X9369999D01*
D11*
X7664999Y3689998D03*
X8359999Y1874998D03*
X9882998Y3650498D03*
D12*
X4602988Y7841488D03*
D13*
X10729976Y2062988D03*
X10983976D03*
X11237976D03*
M02*

The format specification is published.[1]

Standard Gerber (revoked)

Standard Gerber was a numerical control (NC) format designed by Gerber Systems Corp to drive their vector photo plotters for the PCB industry in the 1960s and 1970s. It was a subset of the Electronic Industries Association RS-274-D specification,[28] a format to drive mechanical NC machines in a wide range of industries. The term RS-274-D, without the qualifying "Gerber" postfix, is sometimes used informally for standard Gerber. Standard Gerber became the de facto standard format for PCB images.

Standard Gerber was a simple ASCII format consisting of commands and XY coordinates.[29] An example:

D11*
X1785250Y2173980D02*
X1796650Y2177730D01*
X1785250Y2181480D01*
X1796650Y2184580D01*
D12*
X3421095Y1407208D03*
X1785250Y2173980D03*
M02*

A Standard Gerber file on its own is not an image description because it does not contain all information: the coordinate unit and the definitions of the apertures are not defined in the RS-274-D file. (Apertures are the basic shapes, similar to fonts in a PDF file.) The coordinate units set manually by the operator of the plotter. They were described in a free-format text file, called an aperture file or a wheel file, intended for human reading. It was called a wheel file because the apertures were mounted on a rotating wheel and the operator defined the apertures by selecting a wheel and mounting it on the plotter. There are no standards for wheel files. The designer and the plotter operator had to agree on these case-by-case. Therefore, standard Gerber is an NC standard but not an image definition standard.[1][29]

Standard Gerber supports only the simple imaging operators that a vector plotter is capable of - drawing tracks and flashing apertures. The only way to create large copper pours with a vector plotter is to paint (aka stroke or vector-fill) them with a vast number of tracks. Painting was also used to create all but the simplest pads because of the cost of creating a corresponding physical aperture. Painting results in very large files that take long time to process. It creates the intended image but the original shape of the copper pour or pad and must be laboriously recovered in CAM.[16][23][30][31]

Standard was designed for a manual workflow. It is not suitable for automated data transfer between PCB designers and manufacturers.

Standard Gerber has been obsolete for many years and was revoked by its developer, Ucamco, in 2014. It no longer conforms to the Gerber format specification. It is superseded by extended Gerber X1 or X2.[10][11]

History

The Gerber file format was originally developed by the Gerber Systems Corp., a division of Gerber Scientific, founded by Joseph Gerber.[32] The Gerber file format is now owned by Ucamco through its acquisition of Barco ETS, a company that previously acquired Gerber Systems Corp.[33][34] The specification can be freely downloaded. [1]

In 1980, the first edition of the Gerber Format: a subset of EIA RS-274-D; plot data format reference book[35] was published by Gerber Systems Corporation, the pioneer and market leader in vector photoplotters. Gerber Scientific Corporation used a subset of EIA RS-274-D to drive their line of vector photoplotters. This format became known as Standard Gerber. In the 1980s, Standard Gerber was adopted by several other photoplotter vendors and also CAM systems for PCB manufacturing. It became the de facto standard image format.

In 1991 with the availability of the more capable raster photoplotters the Gerber format was extended for polygon areas and "mass parameters". It becomes a superset of RS-274-D standard Gerber. These allow the user to dynamically define apertures of different shapes and sizes as well as defining polygon area fills without the need for "painting". This created a family of input formats each one dedicated to the capabilities of the different Gerber plotter models. The impetus to develop the Extended Mass Parameters was provided by AT&T.[36]

In April 1998, Gerber Systems Corporation was taken over by and integrated in Barco, Belgium. Barco's PCB division is now called Ucamco (former Barco ETS). In September 1998, the RS-274X Format User's Guide was published by Barco - Gerber Systems Corporation. This unified the family of formats to a single image formats, revoking a big number of model specific constructs. The format became known as Extended Gerber or GerberX. Extended Gerber quickly superseded Standard Gerber as the de facto standard for PCB image data. It is sometimes called "the backbone of the electronics industry". A sequence of revisions clarifying the specification was published over the years, ending with revision H of January 2012.[1][37][38]

In the course of 2012 the format was comprehensively reviewed in the great reform. A representative library of 10,000 files from all over the world was investigated to establish current practice. Constructs that were rarely or never used were deprecated or revoked. Constructs with conflicting interpretations were clarified. The specification document itself was re-organized and its quality improved. This resulted in revision I1 to I4 of the specification published from December 2012 on. The result was a simple but powerful format focused on the current needs of the PCB industry. This version of the Gerber format was developed by Karel Tavernier and Rik Breemeersch from Ucamco.[1][9][26][39][40]

In June 2013, Ucamco published a proposal to add three new commands to the Gerber format which allow to include image attributes conveying metadata attached to the image and its components. It invited feedback from the Gerber users before committing these ideas to a firm specification. This process resulted in revision J1 from February 2014, updated with further revisions until revision 2015.07. Including metadata adds intelligence to the format. It converts a mere image description format to a fully-fledged PCB data transfer format. This is called the second extension and results what is known as Gerber X2, Gerber X1 being the pure image format. Gerber X2 is fully backward compatible with X1 - the attributes do not affect the image. Gerber X2 was developed by Karel Tavernier, Ludek Brukner and Thomas Weyn.[1][1][41][42][43]

In September 2014, Ucamco revoked Standard Gerber.[1][44]

In August 2015, Ucamco published a draft specification adding nested step and repeat and block apertures to make panel descriptions more efficient, calling for comments from the user community.[45]

In November 2016 the review process was closed after substantial input and modifications and the final specification was published. This revision was developed by Karel Tavernier and Rik Breemeersch. Shortly afterwards the Cuprum Gerber viewer developed the first implementation.[46]

In July 2016 Karel Tavernier from Ucamco published a draft specification to include netlist information in Gerber for public review.[47] After a number of revisions of the draft triggered by input from users the draft was finalized on October 2, 2016.[1][18]

In March 2017 Karel Tavernier from Ucamco published a draft specification to include fab documentation in Gerber for public review.[48][49]

Related formats

Over the years there have been several attempts to replace Gerber by formats containing more information than just the layer image, e.g. netlist or component information.[33] None of these attempts have been widely accepted within the electronics manufacturing industry, probably because the formats are complex.[10] Gerber remains the most widely used data transfer format.[2][3][4]

  • IPC-D-350 C Printed Board Description in Digital Format, 1989. This specification was standardized as IEC 61182-1 in 1992 and withdrawn in 2001. Rarely used.
  • DXF Sometimes used. These are typically constructed as drawings, PCB objects (tracks and pads) are lost, which makes them very difficult to use in CAM.
  • PDF Rarely used. Very impractical to work with because PCB objects (tracks and pads) are lost.
  • DPF Format, now at v7, a CAM format from Ucamco. Sometimes used.
  • The Electronic Design Interchange Format, EDIF. Rarely used.
  • ODB++, a CAM format from Mentor Graphics. Sometimes used, the prevalent non-Gerber format.[50]
  • GenCAM: IPC-2511A Generic Requirements for Implementation of Product Manufacturing Description Data and Transfer Methodology, 2000. Rarely used.
  • GenCAM: IPC-2511B Generic Requirements for Implementation of Product Manufacturing Description Data and Transfer XML Schema Methodology, 2002. Rarely used.
  • Offspring: IPC-2581 Generic Requirements for Printed Board Assembly Products Manufacturing Description Data and Transfer Methodology, 2004. Rarely used, but receiving more attention recently.[51]
  • STEP AP210: ISO 10303-210, Electronic assembly interconnect and packaging design, first edition 2001, second edition 2008 (to be published)

References

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
  10. 10.0 10.1 10.2 10.3 10.4 Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. 16.0 16.1 Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. IPC-2524 PWB Fabrication Data Quality Rating System, February 1999.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. 23.0 23.1 Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. 26.0 26.1 Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. 29.0 29.1 Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. 33.0 33.1 Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. IPC-2581 Panel: A Spirited Discussion on PCB Data Transfer Formats, Richard Goering, Cadence Design Systems blog, October 2, 2011

External links