Common Library with 2 pc in same network

Hello,
My question concerns the component and footprint libraries.
I have installed Kicad6 on 2 networked Windows PCs, with automatic backup on a NAS. I use Kicad alternately on PC1 or PC2, which are not switched on at the same time.
The working directories of Kicad, apart from those on C/Program files/…, are placed on the PCs under the NAS backup directory.
It is the backup client that copies PCs to the NAS. For example, after having worked on PC1, and closed Kicad, on PC2, at startup, the client of the other PC, comes to update the directories, from the NAS. And so, I have the updated projects on PC2.

This works well for projects, schematics, and PCBs.
Its semms more complicate for global libraries.

For the schematic libraries, I managed to make it work by doing the following:

  • On PC1, save the file XXX.kicad.sym by Kicad.
  • Copy on a TEMP directory of the file XXX.Kicad.sym
  • Shutdown of PC1.
  • Switch on PC2, and Kicad creates a library of the same name on PC2
  • Exit of Kicad.
  • With the explorer, replace the newly created file by the one placed in wait under TEMP.
  • Launch Kicad, check, it is OK.

As for the PCB footprint library, I did not find where Kicad stored the footprint. I found a few lines at the end of the fp.info.cache file, referring to my fingerprint, but nothing more. I also searched with the date of registration of the files, after Kicad was closed.

Does anyone have any information on how to do this?

Thanks

You might want to read @jmk 's FAQ on creating global personal libraries: Kicad 6 Beginners Guide to Personal Symbol and Footprint Libraries

I have already read this topic. I can create libraries, this is OK.
I can create on PC1, it is OK
I can create on PC2, it is OK
For working on separate PC , i do not need anything more. But i want to share the same libraries, And each PC can work without the NAS, for example when out of home with the labtop.

But, by the way of saving on the NAS, the libraries are not on the NAS. it is only a copy, to allow the synchro to let update possible when the next pc wakes up, and connects to the network.

I have changed the paths in each Kicad, to inform where it can found the files.
But this does not seem to be enough.
To be clear, with the right paths completed, and a new file manually copied on the PC2, for example, Kicad(2) does not see the library.
I am obliged to make with kicad(2) a library with same name on PC2, delete it after that, and replace with the library temporarly saved in directory TEMP , and after all this, it works (for symbol library only) This indicate that kicad saves a flag somewhere .
Where ? What ?

For footbrint libraries it seems different.

You can make use of variable substitution in the path to adapt the personal library to each PC.

Not clear from your description what your workflow is. Even with a single PC, I make a symbol or footprint once, save it in my personal library and then it’s available for reuse anytime. I don’t keep updating the library copy. Effectively I treat it as read-only even though I own it. If you are customising the part as required for the project, when you edit the symbol in the schematic, it only affects that project as symbols are saved with the schematic. So yes, that project’s copy will diverge from the library copy. But that isn’t done often.

First , thanks to help.
About what you are naming the workflow :

I work generally on the desktop, at home, with a quaddro graphic card, and two display of 32". (PC1)
I work with Microcap12, Fusion360, and others, and now with Kicad,
When I have to go by train for exemple, I take my labtop, with the same softwares installed. (PC2)

So before leaving, I only have to connect to wifi network, and replicate the files on the NAS to the labtop, witch is done automatically by the software client installed on the labtop.

I hope this clariflies .

Another way might be to use project specific libraries only. Butt that fails if you need to add a new library member to your project when you have no access to your LAN.

What you probably want is to designate one copy of the libraries the definitive one, say the NAS copy. All amendments go there and the other copies are synced off it.

Not sure why you need to edit the symbol in the project and then update the definitive copy. Work directly on the master copy and then reload your project from the master copy or rather the synced copy. So one extra sync step.

I’m only writing about personal global libraries. For various reasons you should not edit the system libraries that came with the KiCad packages.

I don’t want or need to use libraries into the project, for the moment.
I began with Kicad, and I need to build some footprints not prenset in kicad libraries.
I do not want to modify the kicad libraries.

To be clear, I don’t want to choose one library as a definitve. Because if generally iI design some footprints on one PC, I may have to do it on the other, when tworking outside for example. And the NAS is used only as a tool to save only the shared directories, but I do not open the file directly from on the NAs. It is too slow.

(One remark about installed files: on the two PC, some paths are not correct I think . It is the path C:Program Files\Kicad\6.0\share/kicad/template , where slash and backslash are mixed. ( / and \ )
I had the same on the two installs. (without modifying, it is done by the install software) . See picture
Capture_ecran_chemins

I have installed Kicad because I am soon retired . I previously work with altium, cadstar, older others, (I began with mecanorma transfer on mylar in 75’s )

Both / and \ are valid path separators. Also a slow NAS is a technical problem that can be overcome perhaps at some monetary cost.

Well of could you could keep all your projects decoupled and then you could copy items from one project up another as needed. Some workflows need more admin than others, that’s for sure.

Hello,
NAS is smart solution at home, I think. And obviously it is not as fast as heavy blade server used in companies. And, also NAS is not 24/24 on. Only switched on when necessary. I can manually Wake on Lan, even in Wifi, and there is a clock inside that switch it on an off on a scheduled time array.
Doing so , the NAS saves daily the work done on the main PC.

I do not undestand at the moment why it is different from schematic library to footprint libraries. Like if software was not writted by the same teams.
I will continue to make some tries.

I wonder why you need the NAS to transfer from PC to PC. There is a lot of software that can synchronise between two PC peers.

I think you should search for sym-lib-table and fp-lib-table files in both of those PCs. ( Those files let KiCad know about what libraries can be used )

Footprint libraries are directories so when you place a footprint file in there, if KiCad knows about that lib, it will also find the footprint. Symbol libraries on the other hand are only files, so when you add a new library, you also have to inform KiCad.

If you create a new footprint library, you also have to let KiCad know.

@retiredfeline
The need is not to transfer from one PC to other. The need is to have an efficient way to save all my jobs on an external device . As soon as you will have a crash on a Hard Disk , I am sure you will understand…
And using a NAS, you will have some others usefull tools . Like the synchro between PC.
Not so difficult to understand.

And the issue will be the same with any tool, as soon as you don’t know what to save…

You might like to have a look at this post. Although it refers to older KiCad versions, there are some helpful ideas. The strategy discussed uses Dropbox although any online sharing storage solution would be worth looking at. Think you can still get a couple of Gb free on Dropbox. The laptop could contain an offline copy which can be set up to sync when a network is available.

Just to put my two cents in for this (a version of which is covered in the link provided by John Pateman): I use git repos for my standard libraries. I don’t currently share my libraries with a team but I use them across multiple personal computers (as well as for backup purposes and version control). It works pretty great.
I make all of my projects within their own repos and create release files that include the copied versions of any lib/3D model files. This makes sending things to clients after stages of dev are completed easy but wouldn’t be perfectly ideal for continual development without giving full access to your standard library repos. I’d be interested in a nice solution that updates a project level library from the ‘master’ library when run to include in my Makefile.

2 Likes

A like for using git.
When using git, it tracks your changes, and it’s also easy to setup a master repository for distributing your library to your different PC’s. A quick search shows that Synology has support for git in their NAS boxes. I don’t know about other brands. Sometimes I’m thinking of making a NAS box myself, but it would be a standard linux computer with some HDD’s or SSD’s, so I’ve never looked up what those commercial suppliers of NAS boxes deliver. So read the manual of your NAS.

I do not know the Git too much, but Mercurial could be the answer too. Mercurial (maybe also Git) is able to push/pull of the local repository against repository on the shared disk, no server support is needed, just file access.

The best solution for sharing the project could be:

  1. you will have repository (directory) with libraries on the NAS
  2. you will have repository (directory) with KiCad project on the NAS
  3. in the project repository, there will be “linked” repository with libraries (subrepo, see https://www.mercurial-scm.org/wiki/Subrepository)

Transfering project between 2 PCs:

  1. on first PC commit changes, push to server (NAS)
  2. on second PC pull from server (NAS) and update your local files

Advantages of this approach:

  1. you will have all libraries in one repository (directory) and not copied many times in unknown versions among your projects
  2. for each project, you will have libraries in the right version
  3. libraries in project can be updated just via pull from the repository on server (NAS)

Well…
The trouble does not comes from the NAS. (And using Git will not solve here.)
(Also ,why using an external link, if I have all I need in my network?)

What I do:
I open Kicad, and no project opened
I create a new library using the footprint editor.
I draw a new footprint inside, some pads, for example.
I save the footprint.
I close the editor.
I have a look at the clock , 8:00 pm today for example.
I close Kicad

Then I search for all the files on my PC, on the directories used by kicad ( and synchronized if I power on the NAS).
And I do not see the files with the recent clock.
If I do not see any file with the files updated using the windows file explorer, I guess git or Qsync (NAS client ) will not see too.

I will do more tries, between others tasks.

git or unison can be used. git can roll back and unison only syncs two pc bidirectionally.

I have found a way to make it running.
As you said, I have to inform Kicad (I do it now in the list of libraries) that there is a new library.
I will have only a few personnal libraries, and only two PC, so it is not heavy to manage.

The synchro runs , and Kicad runs, as soon as all the paths in the editor are completed on the PC where the library hasn’t be created. (For guys who speaks of others softwares to do the synchro, it was not necessary to change.)

One question now , is to know how to modify the alternate paths , see picture.


If I try to delete, they are still there when opening again.

If I try to create a new library, Kicad proposes the path on drive C under Documents.
Capture_path_proposed

Preferences → Configure paths