KiCAD "Cloud" integration? - Page 1
Forum section: electronics / general

author: Fixed_Until_Broken
author_rank: Regular Contributor
timestamp: March 21, 2023, 02:04:30 am
content: I started out on KiCAD 5.1. Then I started school and was able to get Altium Designer. I won't be in school forever, so I am returning to KiCAD. I did my first project in 7.0 last week and was pleased with the changes from 5.1 to 7.That being said, what is everyone doing for collaborative projects? Is this the point where I will have to learn GIT? Just save it to a google drive? Mail a thumb drive?The main feature I am missing from Altium is the built-in cloud integration. I am just curious about what everyone else is doing for some level of cloud integration or collaborative projects on kicad. What worked for you? What didn't work for you (so I don't make the same mistakes)?

author: nimish
author_rank: Regular Contributor
timestamp: March 21, 2023, 04:59:41 am
content: Git and lfs source control. Certain parts of kicad lend themselves well to it, certain parts don't.I do not recommend using a cloud drive service. Kicad is not built to handle the concurrency issues. You can easily get yourself in an unrecoverable state even with the autobackups.A solidly productive way is to store your validated parts and footprints in some other stable format and do a just-in-time conversion to Kicad symbols and footprints. The new dB integration can make this easier but id wait until any bugs are worked out.Schematics and board files are basically binaries despite the text underlying them. It's dumb but the least difficult way to keep them modular was to write a script to convert them to and from stable text forms--or generate them from code. The bundled footprints are done this way, it's actually pretty nice since most footprints are IPC standardized or close to it.Board files can be converted to and from svg but it's not ergonomic. I haven't found a good way of doing this once the complexity gets high, like with very complicated BGAs and DDR. I've tried treating chunks of boards as footprints, but that basically only works for SoMs and other stuff where the layout is fixed.There isn't much collaboration built in, and the data structures were not designed with multiple contributors or even modular reuse as a first class feature. You can see this if you try to naively copy a schematic from one project to another.

author: JohanH
author_rank: Frequent Contributor
timestamp: March 21, 2023, 07:33:12 am
content: People just upload the KiCAD project directory to github (or correctly, by using git).I would suggest however, that they put the KiCAD project in a separate directory in the git project, not in the root directory. That way they can keep KiCAD files separate from README, LICENSE, images or whatever they put in the git root folder.A KiCAD project can be shared this way and it will work without issues. But it should be noted that if you have used your own footprint libraries, they are stored in the KiCAD file named <project name>-cache.lib (v5 only). In later versions they are stored in the project files themselves (kicad_sch, kicad_pcb). If you have copied a project from someone else and want to use such footprints in your other projects, you have to open them individually and export them by saving them to your own library. This is a bit cumbersome. I would appreciate if there were an easier way to do this, or to share custom libraries when you share a project like this. Maybe there is and I just don't know how to do it properly.

author: retiredfeline
author_rank: Frequent Contributor
timestamp: March 21, 2023, 09:37:54 am
content: No, not fp-info-cache. That cache can be deleted anytime with no ill-effects. You actually mean <project name>-cache.lib. In the past some people forgot to share this resulting in projects that were incomplete. But that was in v5, as the .lib indicates.In v6 and v7, copies of the symbols and footprints are stored in the schematic and PCB files respectively so those should be shared. I think now there are commands to export all symbols or all footprints from a project but I haven't got around to needing it.

author: JohanH
author_rank: Frequent Contributor
timestamp: March 21, 2023, 09:45:19 am
content: Quote from: retiredfeline on March 21, 2023, 09:37:54 amThanks for the correction. Updated my post with the correct information.

author: ve7xen
author_rank: Super Contributor
timestamp: March 21, 2023, 07:08:50 pm
content: Not an endorsement, but CADLAB.io has KiCad support. It does a semi-reasonable job of managing visual diffs and offers some EDA-specific collaboration features.It's no replacement for first-party support in KiCad though.

author: nimish
author_rank: Regular Contributor
timestamp: March 21, 2023, 07:49:58 pm
content: Quote from: karpouzi9 on March 21, 2023, 06:00:58 amYou do still want to treat most project files as binary in `.gitattributes` to prevent git from messing with them.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 21, 2023, 07:58:27 pm
content: Quote from: JohanH on March 21, 2023, 07:33:12 amDitto. This is extremely annoying if you need to share projects.Even if they don't need to modify the project, without the custom libraries installed, they'll get warnings all over the place from ERC for missing libraries. Horribly annoying.Or, you need to share your libraries and give direction about how to "install" them. Which is cumbersome but, also, you may not want to share your whole libraries either for just one project.I also wish there were a way of 1/ exporting all custom symbols and footprints of a give project to libraries, and 2/ that KiCad could use custom libraries local to a project without having to install them (just being present in the same directory as the schematic would work.)That probably can be done writing a plugin, but sure looks like a "basic" feature to have. And maybe it's there, and we just don't know.

author: Fixed_Until_Broken
author_rank: Regular Contributor
timestamp: March 21, 2023, 10:43:10 pm
content: Thanks for the feedback. I did see CADLAB.io At $8 a month and only allowing 1 collaborator it seems like it isn't really worth the cost.looks like git is the way to go.

author: james_s
author_rank: Super Contributor
timestamp: March 22, 2023, 04:22:11 am
content: What's wrong with just using git? It's pretty trivial, you can upload projects via the web page if you don't want to install the client.

author: nimish
author_rank: Regular Contributor
timestamp: March 23, 2023, 12:14:48 am
content: Quote from: karpouzi9 on March 22, 2023, 04:20:18 amThe text files are text, but you don't want to have to deal with automatic merges causing issues since there's no sensible diff tool for most Kicad structured data. It's like Jupyter notebooks in that the structure is expressed as text but the standard textual diff tools don't capture the changes well so you need a special one or just treat it as a binary

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 23, 2023, 04:29:32 am
content: Yes, while git is fine in itself as a version control system for your KiCad projects, you should obviously be aware of the limitations when it comes to diff'ing and merging.If you are the only collaborator, that's usually not an issue, but if several people could be working on the same project at the same time, automatic merges could lead to a catastrophic result.So avoid this workflow, or disable automatic merging.