Platform to share parts / libraries

The Problem

I just started working with KiCad two weeks ago and already ordered my first PCB. I really like it.

What I don’t like though is that there’s no clean/easy way to share parts. Some people upload them to their website, some to a forum, some to Github. But there’s no search for all of them, no preview, no central place to find new parts.

While libraries are nice, they’re not very useful to import if they’re incomplete. And most libraries around are something along the lines of “parts that John Doe needed in his past projects”.

Proposal

This is what I would think a platform for KiCad parts would require:

  • A way to create a “part” entry, where a “part” can contain schematic symbol, footprint, 3d file and screenshots
  • A nice layout, maybe something along the lines of Thingiverse or Youmagine
  • A way to fork and improve parts
  • A way to integrate forked improvements back to the original part, maybe similar to Github pull requests
  • A straightforward way to specify the license
  • An easy way to import the parts into KiCad
  • A good hierarchical structure to find parts (maybe similar to the hierarchy found in electronics online shops)
  • A good search
  • Support for different versions/editions of the same part
  • Support for tags on parts

Do you have other ideas? Do you think this is a good idea? Maybe something like this already exists and I didn’t find it?

If there would be interest, I might take the time to create a prototype with Django. I’m not a good designer though. Is someone here interested in this project and good with webdesign?

1 Like

I actually had a similar idea a while back and made a start on it using Python/Django.

At the time the footprint format was in the process of changing though so it seemed like the wrong time to continue with it. Additionally someone else came up with the kicadcloud.com site. The site was actually live at the time but used the old footprint format and is written in node.js. It seems to be down now.

Anyway, it’s still an idea that I am interested in so I am up for helping. You can consider the work I did on KiUR public domain.

@kasbah that sounds interesting, thanks for the links. I’ll probably try to start a prototype soon. I’ll let you know when I have more to show :slight_smile:

An online previewer.

http://libree.org/tool/kicad_viewer

Hi

When you use the search at kicadlib.org does it only include libraries in the KiCad distribution, or does it look elsewhere too?

Geoff

Hi All,

We created SnapEDA to solve this very problem. We’d love to know what you think. Our CAD symbols/footprints export to KiCad (as well as some other formats).

www.snapeda.com

Cheers,
Natasha

@NatashaABaker That’s interesting. So you convert between different CAD formats? What if there are incompatibilities between formats?

How about the licensing? Under what license are these footprints released? What about user contributed parts?

@dbrgn Yes, that’s correct! We have one agnostic file format that exports to multiple file formats.

And yes, there are occasional incompatibilities, such as different ways of handling multi-section components, or ways of specifying shapes that differ among formats. We are finding ways of translating them in those cases. If there’s a corner case we don’t know about, the export fails and it notifies you/us… But this is pretty rare so far with KiCad conversion.

As for licensing, all symbols/footprints are free to use commercially or for public use using the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA). We’ve also included a “design exception”; this means that designs or finished boards are not considered derivative works (even if they use a symbol/footprint from our library), and therefore not subject to any license. All the parts use the same license right now regardless of whether they’re created by us or uploaded by a member in the community.

Here’s a typical “part page”: http://www.snapeda.com/parts/ADP3301ARZ-3/Analog%20Devices/view_part/. We are aiming to provide everything you might want to find: symbols, footprints, simulation models, datasheets, etc. in one place. We’d like to have 3D models in the future. If you’re logged in, you simply select KiCad as your export format to download the component (symbol + footprint) or footprint alone.

Right now, we don’t have revision control on CAD files but it’s something we are considering adding if there’s enough interest. We do, however, have a social rating system so you can “flag” a symbol or footprint if you see an error, or “vouch” for it if it is accurate.

Cheers!
Natasha

1 Like

I tried importing the schema symbol you linked to. What I noticed was that the border of the rectangle had a thickness, whereas usually KiCAD objects don’t have any border thickness (which results in the default line). Don’t know if that’s something that can be fixed or not, it’s probably hard to do because the thickness could actually have a meaning.

Thanks for catching this!

The root cause is our representation of shapes always has a set thickness. This works well for some applications, such as Eagle, that require a set thickness and situations when the thickness is meaningful. This isn’t so useful for other applications, such as KiCad, where most lines use a default thickness. In the case of KiCad, the default thickness is 0.

We’ll start working on a way to handle converting from different thicknesses and let you know (here) when it has been resolved. KiCad is a pretty new format for us, so if anyone is interested in being a beta tester to help us further improve the export, let us know at info@snapeda.com!

We greatly appreciate the feedback - please keep it coming!

Natasha

There’s another issue I have with your platform: Everything is bound to a product.

For example, http://www.snapeda.com/parts/EMK316BJ225KL-T/Taiyo%20Yuden/view_part/ doesn’t have a symbol or footprint yet. OTOH, this is a regular 1.6x1.6mm SMD capacitor. A generic capacitor symbol can be used for all capacitors. And the footprint could be shared with all other 2-sided 1.6x1.6mm devices.

Some kind of linking with actual products may make sense, but in my opinion a well-designed set of commonly used footprints and symbols should be available, with the possibility to link it to a product.

Also, make sure that a product can have different representations. For example the resistor symbol commonly used is different in the US and in Europe.

(Common parts like resistors and capacitors are usually already included in the EDA suites. So maybe the issue is not very pressing. But still something that should be thought of.)

Great point, I also agree that a “Footprint” view would be helpful. When you talk about a commonly used library, I imagine you just mean for footprints, correct? We are also working actively on some big changes that will solve the problem with linking across parts soon.

We have considered offering both ANSI/DIN etc. representations but haven’t had enough demand yet to prioritize that feature. Also, a lot of our parts have block symbols – so I don’t think the representations differ on those, although I’m not entirely sure…

Natasha

Hi, I have just been checking out SnapEDA, I wonder how SnapEDA would feel about a direct integration with KiCad, so you can search from inside the pcb or schematic editor and pull in the symbols / footprints automatically?

Hi Dan,

Sorry for the slow response. I haven’t checked the forum in a while. I think that’s a wonderful idea. We already have an Alpha plugin for EAGLE that is open sourced. It would be great to make something similar for KiCad. If anyone is interested in helping with this, let me know and I provide documentation and support for our API.

  • Natasha