As well as creating PCBs using Kicad, I would like to use it to document the entire electrical wiring of a cabinet (in my case, that of a laboratory robot). To that end, I have created not only PCB designs, but cable designs as well using Kicad. Using hierarchical sheets and labels, one can create coherent designs of arbitrary complexity.
The problem is that in my system I may have up to 10 of the same PCB, and when I pull these into the “grand schematic” all but the first instance seem to lose their references, with every component number being replaced by a question mark. This is understandable if one is trying to create a PCB containing repeated blocks, but in my case, I am interested only in the schematic at this upper level. If only there was a switch at a project level to say that it was a schematic only, so that references in referenced schematics that were actually part of real PCBs were left alone, all would be well.
I have a somewhat clumsy work-around involving creating an additional field which I then use as the component reference in the grand schematic, but I am afraid of inadvertently saving the low-level “real PCB” schematics in such a way that the component references are lost.
Has anyone a suggestion of how to get round this problem in a more elegant way ? It would make Kicad very useful in documenting complex electrical systems without having to learn another complex package like Autocad Electrical.
So your cabinet level schematic contains pcb level schematics?
Isn’t that counter to what you want to achieve?
Wouldn’t you symbolize pcb’s with ‘generic’ pcb-symbols?
Or what do you mean when you write ‘PCB’?
I have done stuff like this before in other tools. I would recommend instead of trying to import your complete KiCad designs into the higher-level design, make schematic symbols representing each board (so, give the symbol “pins” representing all the I/O connectors on the board). Then you can also make symbols representing any other component blocks you have in your cabinet (power supplies, other DIN rail equipment or whatever) and draw a schematic using these symbols.
In this case you are basically using KiCad as a block diagram tool, but at least it is possible to also include standard electrical symbols too (like if you have in-line fuses, resistors, etc) and do some ERC checking, as long as you set up your symbols correctly.
Thank you Joan_Sparky and craftyjon for your quick responses.
Yes, I can see the point of having “block” representations of the PCBs rather than the entire PCB designs.
It’s just quite useful to be able to drill down into the PCB schematic when fault finding. But if you can’t, you can’t.
Unfortunately, KiCad does not support multiple boards in one project at the moment. So, you could do this by copying all your schematics into hierarchical sheets in a wider schematic, but there would be no easy way to keep these “linked” safely as you make changes/revisions to the underlying boards. To be clear, you should be able to do it the way you describe, but there is no built-in support and so you may find areas where this causes problems.
I also do something similar sometimes, as I prefer to get 80% to what I want in KiCad compared to installing and learning to use yet another tool
One of my projects is mostly a single PCB, but it has some connectors to some off-board components in a cabinet:
1.5kW frequency inverter.
Some 36V 10A power supply.
Stepper motor drivers for Nema 23 motors.
12V 100mA standby power supply.
Some relays (Vacuum, dust suction, etc).
Fans for water cooling.
In that project I used a “#” in front of each schematic symbol that is not to be placed on the PCB. KiCad ignores these components while porting info to the PCB.
Another method you can use is to export the schematics of your PCB’s in .pdf format, and then add datasheet links to the schematic symbols in your “Cabinet Schematic”. That way you can access the other schematics as “normal documentation”.
I have not tried what happens if you make a datasheet link, and instead of linking it to a .pdf file, you link it to another KiCad project. My first assumption is that KiCad just gives the link to your OS, and your OS starts a new KiCad instance with that project.