Required Design Files

Last Updated: May 14, 2019
You are here:

Automated Manufacturing File Creation

In our mission to assemble your PCBs and ensure the highest quality while keeping your costs low, The MacroFab Platform is a fully automated process to convert the information about your PCB assembly and send it directly to our manufacturing lines. Additionally, by having all data about each order in our cloud systems, we are able to perform real-time optimization of orders by grouping together similar orders to reduce assembly line changes.

To facilitate this automated process, we need complete information about your PCB assembly. This includes PCB layer design files, bill of materials, and placement data for all components. These can be uploaded by dragging and dropping the file into our platform for instant quotes.

For supported EDA tools, we can extract this data automatically from the native files. Specific instructions on how to prepare your manufacturing files are available for the following supported EDA tools:

Is your favorite EDA tool not on this list? Let us know by contacting us. We are continuously working on instructions for new programs. If we don’t currently support or have specific instructions for your EDA tool, the following required design files are needed.

Required Design Files

To build your PCB assembly we will need three pieces of information: the layer information for the PCBs, a complete bill of materials, and where the parts will go on the PCB during assembly.

PCB Layer Files

PCB layer files are what tell the PCB manufacture where to put copper traces, drill holes, and apply silkscreen. Also included in the PCB layer files is a paste layer that tells the PCB assembler where to apply solder paste before the parts are applied.

There are two ways that MacroFab can accept PCB layer files: ODB++ output and Gerber Cam Files. The benefit of ODB++ is that it also contains a partial bill of materials and the placement data for your PCB. If your EDA tool supports ODB++ output this is your quickest way to getting a PCB created at MacroFab. However, not all EDA tools support ODB++ exporting. For those tools, you will need to generate the PCB layer files in the Gerber format.

ODB++ Output

EDA tools that support ODB++ have a variety of options for data that can be packaged into the ODB++ output. Check to see if we have a guide for your specific EDA tool. If we do not, you will have to view the documentation for your EDA tool on how to operate the ODB++ generator. You will need to make sure the ODB++ output contains all relevant PCB Layer information and part placement information. Some EDA tools allow you to combine assembly or mechanical information with the layers. This causes problems during upload so make sure this is unchecked.

Gerber CAM files

Gerbers must be RS274-x format. If the following naming convention for the Gerber file extensions are used then the MacroFab platform will automatically associate the gerber file with the correct layer. The “pcbname” can be anything. The file extension is the only important part of the filename.

PCB LayerGerber Extension
Top Copperpcbname.GTL
Top Silkscreenpcbname.GTO
Top Soldermaskpcbname.GTS
Top SMD Pastepcbname.GTP
Bottom Copperpcbname.GBL
Bottom Silkscreenpcbname.GBO
Bottom Soldermaskpcbname.GBS
Bottom SMD Pastepcbname.GBP
Board Outlinepcbname.BOR
Inner signal layers (postive polarity) – only used for multi-layerpcbname.G2L, pcbname.G3L, pcbname.G4L, pcbname.G5L, pcbname.G6L, pcbname.G7L, pcbname.G8L, pcbname.G9L, pcbname.G10L, ect..
Inner plane layers (negative polarity) – only used for multi-layerpcbname.G2P, pcbname.G3P, pcbname.G4P, pcbname.G5P, pcbname.G6P, pcbname.G7P, pcbname.G8P, pcbname.G9P, pcbname.G10P, ect..
NC Drill File (Excellon)pcbname.XLN

The above file naming format is suggested but not required. If the platform can not automatically identify the layer the file belongs to, you will be able to specify its location manually in the Design Viewer.

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

Do not use a drill report or rack definition for the NC Drill File, this must be an included inside the NC Drill File.

Make sure to double check your inner layers for polarity. Generally EDA tools will export “plane” internal layers a negative polarity.

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

Bill of Materials

If you properly configured your ODB++ generator and uploaded it to the platform, a partial Bill of Materials will be filled out for your PCB. You can use our interactive Bill of Materials manager to complete the Bill of Materials or you can upload a spreadsheet in .XLSX format. The knowledge base article Importing a Bill of Materials Spreadsheet covers how this process works. Designators in your Bill of Materials will need to be unique.

Component Placement Files

The last piece of information MacroFab needs to build your PCB is the component placement information. If you are using a supported EDA tool this information is easily extracted during the upload process automatically! A properly configured ODB++ output will also contain the component placement information. If your EDA tool is not supported and does not support the ODB++ generation then you will need to build your component placement information by hand in the form of the .XYRS format.

.XYRS File Format

The .XYRS format is a combined Bill of Material and XYRS data file that is used to place parts on the PCB. The file should have the extension “.XYRS”. The file is tab delimited and should contain the following fields. All the dimensions are in mils for X-Y locations and X-Y part size. Rotation is in degrees.

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

An example line from a .XYRS file should look like the following.


An example .XYRS file can be found here.


If you have any questions on what kind of information you need to get your PCB ordered or looking for help with your specific EDA tool please contact our support team.