Importing parts is a pain

I’m fairly new to Kicad having done only about sixteen different layouts with it starting about four or five months ago.

By far the most frustrating thing for me using the program is the process of importing new parts into the Parts Library. What a royal pain!

I was stunned that such a simple and commonly used part such as a Mini Toggle Switch was not included in the library. Searching on-line most manufacturers did not actually offer downloadable footprints for their switches.
I did eventually find a footprint that a private person had posted on a forum, and after recieving the finished board from JLCPCB that used that footprint, I found the holes too tight for the pins and the solder mask completely engulfing the pads. I spent an entire day fiddling with menus and settings to finally fix these issues. Then, trying to create my own library the program would not let me save the updated footprint saying that the library was “Read Only”
Yikes!

This is just one example of Parts Wars using the program. Please simplify all of this.

I must also say that otherwise i really enjoy using Kicad. I regularly do 4-layer analog boards with +/- 15Volts, and often have +/- 5V reference supply lines going as well. Just did my first ever 8-layer board and using Kicad made it a pleasure, (except for importing parts into the library of course…)

Searching for:

I find:

And KiCad does have a bunch of SPDT switches:

The most common variant of these switches are not made for mounting on a PCB. The holes in their pins indicate they are supposed to be used to solder wires into them. There are also versions without the holes and thinner pins, such as:

(Half) Mechanical things such as switches and connectors are difficult to handle in any PCB program, simply because there are so many different variants of them. On Aliexpress for example, you can find assortments with 100 different Mini USB connectors, aimed at people who do phone repairs.

For the library management, there are good reasons why KiCad’s own libraries are read-only. The libraries that are part of KiCad itself get updated together with KiCad. Any changes you make to them will be lost when KiCad gets updated. The solution is to do your own library management. KiCad “only” has about 20000 symbols in it’s default libraries, in the big world there are probably a million or even more parts. There are specialized websites that can help with this such as SnapEDA, PCB Libraries and Samacsys just to name a few (there are more), and you can also create your own. Using both the symbol and footprint editors to either make your own parts, or to modify existing ones is a normal and essential part of PCB design. One of the reasons for me adopting KiCad was because these editors work quite well and have the same look and feel as the symbol and PCB editors.

You should also never blindly assume that parts (symbols or footprints) you use are perfect. You should always verify yourself that they are correct for the actual physical parts you have. Simply because there are so many variants. KiCad’s own libraries are quite good, but if you find some symbol or footprint online made by some unknown person, then you really must spend some time to verify whether this part fits your purpose.

That is just a part of the learning process. Some people learn quicker then others, but once you know how KiCad’s editors work, you do simple modifications like that in a few minutes. Maybe 10 minutes if you also include the verifying step. One way to verify footprints that is simple and often works quite well is [tutorial] Test fitting Footprints

Unfortunately, this is not a fixable problem. There are far too many mechanical switches out there that KiCAD team could even address this easily. Likewise the footprint is linked to your manufacturing technology so a footprint that works for you does probably not work for me.

Then, trying to create my own library the program would not let me save the updated footprint saying that the library was “Read Only”

I don’t think this will ever going to be fixed because its working as intended. It is made this way so that you don’t loose your changes if you update KiCAD. You really need to create a different folder structure on disk for your own libraries that folder will then not be read only. Yes it means you cant use same library organization folders as the KiCAD standard library

I am not saying this wouldn’t be possible to do better but at the moment there is no good proposal on the table to deal with this.

Please simplify all of this.

It cant be simplified. The problem is that your working under the assumption its somebody else’s job to do this for you. Nobody can understand a software or workflow for you. Nobody but the designer of the board can take responsibility for the design. You can not externalize these factors.

The only thing we can do is push the day when this happens. But your frustration will just be worse the lalter it happens. Really the best place to should have dealt with this before you have done anything. But that’s not going to happen.

PS: i work a lot with undergraduates who try to learn how to build stuff and it takes them usually at least 3 years to wrap their head around what the processes of design really are. So what your experiencing is common, not just in KiCAD but every design task in general. I wish i could say at day one a thing for them to avoid this i can’t they have to somehow learn it the hard way. Its just hard to get rid of the tendency too much iterative testing in problems that can be handled at verification stage.

It is usually a lot quicker and easier to create your own symbols and footprints using the appropriate Kicad editors than spend time surfing the internet in the hope of finding something that may be suitable.

Do yourself a big favor and learn to use the supplied footprint and symbol editors. This is not difficult; much easier than the Schematic and PCB editors.

Also, create some personal libraries into which you can place and access modified, created and imported symbols and footprints.
There are good tutorials here and here.

Below is the result of 10 minutes work to create a footprint suitable for the blue colored switch posted above by Paul.

1 Like

Have you read this (link should open selected by me chapter):

I didn’t read it recently so not 100% sure if you find there everything what is needed to create your own libraries, but title suggest you should.
I have started to use KiCad from creating my own libraries before even starting to design first PCB. But it was KiCad V 4.0.7 those time and library management was different.

I have never spend even a minute on searching footprints in net. The easiest way for me is to copy probably closest to needed footprint from KiCad library to my library and edit it.
As KiCad footprint libraries are directories and footprints are files I just copy using my file manager some files from KiCad library based on their names (don’t seeing their graphic). Then I look through them and delete all of them except one that I rename to be easier for me to find and modify as I need.
I don’t see them while they are in KiCad libraries as I have in my library lists (both symbols and footprints) only my own libraries (to not use by accident not approved by me symbol or footprint).
I have never went through the step of assigning footprints as in my opinion it is the place you can easily make a mistake. Since always (it was my decision after reading KiCad documentation before installing it) all my symbols have footprint assigned to them and my rule of using KiCad is to never modify anything in symbol after adding it to schematic. That way I will not use any element (for example in different case) we didn’t decided to use it.
I don’t remember what I have exactly written there but may be something you will find being useful:

Alas, the integration of electrical and mechanical design is only just getting somewhere in the open source world. Have a look at FreeCAD and the tools discussed here for moving back and forth between FreeCAD and KiCAD. At some point down the road. KiCAD and FreeCAD will integrate more and part creation and modelling will improve tremendously.

It would be cool to have some kind of AI tool that takes a 3D STEP model of an electronic part and creates a PCB footprint. But that only helps you if you can get your hands on a 3D model of the part.

The learning curve is a bit steep (though I actually switched from eagle because library handling/parts editing is so much easier in kicad ,) ). But once you did it one time you see how easy and flexible it actually is. And it really is. I use 90+% custom footprints and a majority of custom symbols. Yes, i ran in the “read only” trap, too in the first try. Set up a test project, nothing you want or need to build, just pick a part you like and you maybe have technical drawing for, create a new project wide symbol library, a new symbol, a new project wide footprint library, and a new footprint. Maybe even custom 3D elements. Once you have worked yourself through this, you will never waste your time googling for footprints.

How should any “Ai” know the electrical connections from a 3d model? And as you said… where do you get the 3d model in the first place (while you get footprint dimensions in every datasheet).

“Because I’d like to bask in the sun and let KiCAD do my design for me!”

But if you’d bothered to read “Getting Started…” and rifle through the FAQs (top right corner), you’d already know this.
There are good reasons for keeping the “official” libraries read-only, and there are even better reasons for creating and maintaining personal libraries.
And as paulvdh already showed you: the symbol’s there.

1 Like

Generally speaking, just looking at a component and you can tell where the pins are and the location of pin 1 is often denoted. So, it seems within the realm of possibility to train an AI to “look” at a 3D model, pick out the pins, find out which is pin 1, extract the pitch and determine a suitable pin and pad size. This would provide a great starting point for someone to then go in and refine the footprint accordingly (map pin names, etc).

If you define the surface plane of a PCB, then all items (nearly) touching it could get SMT pads, and items going through it get THT pads. Don’t know what AI has to do with that. As refinements you could assume a regular pitch and estimate pad sizes. As a first guess this is probably relative easy to implement it as a time saver, but very difficult to make it work perfect. And it would not work always. Quite possible that a 3D model of a QFN part does not have pads defined at all.

Maybe it works better if it it only makes an estimate of pad locations and rotation and then manually enter pad size. But KiCad already has a very usable toolset to bulk edit pads in a footprint and changing pad size afterward would be easy too.

I’ve created a few, pretty simple, footprints. Some are simply ‘take the standard footprint and adjust the pad size to make it simpler for hand soldering’. My first ‘from scratch’ one was for a PCB mounted phono socket (aka RCA socket)… There were several steps I had to take, the most important, and most difficult, was getting good realistic dimensions… not just for the 3 pins, but also for the holes that the plastic body would clip in to. I could measure the clip bit, but then needed to make the hole oval rather than rectangular.
Next I needed to think about the pad size…easy to hand solder, plus chunky enough to provide solder joint longevity.
Finally, I needed to think about the outline… so I could easily put 2 close to each other. Being just for home use, I wasn’t really worried about the DRC side of things too much.
With all the details at hand, making the actual footprint was actually quite easy. I printed it out at 1:1, and made sure the socket actually fitted.

I went through it again when I bought some 2-pinned USB connectors (charging only): I waited till I had the connectors in my hand before making the footprint: they came from Ali Express, and I’d never trust any size details from there! I later tweaked that footprint (after having first batch of PCBs made), to reduce the size of the two mounting holes, and slightly increase the size of the solder pads, for hand soldering.
Again, the effort to make the footprint was tiny compared with getting the right data. But I ended up with footprints that fit my components nicely.

My worry with any imported foot print is ‘does it ACTUALLY match the specific version of the components you buy’. Often an ‘equivalent component’ isn’t quite as equivalent as you hoped… ICs etc are ok, its things like connectors and switches where you get issues. D-types can be a right PITA!

1 Like

Didn’t you had datasheet?
There should be drawing with footprint.
For new elements (sockets also) I draw footprints based on datasheets and having not element in hand I design PCB that we then order 50…100 pcs to be assembled.

These are so unusual elements that you can’t order from standard electronic parts distributors (Mouser, DigiKey,…). From them you get element that agrees with datasheet they have for all (may be almost all) elements they have in offer.

Here’s the datasheet for the phono socket: https://www.farnell.com/datasheets/1677315.pdf

  • it shows the lateral pin spacing
  • but no indication of the spacing the other way…
  • nor any size info on the two plastic clips.
  • what’s a footprint? :slight_smile:

This is from CPC, a large uk supplier. I use them a lot, so they are far easier to buy from (and cheaper!) than mouser etc.
Yes, if this was for mass production, I might have used better defined, more expensive components, but it wasn’t. And this nicely demonstrates how often datasheets just don’t give the details that you need :frowning:

Those USB sockets: I paid as much for 50 from AliExpress as I might have paid for 5 elsewhere!!!

Of course, if I had a decent datasheet, then it would have been a 5 minute job to make the footprint in KiCAD!

So, whilst looking on the CPC website, I found a datasheet for a different version of the product: a gold plated version, rather than the nickel plated one. It seems to have the details that the other datasheet lacked (WHY??? it’s the same damn thing!!!)

Excuse me while I go and scream :slight_smile:

It looks like producer don’t wants you to use his product. May be the correct decision is to act according to his expectations :slight_smile:

It demonstrates that datasheet sometimes don’t give…, but it gives no information on ‘how often’.

I use these quite often… Footprint and STEP Zip file attached. You’ll most likely need to edit the location of them in the Footprint… plenty of posted info on how to do that…

ToggleSW.zip (26.3 KB)

7 posts were split to a new topic: Easier method for entering parts to Personal Libraries

You can get those switches with a PCB footprint.
Perhaps we need to get a generic Chinese parts and footprint libary made.
Leds,switches,tac switches.
Also I wish kicad would update the older footprints and finish the older parts.
Example can find a ATF1504 CPLD but not ATF1508.
PS: I had a footprint but seems to lost between versions.