I hereby certify that I am not simply asking someone else to design a footprint for me.
This is an auto-generated message that is in place on the “footprints” section of the KiCad.info forum. If I remove it and ask for a footprint to be designed anyway, I understand that I will be subject to forum members telling me to go design my own footprint or referring me to a 3rd party footprint site.
Hello,
I’m a new KiCad user, but a long time pcb designer. I’m trying to import a project from Altium and have completed the process except the the step of associating schematic symbols with pcb footprints by reference designator. There is a thread that covers this topic from Jan 2024, however the suggested method does not seem to work on my KiCad version 9.02.
I use tool → Update PCB from Schematic in the schematic editor and the select the “Re-link footprints to schematic symbols based on their reference designators” option and then click the Update PCB button, as recommended in the earlier thread. The program then silently fails. No error messages or status updates. According to Windows Task Manager it is still running, but consuming almost no CPU time.
My crystal ball is out for maintenance, so I can only guess why it does not work for you.
Both the schematic and the PCB must be imported into the same KiCad project before the Schematic Editor / Tools / Update PCB from Schematic [F8] / Options / Re-Link Footprints to schematic symbols based on their RefDes can work. KiCad’s version numbers have 2 numbers separated by two dots (I’ve posted this probably 100+ times). I have not used KiCad V9 yet myself. Maybe some bug popped up in that section. Maybe it’s related to the PCB. Can you try this with another project?
What I did was, using the standalone schematic and pcb editors, was to import each of the Altium schematic files, as well as the pcb file into individual KiCad files using the KiCad import functionality. I then created a project in KiCad with empty schematic and pcb files. I brought the design files into my empty project by cutting and pasting. That worked without issue.
I then cleaned up the schematic files to clean up differences in how Altium and KiCad work (things like KiCad doesn’t support wires passing through more than 2 pins). I verified that my reference designators in the schematics matched the ones on the pcb.
All should have been good, but then the Re-link issue described appeared. Most concerning is that in the status window that shows up when the process is started shows nothing. The program just silently hangs.
I have another project that I could try it on by going through the same process, but just getting this one to this point took most of this week. I’m hesitant to go through that again without assurance that I can get it to work.
No. That does not work. When you cut and paste in KiCad, the information that is needed to link the symbols to the footprints is lost.
The correct order is:
Create an empty project.
Import the schematic and the PCB files.
Do the Re-Link thing.
It’s also quicker, as you can skip the whole copy / paste thing.
Again: Wrong working order. First establish the links before you do anything else on the project.
Ouwtch. That is a good lesson for you. First get your workflow right before you invest a lot of time in a project. You can work as a madman but as long as you work in the wrong direction wou will get nowhere.
For beginners in KiCad, I always advise to do a few dummy projects first. Blinkenlight with a NE555. The circuit does not even have to work. You can connect the 555 mirrored and upside down. Forget about the circuit for a while and concentrate on learning KiCad first. Once you start feeling comfortable with the workflow in KiCad, it’s time to do your first real small project, but even then a project that takes a week to “cleanup” is too big. Very likely you have spent hours on things that could have been done in minutes if you had more experience with KiCad.
I did as you suggested. This is a multi-sheet schematic and I had previously imported each sheet using the standalone editors. For each sheet I ended up with a .kicad_sch, .kicad_pro, .kicad_prl. and .kicad.sym file set. I copied each file set into the project folder then created symbols on the top level sheet for each of the imported sheets and got a dialog saying the sheet files already existed and do I want to link them to the project? To which I said yes.
The schematic files are all there and accessible as is the board file. I then tried the Re-link operation again without doing any file modification. It failed silently in the exact same way.
What I need is good documentation. Is there something that describes the exact way that the footprint and symbol files are linked together, both within a component and between the board and schematic? I’m not averse to writing a program to go in and modify files directly if need be.
I wouldn’t be bothering with this process if I was just trying to learn KiCad. But I have an existing design belonging to a client that needs to be modified. It was originally created in Altium and contains hundreds of components on an 8-layer pcb. My choices are to buy a $10k+ Altium license and go through the learning curve for that, get the Altium to KiCad conversion working, or reenter the design by hand. I by far prefer the second choice.
Again:
Start with something simple. Also with something you can share. Find and altium NE555 blinking led beginners project or similar and first get your workflow right with that.
I am also suspicious this may be a bug in the importer in KiCad. Maybe KiCad V8 works better. I don’t have V9 yet, so can’t help with that.
I just tried that and was able to import the project into KiCad 9. When I tried the cross probing it worked with the GND net, but not with any other nets. So maybe there is an import bug in 9.x.
The project I have consists of 15 sheets and is a flat, not hierarchical, design. After importing I had to change dozens of labels to Global in order to get the nets connected properly across sheets. Since KiCad doesn’t support flat designs directly, I created a project with a top sheet and instantiated all of the schematic files on that sheet. Once that was done, I ended up with hundreds of ERC errors and warnings, most of which were due to differences in the way KiCad handles schematics. It took a day to correct those.
If this conversion is something you can successfully do, it would be worth $2500 to have you do it.
That is quite tempting, but also a bigger project then I’m used to. I can see now why it took you a week to convert it. But I am also quite hesitant to accept any kind of monetary offer. This already happened twice now on this forum, and in both cases the other guy disappeared after I had put in some work. (I did however never shared more then a small screenshot of what I did).
When you use the standalone versions you end up with just the Kicad files, but as you note, they are all independent. This is likely why the part association tools don’t work.
I suggest you create a new PROJECT. Create the hierarchical sheets. Then carefully copy the contents of each of the individual (independent) files (using Select ALL, Copy/Paste) into the new project. This should result in a complete Project.
No, it probably does not work properly that way. Cop/ Paste should be avoided.
This probably works better:
Create KiCad project.
Create the hierarchy.
Copy the altium files into the KiCad project. (not strictly needed, but easiest).
Convert the files one at a time, overwrite the empty KiCad schematic files.
And as brent wrote before. When going from Flat → Hierarchical, you have to change the labels to hierarchical labels too.
I’ve thought a bit about the proposal to do the conversion for you. You are unknown to me, I have a long track record here on this forum. My proposal is as follows:
You make a decent donation to the KiCad project via the Linux foundation.
You send me the altium files in one or more PM’s.
Once I’ve verified your donation (Linux foundation names donators) I am willing to spend some time into converting your project.
If I get stuck, (unlikely) then I gain nothing. If I succeed, then we can work out the last details.
I think in your case using V8.0.9 would be a better choice.
Could you explain these assuming than link is then tried to be done with references and not UIDs.
I have never imported to KiCad any project from external source. I can miss something.
@Piotr Are yo aware of a current bug for the importer in KiCad V9.0.2? I am still using KiCad V8 at the moment.
When you cut and paste, KiCad generates new UUID’s, and it also removes the Reference Designators. So the connection is completely broken. You can preserve the RefDes if you use Paste Special instead of the normal Paste, but I do think the UUID’s are always lost. This is quite a PITA in KiCad, and I it’s probably going to be fixed right after pin and gate swapping is implemented. The most common need for this function is if a schematic is getting rearranged, and blocks are being moved to another hierarchical sheet. I’m not aware of a “neat” way to do this currently.
But as I explained (I think 2 times above, now 3rd time). The whole copy / paste thing can simply be circumvented in this case when you save the converted files directly under the correct name.