Append Board with Schematic, More than Once (Copies)

How do you properly Append a board file with Schematic (In Version 8) more than once.

I have a project that requires 5 5V supplies.

In Ver5 I would copy the Sub-Sheet 5 times and Add them, then in the PCB I’d Copy the Layout, and delete the copied components, and hand move each sub sheets components one at a time in to the old posisitions (and repeate for all copies). Works but very time consuming.

Version 8 as the append board, but each time I append the Components are all linked to the same Schematic entry. And I want to avoid all the by-hand replacement. We are sending off these off to assembly so I can’t just leave it as is.

So whats the proper way to add a sub-circuit and Board file 5 times to one Project (board and schematic)

I remember people speaking about some automate methods to get few identical element sets at PCB. As I needed it only once I didn’t learn how to do it but did it manually. I write about it only to tell you that I was doing it opposite way than you (may be you will find it interesting).
I copied part of schematic several times then when moved to PCB I had all of them there.
Selecting a block at schematic and using hotkey P at PCB you can have a footprints from block collected together. As I place footprints touching their courtyards than it is not very difficult to arrange footprints in all groups exactly the same way. Then I made connections in one group and then selected only tracks and vias I was able to copy them (copy with reference) exactly to the other groups (tracks get correct net in such case).

Not sure what the problem is. If you use hierarchical sheets, then the refdes are distinct and you can fabricate it as one board without having to reannotate. But there’s the duplication of doing the layout 5 times. Maybe there’s some clever way you can arrange all the subcircuit footprints in the same sublayout and then paste the tracks on top 4 times.

You should have a look at a plugin called Replicate Layout (or something similar). I believe it’s available in the PCM (Plugin and Content Manager) in KiCad. For it to work I believe you have to use hierarchical sub-sheet for the part you want replicated.

I’ll take a look at it in a bit, I did get it to work using the Ref Designator Override to reset the Timestamp linkage. I Figured I should write a plugin to make in simpler but I’ll Definitely take a look at this first

I figured out a way to do it after sleeping on it.

Make a project with the subcircut that links the Sch and Pcb. That you want to include in your main project more than once.

Prepare Sub-Circut

  1. Open the Sub-Project.
  2. In the Schematic, Annotate with “Reset” and “Free Number After:555000”
  3. In the PCB, update from Schematic, This will get all the “555XXX” numbers
  4. Close Project
  5. Make as many Copies of the _sch file as you want subcircuts.

Add to main project
7. Add one of the Subcurit _sch files as a sub sheet to your Schematic
8. Append the _pcb to your main projects PCB.
9. Select the new subsheet, and click Annotate. “Scope:Selection” “Recurse into SubSheets” “Free Number After:0”
10. Update PCB from Schematic.
11. Add another one of the Subcurit _sch files as a sub sheet to your Schematic
12. Append the _pcb to your main projects PCB.
13. Update PCB from Schematic, But Use the “Re-Link” Option
14. Select the new subsheet, and click Annotate. “Scope:Selection” “Recurse into SubSheets” “Free Number After:0”
15. Update PCB from Schematic normally. (uncheck Re-Link)
16. Repeat Steps 11-15 for as many copies as you want.

How/Why this works.
Hidden from view, each Component has a TimeStamp from when it was created, both the PCB and SCH share this 'ID" and that’s how the linking works normally. When you “Append PCB” each copy will have the same ID which is a problem. This is fixed automatically in the Schematic however, and when you copy something (or add a Subsheet that had the same ID) the copy gets a New ID. By pre-setting the Reference Designators on the sub circuit to a Very High number, eliminates collisions, and avoids any re-annotaion.

Adding the First Copy is simple, and we just re-annotate it to get rid of the High Designators .

Adding the Second (and later copies), the Schematic automatically reissues new IDs to the Schematic components only when the copy is added. While the PCB now has two Copies with the same ID, but different Desginators. By then “Updating PCB from Schematic” via Designator (not ID), this updates the second PCB copy with the newly generated IDs from the Schematic. Then we can annotate the second copy to get rid of the High Designators, in preparation for adding the next copy. Then carry those new Designators to the PCB by a standard “Update from Schematic” (using IDs). Rinse and repeat.

You do need (as in V5) to use unique copies of the _Sch for each subsheet because the new ID’s are written to it, so they need to be retained distinctly.

Note: While the updates and linking are by ID (normally) in both v5 and v8, The Select X PCB jumps the to the same part in SCH (and vise-a-versa) is always by Designator. Not by actual ID or Link. Don’t let that fool you to thinking not all the step are necessary.

That sounds overly complicated.
Use the Replicate Layout Plugin that Retired Feline already mentioned instead. It’s the most used plugin for KiCad, and it does a wonderful job of replicating the layout of multiple instances of a sub circuit. You can also run it multiple times, for example after a revision of the sub circuit. Also, from what I understand this plugin will become deprecated, as the functionality of the replicate layout plugin is being implemented natively in KiCad. (I think KiCad V9 should have this functionality.) And Version-9.0.0-RC3 has been released today.