Relink Altium Symbols to Footprints after migration into KiCad

Hi I have quite an extensive SolidWorks PCB/Altium library that I have migrated into KiCad quire recently. I am designing a new circuit now and though the symbols in the kicad_sym have the right footprint name showing in the properties field, they are not actually linked when I go to place in the schematic. I can go ahead and edit each individual symbol to relink the symbol to footprint but doing this one at a time is taking me quite a bit of time. Is there a quicker way to do this?. I migrated instead of using the Native SolidWorks PCB/Altium libraries because I wanted to be edit if needed. Also can’t seem to find where the original 3D models when after the library import

Not sure about the 3D models. Do they work at all if you don’t migrate the library in KiCad? I’ve never personally attempted to extract the 3D model from an Altium footprint file.

The footprint field in each symbol is a simple text field, so as long as the footprint value is properly defined (library:footprint), it “should” work. You can check that the library is recognized correctly if you try to edit a symbol’s footprint with the little library icon to bring up the footprint library browser.

To get more detailed help, it would be useful to have your KiCad version into (Help>About KiCad>Copy version info) and some screenshots of what you see when editing the migrated libraries vs the schematics.

It’s not entirely clear what your problem is to me. I assume you have added the library to your library table and it’s visible in KiCad. Correct?
If the library moved, changing it’s path name in the library table is probably the approach to fix it.

Maybe Schematic Editor / Edit / Find and Replace works for your case to update text strings. Symbol properties are also editable via Schematic Editor / Tools / Edit Symbol Fields.

Application: KiCad x64 on x64

Version: 8.0.7, release build

Libraries:
wxWidgets 3.2.6
FreeType 2.13.3
HarfBuzz 10.0.1
FontConfig 2.15.0
libcurl/8.10.1-DEV Schannel zlib/1.3.1

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
Date: Dec 3 2024 15:58:01
wxWidgets: 3.2.6 (wchar_t,wx containers)
Boost: 1.86.0
OCC: 7.8.1
Curl: 8.10.1-DEV
ngspice: 43
Compiler: Visual C++ 1939 without C++ ABI

Build settings:
@paulvdh yes I have added the library to my table and its visible in KiCad. I will explore changing the path name the the table to see if that fixes the issue.
Below is snap shot of what I am experiencing


@scandey I have not tried the option of not migrating the library . I will try that option to see if the 3D models appear in the footprint as well

@scandey . Just an update. Using the non-migrated library still has same problem of the 3D models not showing up in the footprint in 3D view.

Also I am using project specific libraries and not adding to the global library.
Below for instance the footprint field has the right footprint name in the field


I think because to import Altium libraries the symbol and footprint libraries are imported separately, I will have to go through each symbol and relink it to the footprint in the footprint library. I still need to find out where the 3D models are since they are embedded as 3D step files on the Altium side

Now that I’m thinking about it, I’ve only seen the embedded 3d models in imported PCB files. There is an issue on the gitlab about the 3D models from footprint libraries: Support for importing 3D models from Altium Designer's footprint library into KiCAD as well (#17827) · Issues · KiCad / KiCad Source Code / kicad · GitLab I think the issue was possibly closed incorrectly, but the underlying infrastructure of embedded files is coming in v9.

The footprint field seems like it should automatically update to include the footprint library (since Altium knows the library->footprint mapping), but I see that my own imported schematics are also missing library name from the footprint fields. I couldn’t immediately find an issue to use the library references automatically, but it seems like a reasonable idea (disclaimer, not a dev).

If you want this level of detail in your libraries:

image

Then using the Database driven library system is likely a better option. With the database driven libraries you can combine (generic) schematic symbols with footprints, and with other meta data (including ordering numbers, part substitutions etc) from a database. It takes some time and effort to set up a database, but as a result, you get a lot of flexibility and a better maintenance workflow.

I have not used this myself though, and can’t help with details.

@scandey .Thanks for the pointer . Yes it looks like the issue was prematurely closed in Gitlab. Hope they implement this in v9.

Yes I think so too. This might probably be low hanging fruit for the developer team at this point given that import of Altium project files is also still low on the priority list for them according to Wayne Stambaugh when you listen to the recording from his talk KiCon Europe 2024
Anyway I will resort to relinking the symbols to the imported library again for all my symbols

@paulvdh . Hey thanks for the pointer on the Database driven library system. I will explore that to see. I tend to favor project based libraries though so that in case I need to move project somewhere else or continue design on another machine I can zip up everything and continue

Worth noting, for legacy support reasons, KiCad doesn’t actually require the footprint library to be in the footprint field in order to be added automatically to a PCB when updated from a schematic. It can lead to some strange behavior (footprint field in PCB editor is blank) but it does work.

Also, after further investigation, the embedded 3D models are imported in v8.99. (Edit because I am a fool and was mixing up footprints with and without models.) The earlier issue is correct about imported embedded models working in v8.99.

Application: KiCad PCB Editor arm64 on arm64

Version: 8.99.0-3419-gcbbcb5ae32, release build

Libraries:
	wxWidgets 3.2.6
	FreeType 2.13.2
	HarfBuzz 8.3.0
	FontConfig 2.15.0
	libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.61.0

Platform: macOS Sonoma Version 14.6.1 (Build 23G93), 64 bit, Little endian, wxMac
OpenGL: Apple, Apple M2 Max, 2.1 Metal - 88.1

Build Info:
	Date: Dec 18 2024 08:08:56
	wxWidgets: 3.2.6 (wchar_t,wx containers)
	Boost: 1.84.0
	OCC: 7.7.2
	Curl: 8.7.1
	ngspice: 43
	Compiler: Clang 16.0.0 with C++ ABI 1002
	KICAD_IPC_API=ON

Made an issue here for the footprint library reference being imported from Altium symbols: Altium import symbols with footprint library reference (#19322) · Issues · KiCad / KiCad Source Code / kicad · GitLab

@scandey .Thanks for the info. I will check the 8.99 version for windows to see if the embedded models attach. I will give a thumbs up on the Gitlab as well for the issue.

Interesting. I know I had imported some Altium libraries recently (it might have been KiCAD v7 however), and noticed that it was losing the steps, as I’ve only ever embedded the step model into the footprint–and then thrown away the model (no longer needed, right?). This has been making me think that I might want to alter how I make Altium libraries as a result, as I’d like to be able to flip libraries between the two EDA tools (if possible).

Question: on importing into KiCAD v8 and beyond, how is it handling the step model? Is it pulling it out and putting into the folder, alongside the footprint?

@supton in V8 so far it seems to be ignoring the embedded step files. However from what scandey is saying V8.99 which is one of the nightly builds now has the models attached. I am yet to download 8.99 and install. Is it possible to install a nightly build side by side with the current stable version?

Yes.
8.99 or, as it is now numbered, 9.0.0-rc1, automatically loads side by side with v8. Don’t forget to accept the libraries noted as (recommended) when installing.
Remember, anything opened in 9.0.0-rc1 will no longer open in v8, so use re-named copies of projects and personal libraries when experimenting with 9.0.0-rc1.

In v8, no import models for footprint libraries, but yes import models for PCB files. The PCB import creates a ALTIUM_EMBEDDED_MODELS folder in the project folder next to the KiCad PCB file.

In v9, yes import models for footprint libraries and yes import models for PCB. The footprint library import created embedded models in each footprint file. The PCB import also creates embedded models in the PCB file.

1 Like