[SOLVED] Best way to organize personal library (3d, pdfs, symbols and footprints)?

I’ve tried many different approaches and I can’t seem to figure out how this is intended to be set up?

I use three different computers for my work, and I am really struggling trying to find a setup which will make it easy and possible for me to easily work across those PCs.

So for my question; how do I set up so that I have one (or more?) git repositories that will include:

  • schematic symbols
  • footprints
  • datasheet pdfs linked via Properties->Description->Documentation File Name
  • 3d models (always having trouble using relative paths, there seems to be some convention on packages3d but I don’t know how it’s supposed to work)

I would be forever grateful if someone could point me toward a solution that will work for this. Multiple git repos is OK but then, where should they be placed? (I’d like to be able to use the standard libs but I can make my own if that’s the only way to go).

I’ve tried to google and search but nothing works. Any help will be MUCH appreciated as I’m tempted to go back to Altium Designer now (though the cost is making me and my employer hesitate). Thanks!

I have the same issues… What I ended up with is to install google drive on all computers. That way it is syncronized and it works also if the net is down.
I dont use git, just the standard way.

So how do you declare the relative paths to pdfs and 3d? Even this don’t work for me across PCs. Do you use windows? It might be a bug with relative paths or something… I’m not sure.

Thanks for your reply

Look at this one:


it explains it all…

This is how we share library/footprints/3d at work between five engineers. Our git repo file structure is like this:

  • Repo
    • Board assemblies (3d from stepup + enclosure)
    • Libraries
      • single symbol library
      • *.pretty holding all footprints
      • 3d models folder
    • Projects
      • Every project has a folder contains
        • Design files (*.pro, *.sch, *.net, *.kicad_pcb, whatever)
        • 3d folder (holds 3d PCBA from stepup, *.FCStd and *.step)
        • pdf (renders of gerbers, plot from schematic, pdf from layout)
    • Tools (home grown scripts and stuff)

All schematics have …/…/Libraries as a relative path, pointing to the single symbol library. Every user has to set their KI3DSYSMOD (I think) and add our single footprint library to their Pcbnew instance (with the wizard or manually). After that, everything works, just checkout the repo and go.

EDIT: I work in Linux and Windows, one guy works on a Mac, another guy works in Windows, another one in Linux, so paths aren’t an issue here.

10 Likes

@jwpartain1
You check out the (local? at least non-KiCAD) git repo with external tools (not KiCAD) right?
Is it automated or manual?
Nice setup anyway.
:+1:

THIS! This is the exact thing I was after :slight_smile: Thanks!

It will mean that every change in any project will make it so I have to pull but hey; I’ll just make my own launcher that automatically runs git pull before invoking KiCAD :slight_smile:

I feel I should’ve though of this myself, but sometimes you’re just stuck with your own preconception.
Thanks so much for this idea!

@Joan_Sparky too. Yeah, it’s external via git-bash or some other tools (terminal within a Linux Virtualbox with bridged network adapter anyone?) pointing to a remote git server.

I wouldn’t automatically run git pull every time you open. You’re going to have merge conflicts every now and then that you’ll need to handle in a text editor. Just treat it like you might a software project, you’re going to have to selectively “git add ____” and commit to have meaningful commits in your libraries and project files (don’t just “git add *”, because maybe you changed a circuitboard and your library and a board assembly, you want those in separate commits), but you’ll end up with a useable history of all your stuffs if you do it right.

Other useful stuff, use “git tag -a commitnumber “Tag Name”” to add tags to commits, useful for stuff like “this commit is CB### REVA” without having to pour over commit logs. Also, try “git add -p” to add chunks of a file (opposed to adding a whole file to a commit), which is useful when wanting to add like a single or two or three or whatever symbols to a commit without adding the whole *.lib.

1 Like

I’m getting really close now!

3d is linking fine, easy to set up across PCs and I will use git repos for each project (and a gitignore for those folders) so that I don’t get distracted while working on X if changes are made to Y. BTW for things that will cause merge conflicts I tend to use feature branches, though an automatic pull may not fit the work methodology it fits me. I like to merge early to get an as linear as possible change log. Whatever floats your boat, right? :slight_smile:

The only thing missing is to be able to link in the datasheet.

This is what I’ve tried:

Thanks again for all your input!

EDIT: Here’s the repo if you want to give it a shot. https://github.com/AlexanderBrevig/AB_KiCAD_Workspace (or inspect the files)

2 Likes

It would seem the button in the library editor works, but I don’t get the button when right clicking in eeschema. Maybe a bug?

There seems to be something weird with caching. When I deleted all cache files, and renamed the symbol (KiCAD kept using the old symbol for some reason unknown to me (I changed from two pins to one)) it works!

Thank you all so much! I’m good to go now :slight_smile:

Hi coolp_jim,

The suggested Directory tree and …/…/Libraries tips is great as I uses multiple windows PCs and Mac for editing my Kicad files …

Thank you

1 Like