Required Design Files

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, and step-by-step instructions being displayed in real-time to assembly technicians on the line. In this way, we reduce the cost of assembly by minimizing labor and eliminating common Non-Recurring Engineering (NRE) costs. 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, including 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 at 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

All files should be uploaded uncompressed. There is no need to zip up files, and zip files will not be processed. 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.

Gerber CAM files

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
    Inner signal layers (can use for planes, but all inner layers must be positive 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. You will be prompted to verify the layer for each file you upload, and if the system cannot automatically identify it, you will be able to specify it manually.

– 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.

Formatting Bill of Materials and XYRS Data

The Bill of Material and XYRS data file is used to place parts on the PCB. The file describes which parts are placed and where their locations are. 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

Column Description Example
Designator Part Name U1, R10, C8
X-Loc X-Location of Part (mils, oriented from bottom-left) 1200.00
Y-Loc Y-Location of Part (mils, oriented from bottom-left) 900.00
Rotation Rotation of Part (degrees) 270
Side Layer the Part is On 1/T/top for Top, 2/B/bot/bottom for Bottom
Type Surface or Through Hole 1/SMT/SMD for SMD, 2 for PTH
X-Size X Dimension of the Part (mils) Size of the Package, Measured By the Pad Footprint
Y-Size Y Dimension of the Part (mils) Size of the Package, Measured By the Pad Footprint
Value Value of Part 10K, 0.1uF, ATMEGA328P-AU
Footprint Footprint of Part C0805, R0603, TQFP-100
Populate (optional) Whether or not to populate this part 1 for populate, 0 for do not populate
MPN (optional) The MPN for this part MF-CAP-0402-27pF

For example:

Part X Y Rotation Side Type XSize YSize Value Footprint Populate MPN
R1 1200.00 900.00 180 1 1 40.0 20.0 1K 0402-RES 1 MF-CAP-0402-27pF

An example .XYRS file can be found here.

You can now link your BOM Excel file to your .XYRS file by using the Bill of Materials import tool below!

Importing Existing Bill of Materials

You can also import an existing bill of materials in Microsoft Excel 2007 format.



After uploading, the system will attempt to automatically map your bill of materials to the corresponding MacroFab format required for assembly.




If the system cannot automatically map your bill of materials, you will be presented with an interface to map the raw imported data to the corresponding MacroFab format required for assembly. Rows that do not contain pertinent data can be excluded from import by clicking them. You can map your data to the MacroFab format by selecting the appropriate column from the drop-down selector. The only required column is Designator, although it is recommended that you map as many columns as possible, as this will assist in automatic part matching.




Once you have accepted the automatic bill of materials and/or mapped your raw data, you will be presented with a final view of the bill of materials that will be imported. Rows can be excluded from import by clicking the trash icon. Any rows that do not contain corresponding placement data will be marked with a warning; these parts will not be assembled on the PCB until placement data is uploaded.