I'm making my own PCBs at home and I'm using KiCAD to layout the boards and create the Gerber files. From the files I'm making my template which I transfer to my boards and then finish the etching process.

I was wondering if there was a way that I can modify the thru holes in the file so that they appear on the Gerber drawing as having a small hole in the middle of them. Currently they show up as a solid pad.

The reason is that when I drill out the holes I'd like to have the copper already pitted/removed in the center to make it easier for starting the drill bit. It tends to wonder a little if it has to start from the copper layer without any sort of tap mark.

I've only used the KiCAD software so I'm not sure if there is other software that could do this for me.

  • 1
    \$\begingroup\$ Sorry about the seven month delay; this slipped through the cracks somehow! \$\endgroup\$
    – Kaz
    Aug 8, 2013 at 21:23

1 Answer 1


Makeshift pilot holes:

If you have to drill pads and vias without pilot holes, use a thumb-tack or other sharp tool to make an indentation as close to the center as you are able. (How I deal with poorly etched pilot holes!)

Alternative software:

FreePCB (Windows-only open source program) generates gerber files with pilot holes in the copper layers corresponding to the drill holes through vias and pads. The pilot holes are optional: you can enable them with a checkbox in the CAM file generation dialog. In the same dialog, there is an input box where you can specify the pilot hole diameter. A separate command line utility called GerberRender, distributed with FreePCB, is used for generating raster images.

DIY Pilots via Image Manipulation

If I had to use PCB software that doesn't generate pilot holes, here is what I would do: I would set the through-hole size on all my parts to have the pilot hole diameter, about 10 to 15 mils. (Since I would be making the PCB myself, I wouldn't care that the holes are wrong; however, this would have to be fixed, obviously, if the PCB is later sent out to fab.) Then I would use the image generated from the drill file as a mask to create the pilot holes in the copper layer(s), using an image-processing program such as GIMP.

Suppose you have a pair of black and white images at identical pixel dimensions, one depicting a copper layer and the other drill holes, with the holes and copper being in black, over a white background. Here is how you can use GIMP to render the holes into the copper.

  1. Load the copper layer image and the drill file image as two layers by using GIMP's "Open as Layers" command in the File menu, which allows multiple images to be selected and loaded as the layers of a single GIMP image.
  2. Ensure that the drill layer is the top one of the two, moving it up using the green arrow buttons in the Layers dialog.
  3. Ensure you're switched to the drill layer by clicking on it in the Layers dialog.
  4. Invert the layer to create a negative. This is done in the Colors menu with the Invert command. Now the holes are white, on a black background.
  5. In the Layer dialog, change the drill layer's Mode to "Lighten only".

    At this point, you see both layers, with the white regions of the drill layer creating white holes in the copper layer.

  6. Do a "Merge visible layers" in the layer dialog's context menu, or, equivalently, "Merge layer down" on the drill layer.
  7. Do an "Export to ..." to save the resulting image as your copper-with-pilots layer.

There is probably a way to script all this from the command line via the ImageMagick utility.

A more ambitious project would be to write an image processing tool or plugin which can scan through a regular drill layer image (with holes having various diameters), identify all the holes and generate a new image in which they are all replaced by holes having a fixed, smaller diameter. Such a filter would make it unnecessary to switch to custom footprints in the part library in order to get properly sized pilot holes.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.