Oval pads not possible for OSHPark?


I have sent a design to OSHPark which gives errors during upload/processing. The design contains two oval pads and I’m afraid this is the reason of the error. I sent already multiple designs before to OSHPark without any issues, but also always with round pads, not oval ones. This is the first design with oval ones…

The Geber view looks OK:

Has anyone already successfully sent a design with oval pads to OSHPark?

I’ve sent an e-mail with the design to OSHPark and asked for assistence, but I just wanted to know through the forum if someone has had this issue before.

Best rgds,


Last time I looked into this, plated slots of any type were not supported.

OSHPark seems to use ‘libgerbv’ to render the preview images on their website. As of now this software doesn’t support oval drill holes, they get displayed as off-centered round holes.


Yes, the footprint you show in the screen capture has something OSH park can’t handle.

OSH Park handles oval pads just fine.
However, apparently they can’t drill oval holes or slots.
“Plated slots aren’t supported.”
– OSH Park, page https://www.oshpark.com/pricing

To get OSH Park to accept that through-hole pad,
In your footprint editor, for each pad in the part, hold your mouse over the pad and press ‘e’, leave the “Pad Shape” as “Oval” (or whatever you want), and change the “Drill Shape” to “Circular”.
Then update all the parts on your PCB to use footprints with circular holes.

When I have a part with rectangular pins, I find the diagonal of that pin: diagonal = sqrt( x^2 + y^2).
Then I add 6 mils to get my recommended PCB drill hole diameter for that pin.
(See https://en.wikibooks.org/wiki/Practical_Electronics/PCB_Layout ).

Yesterday I sent a design to OSH Park with oval pads.
(In particular, the standard footprint library parts that come with KiCad “Pin_Headers:Pin_Header_Straight_1x06” and “Pin_Headers:Pin_Header_Straight_1x03”).
OSH Park accepted those oval pads (with circular holes in the middle) without complaint.


I must admit, my “pcb vocabulary” is not that proficient yet and I misinterpreted the “plated slots aren’t supported”… My bad.

But thanks for pointing this out + a few very useful links have been given too.

In the mean time, I changed the drill shape to circular again (pad shape remained oval) and all went well this time during upload/processing.


Hey everyone! Figured I’d drop in with an official word on plated slots through OSHPark.

It’s true that we don’t officially support plated slots, but they can be fabricated, and regularly go through just fine. The callout is a bit strange in the KiCAD UI, but you can see the full details of what we expect here: http://support.oshpark.com/support/solutions/articles/134889-internal-cutouts-and-slots
The most critical note is simply that there’s a small (but non-zero) chance it won’t be fabricated properly. It’s very rarely an issue these days, but until it’s 100% we don’t want to claim full support.

In any case, for now getting KiCAD to generate that is basically as simple as making a Line on the EdgeCuts layer that goes the from the center of one end of the slot, to the center of the other end, and making the line width the slot width. When that’s combined with the native Slot tool, everything will show up as we expect it. Not quite ideal, but it works for now.

DavidCary’s conversion tip is highly suggested if you’re feeling iffy about using the slots. We currently recommend slots only if they’re absolutely critical to the layout, which does happen from time to time.

At some point in the future we’re planning on scanning the drill files for the G85 Drill callout KiCAD generates for slots, and then generating any needed fabrication layers. We have some updates that need to happen before we can do this, but afterward we should have proper slot support. We’ll update the Design Rules and FAQ pages when it happens, and should have an additional “Slots” image on our previews as well.

OSHPark seems to use ‘libgerbv’ to render the preview images on their website. As of now this software doesn’t support oval drill holes, they get displayed as off-centered round holes.

Yep. That’s exactly right, although not the exact reason we’re not offering support yet.


Thanks for the official heads up, @tekdemo


I’m quite interested about how oval pads are supposed to be represented on gerbers in general. The reason is that my board features a PTH USB connector featuring 4 oval pads / holes. I was able to get the board manufactured correctly before but not this time.

I’m not sure what has changed but it’s apparent that within the oval pads I see circular drills on the drill layer. Are oval shaped drills possible on the drill layer, for example?

Also, how KiCad is supposed to export oval drill holes as gerbers?


There is no universally accepted method of specifying a slotted hole; for now this is something which must be discussed with the fabricators for each run. It’s quite a nuisance since it’s been somewhat trivial to manufacture such slots for many years now and such slots, including plated ones, are not uncommon. But sometimes industry is just like that.


Thanks a lot, @cbernardo, really appreciated!

As it turns out KiCad plots correct oval holes but then I used gerbv from command line to merge a couple of files for panelization. I’ve just realized that gerbv doesn’t handle oval holes and as such converted them to circular holes.


Yeah, GerbV just eats most slot callouts from any design tool, so you have to be careful with it.

As cbernardo points out, slots are pretty fab specific, as well as design-tool specific. There’s a few different ways design tools indicate slots, including a Milling layer which defines the bounds of the slot (Eagle), Drills and a Milling Path (Eagle, Altium sometimes), G85 Move-with-Drill-Down command (KiCAD), M15/M16 “keep drill down / Lift drill up” commands (Altium, DesignSpark), repeated overlapping slots (pretty rare), and occasionally other M commands with no precisely defined meaning. The whole thing is just a mess on the fab side, due to poor definitions inside of the relatively ancient Excellon drill format.


Hi tekdemo,

Seems like you may have had some luck using KiCAD to generate plated slots through OSHPark? I think I followed your instructions correctly, however, when I attempt to create a plated-through slot, using a single edge cut line of the appropriate line width for the desired slot width (0.050"), KiCAD throws an error, please see attached.

Have you come across that error before? Can you tell if I’m doing something “stupid”?

Many thanks,


Have you come across that error before? Can you tell if I’m doing something “stupid”?

I have, and you are not!

Kicad’s 3D viewer expects everything on the “Edge_Cuts” layer to be a full closed loop, with some number of line segments starting at one point, and then eventually ending at the same point. As a result, if you draw a single line, it works for us, and Kicad throws no errors during plotting. However, the 3D renderer whines, because it’s been given invalid geometries (which is fair).

The best hack we’ve found to get around this is to close the line by drawing it from start-> end ->start. However, Kicad doesn’t let you draw this without a workaround. The best one we’ve seen is to draw a 3-point triangle, and collapse it. Put 2 points of the triangle on the slot start and endpoints, and then a third somewhere nearby. Then move the third point to the start/end of the slot lines. Kicad will trim the 0-length line, and you’ll end up with a valid geometry for the 3D viewer, and a nice line that we appreciate.

This whole process is a nasty clunky mess just because we don’t yet support slots properly, so if you want to just cheat and send us the files, we can help generate the data on the outline without much trouble.


Not stupid, just wrong.

Once you have a closed path on Edge.Cuts layer, KiCAD will not accept any further non-closed segments/paths on that layer. Closed paths that contain other closed paths, like a Matryoshka doll are no problem though, as they symbolize internal cut-outs.

If you follow the link @tekdemo gave you’ll come across this:

Be aware that the minimum slot they can do this way is 40mil (1mm).

Please be also aware that you can’t put the Edge.Cuts into the footprint per se, as the FP editor doesn’t allow you to draw or move any drawings onto that layer.
You have to do that manually outside of KiCAD with a text editor (for windows I suggest notepad++) and change those fields. Keep in mind that anytime you open such a non-conforming footprint in the FP editor anything on Edge.Cuts will be moved to a different layer and you have to do this modification again.


Thank you, tekdemo.


Thank you, Joan,