Where do you share your KiCad files?

Hi All,

Just joined the forum and looking forward to being part of the community.

I come from the software development world where GitHub hosts a huge number of code projects that I can leverage as a basis for my own projects, save me time, and inform my future designs. Is there any similar website where you all share your KiCad designs? What’s the general community ethos around sharing of designs?

Thanks in advance,

Jackson

1 Like

A lot of open source projects that use KiCAD share their gerber files (pretty common) and sometimes whole project folders even, so one could modify the layout/electronics design pretty easily (I mostly learn from it ;-)).
But I’ve also seen Eagle files being offered (either just the gerbers or whole set of projects).
It’s usually located in a subfolder called hardware or pcb or somesuch…

One just needs to make sure to include any proprietary footprints/symbols with these repositories as otherwise the project files aren’t working hassle free right out of the box.

Places like GitHub are becoming essential. I was trying to email a KiCad project and fell foul of Gmail attachment rules. Gmail goes to extraordinary lengths to prevent .lib files, blocking them in archives, nested archives and archives with encrypted file contents

2 Likes

That’s good news! Where do they share them? How do they share an entire folder? Do they zip the files?

You GitHub to share your files? Is that tricky? Do you use the git commands or the website?

That sounds extremely painful. Lucky I haven’t encountered that yet :slight_smile:

I use git with Kicad. It works well because the Kicad files are text, although diffs of the data files is sometimes messy. I put output files like gerber, pdf, etc in .gitignore. It’s really the same workflow you’re probably used to.

As for conventions, there really is none. Maybe in the past it was common to make a zip file available for download, but the software dev tools are taking over. Nowadays I would make the Kicad project folder the root of a git repo and push to Github. If people want a zip file then they can get it via the Github web interface.

2 Likes

I’m interested in why you need to diff the data files. Are you working with other members in a team? Are you working as a solo engineer and looking at how your design has changed over time? What’s your use case?

Could you link me to one of your GitHub projects so I can see the diff history myself to get a better understanding?

I am using Git (GitLab), and as someone pointed out, KiCAD files are human readable text, which is nice. I primarily have two use cases for diff:

  1. Looking back across version to see whats changes (obviously), especially for libraries. For schematics and layouts it is not as useful unless you are trying to understand what happened with a very small change.

  2. Merging libraries. I do share an internal KiCAD library with another developer, and sometimes we both modify the same library concurrently. Since the libraries are text (or files in the case of the .mod), you can diff and merge in the files or the specific .lib code lines.

1 Like

Glad to hear you can actually merge these files to share your work. Working in the binary world is a nightmare, text files rule!

Would love to hear back from @DrewWilson, and @Joan_Sparky about the follow up questions I asked :slight_smile:

examples:




As for how to use github…

I don’t use github yet to share KiCAD projects (just some files), so I don’t know how people organize their local data repos and how those are being kept in sync with github.
One things is for sure, you don’t zip your files anymore with github, as the website let’s anyone with access rights get a copy of the whole thing if they want to in a zip.

Thanks for those links!

Interestingly you suggest to use the desktop client for GitHub. You don’t use the command line interface directly i.e. git?

I’m on windows and a GUI guy, so no :blush:

I like command line interfaces for some stuff and I can type fast enough to use them, but I deal with so much stuff (Jack of All Trades, Master of None) that I’m not able to get to the level of understanding that would be necessary to use it effectively.

Using git on the command line is not as hard as it may seem.
(But i agree with you, for most purposes having a gui is perfectly fine.)

For everyone interested in learning a bit about git.
(Git is not only a tool for sharing files, it is a distributed version control system.)

Good video that explains what git is, and how it is used:

Tutorials for the usage of git:

For github (and git):
GitHub For Beginners: Don't Get Scared, Get Started - ReadWrite (Very basic stuff, definitions.)
GitHub For Beginners: Commit, Push And Go - ReadWrite (Here you start using git.)

3 Likes

I’m actually designing a GitHub for Desktop app myself at the moment. It’s addressing the shortcomings in GitHub’s current version. Could I ask two questions of you?

  1. What’s your number one most used feature of GitHub for Desktop. Why do you love it?
  2. Where does GitHub for Desktop fall short? What are you continually frustrated that it can’t do?

Having those answers will help me make my client better :slight_smile:

I’m the wrong addressee for your questions… for example the last 2-3 months I didn’t use github at all.
And before that I only used it to get step/wrl models mostly to @maui (who was already using github like all the others here) and also to share some of my scripts that create copper spirals and round fill zones in a convenient place.
If you got questions like that (and they don’t sound very ECAD specific) I’d suggest to find some heavy users that are unhappy, I’m neither… :wink:

Sorry, been traveling.

Diffing data files is really only useful to see if there was any change. I’ve never used this to examine the particular diffs or to patch.

I usually work on a design solo. My use case is this: I use bare git repos (git init --bare) on a VPS and then use that as a central spot to sync between various laptops, desktops, etc with git push/pull over SSH. It’s also free, private, and under my own control. It works well for me.

All of my KiCad projects get shared on Github. I use the command line. Every project holds a KiCad folder that contains the project in its entirety - Schematic, Netlist, PCB layout, Libraries, 3D models, Gerbers, PDF’s. The plain text format of all KiCad files makes it convenient. I’ve never done it, but I’d expect some Git commands such as Merge to have unpredictable results.

I tend to use github too: https://github.com/ohaut/ray

And it works pretty well :slight_smile:

@Anool Could you link your github profile? I’d love to browse your repos.

Thanks all, very informative responses.

Here : https://github.com/wyolum
and here : https://github.com/MakersAsylumIndia

Wow, your repositories are incredible. You have so many open hardware designs. I’m going to be searching through these for hours and reading the makersasylum discuss page. Thank you!!

1 Like