Multi user access to libraries in 6

At the risk of confusing you further, git is just one example of ‘version control’ software. It is a particularly well known one and well supported - it is especially effective for large code bases with multiple contributors - it was designed to support the linux codebase after all and is a ‘distributed’ model.

Historically, there have been many other version control programs - darcs, cvs, mercurial, bazaar amongst others and some of these are still relevant - git is not necessarily the only or best solution.

Git is particularly suited to hosting code and dealing with branching and merging those branches. Dealing with assets such as footprints and symbols isn’t really quite the same and having a ‘merge conflict’ is going to spoil your day if it happens in a footprint. This is because the code you are dealing with describes a graphical object and not a logical construct.

In particular, it might be worth looking at SVN. This is well supported and easy to deploy locally within your organisations intranet. It is free and open source & there are clients for all major platforms. There are plenty of graphical interfaces too. One particular advantage of SVN allows for atomic commits and file locking which prevents merge conflicts. Secondly it has a fine grained permission system so you could, for instance, restrict access to a contractor to certain assets. It is probably simpler to understand and learn than git if your main team are not primarily programmers.

It may not be the latest kid on the block but it is solid and well tested. Altium uses it for their component back end. Take that whatever way you like.

You can also place your KiCad designs under version control and again git is not the only option here. I think https://fossil-scm.org also makes excellent choice as it manages the whole project package - including notes, wiki, chat etc.

https://subversion.apache.org/packages.html

5 Likes

I’ve had another thought. Is it possible to include all symbols, footprints and 3D models in the project? Now yes the symbols and footprints are, but how can the models be made local as well? that may be simpler. One person completes a board design, it has everything so no problem.

The Plugin and Content Manager in KiCad has an installable Archive 3D Models plugin:

I have not used it myself and can’t say anything about the details.
I don’t know if for example it changes the footprint links in the footprints to point to these copies.

Thanks, I’ll give it a go.

What would be nice is if there was a way of pushing a symbol from the schematic into the library if it’s not already in there - I guess I am asking too much :laughing: but really that solves it. Each project once complete or prior to transfer to another user has all the libraries localized, if a part is added by another user it can be pushed to the library for future reuse, that essentially does what git would do.

The PCB editor has a built in function to export all footprints on the PCB to a library, and from there you can easily do the rest of the library management with the Footprint Editor, which doubles up as a library management tool.

The Schematic Editor does not have an equivalent function (yet). Probably because schematic symbols can only be embedded in a KiCad schematic since version V6.0

it will exactly do this, I used it already in the Kicad 5 version.

Yeah, the Archive 3D Models plugin should solve your issue. It will copy the 3D model into a sub-folder within the project root folder and it will remap the links in the project embedded (cached) footprints. Keeep in mind that if you update any footprint from library this remapping is lost.

The plugin is a reduced version of Archive project plugin from V5. This one also saved the schematics library and remapped schematics symbols. It also archived symbols documentation files (pdfs). While porting to V6 I’ve decided to reduce feature set as schematic part:

  • was always crude (code work directly with files instead through python API. This required for schematics file to be closed when plugin ran.
  • would require significant code refactor, which would be thrown away once schematic python API became available
  • was strange from UX perspective as you ran the plugin for archiving schematics parts from PCB Editor

When python API and action plugin support becomes available for schematics I plan to write appropriate plugin, and when KiCad project manager also gets python API and action plugin support I’ll write master plugin which will cover all the functionality as I think that when you are managing complete project (schematics, layout, …) this should be done from project manager interface.

2 Likes

There are Update Option in the update dialog and the 3D model can be kept as it is in the board.

I tried the 3D model plugin but all I got was the title bar of the window and I could not expand it.

For any bug you should open an issue at Plugin Github repo. You should be as verbose as you can (e.g. KiCad version, OS version, plugin version, …)

As KiCad is cross platform tools and I test the plugin mainly on one platform there are bound to bee issues on other platforms. But I try to solve them.

OK, basically its the windows hi DPI handling, on my laptop with 125% magnification it works. But on a 4k screen at 200% the box reduces to the title bar.

Thanks for the feedback. Would you be willing to test a couple of things for me, so that I can add code to detect this and solve this?

Sure, what do I do?

having thought I had the solution, having a local symbol cache, but this means that parts appear on individual BOM lines as a library entry is made for each part.

Yeah, sorry I hijacked the thread. I was refering to your issues with my plugin Due to DPI scaling. If you feel up to it, we can make it better.

Yes i can do some testing for you, what should I do? so far I have established that although I can have more than 100% magnification at some point the dialog box only shows the title bar.

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