Kicad 6 module ability

Hello!
I’m testing 5.99 right now in a virtual machine in order to avoid mixing with my real work, and I noticed that it’s now possible to copy some part of a schematic into another. Great!
Now I would like to know if there is a module capability. Example: if I design something with, say, 8 analog output channels, each of them having the exact same layout, exact same output filters, etc, it would be interesting to make one channel once with great care, and once finished replicate it.
-> If it could also have the same component names it would be even better. For example having the same silk number for the same resistor in different modules would help. If different names are absolutely necessary for fabrication, then mod1.R1, mod2.R1, etc… would be good if the radical modx is hidden on silk screen.
Anyway, module replication would be great. Does it exist? Is it scheduled in the future?

Not in the official version, but there are plugins to do that.

Yes.

As @radix mentioned and gave a link for, there is a plugin called Replicate Layout that should help you copy the layout of one channel to the other channels. This requires that you use hierarchical sheets for the schematic capture. In this example, each channel with their output filters would be in a hierarchical sheet that is used multiple times in the schematic.

There are several problems of repeating ref’ds (reference designators). The ref’d of a component is used to uniquely identify each component when laying them out. That’s been the convention since before computer aided design and automated loading, so the computer/automated processes were built expecting this convention of unique ref’ds to be a rule. You can do something similar to your use of prefixes (you call a radical, I’m not familiar with that usage of that word) for sheets, and have each sheet number times either 100 or 1000 and then added to the ref’d in the sheet. So your R1 example would become either [R201 … R901] or [R2001 … R9001].
2021-02-06 11_52_22-Annotate Schematic
I started the series with your first channel on sheet 2 because the parent sheet will be sheet 1 and all it’s ref’ds will start with either 101 or 1001. Before you ask, I don’t think there is a way to force the top level sheet to be sheet number 0.

1 Like

Hello!
Thanks for your replies, it will be useful in the meantime (before its actually implemented in Kicad).
What I was thinking about with the modules is as follows: If you suppose that you can group a bunch of components like in some drawing softwares with a “group” function, then the group itself becomes one component. If I’m using for example an op amp to make a filter, then it will have one set of power lines, one input, one output, and that’s it. For instance, I suppose I could define this whole group with a symbol and a footprint. The symbol would be named for instance “filter1”, and the resisotrs / capacitors’ silk would be part of the footprint definition, and wouldn’t interfere anymore with the rest. The result
would be that the silk is “frozen”, showing only the last part.
Now I’m aware that at fabrication time, the PCB mounting company would need a unique name for each component, therefore using a filter1 prefix would make sense…
And the good thing about having a group would be that any modification of the group would be reflected instantly in all the filter instances.

I’m sure a lot of people have wanted such a capability. In a past project I needed to group 4 LEDs as a segment so that I could apply a particular tilt to the footprint. I did this by creating a “super-LED” that had a composite footprint. What I had to give up was the individual identity of LEDs in the composite so it would not have been possible to generate a BoM, which was ok for me because the board was hand assembled.

Rather than selecting a component to group on a schematic I would prefer it to be created in a separate editor. This super-component could then be added to symbol libraries and generate the appropriate references when instantiated. Extra marks if it can be parameterised.

Much like a template in some programming languages.

Hello!
A specific editor is certainly a good idea, but the resources of Kicad development are limited, and therefore it might be simpler to select, right-click->Group. It would automatically create a group, the interface of which is the set of lines crossing the borders of the selection rectangle. And possibly a “save module as” in a popup window.
That said, I’m aware I’m just talking with my hands in my pockets, while the developers are sweating on
real work silently. And I’m also aware that there might be a lot of prioritary things to be done before, so let’s wait and see what happens.

Given that you will want to manage super-components both in the creation stage and the instantiation stage, the extra code for an editor is small compared to all the other work. You could use the copy and paste in v6 to paste a subcircuit into this editor. My experience in software development is that overloading functionality on a particular area of the software leads to more complexity than a clear separation. But I’m not a KiCad dev so it’s up to them if and when it gets implemented.

https://gitlab.com/kicad/code/kicad/-/issues/2263

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