Alternative PCB silkscreen layer

Hi KiCaders,
Do any of you have a way to get “alternative silkscreen” for a given PCB project?
I have few projects where I do want to have alternative silkscreen artwork (like for ‘oem’ products).
Right now I do keep a copy of the whole project, but this makes further revisions cumbersome.
An ideal solution would be to have multiple SILK SCREEN layers to choose from, and keep all of them in a common project.
Using an auxiliary layer is not a solution, since many features (like footprints, or texts) are printed directly on “true” SILK SCREEN layer.
Any reasonable workaround? Or maybe a feature request for a future KICAD version?
I know it’s a simple subset of the whole “variant support”, which itself would be a pretty nice add-on to KiCad (on all design stages).
How is it solved with other PCB tools?

Do you need only text variations or graphics?

Usually both variant text (direct text) and graphics (usually footprints), to give the board unique branding.

If it was only text, it would be easier. But IMO it would require some scripting so that you would have the primary design and then would replace footprint library pointers in the pcb file. You would need alternative footprint library. The workflow could be this:

  • Create the primary footprint library for the project.
  • Create the alternative footprint library with different silkscreen texts/graphics (but otherwise identical).
  • Use the primary library as normal, refer to it from the schematic etc.
  • Change the board.
  • Copy the board file.
  • On the copy use a script which replaces the library pointers in the board to point to the alternative library.
  • Open the copy in standalone pcbnew.
  • Update all footprints from library.

I haven’t tested this so I don’t know if this really works. It also handles only footprint graphics, not edits made directly in the board silk layer. Maybe direct items can be somehow incorporated to a script, too. Otherwise changing the footprints would be pretty easy, basically doing find/replace for library pointers.

Having to do such a simple task (both from functional and probably implementation point of view) in such a cumbersome way makes it a good “feature wish” candidate IMO :slight_smile:
Actually, the whole “variant management” mechanism would be a great improvement to KiCad’s usability.
I have many projects with variant BOMs, variant schematics and need for variant pcb finish. Probably I’m not alone with that, so there’s definitely a room for improvement.

In https://gitlab.com/kicad/code/kicad/-/issues/2131 I came to the conclusion that other EDA packages don’t have a “variant board” feature, only assembly variant. On the other hand I haven’t used them, I only read different docs.

The two variant types should be talked about separately, although in KiCad they would be intertwined (more than what can be seen in that issue). Basically assembly variant system affects only exported files, not the board.

The problem with variant board system is that it’s difficult to limit variations so that you don’t need to redesign the whole board (or that you would need to edit once and it would be visible in both boards). Unless you just accept that you drive two totally different board designs from one schematic, which wouldn’t fit your case well as you said.

Altium seem to allow PCB variants:
https://www.altium.com/documentation/altium-designer/design-variants-ad

Sure it’s something that requires lot of discussion to do it right.
I don’t want to maintain two identical designs, as doing it manually is heavily error prone.
Of course when doing layout changes, these should be kept as separate board designs.

If I can interpret the Altium docs correctly it would allow exactly what you need: different texts and maybe graphics but not different copper. That’s interesting.

With the current state of KiCad (v5.1.10), the only thing I can think of is to use the silkscreen layers only for common silkscreen features and then other layers that you don’t use (or for this project can afford to abuse) for the variant slkscreen text/artwork. (Maybe give up courtyard checking, if you don’t use glue for SMT parts the adhesive layers, the ECO layers, additional internal copper layers?) Then find the merge gerber script(s) that were posted here a while ago to merge the common silkscreen gerbers with the variant silkscreen gerbers before sending to your board house.

This is no way is automated and will require lots of careful checking and cross-checking. Off the top of my head the points to check include keeping variant silkscreen off of exposed copper, verifying back-side variant silkscreen on an ECO layer or internal copper layer to use mirrored text, any variant silkscreen on an internal layer DRC violations to be validated not an actual issue, etc. But it is possible to kluge it.

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