Invalid footprint directory keeps coming up when trying to update a footprint from PCB

I have an issue with a invalid library path that keeps popping up. The folder: " j_FOOTRPINT_DIR" does not exist. I’m not sure but I don’t think it ever existed. I initially was using a ${path} to identify the footprint, 3D and symbol libraries but I found it easier to just use the full path.

I’m at the point I’m thinking of a clean install, however using a text search I found “j_FOOTRPINT_DIR” in some of the project files.

Any ideas on how to reset this library path?
Thanks
John

image

Window11

Application: KiCad PCB Editor x64 on x64

Version: 7.0.10, release build

Libraries:
wxWidgets 3.2.4
FreeType 2.12.1
HarfBuzz 8.2.1
FontConfig 2.14.2
libcurl/8.4.0-DEV Schannel zlib/1.3

Platform: Windows 11 (build 22621), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
Date: Dec 28 2023 21:18:15
wxWidgets: 3.2.4 (wchar_t,wx containers)
Boost: 1.83.0
OCC: 7.7.1
Curl: 8.4.0-DEV
ngspice: 41
Compiler: Visual C++ 1936 without C++ ABI

Build settings:
KICAD_SPICE=ON

The footprint links in the Schematic Symbols are the source of which footprints to use. So first change those links in the schematic, and then update the PCB.

Thanks, but not so easy. I know I could just delete it then readd it later however It’s a little frustrating that it keeps popping up. Kinda like wack-a-mole.

The pot, RV1

in Schematic: the path is correct.

in PCB: it is not correct:

if I try to update the device from the library I get: The error popup occurs when I click on the library ICON in an attempt to change the j_FOOTPRINT_DIR path.
Library ICON
image

IF I copy in the correct library path, when I press update nothing happens.

I fixed it by deleting RV1 from the PCB and the schematic.
Re added it to the schematic and all is good.

Have you tried to do “change symbol” instead of “update symbol”?

I’ve not changed any KiCad environmental variables so this may well be incorrect . . . but maybe not.

Don’t you just need to add the j_FOOTRPINT_DIR environmental variable and point it at the physical folder where you have your footprints ?

image

and by the way, this looks wrong

image

is it C:\Users\john\Documents\CAD Data\j_Library or j_Kicad_Library\j_Library ? you have two similar but different paths . . .

Good Idea, I didn’t think of this. Instead I deleted and readded the offending component. I think I’ve cleared out all the problem locations.

Next time I’ll do the change component.

Thanks

Thanks for the comments.

It is the path chosen by using the library icon and selecting the path. I know the / or \ are different than the software would generate but is seems to work in either.

I have deleted the J_USER_LIBRARY so I’m good right now. It still find it puzzling where the “j_FOOTPRINT_DIR” came from as its not my habit to use t he “_DIR”

I do not understand the complication.

In that case, you should not use:

but just the regular: … / Tools / Update PCB from Schematic [F8]. This copies the properties of the “part” from the schematic symbol to the PCB footprint, including the fields.

Same problem different day.
Today:

  • I removed all active parts from the schematic and the PCB.
  • Verified all the parts in my libraries were correct and pointed to the correct location.
  • Used the footprint editor to attach the appropriate 3D model (for the transistors in 7 locations). Check with Alt-3 to verify the 3D was really attached, it was.

Went on to do some more PCB editing and when I opened the 3D viewer the transistors the 3D models for the transistors did not appear.

Opened up the footprint on the pcb with the footprint editor and found the path to the 3D file was changed.

The path to my 3D models is: “C:\Users\john\Documents\CAD Data\j_Kicad_Library\j_Library\3dpackages”
and has not changed in quite a while. AND I never entered any path with “_DIR” appended to the name.

It would appear Kicad is “creating” its own version of the path to my 3D files using my “j_” and appending “3DMOD_DIR”

My only thought at this point is that for some reason Kicad doesn’t like full paths called out for the libraries. I will add some Kicad like shortcuts i.e.
${C:\Users\john\Documents\CAD Data\j_Kicad_Library\j_Library}
and see if the issue goes away.

John

Today I replaced my library references

from full path

to:
image

I finished up editing the same board and did not have any issues related to the library paths changing.

My assumption is that Kicad doesn’t like using the full paths. I will attempt to create a project that shows this with a minimal amount of size and steps. We’ll see.

To fix this I’m pretty sure all you needed to do was add an environment variable of:

J_3DMOD_DIR pointing to “C:\Users\john\Documents\CAD Data\j_Kicad_Library\j_Library\3dpackages”

restart KiCad and all should have been well . . .

Do you have an environment variable set for: j_Symbol_LIB ?

By the way, you have shown a path for Footprints changing to a path for Symbols . . .

Kicad quite likes full paths

Guys, stop anthropopathizing KiCad :smile:

In the innermost internals, KiCad uses only “full paths” because it must replace path variables with actual paths before using a path string. On the other hand, KiCad is designed so that in many situations path variables make some workflows much easier.

For the end user using full paths is easier, but only if the paths never change. If they change for some reason or another – be it a moved library or a project moved to another machine/setup with different file locations – it would have been better to have used path variables from the beginning. You can call it “liking”, but in the end KiCad is agnostic about full vs. variabilized paths. (Gosh, I like -izing!) If variables are used, they of course must be learned to be used correctly.

1 Like

@eelik , @RaptorUK , @jmk

Kicad quite likes full paths

innermost internals, KiCad uses only “full paths”

Look, I’m just reporting what was happening to me. With full paths for the libraries and no environmental variable path defined, Kicad repeated wanted to “Create” a base library path. No emotions here (reference the claim of anthropopathism in my posts) just what I observed.

as for

You can call it “liking”, but in the end KiCad is agnostic about full vs. variabilized paths. (Gosh, I like -izing!) If variables are used, they of course must be learned to be used correctly.

You apparently like making up words, or at least variations of legitimate words. And it seems you do not understand that “likes” is a euphemism for “there’s something not working here but I can’t pin it down to a few words”.

And, all these responses are well and good, but until someone else tries it and gets a different result you are just making assumptions that I made mistakes in my configurations and paths.

Perhaps but this would be like a “hack” and would leave me with part paths and part pointing to paths.

Do you have an environment variable set for: j_Symbol_LIB

No, no environment variables.

By the way, you have shown a path for Footprints changing to a path for Symbols . . .

Yes, sloppy posting on my part. All paths for 3D, Symbols and Footprints were changed in the same manner.

I don’t know if you made a typo here but a path variable name can only contain letters, digits and underscore, i.e. like a programming language identifier. Definitely no path separators like / and \ or drive indicator like :. To use the variable it’s put inside ${}, e.g. ${MY_FOOTPRINTS}.

Thanks.

Not so much a typo but trouble trying to make it clear and got carried away with the syntax. My post 10 shows what I did even though I showed the “original” version of footprints and the changed version of symbols.
I specifically used “j_SYMBOL_LIB” to be sure it was NOT the same as what Kicad seems to want to change it to “j_SYMBOL_DIR”

I created the situation to get a similar error to yours . . .

And now I fixed it and it works again . . .