Hi all. I have a PCB layout with lots of positioned mounting holes. Now I have all of these positioned, I would like to use some as conductors, so I open the schematic editor (blank as my workflow for this project was to start in PCBnew) and then Tools > Update Schematic from PCB hoping to pull all the mounting hole symbols over, but I just get errors in the dialogue. How can I rectify this?
You will first need to start with the schematic, place symbols and then assign footprints to the symbols.
Then F8 from the schematic to populate the PCB.
If work backwards you are going to run into issues. The schematic can’t magically know what symbol to use from just placing a footprint on the PCB.
I know the way I have done this is unconventional, but the positions of these holes is copied from another file and the process to get everything into the correct position was painstaking to say the least! So all files in Kicad are plain text, if you (working the conventional process) export from schematic to PCB then there is some reference that links each symbol in the schematic to a footprint in the layout. Is there away to access the reference in PCBnew. Worst comes to worst I’ll have to dig around the PCB file in a text editor, but I was hoping there was a more simple solution for this reverse process
KiCad has two ways to synchronize the schematic with the PCB. The normal way is with the UUID’s, but this is not accessible in the GUI, and this is by design. The other way is to Reestablish the links for the UUID’s by using the reference designators. If neither the reference designators nor the UUID’s are synchronized, then you first have to manually add reference designators to both the schematic symbols and PCB footprints.
In steps it is sort of like:
- The normal Update PCB from schematic to make sure most of it is in sync. Make sure the Delete footprints with no symbols is OFF. I assume it’s now only your mounting holes that have not been synchronized.
- Add a MountingHole or MountingHole_Pad to the schematic.
- Assign the right footprint to the schematic symbol.
- Make a bunch of copies.
- Make sure annotation is correct. Probably H1, H2, etc.
- In the PCB, change the references manually to match the schematic symbols: H1, H2, etc.
- Either use Update Schematic from PCB or Update PCB from Schematic, and make sure the Re-Link Footprints to schematic symbols based on their reference designators is on.
OK. Awesome. I have the project version controlled with git. Wish me luck! Here goes
Found time to do this today at last. The steps I required are actually slightly more simple as I was working with a blank schematic.
- Add Mounting hole pads to schematic.
- Label them however as long as they end with an integer (this tripped me up briefly as the schematic references must end with 1,2,3 or whatever or you end up with errors saying the schematic must be annotated).
- Add matching references to the PCB
- Use the magic Update Schematic from PCB. Make sure the Re-Link Footprints to schematic symbols based on their reference designators is on. Going PCB → Schematic means you don’t have to bother with the step of footprint assignment in the schematic. The software will do the work of footprint assignment for you, as it has already been done in the schematic.
Hooray for KiCad and many many thanks @paulvdh!