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?
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
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.
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:
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.
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.
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.
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.
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?
What’s your number one most used feature of GitHub for Desktop. Why do you love it?
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
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…
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.
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!!