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.
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.
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…
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)
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)
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
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.
@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):
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 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.
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.
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
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
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…
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.
Thanks guys for sharing how you do things.
So the common theme I see is Fab is a layer for making drawing outputs for assembly, not a special layer for a certain reason.
Is that a notation to reference other attributes?
I often have like for a capacitor Value = “4.7uF 25V” and add another attribute Value2 = “Tantulum”.
Could I say %VAL(Value2)? or something similar?
What I think would be cool is:
%P for Partnumber e.g. T494A475M025AT
and
%V for Value e.g. “4.7uF 25V”
and
%V2 for Value2 e.g. “Tantulum”
Giving one lots of flexibility.
Is the only difference between R** and %R is **R cant be deleted? (**R was the first thing I tried when trying to make a linked reference and was quite surprised it didnt work).
[quote=“nicholas, post:27, topic:625”]
Nobidy wants to see value in layout, and rarely the part-name either, your milage may vary.
[/quote]So do you add a custom attribute to components you place on the schematic (instead of using Value) called say “part_number” and then populate it? Can you add “part_number” as an attribute to the SCH symbol so you dont have to keep adding it every time you place it (sounds tedious)?
The symbol value in my world is always synonymous with part-number.
In the professional world if you ask an assembly house to procure your components you need every single component to have an exact part number.
Every single little nitty gritty letter.
Otherwise you will have endless communication with flextronics or note or whoever about your parts.
It just doesn’t work.
My components always have full part name in value.
Meaning that there is a component in my library for every single capacitor.
I never use a generic 0402 resistor.
Always full part numbers.
Kicad must get a true part number concept where you tie together symbols and footprint into a part.
As of today the symbol is also the part.
Big problem.
If you have parts you can copy parts that keep exact same symbol (resistor) and exact same footprint (0402) and get unique part numbers, where you also can add attributes like, value, type, tolerance, height, weight, price, manufacturer, etc etc
It used to be common to use a house part number. This allowed external aliasing to one or more real full part numbers and didn’t have to change because the vendor arbitrarily changed a package code
[quote=“mangelozzi, post:31, topic:625”][quote=“Joan_Sparky, post:30, topic:625”]
I need VAL()[/quote]
Is that a notation to reference other attributes?I often have like for a capacitor Value = “4.7uF 25V” and add another attribute Value2 = “Tantulum”.Could I say %VAL(Value2)? or something similar?
[/quote]
No, sorry.
That’s just a link/placeholder for the ‘note’ at the bottom of the post that starts with ')’ to explain what I need the VAL for but don’t want to extrapolate on right there in the sentence.
Is there a better way to do this?
REF** is the standard built in field for the reference field of the symbol. You can have it appear exactly one time in a footprint on exactly one layer only. The entry in the footprint file looks like this:
(fp_text reference REF** (at x y a) (layer xyz)
(effects (font (size h w) (thickness t)))
)
You can’t add another layer in there (I tried).
Same goes for the VAL** field.
PCBnew handles these two fields special, as in the Render tab you can switch them off separately from the layer they are on.
%R (or %V for that matter) in a text field you can have as many as you want. Entry in the fp file looks like this then:
(fp_text user %R (at x y a) (layer xyz)
(effects (font (size h w) (thickness t)))
)
These text fields don’t react to the Render tab switches for Reference and Value, they ‘belong’ to the layer only.
As for more customization - I’m all for it.
Would be nice to have the option to get the other fields that are defined in the symbols to appear in the footprint, if one desires.
Something like %Fx that relates to these fields in the symbols that go like this (F0 to F4 are determined by KiCAD already… you’re free to do what you want with F5 and higher up afaik, that’s why those have the ‘description’ field at the end):
#
# C_22p_16V_0805
#
DEF C_22p_16V_0805 C 0 0 N Y 1 F N
F0 “C” -125 0 50 V V C CNN
F1 “C_22p_16V_0805” 125 0 50 V V C CNN
F2 “SMDx:C_0805” 0 0 5 H I C CNN
F3 “E:\Datasheets\Electronics\Passives\Capacitors\Kemet_KEM_C1002_X7R_SMD.pdf” 0 0 5 H I C CNN
F4 “C0805C220K4RACTU” 0 0 5 H I C CNN “Manf#”
F5 “Kemet” 0 0 5 H I C CNN “Manf”
…
%F0 should be the same as %R and %F1 be %V.
Anyone knows if that is possible yet?
Trying %F3 in a text field in the footprint appears as ?3 in PCBnew