How to change hole sizes once components are placed


I imported a DB25 PCB mount male connector. I was able to route the various pins. The EE is French and he gave me the board to finish - he had more pressing things to do. (I do device drivers among other things, so I only play EE on TV but am very comfortable with hardware, been laying out PCBs for various projects and clients for 20+ years.)

Point is: he started the board in metric. I set my preferences to inches. So far, so good. I looked at the hole sizes and they were all over the map in english units. And, I assume from rounding errors, but they were all over the map in metric units.

I needed them to be APCircuit’s free hole size. I tried the logical “rt-click, choose pad, edit pad” which gives you three choices:

I could change the holes on the DB25, but even when I said “change identical holes sizes”, it seemed like all of the holes - signal and mounting - changed. I can easily think this was pilot error.

I had to convert english units for the holes to metric, use vi to edit the “*.kicad_pcb” file, change the pad sizes for what I needed, save & reload.

I wanted the signal holes on the DB25 to be one size (0.028) and the mounting holes to be bigger (0.125). I kept getting the wrong size for various holes - all of the holes in the DB25 were the same size.

It is also not easy to determine the hole sizes used on a component (or I am enough of a KiCad newbie I do not know the majic incantations - very likely.) I can generate the .drl report, but that is at the board level. Useful if I am going to change the text via vi.

So, the only solution I could see was vi. It was easy for me because of the text form of the .kicad_pcb file, and I started in the edlin on ASR33’s days.

Is there an easier way? I am considering creating a directory (private library) and all my footprints go in there, and I will set the footprint holes with vi.

I fall on the wisdom of the old hands.


You seem to be using version 4.0. I would be tempted to recommend nightly builds if you weren’t doing this for work. I just tried to edit pads with 4.0.7 but alas, but it was too difficult. The pre-5 nightly builds are so much better. I routinely edit a footprint with the footprint editor, copy pad properties and apply them to selected pads. No problem at all. 4.0.7 feels unintuitive and you just can’t do the same things easily.

You can try to set View->OpenGL, it has a different kind of toolset. But unfortunately it’s lacking in 4.0.7 and I didn’t find copy/apply pad properties there. In any case you should learn to use the OpenGL canvas if you will continue using KiCad because it will be the default in 5.0.


OK, you know how to get the attention of old guys! I’d have to do some archeology, but I think my fingerprints are on some KSR-19’s someplace . . .

I only have 90 seconds before the boss wanders by. I think you want to open the DB25’s footprint in the footprint editor, change the hole sizes as necessary, and save it. (You may need to rename the footprint.) Then update the footprint in PCBNew. Do this by hovering the cursor over the footprint, press “E”, and look at the menu that appears. (Change the footprint name, and back-annotate schematic, if you saved the modified footprint under a new name.)

Gotta go - somebody else on here can help you fill out details of these steps if necessary.



Yep - 4.0.7 and for work.
I am in a huge company. To get kicad installed in the first place I had to put in a ticket, wait, etc. The IT guy is several states away. I will probably need to repeat the sequence for 5.0

i will try openGL once running 5.0 - another posting suggested it was easier for some things.

My biggest issues with kicad are some things are still half-baked, and learning how to think. But - it is way better than the first time I tried it a few years ago. I am probably going to use it for personal projects. I have been using Circuit/Traxmaker since it was DOS. The 2000 release was the last. No, I will not use their “free” web-based version.

We are using git for version control. We can create our own parts directory and create a personalized library. And - we only need kicad for development boards. We have a couple of EE’s in a different division that are using Altium for the “real” boards.

My only real bitch so far is I use inches, and the preferences do not stick. I have had it go back to metric without warning. Not sure I should report that as a bug…


My first “real” job was at a place called Floating Point Systems. Everybody had ADM3A’s attached to a PR1ME. I had a couple of weeks between projects & I wrote an emacs emulator in TECO.

Flash forward to a few years ago. My (then) 22yo son got an ADM3A, attached it to a PC and was running ZORK.

See my response to eelik on private libraries…

Thanks … bandit


You don’t have to wait, you can switch back and forth on the fly. It doesn’t affect the project, it’s only about the UI (toolset and view).

5.0 will be two ways better than 4.0. Well, maybe not quite, but that’s how I feel…

It will be of no use because version 4 won’t be fixed anymore. And it has probably been fixed in 5 already.

BTW, you can type “1in” in number value fields and it will be automatically converted to 25.4mm, or vice versa.


i will try openGL once running 5.0

You don’t have to wait, you can switch back and forth on the fly. It doesn’t affect the project, it’s only about the UI (toolset and view).

The issue is: I am behind a huge firewall at a huge company. I need to put in a ticket, and an IT guy several states away does majic over the interwebs.

And I can afford to wait - we sent the board out to be cut && I will have a lot to do in a couple of days.

But it is satisfying to know the projects will not be buggered up.


Do you mean changing to 5.0 (after it will be released?) I was talking about the OpenGL canvas in 4.0, it’s an option there, too. At least I don’t understand why that would need any acceptance from anyone, it’s about your personal workflow as much as using any menu, toolbar button, hotkey etc.


Just press F11 in KiCad 4.0.7 to be in OpenGL.
My interest in KiCad started an year ago from looking at:

This is a demo of things (pushing tracks) working only in OpenGL and I assumed to use OpenGL and really forgotten there are also Standard (F9). Forgotten to that level that I asked here some questions “How to do that?” And the right unswer was: “Use F9 Looke”.
I think the best way of using KiCad 4.0.7 is to be in F11 and only if you can’t do something check if it is posiible under F9 (but I am moving to KiCad very slowly - 2 weeks ago made my first KiCad PCB so may be wrong).
My first try with PCB design software was at Commodore 64. When I had IBM XT (640k RAM) with two FDD 320k and without HDD I found the way how to use Racal Redac (distribution on 4 320k Floppies) on it. I had to spend 80k of RAM for RAMDisc (if more then was not enough of RAM left for working, if less no place for ‘must have’ files).


I always used inches. But together with switching myself from Protel to KiCad I decided to switch also from inches to mm.
All my footprints in Protel was made by calculating mm from datasheet into inches. My footprints in KiCad (till now just a simple first set) all are in mm.


This might help to clear things up a bit: Pcb_new: What is a canvas? (default [legacy], open-gl [accelerated] and cairo [fallback]) Is there a difference?


As I recall, that pre-dated the VT-100 but not sure if it was before or after the VT-52. I guess the VT-100 was the right product, at the right time, and the right price. Once it was in the field, nobody ever mentioned any other manufacturer’s model numbers: they were all simply “VT-100 clones” or “VT-100 compatibles”.




You don’t need to edit the .kicad_pcb file.
Kicad saves the dimensions in mm (or nanometres) even though you set the dimensions to inches. Kicad automatically translates the units.

Yes. Make your own footprint from the old one.

  1. Open the footprint editor and load the db25 footprint you are using
  2. Change the units to inches
  3. Edit a hole: set the value you want in inches
  4. Make use of the global pads edition or change one hole at a time
  5. Same for the mounting holes
  6. Save the footprint (safer with a new name).
  7. Back to the layout editor pcbnew, update all the DB25 footprints with the new one.

Switching from mm to inches doesn’t change the real size of any item. I do it all the time in many layouts. With 4.0.7 version if I swithc to inches pcbnew sticks to this state even if I open the footprint editor. I have not had automatic unit switching.


I had to edit the .kicad_pcb file to set the hole sizes for every hole on the board. I knew the units were mm. But it was the only way I could figure out at the time to assure myself the holes were the proper size.

That is my plan from now on.

It happened once. I was rather surprised, but I caught it early. Not sure if it was a bug, or a weird side-effect of something I did.


I was referring to going to 5.0
I will need a fresh install, which means a new ticket, scheduling it with the IT guy several states away, etc.

The router is interesting. I learned if it did not want to connect to a trace or hole, it was because of the netlist. There are a couple of funky edge cases, depending on which end of the netlist you start from, but I never bothered to document the cases.

I am planning on trying OpenGL mode when I move to 5.0

Things are generally better than those days… Although the tools may be frustrating at times, I don’t want to lay out a board with tape.


I see. The problem is not using mm/inches at the same time. The problem was to be sure the other designer had chosen the right equivalent sizes in milimetres.

But if you knew (unlikely) the sizes were right, the error translation of units is lower than the drilling error.
I have worked with “exact” dimension of holes in mm. Lets say, a 0.5 hole. Then the fab drill set was inch-based, so instead of 0.1969 the drill was 0.20. No problem at all.


My default for hole sizes are the APCircuit free drill list. I calculated the mm equivalent sizes. For example 0.038 (38 mills) == 0.9652

And, for whatever reason, the original sizes in mm were weirdly wrong - out to 12+ decimal places. It was just cleaner to search for the right keywords and change the values to what I needed.

I do not recommend this method for the faint of heart, those who do not have paranoid backup methods, or with weak vi editing skills.

But - the text format used is logical and (fairly) consistent for all source files. Kudos to whoever created it! Obvious they drank deep from the Unix pool. Writing a [de]parser would be trivial.


Your choise. But it looked (or at least I understood this that way) that you think it will be possible for you only after moving to 5.0.
And it is not true so we (not only me) were telling you that you just have OpenGl a klick away from you just now. I suppose (not checked) routing in 5.0 will be really the same as in 4.0.7 because they mainly improved other things then routing while giving KiCad number 5.
I am using till now my 20 years old Protel. That routing (with pushing other tracks) is the only reason for me to be interested in KiCad.

As a child I printed my PCBs with paint using for it ball-pen refill with its ball removed. At first work we had a set of black tapes and pads (if I understood well what you said).


An year ago I asked my PCB manufacturer what they do if some untypical whole diameters are used in PCB. For small wholes they round it to closest 0.05mm the biggers to closest 0.1mm. So in my situation the differences at 0.01mm are not important, but can be used to have different tool for plated and not plated wholes even if the same diameter will be used.