Confusing basics - want to generate fabrication gerbers for PCB house

Hi all,

This is very basic. I am about to generate my first output to send to a PCB house. In other systems i simply select “generate gerber output” or similar,and check off the layers i need/want. here is only see, under fabrication outputs, some references to footprint outlines and drill holes, with no more info.

A quick search indicated that it might be under file --> plot, but this seems sooooooo counter intuitive that i hesitate to proceed. Can someone provide either a pointer to a tutorial or quick rundown of what i need for a fairly straightforward 2-layer board going to a major house?

I also presume that KiCAD provides some registration to align layers.



Your chosen fab usually has a page showing you step by step what to do for Kicad. Also a search on “kicad generate gerber tutorial” gets heaps of results. But don’t use any that talk about Kicad 4.

Here are the bare steps:

  1. Click on Plotter icon
  2. Specify a subdirectory, say gerber
  3. Select the following layers, typical for a 2 layer beginner board: F.Cu, B.Cu, F.Mask, B.Mask, F.SilkS, B.SilkS, and Edge.Cuts (7 files)
  4. Check Use Protel filenames (typical for Chinese fabs)
  5. Do not check X2 extensions
  6. Click on Plot
  7. Click on Generate Drill Files
  8. Default of Excellon is fine
  9. Click on Generate Drill File
  10. Close

Zip up the contents of the gerber subdirectory, should be 9 files, and send it for checking. The files will be correctly registered, the software is not that stupid.

That is great and makes sense to me.

KiCAD needs to make the menu structure a bit more logical! Wow.

Thanks Ken.


Logical across multiple languages is where some of the confusion creeps in.

Both in 5.0 and 5.99 there seems to be File -> Fabrication Outputs which has Gerbers menu item. So unless it has been taken away and then put back it should be there. It opens the Plot dialog.

It’s a UI standard across all systems and software that menu items which end with … don’t act immediately but open a dialog, so there’s a chance to cancel and you can’t ruin anything accidentally.

1 Like

1. Check Use Protel filenames (typical for Chinese fabs)
just out of interest, is this more for chinese because uk and us fab’s are ok with kicad filenames (plus kicad filenames do make sense, esp with X2)

2. Do not check X2 extensions
Any reason? the boards I have pushed out have all been done with X2 without a problem? its backwards compatible and the additional information is really useful if a fab uses it.

I don’t know about fabs in other countries, I can’t afford them. The Protel filenames requirement can sometimes be relaxed but it depends on the fab.

As for X2, many people have had jobs bounce because of this, just search this forum. Unfortunately many Chinese fabs use old CAM software. So unless they state that they can accept X2…

The new standards are doubtless current and good, but many Chinese fabs haven’t moved to it.

I am, in this case, using a Chinese based fab. I can tell you they don’t appear to care about whether the protel extensions are used or not (since i uploaded both ways, one after revisions). Of coruse this whole thing is an adventure for me :slight_smile:

Often their software guesses correctly which files are which layer as you can see from the reports from the backend after you have uploaded. In fact Protel uses .gml or .gko for the EdgeCuts layer while Kicad generates .gm1, this could have been a misreading by a Kicad dev way back, but it doesn’t seem to hurt anything. (Protel names were never a formal standard, so it could have been a misreading of a printed document.) But I usually leave Kicad at the Protel setting as there is nothing gained either way. The X2 extensions are more likely to cause trouble, which is a pity because they are indeed intended to get away from file extensions.

In Protel 3 I always used gm1 as EdgeCuts.
I suppose gml stands for multilayer. When I switch multilayer off all vias and THT pads disappear.
When selecting layers to generate output files I can’t select multilayer to be generated.
I suppose gko stands for keep-out layer.
At my PCBs I have lot of lines at keep-out layer which are certainly not the edge cuts. Keep-out means keep copper out of anything at this layer. I dream to have keep-out layer in KiCad.

Uh-oh. I just found something interesting - either I did something wrong (and how?) or i found a bug.

I created as set of Gerbers and uploaded them to the fab’s site. The board displayed and it “passed review”. Subsequently i made some minor changes to the PCB and re-made the Gerbers. This time i used protel names as suggested. KiCAD showed that it created all the usual files, although I did not check them. I uploaded the ZIP file, and it failed review.

After going in circles i looked more carefully at the files - while they were all there they were tiny - a few to a couple hundred bits. I re-made them - same thing. So i tried without the protel names (since that worked previously) and presto - 1.4 MB of files. Uploaded, passed review, and on its way to being made.

So, what’s going on with KiCAD and exporting protel named Gerbers?


Never had this problem with either format. Always clear the gerber directory first if you are changing the format, and even if you are not, just to be sure there isn’t a mix of old and new files. And make sure to command the zip program to create a fresh archive each time just in case it’s appending to the old one.

I did all that. In fact i have both folders still.

The problem was pre-ZIP. KiCAD output zilch

Sorry, I’ve never had this happen. If you really think you have a bug, then copy the .kicad_pcb file to another directory, open pcbnew on it and try to generate Gerbers from it in Protel format. If it’s reproducible it’s a bug. But I seriously doubt if something this big would be missed by all the users who generate Protel format, and that includes me.

There is not a keep out layer, but you can do keep out zones in KiCad, have you tried that ?

1 Like

I just give it a try in version v5.1.6 and I couldn’t reproduce it, either using two folders or saving all in the same folder (look at the screenshot below, the sizes are identical), if you can reproduce it, please report it, don’t forget your version number, steps, etc.

Application: Pcbnew
Version: (5.1.6)-1, release build
    wxWidgets 3.0.4
    libcurl/7.66.0 OpenSSL/1.1.1d (Schannel) zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.1.1) nghttp2/1.39.2
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.71.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.66.0
    Compiler: GCC 9.2.0 with C++ ABI 1013

Build settings:

I know, but they work only at one layer I think.
And I see that my sentence about Keep-Out layer was not enough precision.

Mmm you can select in which layers it works and what is kept out of the defined zone.

1 Like

Thanks. Very, very good to know.
I just didn’t moved yet to KiCad any of my PCBs in which I have used a lot of keep-out layer so didn’t tried keep-out zone. In my mind was the info about possibilities I have read in KiCad documentations. I read them when 4.0.6 was current thinking those time that they are up to date (I started from those documentations not installing KiCad).
Instead of checking before replying I added ‘I think’ :slight_smile:

Once more thanks. I think I will remember it from now.

I think 99.9% of the kicad userbase speak English at a decent level though