When editing an existing board I can add components to the schematic, then update the PCB from the schematic. No problem, the new components are stuck to the screen waiting to be placed and connected.
When deleting components however I have an issue. I remove the components from the schematic, update the PCB, and it’s up to me to figure out what parts were removed along with their associated etch. I pick through the artwork and make it work, but can’t but feel I’m just missing a step in the process.
When you: Schematic Editor / Tools / Update PCB from Schematic F8 there is an option to: Delete Footprints with no symbols (At least in KiCad V6, but I’m reasonably sure it already was in KiCad V5). This does not delete locked footprints though.
A workaround is to have both the schematic and PCB editors open, then select a schematic symbol (the the PCB editor pans to the corresponding footprint) and you can delete the footprint first and then the schematic symbol.
Can someone test / verify this please:
As a test I deleted a schematic symbol, updated the PCB (without deleting the footprint) and then ran DRC (In KiCad V6). To my surprise the footprint (which was still connected with tracks) did not generate a DRC violation.
Didn’t tried.
But as you update PCB without deleting the footprint then footprint stayed at PCB with probably the previous nets assigned to its pins. DRC works with data present in PCB file and not looks into schematic so for DRC everything can be correct, I think.
My expectation was that if a schematic symbol is removed, and then the PCB updated, the netlists of the schematic and PCB will be in sync again, which means that R2 is not part of any net, and thus the tracks connected to it’s pads should be flagged as DRC violations. I think the Schematic Parity check is of by default, and this can make it even more elusive to catch.
This is interesting. There’s certainly valid logic behind this: KiCad doesn’t make changes without the user wanting it. When a footprint is kept with an explicit option, KiCad retains the nets, too, because the user didn’t ask them to be removed from the footprint. It’s also possible to add nets manually in the PCB editor to an extra footprint and KiCad doesn’t know while running the DRC where the nets came from when there’s no symbol for the footprint.
But the possibility for symbolless footprint is mostly used and meant for netless footprints, I think, like mounting holes. I don’t see a real pressing need for having symbolless footprints attached to nets, and maybe using them this way is a rare case which didn’t even occur to developer’s mind.
Yet this may happen even by accident, and it would be good to inform the user. Maybe there could be another schematic parity check, “Extra footprint, attached to net(s)”, which would be Error by default (“Extra footprint” is Warning in my setup and I don’t remember changing it).
What is a use case for extra footprint with nets? Maybe adding an alternative footprint for some component to have possibility to change the component package when the board is already manufactured. Even then adding it to the schematic as DNP would be clearer.