My major frustration with KiCad + footprint talk

Kicad libraries from github are not that very useful.

I myself use manufacturers name for directory structure.

Booth for symbols and footprints.

What kicad lacks is the concept of a part.
A part that ties together, the footprint and an arbitrary number of symbols.
Symbols should be loose entities with arbitrary names. Not as now where multi symbols are locked in to one single logic symbol, a, b, c etc.

Also I did like a zillions pull requests adding my footprints (professionally made) to github but it went ignored beacuse of breach of klc.

So clearly useless and faulty footprints are better as long as they conform to klc, even when the lack completely information on fab layer.

Sometimes just wrong in other aspects.

I think a non associated github for footprints and symbols have better outlook for success.
Today’s library is just to amateurish.
And ambition seems to keep it that way.

So, why don’t you open an account on github and share them?

My personal symbols and footprints also break the klc, but I don’t care :wink:

1 Like

Beacuse i hace been intensely in layout.

Hehe.

I will share soon.

1 Like

I keep my libraries (standard footprints built to IPC7351) in a local git system and add them to the Library Table for each project. In the end it isn’t too much work to keep your own libs and git is a nice way to track changes, even if the diff’s aren’t super clean.

1 Like

Your libraries sound great, which part of KLC did they breach?

I found many component I opened were not KLC compliant. E.g. not placed in the center.

2 Likes

not always 0.25mm courtyard, sometimes the pads are just capable to fend their territory by themselves and they are far out from the component body and i dont feel like putting another 0.25mm penalty on top of that.
(not that the drc of today check the courtyard overlap !!)

silkscreen for small components do not always interest me to put in, and not always klc compliant.
silkcreen for me is cosmetics of low value, i put it in when it can make sense according to me.
in real life i rarely depend on silkscreen for information.

but i am very pedantic with the fab layer.

Depending on how you use your silkscreen layer, it can be quite useless or useful.

Here’s the rules I follow: You should always avoid silkscreen under components. Put another way, if you cannot see silkscreen when a component is placed it is useless. Silkscreen should be minimal but convey pin 1 indication clearly. I stole these from a PCB Librarian doc a while back and they work well for me.

Silkscreen should be used to help assembly identify errors in placement of components. Also, hand placement can get confusing fast if no silkscreen is present in the midst of a number two pin SMT parts. It starts looking like randomly placed pads all over the place…

2 Likes

yes but professionals use the fab layer for placements and use pick and place machines
never looks at silkcreen.

refdes on silkscreen rarerly can be put for each and every component because lack of space.
also in the professional world where time is money silkcreen is the layer getting least attention, beacuse pcb needs to go out of the house quick,
Sometimes silk is completely skipped in manufacturing to save 1 day pcb manufacture time. and/or lower price,

when debugging pcb you print pictures out of the pcb tool to identify components.
this is a big problem with kicad also because it can not mirror pcb to show back of pcb as it looks when you look at it. in your hand.

you cant make proper mirrored fab files with refdes tect mirrored.
i dont think you even can print the fab.layers alone.
super-important fundamentals 1000% more important than silkscreen.

Kicad and its users needs to step out of the beginners-state-of-mind-mode if to evolve into professional grade…

yes, your rules and suggestions about silk apply , but fab (assembly layer) is #1 silk #2 priority.

(excuse quickly written)

2 Likes

also silkscreen under smd components is forbidden as it lifts the components

and for high speed signals it alters the dielectric above the surface trace (not that i care but some do)

1 Like

I agree here with most of @nicholas points. I have worked on space constrained boards with dense fine pitched BGAs and the PCB back side will “starts looking like randomly placed pads all over the place” due to the 0402 caps and differential pair escape routing. The board assembly house uses the Fab layers for checking placement against the X-Y data.

However, @nicholas, I am able to print front and back assembly fab drawings with the back side mirrored just like when you look at the board from the back. It usually contains the Edge Cuts, Back Silkscreen, Back Fab and a reversed Title Back Fab comments. I use Plot with PDF output selected and “Mirrored Plot” checked

2 Likes

Thank you for beautiful silkscreen ideas!
i don’t understand one thing - do you put those on fab layer, too?
So that there is no silk layer in gerber, only fab?

I build the parts to show the maximum XY size of the component on the Fab layer, per the datasheet, with pin 1 indication if applicable. Courtyard is then placed outside that drawing according to IPC requirements for that part. Here’s what it ends up looking like in Kicad, I’ve separated the assembly from the rest of the drawing.

Just a heads up: to automatically populate reference on assembly, fill the field with %R. Delete the silkscreen reference if space doesn’t oblige.

I see no reason to ever leave off silkscreen lines. They take up no space outside the courtyard, and are not only used for hand building, but also rework and repair.

4 Likes

@jwpartain1
May I ask why the polarized SMD package up there has got a little extra ‘stick-out’ in the soldermask/pastemask? Is that to show the polarization without silkscreen?

Also something I got used to, but that’s not according to KLC:

If one needs/wants big REF or even VAL fields on Silkscreen or some other layer, than these will disturb you while you layout/place components. They’re big and always in the way of what you want to do… but one also needs the REF field (R1, C5) information during layout… easily visible/spotabable and sticking out with some high vis color. That’s why all my footprints have an extra REF field on the Eco1 layer that is in bright green in a small font size. It uses the %R field instead of REF** as you can see in the screenshot (I got nothing else on Eco1):

1 Like

kicad is a very different project from its libraries. A number of us are improving it to make it a better professional tool, but there’s a lot of work to do and very little resources. I have to make improvements in my own spare time so a 2 or 3 month job typically takes a year. At that rate I might retire before I get all the features that I typically use in a project. However, there are many small (and a few medium sized) businesses out there that use kicad and even before the CERN people added track length matching and differential pairs some die hard users were already using kicad to make layouts with high-speed lines such as in DDR3.

It’s on the silkscreen layer, just a little too close to the part. Sorry to derail with the footprint talk :smiley: It’s a part of Kicad I really enjoy, the footprint editor is pretty decent actually.

I have been using the .Fab layer to draw component bodies, is this correct?
I did not find a wordy description in help file what it is for.
Heres an exmaple:

I also add a second Reference (Text with value %R) on layer Ec01.User, it makes placing component really easy, as you can clearly see which component is what, instead of wondering which reference belongs to which component. The Eco1.User layer is never exported, it just makes the placement/routing process very easy.

I agree with Nicholas about trying to keep silkscreen away from under component bodies is preferable. I used to prefer the KiCAD minimalistic silkscreen way (popular amounst hobbiest), until I worked for my former company where they always have a bounding box for each component. It is great for repairs people, it makes identifying missing components really easy too. It also double as a visual courtyard. I see this way in industry the most. Okay its not as great for high density boards though.

PS to me a courtyard of 0.25mm is quite hard to apply always, that 0.175 from the edge of the component, working with a grid that fine is quite tricky. I place a 0.2mm silkscreen line with 0.2mm from the component, this ensures a “courtyard” of 0.3mm (to the outside of the silkscreen). And it is easy to draw with 0.1mm grid selected.

3 Likes

Always make sure you have a %R on fab layer.

%V i make invisible.
It’s of no use on fab layer.

Could possibly be moved to some other layer.

Value is misleading as it actually is the part-name.

If you for example hace a GRM15xxxxxxxx Murata 0402 capacitor.

The value may be 10nF.
But part-name is GRM15xxxxxxxx something.

Nobidy wants to see value in layout, and rarely the part-name either, your milage may vary.

1 Like

Yes, all of those layers have rather specific names (“Fab”, “ECO1”, etc) so it is obvious that whoever created the names had a general outline of how they would be used, but that systematic approach hasn’t been shared with us mere mortals. (At least not that I’ve found so far.) I am very aware that in organizations where PCB layout is done, “house rules” (both implicit and explicit) almost always state what information is to be included on each layer, how it is to be presented, etc, so there will never be total agreement . . . but . . . it would help me to see a comprehensive explanation of how the various layers were intended to be used. The cryptic descriptions in “Layer Setup” don’t help very much.

This is especially significant in KiCAD where some features and capabilities are present in some layers, but not in others. (E.g., the ability to draw arcs.) If this was not true it may be better to identify the layers with non-specific names like “MechLayer001” through “MechLayer999” and let each user flail around until he stumbles across a system to use them effectively.

(This discussion is uncovering some of that information, a piece at a time, and I thank the participants for sharing their comments and insights! Being a gray-haired, superannuated, guy I KNOW I won’t live long enough to make all the mistakes myself so I’m grateful for the chance to learn from others’ errors.)

Yeah, the “%R” notation is a useful capability I’m just starting to use in footprints!

Others (possibly @Joan_Sparky ?) have suggested putting this info on the “Fab” layers as a starting point for creating assembly drawings. A few months back I was complaining about having only one instance of the Reference to work with (that was before I learned about the %R and %V notations), but now the pendulum is swinging the other way and it seems like %R (or %V, or the part outline, etc) is littering half the layers in the drawing. That’s another reason I’d like to see a comprehensive explanation of how others use the whole set of layers.

Dale

1 Like

I agree . . . at least until somebody else comes along and shows me how this may actually be helpful in some situation.

We in the industry have created some of our own confusion. “Value” was useful, at least to assemblers and maintainers, when it was a fairly complete specification for a passive part (e.g, “2.2K” ohms, “4.7 uF”, etc) but started losing that straightforward usefulness when parts like the TL072 (a common dual opamp) required extra characters for package style, temperature grade, and performance level. Loading a complete manufacturer’s part number into “Value” - sometimes half a printed line long - is actually counter-productive in my opinion.

Dale

2 Likes

Well, I need VAL(*) and REF atmo only on the prints for manual populating the pcbs… so I use REF** and VAL** in the fab layer. They can be switched off in the render tab, separately from the other stuff that is on the Fab layer (i.e. outlines).
The %R text field doesn’t have this functionality… thank god I think. I have this on Eco1 only and use it for routing/placing.
I don’t intend to ever have REF or VAL on Silkscreen as the final ‘product’ isn’t intended for 3rd parties maintenance/repair/etc… but it would be perfectly possible to add %R and %V fields onto that layer as well. Silkscreen layer is really the last layer I ever look at/work on and not needed during layout, so it’s switched off the whole time. So there it should be OK for the text fields with %R for example to not be switchable separately from the other stuff that’s on Silkscreen layer.

Conclusion:
%R text field on EcoX for layout in high vis color
REF**, VAL** on Fab for documentation (print)
%R, %V text field on Silk if desired

As for other layers…

  • Dwgs.User I use for Edge Cuts in footprints and have to redraw when I use the footprint.
  • Cmts.User I use for all sorts of comments and positions/outlines of important stuff in footprints, direction of FPC cable for instance
  • Margins… no use for me yet?! What is this intended for?
  • Eco2… not used by me (yet)

At the moment I’m a pretty happy camper with what is available.

*) and VAL really contains the value of a part, not the part number… those fields I run with @devbisme 's standard for KiCost, which uses manf (manufacturer) and manf# (part number) as extra fields in the symbols for BOM use.

1 Like