First timer: Help with Libraries and Cloud storage

Hello,
Very impressed with KiCad so far. However, I’m confused with using symbols and footprints across different machines. Reading forums and watching videos this seems to be the achillies heel of KiCad.

I use Google Drive for all my work across multiple machines. I save custom libraries as project libraries and find that KiCad uses absolute paths in the Symbol Library manager

Let’s say I open a project from user1/GoogleDrive/projects/project1. on computer 1, under manage symbol libraries I set “user1/GoogleDrive/projects/customLibs” as the path for project specific libraries (I could do global, not sure it matters but project specific seems to track across machines).

when I open the same project on another machine, that same path in project specific libraries stays as “user1/GoogleDrive/projects/customLibs”. This causes a lot of issues

Is there a way around this? I notice that ${KIPRJMOD} does track with computer ("user1/GoogleDrive/p becomes “user2/GoogleDrive”) so I’m wondering if putting the custom libraries in the individual project directories is required? Seems like a hack though.

What I really want is to create a cloud managed repository for my custom libraries. They can be project based or global, but I want them in a central location.

Thank you

I found a potential work around. I physically put the Downloaded libraries in the project directory and use a ${KIPRJMOD} path in the Project libraries for both the symbols and footprints.

Its a cludge but seems to do what I need - one person working on a project in multiple locations using cloud storage to hold the project files.

I have my libraries on Google drive also.
I have Google drive setup as G: drive on my pc and just point Kicad to the relevent folder on there.
I have this setup on 3 pc’s and it works flawlessly.
I have my libraries set as global.

The key is using an path alias (if I say this correctly)

I use dropbox on 2 machines for my library at first I had the same problem that the paths weren’t the same on both machine.

The fix was using an alias. My libraries have their paths like

My3D is a substitution/alias. And this differs on both machines. This is the definition of the machine I am sitting right now.
afbeelding

This is the link to me old thread. Eelik explains better :rofl:

In addition to the other options shared above, you can also do this without moving your libraries

From project1, you can add your libraries as project libraries, not as global libraries. You can use a path like ${KIPRJMOD}/../customLibs/libraryName and it will work on both computers. This is just setting a relative path that assumes that project1 and customLibs are next to each other in a folder.

Could you use a Smbolic link ?

hmmm, i tried that before and it didn’t work. Let me try again. Maybe i did something wrong

Yup, i had a typo - missed one level of hierarchy

This worked great! Only change i did is i put the library definitions in project not global. This allows me to not have to worry about modifying the global libraries on both machines. I only make sure the configuration alias is correct on both machines.

I really appreciate the help!!!

For future reference, here is a writeup i made for myself that others may benefit from if they are using cloud storage for projects. I work alone so this may not be the best approach for teams…
Download and Create Parts

Parts in KiCad are a bit of a mess. KiCad manages symbols and paths independently. On top of that, KiCad has project based library paths (which port from user to user) and global libraries (which do not port between machines but do port between projects for a given user).

The best approach I’ve found is to put the user libraries (downloaded and created parts) in a central location (USERLIB_DIR) and make sure a configuration path variable is set correctly on each machine.

Let’s say you download a part from mouser. Put the KiCad folder (let’s call it KiCadPart) from the extracted files in a centralized location like /My Drive/SoftwareTools/KiCad/UserLibraries

Then in KiCad

Go to Preferences->Configuration Paths and set as follows:

name Path

USERLIB_DIR ???/SoftwareTools/KiCad/UserLibraries

(??? will be different per computer and only needs to be set once)

Then go to Preferences->Manage Symbol Libraries->Project Specific Libraries

nickname ${USERLIB_DIR}/KiCadPart/part.kicad_sym

(note, may have to link to select .lib file and migrate the library to get the format right. If so you may have to fix the path to have USERLIB_DIR variable again)

Then go to Preferences->Manage Symbol Libraries->Project Specific Libraries

nickname ${USERLIB_DIR}/KiCadPart

Be careful that KiCad associates default footprints per part, so you may get into trouble if you update footprints from library on your PCB. Because of this, it probably is NOT a good idea to globally update footprints from library as you might mess up other projects.

*When going between machines in Kicad, make sure the ~lck file is gone!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.