Is it me or is the symbol/footprint mapping in KiCAD kind of wacky? - Page 1
Forum section: electronics / general

author: cubeflake
author_rank: Contributor
timestamp: July 17, 2024, 09:17:28 pm
content: Sorry if this is a bit of a rant, but I'm curious to hear other people's opinions about this.Until about half a year ago, I've always used EAGLE and DipTrace but eventually I've had to abandon them because both are, in the end, too clunky and/or too slow to do serious work in. I still don't want to pay up for Altium and so I've switched to KiCAD, and I've been quite happy with it.But I've only just realized that KiCAD maps symbols to footprints purely based on the pin/pad number?? There is also a pin name field, but that does not seem to be used. The pin number field also does not have to be a number, it can be a string, and multiple pins/pads can have the same "number".To me, this seems like a very strange decision. Initially, I thought that they have done this to keep a symbol purely a symbol, so that you don't have to worry about the footprint while doing schematic capture. However, since the pin numbers are directly mapped to footprint numbers, youdohave to worry about it. For example, there are at least 3 "generic" N-MOSFET symbols, namely "drain/gate/source", "drain/source/gate" and "gate/drain/source", referring to the ordering of the pins.So, you cannot really speak of a generic symbol anymore, and you have to think about which MPN you want to use while designing your schematic. At this point, why not have a "component", which is basically one mapping from a symbol to a footprint, like EAGLE and DipTrace do? It seems strange that I have to worry about pin numbering when creating a new symbol, just to make sure that it will match up with the footprint.Am I doing something wrong? Is anyone else confused by this?Curious to hear your thoughts.Jim

author: shabaz
author_rank: Frequent Contributor
timestamp: July 17, 2024, 09:34:59 pm
content: Hi,That aspect is, for sure, different from the way EAGLE does it. All I can suggest is that you will eventually get used to it. Fortunately it is very quick and easy to copy footprints and symbols (right-click on them in the list pane on the left) and then 'Save As' so they can be then be edited.Some things in KiCad are clunkier than with EAGLE, but other things increase productivity, so there are disadvantages and benefits. Overall, personally, I can't see myself ever wanting to go back to EAGLE (I made the EAGLE -> KiCad transition a couple of years ago).

author: janoc
author_rank: Super Contributor
timestamp: July 17, 2024, 09:57:12 pm
content: You don't have to use the generic symbols & footprints and then associate them after the fact.Most KiCAD libraries have the symbol and footprint directly associated in the library for each part, more like other software does it.It is up to you how you set up your workflow and libraries. KiCAD gives you the flexibility - for some things one works better, for others the other one does. E.g. the generic symbol/footprint system allows you to have only a single QFP44 footprint instead of having a copy of one for each component using it that you have in your libraries. And then having to update/maintain them too, for example ...Quote from: cubeflake on July 17, 2024, 09:17:28 pmYou should create libraries for your components and then set the "Footprint" field of your symbol to the correct fooprint for your part. Then you don't need to worry about pin numbering or picking the right footprint. This is how the KiCAD component (not generic symbol) libraries are set up.

author: cubeflake
author_rank: Contributor
timestamp: July 17, 2024, 10:05:27 pm
content: Quote from: janoc on July 17, 2024, 09:57:12 pm`I did not realize you can already specify a footprint in the symbol, that does make more sense to me. Thanks!

author: Doctorandus_P
author_rank: Super Contributor
timestamp: July 18, 2024, 12:17:33 am
content: The alfanumeric string for "padnumbers" is essential for footprints such as BGA's, which use "chessboad coordinates".Multiple pads in a footprint with the same number all have to be connected once on the PCB. If you have for example one of those power MOSfets, then you can either choose:1. Put all pin numbers in the schematic (Yes, this is done sometimes, 4 pins connected to the drain...2. Use pin stacking. this hides the pins in the schematic, and I don't like it much.3. Just give the pads in the footprint the same number.For the generic parts such as MOS fets (and also BJT's), they are available with all possible pin mappings in the default device library, and they have the pin ordering in their name: GDS, GSD, SDG, SGD, DSG, DGS.I never used eagle, I tried it once but could not get to grips with it. I believe eagle uses some kind of separate table to do pin mapping between symbols and footprints. But where is that table stored if you have "generic" symbols and "generic" footprints?I like the simplicity of KiCad of the direct pin number mapping. In KiCad the symbol is the "part" / reference. You can add attributes to the symbols (footprint, datasheet part numbers, etc). This makes it very easy to modify existing symbols or create new ones. What I remember from eagle, you had to dive into the library system just to create a resistor of 0.2 Ohm. With KiCad, the value of the resistor is just a text string.Starting with KiCad V7 KiCad can also use a database driven library system. This is fully optional, and the database itself is not a part of KiCad. Nice if you want to have "fully specified parts" including things such as ordering information, suitable substitutes, pricing, etc. But for a hobbyist such as me it's a bit much, and I never looked into that part of KiCad.Unfortunately direct pin number mapping does not work well with simulation. Spice models often have their own pin numbering, and pins can be remapped inside a schematic symbol for the simulation only.

author: retiredfeline
author_rank: Frequent Contributor
timestamp: July 18, 2024, 12:49:12 am
content: The standard library has examples of both approaches. Under Device there is the generic symbol Q_NPN_EBC with pins in that order so you have to associate it with the right footprint. Howver for say the BC107 which you'll find under Transistor_BJT, you will find a symbol with the correct footprint already associated.So for devices not in the library you could create symbols that you use a lot in your own library with preassigned footprints.

author: artag
author_rank: Super Contributor
timestamp: July 18, 2024, 09:33:26 am
content: All features of all CAD are kind of wacky. The only one that isn't is the one you got used to.I don't know what the designers have against intuitive interfaces. Maybe they all intuit wackily.

author: janoc
author_rank: Super Contributor
timestamp: July 18, 2024, 09:19:59 pm
content: Quote from: artag on July 18, 2024, 09:33:26 amDid you consider that "intuitive" is about as subjective and poorly defined term as it gets? What is intuitive for you is completely unintuitive for someone else (and even more so if they are used to work in a different way).E.g. I am pretty sure that driving on the left is completely natural and intuitive for you - and would feel completely backwards for me, who is not used to it because we drive on the right.Terms like "intuitive", "natural", "easy" are almost completely useless when describing any sort of user interface because without having a reference of some sort there is no way to determine what is meant. Intuitive to whom? Natural by what measure? Easy by what criteria?I hope you understand the problem and the uselessness of calling for "intuitive interfaces" now. That sort of debate usually degenerates into "*I* don't like how this works, ergo it is bad!" Not very constructive or useful.That said, that doesn't mean we should tolerate bad user interfaces. However, the criteria should be different than "intuitive" - and well defined. E.g. look at the usability theory and the criteria how to evaluate it. Most people don't have a clue about this - and design crap products (regardless whether software or hardware) as a result. Yet it is, along with ergonomics, a major scientific & engineering field that has even safety implications - poorly designed machine controls did contribute to disasters and deaths.See e.g. this page for a basic introduction:https://www.nngroup.com/articles/usability-101-introduction-to-usability/

author: Geoff-AU
author_rank: Frequent Contributor
timestamp: July 18, 2024, 11:49:16 pm
content: Quote from: janoc on July 18, 2024, 09:19:59 pmIntuitive is akin to a cultural norm. If you design your program to work in a similar way to what's already established elsewhere, then it will be intuitive for people who have used all those other programs.Some programs I just "get" right away. Others have clearly been done with a different mindset and are like trying to shake someone's hand in Japan.I was about to give Microsoft a free pass for being the dominant player in the software world but then I remembered their penchant for changing where things are in every version of MS Office in recent memory.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: July 19, 2024, 01:17:34 pm
content: Quote from: Geoff-AU on July 18, 2024, 11:49:16 pmIt's not just cultural. There are also differences in the ways brains of different people work, even from the same cultural background.I never found KiCad "wacky" to use. When I started with KiCad, some 8+ years ago, I first did a review of most of the PCB design programs. When I evaluated KiCad, in combination with the "Getting started in KiCad" I did my first PCB design in a single afternoon, and also had a look at the symbol and footprint designer tools. (I find those more important then big libraries. With the tool you can make any footprint, while with libraries it will always be hit or miss). I liked KiCad so much that I simply stopped reviewing PCB programs altogether. I spend quite a lot of hours in a one month period to evaluate PCB design programs, and KiCad ticked so many of the boxes (Including Open Source, not just "free") that it would be very unlikely that I would find another program that would fit better with what I was looking for.Back then KiCad had some serious problems. Library management did not work properly, and I had to resort to copying blocks of text between files. (Not ideal, but happy it can be done at all). But this is a thing of the past. These days "KiCad just works". Sure, it still has some quirks, but I hardly notice them anymore. All programs have quircks. With KiCad they are small enough that you forget their existence after a while. With other programs before KiCad (For example I bought both EdWin and UltiBoard. Even bought UltiBoard twice (DOS and later windoze)) the quirks were so big they turned into constant irritations.

author: free_electron
author_rank: Super Contributor
timestamp: August 02, 2024, 05:42:08 pm
content: Quote from: Doctorandus_P on July 18, 2024, 12:17:33 amThat is the right way to do it. the only right way. ( i will explain later)Quotedo not hide things in the schematic ! stacking is no-noQuoteABSOLUTELY NOT !Here is the reason :if you ever will have to deal with external tools that act on the PCB layout data (flying probe or bed-of-nails testers, ipc netlists, odb++, factory floor software, field / thermal / pdn analysis l ) every pad needs to be uniquely identifyable. Power domain analysis : pin 1 has a lot of current. There's 4 .. which one ? The tools can't resolve.odb++ will add suffixes to duplicate pin numbers which means you cannot re-import processed data. it breaks the netlist. so the testers cannot resolve the schematic netlist vs the pcb netlist : the names have changed !It creates and endless headache. You do not know where and how your data is post-processed.non-functional pads ( mounting holes, unplated or plated ) need to be given a unique designator that is NOT numerical. don't make a 10 pin connector with two mounting holes called 11 and 12. If there is a mismatch between symbol and library the tools will never catch it Give them a unique name MEx ( Mechanical x) . be consistent so that you can filter on those pads and set rules for them ( soldermask retraction , clearances etc )Note that the above is not KiCad specific. I Was searching for something else on the forum and found this post so i reacted.