How do I get component values on the manufactured PCB?

KiCad has the ability to move items such as text and graphics to from one layer (source layer) to another one (target layer) - find this feature from Edit -> Edit Text and Graphics Properties. You have a set of filters, including the ability to only move the items you have currently selected. Unfortunately, the feature has a major limitation - the move is a cut and paste operation. We can not duplicate items from layer to the other.

By default, all footprints have their “Value” field in the Fabrication layer (Fab). When you want to move (cut and paste) these values to the Silkscreen layer, you can use the Edit Text and Graphics Properties interface.

But what if you want component values on both Fabrication and Silkscreen layers? This was my requirement and I learned that KiCad had no easy way of doing it. You have to manually copy items and move them to another layer by accessing properties window.

But I have found a workaround. It is by using an empty layer as intermediatory layer to move duplicated items. Let me show an example.

Assume I have the following state in PCBnew.

  1. Reference fields on Silk
  2. No values on Silk
  3. Reference fields on Fab
  4. Value fields on Fab

Now I want to duplicate value fields from Fab layer to Silk. I can do the following for that.

  1. Isolate the Fab layer from Appearance panel. Now I can only see the content of Fab layer which includes Ref and Value fields.

  2. Drag and select all the text items. This selection can include Ref, Values and other text items. Don’t worry, we can choose a specific type of items later.

  3. Open Edit Text and Graphics Properties and in the Scope pane, select only “Values” because we are interested in moving component values only. Uncheck all others in this pane.

  4. In the Filters section, choose the Fabrication layer on which you have the items to duplicate. For me, this is top Fabrication layer (F.Fab). Uncheck all others in this section. You could use other filters if you want.

  5. From the Action pane, choose an empty target layer, for example User.2. When you press OK, all the value fields from Fab layer will be moved to User.2 layer.

  1. Isolate the User.2 layer and select all items. In my case, this will be all the value fields I want to duplicate.

  2. Duplicate (right click for that) the items you have just selected and move them to an empty area. Now you have the items duplicated but in the same layer.

  1. Now the trick. If you check the property of a footprint now, you can see the newly duplicated item appears as a variable ${VALUE}. This is because we duplicated the value field. KiCad was smart enough to replace the duplicated item with a variable instead of the absolute text value. This is useful because whenever you change the value of a footprint, this will be reflected everywhere where you have the placeholder variable. Even if Kicad didn’t do that, you can still use the “Only include selected items” filter.

image

  1. Now select the duplicated set of items from User.2 layer and open Edit Text and Graphics Properties again. This time, choose Other footprint text items from Scope pane. This will only select values with ${VALUE} field. You can also choose “Only include selected items” filter.

Then choose the target layer as F.Silk as shown above and press OK. Now all those duplicated items will be moved to Silkscreen layer. We have done it. All you have to do now is to reposition the newly moved items to the desired position by selecting all the text.

  1. As a residue of this operation, you will have value fields left on the User.2 layer. You can easily move them to the Fab layer with Edit Text and Graphics Properties tool.

All these headache can be avoided if KiCad’s Edit Text and Graphics Properties dialogue had the option to copy/duplicate operation in addition to the move operation. Hope this feature will be added in future versions. I was using the latest KiCad Nightly version for this btw.

I posted this in this old thread only because it was the first result on Google when I searched for the solution.

1 Like