Hi,
a footprint is behaving weirdly… On the PCB layout, I change the REF*** position. Everytime I update the PCB from schematics, the ref goes back to its default position (of course somewhere I don’t want it to seat).
What am I doing wrong ?
(C_Radial_D5.0mm_H11.0mm_P2.00mm)
I changed nothing in this standard KiCAD footprint, and none of my custom footprints behave this way.
(never seen that behaviour before)
BTW, I’ve been making PCBs for a very long time, always at home… I’m currently finalizing a project, and will send the Gerber files to JLCPCB or PCBWay. I tested the fabrication files on these two websites : eveything is fine. But it will be the very first time I use vias and such fine tracks. Could I submit my project to the forum and get some advice before I click “pay” ?
I think I found where was the problem !
In the schematics, the capacitor is polarized. But I selected a non polarized footprint. I replaced it with a polarized one, the problem disappeared. Solved.
I prepared an archive with the whole project.
Two versions for “Power” :
Power : C1 footprint = polarized capacitor
Power_bug : C1 footprint = non polarized capacitor ; pcbnew resets the footprint again and again
See log from “Update PCB from Schematics” : Capture.jpg in the attachment
Really weird : in the schematics with the wrong footprint (non polarized), replace the footprint with the polarized one. The problem disappears. Revert to the non polarized footprint : pcbnew does not reset the footprint (and the ref** position) anymore…
wrong footprint : C_Radial_D5.0mm_H11.0mm_P2.00mm, in Power_bug subdirectory. Replacing this footprint with CP_Radial_D5.0mm_P2.00mm solves the problem.
Easy to find : schematics is trivial and there’s only one capacitor in “Power” project: C1
The footprint pointers in the schematic and the pcb as the files are in the state you sent them are: C_Radial_D5.0mm_H11.0mm_P2.00mm Capacitor_THT:C_Radial_D5.0mm_H11.0mm_P2.00mm
See the difference?
When you update the pcb from the schematic it gives message:
But the new footprint is in reality the same. Apparently KiCad finds the identical footprint name in all available libraries, replaces the name defined in schematic – which doesn’t have the library name – with the whole pointer with the library name in it, and handles it as if it was a another footprint. Then in the second round it does the same because the footprint pointer in the schematic and the pcb still don’t match.
IMO this is some kind of bug. KiCad should at least tell what’s happening.
EDIT: so, this has nothing to do with polarity. KiCad doesn’t care about that.
Yes, I noticed the prefix : “Capacitor_THT:”
I just had a look to the buggy sch file : no prefix.
I also created a dummy schematics with capacitors, and the footprint always come with the prefix.
I’m messing around with Kicad, opening the symbol editor and the footprint editor, and just found a breach !
1 - in eeschema, right click → Edit Footprint
2 - int “Footprint”, delete the library prefix
→ there’s no sanity check, and the schematics file gets corrupted (no library added to the footprint name)
But I didn’t delete this string in my schematics ! At least not this way.