My major frustration with KiCad + footprint talk

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?
No, sorry. :smile:
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

1 Like

Fab layer etc.

KiCad has copper layers and “technical layers” (anything not copper). Of the tech layers of course there are:

  1. Front and Back silkscreen - of declining use in industry but still extremely useful for small home projects
  2. Front/Back soldermask
  3. Front/Back (solder) Paste
  4. Front/Back Adhesive: You can use these as you please; it is a historical artefact with little to no value in current assembly processes
  5. Eco1/2: use these as you please; originally used by some people for managing ECOs, in general they are of no use even for ECOs. :slightly_smiling:
  6. Dwgs.User: Use as you please - this was intended for annotations which might be useful at some point in production, such as dimensions and notes
  7. Cmts.User: Similar to Dwgs.User
    8 Edge.Cuts: A single closed loop describes the board outline. Any internal closed loops are cutouts. If you want to see that in action, draw a square with another square inside it and look at the results in the 3DViewer. If the 3DViewer doesn’t show a square with a cutout, try “export VRML” and view the output file with a VRML viewer.
    9 Margin: this is a new addition which you can use to outline the max. extent of copper on all layers. You don’t have to specify anything here; a default will be used if you don’t define a Margin.
  8. Front/Back Courtyard: this is new - an outline in the courtyard is intended to help the user place parts so that they do not physically interfere with other parts.
  9. Front/Back Fabrication: these are newly added layers. The typical use is to draw some boundary markings of some description, like [ ], and place the Reference Designator inside. This is used for product documentation; a separate page would have a table of the RefDes, part placement coordinates, part number. If you don’t use the layers for that purpose you can put whatever you like, you only have restrictions imposed if you are contributing a footprint to the kicad footprint collection.

Yes, that’s what I use the manf# field for. It contains the manufacturer part number and KiCost then makes a BOM that you can use at Digikey&Co from that.

We know that EEschema is next in line for being refurbished and overhauled in regards to this kind of stuff (the current library file concept will be converted to the same as footprints are now)… maybe it would pay off to try to get into contact with the Devs about this via launchpad and see if they can use some help?

I already made a launchpad entry about this I think.

I explain further.

When you make a part you associate symbols.
(loose symbols not units of one symbol) to a footprint.

In this association there are checks for duplicate pins, and also if pins are never associated.

As of today in kicad you can accidentally hace exact same pin twice in a symbol. Beacuse if you make a copy of a pin but accidentally drop it on itself you will never see this.

Parts are important entity, but also when you build the parts there are checks for overrun or underrun of pins.

It is important when you build a pyramide that all your building blocks are ok (parts) or you end up with human errors in the design.

The tools should provide check points of scrutinize.

Building parts is a very important check point.

1 Like

It’s true. But some of the manufacturers does not spoiled us - Ti for example - and it calls their items using several suffixes depending on whether they pack it into a small roll, large roll, extra large roll, tray, tube, RoHS or without. This desn’t help. Then there are problems, where the BOM says of the 2500 roll, but I managed to buy 10 rolls of 250. Or component supposed to be in the tube, and was available only on a roll.
This could be managed in KiCad in the future when the remaining fields could have options to choose from drop-down lists and puts some comment to every option.

|ManufacturerCode | Comment
|LM358PW          | 150pcs Tube
|LM358PWR         | 2000pcs Roll
1 Like

Crap, I though netlist import in PCBnew would tell me stuff like mismatching pin counts, but no… dang.
So yeah, still ways to go.
You said you put in something on launchpad about this… got a link?
Definitely want to vote on that one.

Yes I know.

Typically I use as many trailing letters that make sense.

But those things can be handled by the assembly house.

But if you give them nothing but generic parts they will go crazy.

Make a symbol deliberately with overrun and overrun of pins and try.

When you have duplicate pins in same unit eeschema complains everytime you open that sheet and says he wants clarification what pin you mean.

A simple escape key makes him forget about it until next time you open the sheet.

First I thought it was a bug and didn’t care.

But I happened to point at one single pin and he wanted clarification because that single pin was 2 pins.

That’s how I cracked the case.

But it’s not 100% consistent, I still have 1 sheet where he complains everytime I open it but I have not been able to find root cause.

Sometimes kicad cache things.

[quote=“keruseykaryu, post:38, topic:625”]
But some of the manufacturers does not spoiled us - Ti for example - and it calls their items using several suffixes depending on whether they pack it into a small roll, large roll, extra large roll, tray, tube, RoHS or without. This desn’t help. Then there are problems, where the BOM says of the 2500 roll, but I managed to buy 10 rolls of 250
[/quote]This is exactly why you are better with an intermediate internal “house” number. You don’t want this level of detail appearing on a schematic or Fab drawing. Only the assembler purchasing need this level of detail and they are at spreadsheet level or using something like SAP

Why would it be of any use to force a organization to learn an extra set of virtual part numbers instead of the actual one?

I also post process the BOM towards an SQL server so you can give the assembly house directly their internal numbers.

This way it’s quicker to switch assembly house and less work for them to import the job.

But I still do not in any way endorse or understand the use of home made part numbers.

Even if I never mount a KOA resistor in real life, why would I not use their part numbers instead of inventing my own.

One example of a virtual part number is the NATO stock number.
Places I have worked with internal numbering had their own manufacturing


If you are in an organization where it’s mandated, there is nothing to do about it.

But I would not voluntarily inflict this pain onto myself in my own home.

i had not made a request earlier

just rambled in other contexts

but now i did

pls support my blueprint

I subscribed, but can’t be of much help else as I already got like 10 balls in the air :cry:

@keruseykaryu, @davidsrsb, @cbernardo, @Nick123, @nicholas, @Andy_P, @Joan_Sparky, and everybody else who has contributed to this thread:

Thank You Very Much for your comments! I’m still going through all of them, understanding your methods and workflows, etc.

Just want you to all know I appreciate your time & effort.


1 Like

**Hi there, I to am having great difficulty with creating footprint(s) and then the Symbol associated with it. ! It’s just too much for me!
I finally can do a schematic and then the PCB. I now come up with just one error that’s bogus after running ERC!!!
Tried to do Copy & Paste (Snipping) of doing a FootPrint but it just copied text and not the graphics as you see it.
This has caused me to say Goodbye to PCB Software!!
Thank you to all people on here that tried to help me!!
So long

cross post from: