Best way to _label_ footprints…?

Really noob alert question here, but this has come up a few times for me and I haven’t really understand best practice for it.

Say I have a simple connector, in my case a spade connector. The symbol has two default things:

  • reference
  • value

If I just leave these to defaults I have this:

I have 4 times the set of these on my board and I would like to label these 4 identical ones with “+12V”, “+5V” “GND” and “-12V” on the silkscreen.

For the BOM it makes sense to me to just set the “value” field to something like “spade connector” or such and the reference is unigue right? So even if I change it from “J?” to “+12V?” I would still not be able to use it on the silkscreen for my purpose.

Is there a standard best practice? An extra field “label” on the schematic symbol that I then use from the footprint?

Up till now I have actually just added manual text separate from the footprint in pcbnew :slight_smile:

Simply add a text field to the pcb at design time. Not everything needs to be part of the footprint.

If my PCB is ‘user visible’ and he shoud read the info like ‘what wire to connect to each terminal block’ then I put at silkscreen only the texts for user (no texts or frames from footprints).

That sounds like a case in point for F.Fab, B.Fab layers.

They are there to provide just that ‘user/assembly staff’ layer with information only required to put things on.

Then again as Rene already pointed out there are always text fields for anything else.

This is the way I have done it up till now. And in this case having 4*4 = 16 such connectors I could still do this. But I can easily imagine places where this just isn’t feasble. For instance, on this same board I added extra silkscreen labels that I need on the footprints for these power headers:

There are 20 of these and in this case they’re all the same so fine to add it statically to the footprint. I wouldn’t have wanted to add them as separate text items though.

However, for the 16 spades I have 4 different labels so can’t just use static text unless I do 4 different footprints for them.

So therefore I’m wondering if there’s a way or even “standard way” to use an extra field from the schematic symbol to the footprint?

For the value and reference field they’re referenced in the footprint like:

  (fp_text reference CONN_63824-1 (at -2.68008 -2.07338) (layer F.SilkS)
    (effects (font (size 0.512401 0.512401) (thickness 0.05)))
  )
  (fp_text value VAL** (at -2.42549 2.03641) (layer F.SilkS)
    (effects (font (size 0.511914 0.511914) (thickness 0.05)))
  )

I naively/tentatively tried to add a “LABEL” field on the symbol and then I just add a text in the footprint like “LABEL**”, but I get “user” there instead

  (fp_text user LABEL** (at 2.16 -3.2) (layer F.SilkS)
    (effects (font (size 1 1) (thickness 0.15)))
  )

and “LABEL**” is treated statically:

image

So to clarify my question - is there some other way I can reference a field from the schematic?

In my case I’m targeting silk layer though. This is a power distribution board for Eurorack modular synth and I want those things on the silk screen for the end user - me :wink:

Thanks! This is the way I’ve done it so far and in this case it’s still manageable.

Don’t want to repeat myself so please se my answer to @Rene_Poschl, but I think I will sooner or later strike a use case where I would like to be able to use a footprint that has what I want on the silkscreen layer since managing separate text items would get tedious.

Maybe this boils down to a feature request :slight_smile:

This does not boil down to a feature request, it has already been implemented in KiCad for a long time.

You need to learn to work with the footprint editor.
The Idea is that you once make a footprint with all the texts on all the layers you want, and then put that custom symbol in a personal library.

After this step, then every time you insert your custom footprint on the board, it already has all your texts attached, and always in the same location. If you move the footprint on the PCB, the text moves with it.

Rene has written multiple entries about custom footprints in the faq:
https://forum.kicad.info/c/faq but most of them go much deeper into the matter than you need right now.

The important thing for you is that you need to learn a bit of library managament, to be able to save your footprint in a decent location.

This is what I’m trying to do here :slight_smile:

The Idea is that you once make a footprint with all the texts on all the layers you want, and then put that custom symbol in a personal library.

All the footprints here are in a personal library and on some I have a lot of static text on some, my question is not about that.

My question is about the ability to use fields from schematic symbols in the footprint other than reference and value.

The important thing for you is that you need to learn a bit of library managament, to be able to save your footprint in a decent location.

I simply don’t understand how you have come to this conclusion.

Maybe I was too brief in my first posting and not clear enough. Please read my follow up clarification instead Best way to _label_ footprints…?

I am a bit lost what you plan to do to be honest. Do you really include a pin by pin description in the schematic? (Is your schematic designed that great that it is not understandable without it?) I mean yes having net labels on a pin is quite normal but having these available as a field in the symbol would be news to me. (Symbol fields are normally used to communicate BOM information not design specific info. Do you really wish for design info to be found in the BOM?)

So a possible better implementation would be a way to make netnames visible to the enduser. (I would assume that if you need to label a connector or a pin for it to the enduser then you already have that same label given to the net.)

But to be honest i fear a typical netname is not really suitable for endusers anyways. So you will need to make separate user documentation in most cases. Which i personally would never include in the schematic as it makes it harder to read for other designers.

You start with “noob alert”, and there was no reference in your post that you can work with library symbols, which prompted me to give a hint in that direction.

If you’re already aware of libraries and custom symbols, then I suggest diving deeper into them, and how texts and such work.

If I understand correctly:
You want to add text to a schematic symbol, and want that text to become part of the footprint and be printed on the silkscreen.

As far as I know all texts (“text”, “label”, “value”, etc…) consist of a keyword string and a value string, and these have the same attributes and can be manipulated in similar manner.
If the value of a resistor can be printed on F.Fab, then the value of custom labels can also be printed on F.SilkS.

It’s just a matter of reading the manuals and a bit of experimentation how this fit together.

You can always include/combine any other layer (fab, eco etc.) with silk. Anything can be mixed if need be.

Great! I have combined 2 gerber files into only one (for fun and test) and it works!

It’s a power distribution board for modular synths that will sit in the back of a cabinet. So a PSU with ±12V connects to it with spades and there’s lots of these shrouded headers for individual synth modules to connect to. It’s a standard called Eurorack.

I want to clearly label the spades that a PSU connects to with +12V, -12V, GND for when wiring this up. There are four sets of these connections just because of different possible configurations of chaining them vertically or horizontally. I’m however only planning on using the middle ones and have three PSU’s powering 2 of these boards each for a total of 6 busboards. Let me show you the whole thing for clarity:

What I was thinking is if there’s some way so I could at the schematic add an extra field to the symbol, say “label” with the values “+12V” on four of them, “-12V” on four of them and so forth and use this field from the footprint. I didn’t find ref or value to be fitting fields for them.

I’ve seen the “ref**” stuff so figured there might be some field substitution based on just these double stars, but I figure now it’s the “type” that is “ref” or “value” and any kind of text I try to add myself seem to be of type “text” in the footprint editor ui and “user” in the corresponding s-expr.

It’s just a bit confusing to me. Looking at footprint properties I have both REF** on silk and also %R on fab both resolving to the reference. I guess I’ll need to read up on this somewhere…

This is the gist, thx! Sorry I suck at asking just how to do that :slight_smile:

Possibly just substitute s/label/field value for extra clarity of terminology.

As far as I know all texts (“text”, “label”, “value”, etc…) consist of a keyword string and a value string, and these have the same attributes and can be manipulated in similar manner.

I still haven’t found a way in the footprint editor to reference a field other than “ref” and “value” which are always there and not even deletable so it seems to me to be specially handled.

I see encodings like REF** and %R and I’m thinking something like it would be usable for custom fields too… But still not finding anything…

No other fields are available. So either reuse the value field or accept that you will need to add user text manually in pcbnew.

1 Like

For reference:


Unfortunately, I think Rene is correct. AFAIK, the only symbol user values that are transferred from the schematic to the PCB are:

  • Reference Designator
  • Value
  • Footprint
  • Pin number

There is also a unique identifier number (called timestamp, but I’m not convinced that it actually is a timestamp anymore), but this is not modifiable by the user.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.