NPTH Mounting Holes ... AAAaarrgh! Or, how to get them right the first time

Well to be honest it is quite a long post and i didn’t read it the first time round.

Now a long answer to your long post:

I was confused by that. Is it correct that you do that because you lock the component and don’t want to get a warning everytime you move it? The problem here is that if you only move the pad, your fab and courtyard layer markings do not move with them. (I have placed components to close to mounting holes before. I would strongly advice you mark the needed space on courtyard and fab layers and check if you violate them.)

There are plenty of mounting holes with none plated through holes in the library you mentioned.
Example: MountingHole_3.2mm_M3 (or just look in the preview. The footprints without a copper ring are the npth type mounting holes.)

I am also convinced that it might be a good idea to create a custom footprint if none of the footprints in the library fulfill your requirements. (Why? because you will need mounting holes on all of your pcbs. And i’m sure that a lot of them will be mounted in the same manner.)

As said above i would also show the outline of the screw or whatever you use to mount your board on the fab and crtyd layers. (You will thank me sometime in the future for this advice.)
Don’t forget that you will need space for your tools. (The fab layer has the outline of the screw head the crtyd layer the outline of the tool plus a bit extra.)

Very good idea if you don’t have the mounting holes in the schematic. Also very usefull for stuff like logos. They also vanish if you are not careful when importing the netlist. (or when using the new tool update pcb from schematic that is available in nightly)
But as said above this creates “problems” if you want to move the part. I would suggest you place the mounting holes where you need them and after that you do this.

A hint from my side: If you place the mounting holes use a grid that is as large as possible. This way you get nice measurements for the mounting hole distances. I normally use 0.5 or even 1mm grid for placing mounting holes and for the board outline. (The mechanical engineer that designs your housing will thank you for that.)

If you have external constrains on mount hole placement this thread has a quite good solution by @Joan_Sparky:

1 Like

I’ve not had any issues, just using add component in pcbnew, pick required mounting hole from list and place where required.

I don’t know if this is a difference between the nightly version i have and version 4.

1 Like

I noticed that very few people actually like posts. Not even posts that solved their problem get a like. A lot of times there is no message back. So one is left wondering if one has helped or if the original poster simply gave up.

I also noticed a trend whereby controversial opinions get more likes than genuinely good information. (This holds true everywhere on the Internet. It’s better here than elsewhere but still noticeable.) So don’t take it personally if you don’t always get a like. It’s just how it is.

Also note that good posts might get likes later on when someone with the same problem comes along and finds your post helpful.

And don’t take me to serious either. It’s two o clock in the morning here and I really should go to sleep.


I’m trying to sort through the EXTREMELY HELPFUL information that you provided; I’ve read it three times now.

I’ll have a reply by tomorrow.

Well as stated it’s late here maybe some of it is not written well. My English gets worse when I’m tired.

1 Like


Visually it’s a little bit like a wall of text and as I personally have my way I didn’t bother to read it :wink:

Images help with this - they take the boringness out, say more than a thousand words and work as visual anchor points that cause curiosity.

If you want to place text emphasis there is the ‘#’ symbol, which will cause:
if placed on their own line.

PS: I also like answers all the time, as the posters will get special powers (edit posts, change thread titles/categories) after they’ve been on the forums for a while… sharing the workload a bit and make their life easier as well, as they can do more.


I have a standard HOLE_M3 component I place on schematic
That is automatically associated with a HOLE_M3 footprint
I position the holes on the PCB using the grid, (or sometimes set the positions using the dialog)

Creating the lib parts took a few minutes. I don’t know how many hours of using KiCad it took to get to the point where creating new lib parts takes a few minutes, many more than 3 hours I guess.

I tend not to google for walkthroughs or video how to’s, my brain remembers stuff better if I worked out principles first hand. Even if I make a list, I forget where I put the list…


Above, Rene_Poschl mentioned using this method as well.


I’ve never seen a “professional” schematic with “physical holes” described on it.

I do GET why though, as I was tinkering with trying to figure out what was going on I also placed holes on my schematic. Then I realized how non-standard that idea was.

Simply put, HOLES have ZERO functionality on a schematic and have NEVER been on any of the hundreds (thousands?) of schematics I have read.

On top of that ^^^ PcbNew allows adding components, such as mounting holes, to the physical board; it just doesn’t do it very intuitively.

HAH! I really wanted to get my design uploaded to OSH Park for fab ASAP. As such, I was trying to find any short cut or cheat that I could to save myself time! Otherwise, I would have spent the time to figure out exactly what the differences were between locked pads and locked footprints; at this time I only know that I discovered that locked footprints worked for me and the steps taken in my OP.

Thanks for your feedback!

Well, I DON’T CARE at all what you think, even if you SHOUT AT ME. :slight_smile: But you asked for comments :wink:

Invariably when people ask for comments, they don’t mean that, they just want a pat on the back and a “well done!”.

I’m sorry now I made a comment, so to avoid further dispute I will place your username on my ignore list.

1 Like

I did say, “Thanks for your feedback!”… should it have been, “THANKS FOR YOUR FEEDBACK!!!” ?

The text I wrote was never meant to be any sort of personal attack.

Oh, and BTW, even before your post, I had already started to edit my OP based upon earlier suggestions. The suggestions were good, but not as easy to implement as I thought they would be.

I don’t like it either. I also never put things like mounting holes on a schematic, then again I don’t put footprints, part numbers or mounting hardware on a schematic either.

I have a whole (local) library of mounting hole footprints - several standard sizes, with or without washer clearances, a few plated-through with copper pads for explicit chassis ground connections, etc. I plunk them on the board in PCBNew and accept the fact that they’ll trigger a DRC response. (Same thing for some company logos that the boss likes to see on the silkscreen.) LEARNING to create footprints took a while but even while still a KiCAD Apprentice it wasn’t tedious or burdensome to make a mounting-hole footprint.


  1. I like to test such recipes before commenting on them (and have nothing to add to yours since it works).

I’ve also seen quite a few schematics that contained more than just the symbols for the electronic parts, so I guess it’s two vs. one :wink:

As for

[quote=“Sprig, post:11, topic:5799”]
I DON’T LIKE IT! [/quote]

Simply create a subsheet and put all holes, vias, etc. there. Out of sight, out of mind but still useful for BOM management and minimizing DRC errors.

1 Like

I mentioned that I have been primarily employed as a military avionics technician; space and weight considerations are not things that should be on a schematic for a technician to muddle through.

The mechanical are always on a separate document; and FAR more complex then just mounting holes that do NOT connect to the pieces to the ground chassis.

Having “holes” on the schematic would appear to be “amateurish” among the professionals that I work with. If KiCad wants to be invited by professionals, then it needs to visually present itself as a professional tool.

I don’t hold any “feelings” about this issue.

A suggestion would be to add a mechanical layer to the schematic; handling only visual details on non-PCB technical layers off to be represented for mechanical requirements. The 3D viewer seems to be able to do some of this.

It took me some time, but I figured out how to do it the way the professionals in my industry present it; but it was neither intuitive or quickly accomplished.

And, I AM going to finish editing the OP with all of the suggestions provided; but I’ve been STUCK trying to work out the KiCad libraries mess…


PS: [quote=“Sprig, post:18, topic:5799”]
A suggestion would be to add a mechanical layer to the schematic; handling only visual details on non-PCB technical layers off to be represented for mechanical requirements.

Sounds nice, but will take a damn long time, as essentially it would require some sort of CAD code that would enable you to draw like in a 2D CAD tool - hopefully with driving dimensions.
Don’t know if the schematic capture program would be the right tool for this either.

IMHO - What people here talk about is merely a ‘hacky’ means to automate footprint loading in the Layout tool via the netlist that is based on the schematic.


Sprig- Just came across this posting of yours. Excellent info and I almost understood it all - lol. I’m on my tablet at the moment but will reread and try the workflow on a tiny pcb I’m working on as my very first Kicad design. I’m using 5.0.2 on Windows and have been slowly grinding my way through the docs. It’s slow going but I’m making progress.

Are there any changes to your outlined steps now that kicad 5 is officially out ?

Thanks again for a great post and cheers from sunny Canada,


1 Like


Initially I wrote this post as a means to help me out with my own future designs with the nuances of mounting holes; and I have revisited this/my post on occasion some time later for recent designs. Since the time of the OP KiCad has had some significant changes, and at this time I don’t know how the current “official” KiCad version deals with NPTH mounting holes.

One significant change in PcbNew is that the NetList Reader is now no longer the recommended method to update the the PcbNew file.

It would not surprise me if NPTH slipped under the radar and they are now even more confusing to create. It is not a very common topic on this forum or the developers mailing list.

When I first created the OP, there was no FAQ section on this forum. If I can get enough data to download the latest version of KiCad, I “may” be able to spend the time to create a document worthy of being copied to the FAQ section of the forum.

I never understood what should be confusing with them. They are used like any other pad inside a footprint. (And added to your board like any other footprint)

I think you mainly hang yourself up because you do not want to use symbols for such things. This is understandable. But any additional complications that arise from this fact are for you to deal with.

Maybe a better tutorial for adding mounting holes is as follows:

Step 0: decide if you want to have symbols in the schematic or not. (Suggestion for new users: use a symbol. Makes everything easier.)
Step 0.1: decide if you want plated or non plated mounting holes. (determines which symbol and or footprint to select)

  • Plated holes allow more mechanical strenght.
  • Plated holes can be used to connect ground to your housing

With symbol in the schematic:

  • Add the mounting hole symbol found in the mechanical lib to the schematic (either the one with a pin for plated mounting holes or the one without for non plated)
  • Annotate the schematic.
  • Assign the footprint for your mounting hole to it (the official lib comes with quite a few mounting holes. If you need more then create one. more on that later)
  • Save your schematic and switch to pcb new.
  • Use tools -> update pcb from schematic to get your stuff into this tool.
  • place the mounting holes like you would any other footprint.

Without symbol in the schematic:

  • Add the appropriate footprint with the add footprint tool from the right toolbar.
  • place it where you want it to be.
  • Lock the footprint to protect it from being removed by updating from schematic. This is done in the preferences menu of the footprint (Important: The preference menu of the footprint not the one of the pad!)

Creating a footprint for a mounting hole

  • Create a new footprint inside a personal lib.
  • Add a single pad to it.
    • Choose either plated or non plated through hole depending on your needs.
  • Add some indicator for the size of your screw or other part to the fab layer
  • Add a courtyard layer with enough clearance to the screw (depends on your needs/preferences.)
  • Save the footprint

More details about footprint creation: Tutorial: How to make a footprint in KiCad 5.1.x (From scratch)?


Hi All

I would suggest in PCB_New, try a brief test or inserting EVERY mounting hole for size M3. Then look at the PCB using the PRINT BOARD (icon of printer) and be sure to make each layer a different sheet. In Preview you’ll see which are just drilled, which have an annular ring, extra GND holes, etc. You’ll quickly pick a favorite and stick with it.

Regarding “professional” schematics/pcb, particularly in RF and microwave, it is often necessary to have a Really good Gnd so there will be instructions like “provide a Gnd mounting hole within 0.2” of Q2 emitter". The same for stitching Gnd planes on both sides. These tidbits are essential to proper operation and in 10 years when the board is revised, it is extremely helpful to have this knowledge.

It is a very quick and useful learning experience. Also learn to LOCK mounting holes after placement or they may wander on you.

Keep learning and good luck!