Primitives...Footprint Pads

Hello, Kicadians:
I have been drafting some footprints and when I view the PROPERTIES dialogue for an existing pad, there is a tab marked “Custom Shape Primatives”
I cannot seem to find any information on what CSPs are, and how to use them.
I am further confused by the fact that I cannot Add a primative (the radio-box is “greyed-out”) using the dialogue.
Can somebody give me some hints? Is this a topic ‘hidden’ within another topic? A search on this Forum only came up with one ‘hit’ for “Primatives” !

“Custom Shape Primitives” are graphics such as lines, circles, polygons which are added to a pad to make a custom pad. You always have to use (at least) one “real” pad (Either THT or SMT), because that is still the attachment point for tracks, and it needs a pad number etc. All used shapes must (at least, I think so) overlap, so they form a continuous shape.

To make such a custom pad:

  1. Open the Footprint editor with any library symbol.
  2. Footprint Editor / Place / Polygon (and draw a polygon overlapping with a pad).
  3. Hold the [Shift] key and click on both the pad and your shape.
  4. Right click on the mouse and select Create Pad from selected Shapes.

If you now look at the pad properties, the polygon you drew in step 2). is added to the pad.


In practice the primitives list is too difficult to use. All editing is done with the graphical editor.

Thanks for the helpful pointer—now I can see that the primatives appear in the list after the combined shape is created. But…

I tried this with an oblong pad and, when I chose to combine the shapes, it converted my oblong hole into a circular one. Any idea of what is going wrong there?

Custom pads can have only circular or rectangle as the anchor pad. Other shapes are made with graphics.

I didn’t know about the slots.
An alternative method is to just draw multiple pads with the same pad number. You can add some SMT pads to add more copper to a pad. This is a very normal practice in KiCad. It is for example also used in all footprints that have thermal reliefs.

Thanks to yourself and also to Eelik for your helpful responses.
After a bit of experimenting, I can now see how to create a ‘graphic shape’ and then convert it to a Pad by merging it with a simple THT or SMD pad, which then becomes the anchor (‘Handle’) point of the customized pad shape.
In my experimenting, I wanted to create a 2-sided pad, so I was able to choose a very small circular THT pad and put a microscopic hole through it. I have no idea whether that microscopic hole will cause the Fabrication House to contact me and ask, ‘Do you really need that 0.0001" diameter hole in that pad?’, or whether the fabricators will implicitly understand that the hole is just a KiCad work-around / trick. Comments?

If you do not want a hole in a pad then do not specify a hole in your pad. Such a hole is likely to confuse manufacturers and lead to rejections of your PCB’s or delays.
You will also fool the DRC checks in KiCad, because it thinks the pads are connected through the plated hole.

What is your intention with the hole?
Why not use two SMT pads? (Either with the same or different pad numbers)

I must be missing something because making a Pad like you have shown, is about the simplest thing to do… No need for making a custom shaped graphic with anchor, or other…

  1. Create a new Footrpint
  2. Add a Pad from the Pad tool in toolbar
  3. Set the Hole Shape to Oval and set the Hole Sizes (X & Y)
  4. Set Pad Type to Through-Hole, Shape to Oval and set X & Y size

save it - you’re done!

If the “base” pad is a THT, then it can appear on the front-Cu and on the back-Cu layers.
SMT pads can only appear on one side (front-Cu OR back-Cu, but not both).
And, just to point out, THTs must have a hole. It can be very small in diameter but it must be there. KiCAD doesn’t tolerate zero-diameter (or very tiny…0.000001" = zero in KiCAD’s eyes!) THT holes.
So if you start with a SMT as your ‘anchor’, your new merged shape takes on the character of a SMT pad—it cannot appear on both the front & back Cu layers.

Yes, you are missing something. The one you show is the same as the one I began this conversation with…both have been created and modified using ONLY the pad-dialogue (under the “general” tab).
But, once you have created that footprint, if you go to the Custom Shape Primatives tab at the top of the dialogue, you will see that every option is greyed-out, and so unavailable to you. Even the “add primative” radio-button.

So, my original question was, How do you add primatives (and so, modify the basic pad-shape), if the “add primative” radio-button cannot be engaged?

The answer is: you don’t add primatives via the drop-down dialogue box–at least, you cannot do that as the first step. There has to be at least ONE primative added to the basic pad, before the dialogue box ‘lights up’ the ‘radio boxes’ at the bottom of that window.
And, that initial primative must be added using the graphic interface, where you draw the footprint. You need to start with a generic pad, then draw a graphic (filled polygon, circle, circle, box…etc), then FUSE them together as one unit, using the right-mouse-click dialogue

I hope that these screen-shots help to explain some of what I have learned.
Some of the ‘strange’ shapes (final photo) were created directly via the ‘add primatives’ and ‘edit primatives’ dialogue.

Eelik noted that the primatives dialogue (drop-down menu) is too difficult to use [in practice] but it seems to me that the primatives dialogue-box does allow you to add solid discs as well as rings----- solid discs being a two- or three-step process via the graphic interface. That is to say: if you use the graphic interface, you still have to edit the Properties of the circle and change the line thickness…and the range of solid circles that you can draw with that chosen line thickness ranges in diameter from 1 line-thickness, to 2 line thicknesses. Beyond dia. = 2 LT, the hole appears. Using the Primatives dialogue, you can eliminate the hole in one step.

In order to create a Custom Shape Primitive, you need to

  1. Select the General setting in Pad Properties

  2. Select the Shape as (Cust. Rect Anchor or Cust Circ Anchor)

  3. Go to Custom Shape Primitives and select the type of primitive, for example, polygon

  1. Define the coordinates for the Polygon and click OK

A probably misinterpreted part:

If you want to make a pad with a “weird” shape, then you can simply put multiple overlapping (both SMT and THT) pads in a footprint, and give them all the same pad number.

In this case you just leave them as separate pads in the footprint. You do not try to combine these pads with the “Create pad from selected shapes” function.

Ah-ha! Thanks, Amit----I did not realize that Custom Primatives were in the drop-down list for Pad Shapes in the Pad Properties dialogue!
This certainly adds more options, if one wants to keep a pad-shape for future use (rather than in one specific footprint, for one specific project).
Thanks again!

OK, you are right…that was a misinterpreted step. I realized later, in a somewhat vague way, that you could just leave them overlapping and KiCad didn’t care about that, didn’t look for additional copper layers to overlap them onto etc.

I have not tried this yet…but it seems to me that the ‘Custom (circ. anchor)’ and ‘Custom (rect. anchor)’ then give you the option to place a single hole, located in the middle of the anchor-shape chosen…?

For future reference: Is there any way to define a custom pad that has multiple holes ( a sort of solder-on break-out / header) ?

You’re most welcome, Whimhurst!

For a “pad” with “multiple holes” just use a THT pad for each hole, and add a big SMT pad to connect them all. This is used extensively in footprints which have thermal via’s.

1 Like

Hi Whimhurst,

To create a custom pad:

  1. You can select the Polygon option and define the size of the polygon to serve as the pad as shown in this image:

  2. Add two pads with the desired via sizes and the same ref text as shown below: