Create a custom shape hole


Hello, I am drawing the footprint for this USB type C connector
UJ31-CH-3-SMT-TR Datasheet
It has 2 l-shaped mounting holes. How should I draw them? I can overlap two oval shaped pads, but that would lead to some copper/hole overlap. What is the correct way to do it?


Unfortunately it depends on the pcb manufacturer who makes the board. Not all want or can make even a straight slot. You have to negotiate with your manufacturer. Or just do what I think most experienced people with cheap manufacturers would do: use a bigger round hole instead of a complex shape if possible.


Most manufacturers dont like it because it means using routing bits rather than just drills during the drill pass before the Via Plating, but its not a hard thing for them to do, they just dont always have ruoting bits loaded in the machines tool changer at this point in the process,

especially if they are already catering for 50+ different holes sizes from people not standardizing there footprints, e.g. this one is 0.95mm hole, this one is 1.05mm hole, etc, when they could both be 1mm,

Most of the cheap fabs will just wave it through, but only if the slot width is small, e.g. under 1mm,


To make it clear - even if they can do it, you have to make sure that the way you give the information about the hole is good for them. Can it be in the drilling information, or in the edge layer as routed outline, or in another gerber layer as an outline.


From previous experience, there software treats any holes in a pad as plated unless you have it in a NPTH drill file, this has been the case for both ITEAD and ALLPCB, (Ironically I wanted it non plated, the more you know)

I would likely draw those shapes on edge cuts, and describe it in the PCB fabrication notes when you submit it.


…except that some manufacturers don’t accept that.


Then your at the point you turn to your desired fab and ask how they would prefer it,

Oval pads are now supported by most, but at the end of the day its still interpreted by the guy loading the files in the drill machine on the day.


The manufacturer will happily do it for you (If they have modern enough machines that is) However it might be that they charge more for it. Mostly because they can. Most hobby users do not like it because it will increase the price. (Either because their cheap fab does not offer the option for routing or because they charge more if you have routed plated through holes)

IPC has clear rules how large a hole for a given lead diameter should be. I doubt you can easily exchange the 1.05 with 1.00. (If you take all tolerances into account then you might end up with a hole too small for your part)

I also doubt you get the same solder joint reliability of your board if you substitute the 1.00 for the 0.95 one. (this will not affect you if you hand solder your board.)

Also some parts use press fit instead of soldering. Here you really are unable to choose a different drill diameter than specified for the part. (You might even need to tell the fab that some holes have tighter tolerances to accommodate these parts)

So you can not simply state that the user is at fault if there are too many different drill diameters. Especially if you order less then a full sheet at once and are mixed in with other users who have totally different requirements (Metric vs imperial comes to mind)


All fabs round to the nearest 0.05mm for drills, no fab I have encountered use imperial in house.

I was pointing at the fact there tool changer only has X many tools in it at a given time, and for each extra tool, the tool changer cost goes up crazily,

Having worked on a number of open source PCB’s, I have found many cases where 0.1" headers of the same make and series use a mix of 0.87mm, 0.92mm 1.0mm and 1.1mm holes,

Now the cheap fabs generally do have to swap some tools in and out between runs, its why they try and nudge people to 10 boards or more, and many times even if you order 1, they are running 5 or 10 just to keep the cam the same for the rest of the panel.

By you using a smaller number of drills, there is less chance they will run out of tool spaces, and say too hard for your slots, they can swap a drill for a milling bit, but if the slot is very big or crazy thin they probably wont like it.


In any case, the answer to the original question is:

  • There’s no one correct way of doing it
  • You have to ask your manufacturer
  • And you have to think what you actually need (is it enough to have something which works well when you solder it manually, or do you really need tight tolerances and replication of the datasheet)


Thank you guys, I will just go ahead with a larger hole.I will handsolder it, so no problem whatsoever. I thought of drawing it more precisely because I am switching from eagle to kicad, and I wanted to take a chance to learn how things should be did in kicad.


Look like you can specify the hole using the PCB Edge cut layer for non circular holes so it will be clear to Fab house that it need to me milling… And if you need the electrical contract (like plated hole), you just need to make sure the copper layer is right on it/overlap the hole. However, you may have some questions from fab house, and price may slightly increase. This is what I remember.


This highly depends on the fab used. Like we said different fabs want this information communicated differently.


Just like the via on Pads for example. I love it because it give a best electrical property for decoupling, but assembly house hated it. But there are solution for assembly anyway:
1 - fill via with material
2 - make via small enough to not prevent solider drain out to the other side


I think you need to tell people what “NO” to do instead. I would think we should not having those holes in the drill file at all (simple because it cannot be drill). So with KiCad the only option for me is using Edge Cut layers.


Some fabs (most modern ones) support the special gerber code that is used by kicad to communicate oval holes. Others don’t.
The edge cut solution creates massive problems in v5 as v5 now applies clearance between trace (and copper zones) to edge cut drawings. So this workaround no longer works. You would need to put the drawing on some other layer (Example one of the Eco layers) and tell the fab that these drawings are plated internal cutouts.


Thank - this is news for me.


I think this news feature seem to be no a good clear cut then. We then need a “parallel” layer with a clear name so everyone can use for generate the footprint. Otherwise, everyone footprint are not transferable to other people!.


Kicad never supported edge cuts in footprints


So would the be good if we have one specially for this, instead everyone use in there own creative ways?