In our mission to manufacture and assemble your PCBs and ensure the highest quality while keeping your costs low, we perform a fully automated process. This process results in data about your project being sent directly to our assembly machines. Step-by-step instructions are then being displayed in real-time to assembly technicians on the line.

Additionally, by having all data about each order in our cloud systems, we are able to perform real-time optimization of jobs by grouping together similar orders and reducing assembly line changes.

To facilitate this fully automated process, we need complete information about your project, This includes PCB design files, bill of materials, and placement data for all components. For some EDA tools, we can extract this data automatically from the native files. However, for all of the most common tools, the information we need can be exported by you and then uploaded to us in a format our system can recognize.

Specific instructions on how to prepare the data we need to manufacture your PCBs are available for the following common EDA tools by clicking one of the links below:

Is your favorite EDA tool not on this list? Let us know by contacting us. We’re continuously working on instructions for new programs, and we’d be happy to prioritize your tool.

If you’re already an expert in preparing your files for manufacturing, or we don’t yet have specific instructions for your EDA program, the following are our requirements for manufacturing files:

Uploading Design Files

Simply drag-and-drop your source files as they are into the upload area, or use the upload button to select the files you want to use. The system will automatically figure out what kind of files they are and process them accordingly.

Gerber CAM files

Computer Aided Manufacturing (CAM) files describing the layout of the PCB should have the following naming convention. Gerbers must be RS274-x format.

  • pcbname.GTL
    Top Copper
  • pcbname.GTO
    Top Silkscreen
  • pcbname.GTS
    Top Soldermask
  • pcbname.GTP
    Top SMD Paste
  • pcbname.GBL
    Bottom Copper
  • pcbname.GBO
    Bottom Silkscreen
  • pcbname.GBS
    Bottom Soldermask
  • pcbname.GBP
    Bottom SMD Paste
  • pcbname.BOR
    Board Outline
  • pcbname.G2L, pcbname.G3L, pcbname.G4L, pcbname.G5L, pcbname.G6L, pcbname.G7L, pcbname.G8L, pcbname.G9L, pcbname.G10L, ect..
    Inner signal layers (postive polarity) – only used for multi-layer
  • pcbname.G2P, pcbname.G3P, pcbname.G4P, pcbname.G5P, pcbname.G6P, pcbname.G7P, pcbname.G8P, pcbname.G9P, pcbname.G10P, ect..
    Inner plane layers (negative polarity) – only used for multi-layer
  • pcbname.XLN
    NC Drill File (do not use a drill report or rack definition, this must be an Excellon file)

The “pcbname” can be anything as the extension is the only important part of the filename.

The above file naming format is suggested but not required. If the system cannot automatically identify it, you will be able to specify it manually in the PCB viewer.

All cutouts and mills are required to be in the board outline gerber file.

All copper layers should include the board outline.

The board outline file is required for every PCB and should have an outline of the outer edges of the PCB. All drawing outside of this outline on other layers will be cropped.

XYRS File Format

The Bill of Material and XYRS data file is used to place parts on the PCB. The .XYRS file combines the Bill of Materials and XYRS data and includes parts placement and their locations. The file should have the extension “.XYRS”. The file is tab delimited and should contain the following fields. All dimensions shall be in mils for X-Y locations and degrees for rotation.

Lines beginning with ‘#’ will be ignored

DesignatorPart NameU1, R10, C8
X-LocX-Location of Part (mils, oriented from bottom-left)1200.00
Y-LocY-Location of Part (mils, oriented from bottom-left)900.00
RotationRotation of Part (degrees)270
SideLayer the Part is On1/T/top for Top, 2/B/bot/bottom for Bottom
TypeSurface or Through Hole1/SMT/SMD for SMD, 2 for PTH
X-SizeX Dimension of the Part (mils)Size of the Package, Measured By the Pad Footprint
Y-SizeY Dimension of the Part (mils)Size of the Package, Measured By the Pad Footprint
ValueValue of Part10K, 0.1uF, ATMEGA328P-AU
FootprintFootprint of PartC0805, R0603, TQFP-100
Populate (optional)Whether or not to populate this part1 for populate, 0 for do not populate
MPN (optional)The MPN for this partMF-CAP-0402-27pF

For example:


An example .XYRS file can be found here.

Importing Spread Sheet Bill of Materials

You can also upload an existing bill of materials in Microsoft Excel 2007 format along with a ODB++ file to the MacroFab system to automatically create the .XYRS file. After uploading, the system will attempt to automatically map your bill of materials to the corresponding MacroFab format required for assembly. If this fails you will be required to manually select the columns. The format for this file is fairly simple. You only need the parts designator and manufacture part number, but you can also include the package, populate, and value field.

For example:


Here is an example BoM in Excel 2007 format. More information about uploading a Bill of Materials spread sheet can be found in this article.

Impedance Control Files

If your PCB requires impedance controlled traces then additional files are needed to correctly manufacture your PCBs. The information required are which traces are impedance controlled and the specifications of said traces. Which traces are impedance controlled can be shown in an assembly document, provided as a separate gerber file, or as an image with the traces marked. The specifications of the traces that are necessary is the resistance of the traces, trace width, and trace space.

For more information about our default PCB Stackups check out this article.

For example:

Traces to be controlled: Gerber File

Traces are to be 75 ohms ±15%.

Traces are 10mil and 10mil spacing

Layer is Top Copper