How many of the KiCad library symbols are atomic?

Prompted by a recent thread, One "Certified" Repository w/UpDate Button in KICAD, where there is the frequent new user confusion over generic library symbols.

I took a survey of current symbol libraries to see how “atomic” they are - actually I looked for symbols with a default footprint specified (aka “fully specified symbols”).

There are some libraries which are defined to be generic, but they may still have some fully specified symbols. There are quite a lot of libraries which probably should be atomic but do not have a default footprint. It is not obvious to the user which symbols should be generic, nor is there a way AFAIK to search only for atomic/fully specified symbols.

Anyway here are the results, in order of “atomic-ness”. Summary : there are a total of 16951 symbols, of which 74% have a default footprint.

Library                                     Comp    Foot No-foot
--------------------------------------------------------------------------------
4xxx.kicad_sym                                48       0      48    0%            generic
4xxx_IEEE.kicad_sym                           99       0      99    0%            generic
74xx_IEEE.kicad_sym                          185       0     185    0%            generic
Amplifier_Video.kicad_sym                      2       0       2    0%            generic
Connector_Generic.kicad_sym                  274       0     274    0%            generic
Connector_Generic_MountingPin.kicad_sym      274       0     274    0%            generic
Connector_Generic_Shielded.kicad_sym         274       0     274    0%            generic
CPU_PowerPC.kicad_sym                          1       0       1    0%            generic
DSP_Freescale.kicad_sym                        1       0       1    0%            generic
DSP_Texas.kicad_sym                            1       0       1    0%            generic
Fiber_Optic.kicad_sym                          2       0       2    0%            generic
FPGA_Xilinx_Artix7.kicad_sym                  27       0      27    0%            generic
FPGA_Xilinx_Kintex7.kicad_sym                 18       0      18    0%            generic
FPGA_Xilinx_Spartan6.kicad_sym                45       0      45    0%            generic
FPGA_Xilinx_Virtex5.kicad_sym                 41       0      41    0%            generic
FPGA_Xilinx_Virtex6.kicad_sym                 28       0      28    0%            generic
FPGA_Xilinx_Virtex7.kicad_sym                 34       0      34    0%            generic
Graphic.kicad_sym                             29       0      29    0%            generic
Interface_HID.kicad_sym                        5       0       5    0%            generic
Jumper.kicad_sym                               9       0       9    0%            generic
Logic_Programmable.kicad_sym                   6       0       6    0%            generic
MCU_AnalogDevices.kicad_sym                    1       0       1    0%            generic
MCU_NXP_HC12.kicad_sym                         2       0       2    0%            generic
MCU_NXP_HCS12.kicad_sym                        1       0       1    0%            generic
MCU_NXP_MCore.kicad_sym                        1       0       1    0%            generic
Mechanical.kicad_sym                          10       0      10    0%            generic
Memory_ROM.kicad_sym                           2       0       2    0%            generic
Motor.kicad_sym                               22       0      22    0%            generic
power.kicad_sym                              101       0     101    0%            generic
pspice.kicad_sym                              16       0      16    0%            generic
Simulation_SPICE.kicad_sym                    20       0      20    0%            generic
74xx.kicad_sym                               235       6     229    3%       mixed
74xGxx.kicad_sym                             163       5     158    3%       mixed
Connector.kicad_sym                          361      16     345    4%       mixed
Switch.kicad_sym                              58       3      55    5%       mixed
FPGA_Xilinx.kicad_sym                         34       2      32    6%       mixed
Device.kicad_sym                             564      55     509   10%       mixed
MCU_NXP_HC11.kicad_sym                        10       1       9   10%       mixed
Transistor_Array.kicad_sym                    20       2      18   10%       mixed
DSP_Microchip_DSPIC33.kicad_sym               19       3      16   16%       mixed
Video.kicad_sym                               32       6      26   19%       mixed
Amplifier_Instrumentation.kicad_sym           36       7      29   19%       mixed
Sensor_Gas.kicad_sym                           8       2       6   25%       mixed
MCU_Intel.kicad_sym                           26       8      18   31%       mixed
Memory_NVRAM.kicad_sym                        19       6      13   32%       mixed
MCU_Microchip_PIC16.kicad_sym                252      84     168   33%       mixed
MCU_NXP_ColdFire.kicad_sym                     6       2       4   33%       mixed
Analog_DAC.kicad_sym                         126      49      77   39%       mixed
CPU_NXP_68000.kicad_sym                        5       2       3   40%       mixed
Sensor_Pressure.kicad_sym                     15       6       9   40%       mixed
RF_WiFi.kicad_sym                              2       1       1   50%       mixed
Amplifier_Operational.kicad_sym              321     180     141   56%       mixed
Comparator.kicad_sym                          54      33      21   61%       mixed
Regulator_SwitchedCapacitor.kicad_sym         20      13       7   65%       mixed
Memory_EEPROM.kicad_sym                       82      54      28   66%       mixed
Driver_FET.kicad_sym                         194     129      65   66%       mixed
CPU.kicad_sym                                  6       4       2   67%       mixed
Interface_Telecom.kicad_sym                    3       2       1   67%       mixed
Analog_ADC.kicad_sym                         158     107      51   68%       mixed
Regulator_Controller.kicad_sym               149     101      48   68%       mixed
Transistor_BJT.kicad_sym                     307     211      96   69%       mixed
Power_Supervisor.kicad_sym                    77      53      24   69%       mixed
Memory_EPROM.kicad_sym                        13       9       4   69%       mixed
CPLD_Xilinx.kicad_sym                         17      12       5   71%       mixed
Relay_SolidState.kicad_sym                    84      61      23   73%       mixed
Amplifier_Current.kicad_sym                   74      55      19   74%       mixed
Driver_Motor.kicad_sym                        65      49      16   75%       mixed
RF_AM_FM.kicad_sym                            13      10       3   77%       mixed
Memory_Flash.kicad_sym                        38      30       8   79%       mixed
Potentiometer_Digital.kicad_sym               48      38      10   79%       mixed
Interface_UART.kicad_sym                     133     106      27   80%       mixed
MCU_Module.kicad_sym                          50      40      10   80%       mixed
RF_Module.kicad_sym                           61      49      12   80%       mixed
Audio.kicad_sym                               82      66      16   80%       mixed
CPLD_Altera.kicad_sym                         26      21       5   81%       mixed
Memory_RAM.kicad_sym                          45      37       8   82%       mixed
Timer.kicad_sym                               59      49      10   83%       mixed
Amplifier_Difference.kicad_sym                12      10       2   83%       mixed
Relay.kicad_sym                              200     167      33   84%       mixed
RF_Bluetooth.kicad_sym                        13      11       2   85%       mixed
Isolator_Analog.kicad_sym                      7       6       1   86%       mixed
RF_ZigBee.kicad_sym                            7       6       1   86%       mixed
Timer_RTC.kicad_sym                           38      33       5   87%       mixed
Sensor_Temperature.kicad_sym                 100      87      13   87%       mixed
Analog.kicad_sym                              16      14       2   88%       mixed
Interface_Expansion.kicad_sym                 64      56       8   88%       mixed
MCU_Microchip_PIC32.kicad_sym                 17      15       2   88%       mixed
Regulator_Linear.kicad_sym                  1338    1181     157   88%       mixed
Transformer.kicad_sym                        104      92      12   88%       mixed
RF_Switch.kicad_sym                           28      25       3   89%       mixed
MCU_Texas.kicad_sym                           21      19       2   90%       mixed
Interface_CAN_LIN.kicad_sym                   85      77       8   91%       mixed
Sensor_Magnetic.kicad_sym                     45      41       4   91%       mixed
Amplifier_Audio.kicad_sym                     94      86       8   91%       mixed
Isolator.kicad_sym                           315     291      24   92%       mixed
Sensor.kicad_sym                              14      13       1   93%       mixed
Reference_Voltage.kicad_sym                  253     235      18   93%       mixed
Power_Management.kicad_sym                   213     198      15   93%       mixed
Analog_Switch.kicad_sym                      123     115       8   93%       mixed
MCU_Cypress.kicad_sym                         36      34       2   94%       mixed
Driver_LED.kicad_sym                          78      74       4   95%       mixed
Interface.kicad_sym                          100      95       5   95%       mixed
Interface_Optical.kicad_sym                   42      40       2   95%       mixed
Timer_PLL.kicad_sym                           21      20       1   95%       mixed
Sensor_Optical.kicad_sym                      67      64       3   96%       mixed
Interface_USB.kicad_sym                       95      91       4   96%       mixed
Sensor_Touch.kicad_sym                        24      23       1   96%       mixed
Sensor_Motion.kicad_sym                       26      25       1   96%       mixed
Power_Protection.kicad_sym                    81      79       2   98%       mixed
LED.kicad_sym                                 54      53       1   98%       mixed
Regulator_Switching.kicad_sym               1058    1046      12   99%       mixed
Oscillator.kicad_sym                          97      96       1   99%       mixed
Battery_Management.kicad_sym                 120     119       1   99%       mixed
Sensor_Current.kicad_sym                     253     252       1  100%       mixed
Amplifier_Buffer.kicad_sym                     7       7       0  100% atomic
Buffer.kicad_sym                               1       1       0  100% atomic
Converter_ACDC.kicad_sym                     137     137       0  100% atomic
Converter_DCDC.kicad_sym                     538     538       0  100% atomic
CPLD_Microchip.kicad_sym                       7       7       0  100% atomic
CPU_NXP_6800.kicad_sym                        12      12       0  100% atomic
CPU_NXP_IMX.kicad_sym                         18      18       0  100% atomic
Diode.kicad_sym                              538     538       0  100% atomic
Diode_Bridge.kicad_sym                       148     148       0  100% atomic
Diode_Laser.kicad_sym                          5       5       0  100% atomic
Display_Character.kicad_sym                  128     128       0  100% atomic
Display_Graphic.kicad_sym                     38      38       0  100% atomic
Driver_Display.kicad_sym                      10      10       0  100% atomic
Driver_Haptic.kicad_sym                        2       2       0  100% atomic
Driver_Relay.kicad_sym                         5       5       0  100% atomic
Driver_TEC.kicad_sym                           2       2       0  100% atomic
DSP_AnalogDevices.kicad_sym                    5       5       0  100% atomic
DSP_Motorola.kicad_sym                         1       1       0  100% atomic
Filter.kicad_sym                              48      48       0  100% atomic
FPGA_Lattice.kicad_sym                        24      24       0  100% atomic
FPGA_Microsemi.kicad_sym                      18      18       0  100% atomic
GPU.kicad_sym                                  3       3       0  100% atomic
Interface_CurrentLoop.kicad_sym                2       2       0  100% atomic
Interface_Ethernet.kicad_sym                  26      26       0  100% atomic
Interface_HDMI.kicad_sym                       2       2       0  100% atomic
Interface_LineDriver.kicad_sym                16      16       0  100% atomic
Logic_LevelTranslator.kicad_sym               34      34       0  100% atomic
MCU_Dialog.kicad_sym                           2       2       0  100% atomic
MCU_Espressif.kicad_sym                        1       1       0  100% atomic
MCU_Microchip_8051.kicad_sym                  12      12       0  100% atomic
MCU_Microchip_ATmega.kicad_sym               440     440       0  100% atomic
MCU_Microchip_ATtiny.kicad_sym               199     199       0  100% atomic
MCU_Microchip_AVR.kicad_sym                   19      19       0  100% atomic
MCU_Microchip_PIC10.kicad_sym                 24      24       0  100% atomic
MCU_Microchip_PIC12.kicad_sym                114     114       0  100% atomic
MCU_Microchip_PIC18.kicad_sym                172     172       0  100% atomic
MCU_Microchip_PIC24.kicad_sym                  3       3       0  100% atomic
MCU_Microchip_SAMA.kicad_sym                   1       1       0  100% atomic
MCU_Microchip_SAMD.kicad_sym                  87      87       0  100% atomic
MCU_Microchip_SAME.kicad_sym                  16      16       0  100% atomic
MCU_Microchip_SAML.kicad_sym                  20      20       0  100% atomic
MCU_Microchip_SAMV.kicad_sym                   3       3       0  100% atomic
MCU_Nordic.kicad_sym                           7       7       0  100% atomic
MCU_NXP_Kinetis.kicad_sym                    155     155       0  100% atomic
MCU_NXP_LPC.kicad_sym                        105     105       0  100% atomic
MCU_NXP_MAC7100.kicad_sym                      2       2       0  100% atomic
MCU_NXP_NTAG.kicad_sym                         1       1       0  100% atomic
MCU_NXP_S08.kicad_sym                        189     189       0  100% atomic
MCU_Parallax.kicad_sym                         3       3       0  100% atomic
MCU_Renesas_Synergy_S1.kicad_sym               1       1       0  100% atomic
MCU_SiFive.kicad_sym                           3       3       0  100% atomic
MCU_SiliconLabs.kicad_sym                     35      35       0  100% atomic
MCU_STC.kicad_sym                              6       6       0  100% atomic
MCU_ST_STM32F0.kicad_sym                     111     111       0  100% atomic
MCU_ST_STM32F1.kicad_sym                     125     125       0  100% atomic
MCU_ST_STM32F2.kicad_sym                      47      47       0  100% atomic
MCU_ST_STM32F3.kicad_sym                      93      93       0  100% atomic
MCU_ST_STM32F4.kicad_sym                     211     211       0  100% atomic
MCU_ST_STM32F7.kicad_sym                     113     113       0  100% atomic
MCU_ST_STM32G0.kicad_sym                       2       2       0  100% atomic
MCU_ST_STM32H7.kicad_sym                      15      15       0  100% atomic
MCU_ST_STM32L0.kicad_sym                     150     150       0  100% atomic
MCU_ST_STM32L1.kicad_sym                     130     130       0  100% atomic
MCU_ST_STM32L4+.kicad_sym                     37      37       0  100% atomic
MCU_ST_STM32L4.kicad_sym                     130     130       0  100% atomic
MCU_ST_STM8.kicad_sym                         23      23       0  100% atomic
MCU_Texas_MSP430.kicad_sym                   361     361       0  100% atomic
MCU_Texas_SimpleLink.kicad_sym                 1       1       0  100% atomic
Memory_UniqueID.kicad_sym                      2       2       0  100% atomic
Reference_Current.kicad_sym                   12      12       0  100% atomic
Regulator_Current.kicad_sym                    2       2       0  100% atomic
RF.kicad_sym                                  55      55       0  100% atomic
RF_Amplifier.kicad_sym                        75      75       0  100% atomic
RF_Filter.kicad_sym                          196     196       0  100% atomic
RF_GPS.kicad_sym                              20      20       0  100% atomic
RF_GSM.kicad_sym                              12      12       0  100% atomic
RF_Mixer.kicad_sym                             8       8       0  100% atomic
RF_NFC.kicad_sym                               1       1       0  100% atomic
RF_RFID.kicad_sym                              2       2       0  100% atomic
Security.kicad_sym                             3       3       0  100% atomic
Sensor_Audio.kicad_sym                         4       4       0  100% atomic
Sensor_Distance.kicad_sym                      1       1       0  100% atomic
Sensor_Humidity.kicad_sym                     13      13       0  100% atomic
Sensor_Proximity.kicad_sym                    29      29       0  100% atomic
Sensor_Voltage.kicad_sym                       1       1       0  100% atomic
Transistor_FET.kicad_sym                     492     492       0  100% atomic
Transistor_IGBT.kicad_sym                      2       2       0  100% atomic
Triac_Thyristor.kicad_sym                     45      45       0  100% atomic
Valve.kicad_sym                               24      24       0  100% atomic
--------------------------------------------------------------------------------
All                                        16951   12617    4334   74%
4 Likes

KiCad is NOT like Eagle. Having “non-atomic” libs is a benefit, not a hindrance.
There only needs to be a single schematic symbol for a resistor, rather than one for each physical size.

4xxx parts are old and not commonly used in new designs. There are STM mpu that have either limited or a preferred footprint.

I like the ability to select a footprint based on what is preferred by the SMD assembly shop.

This is just a different way of doing things and it provides some flexibility.

5 Likes

I would love to get some telemetry or metrics on which parts are most commonly used, so I and other library contributors could direct their efforts efficiently. While updating library parts, I found many that were obsolete, which is why I proposed the “part obsolescence” process. There is a reluctance to remove parts, partly because we don’t really know if anyone is using them.

I am sure there are many parts in the libraries that have never been used by anyone, since I found obvious errors in the symbol. Either it was never used, or no one cared to raise an issue. The KiCad libraries are totally reliant on community input, no one is funded to do it. I figure if 4000 people contributed $1 a month to me, I could do it full-time.

There is quite a field for “retro” designs, including valve amplifiers, old CPUs such as 6502,Z80 etc, with some companies producing modern pin-compatible replacements. We don’t really want to dictate to KiCad users what parts they can design with.

1 Like

KiCad is used a lot to reverse engineer schematics of ancient equipment

3 Likes

When in doubt, don’t.

1 Like

Even if they are really poor quality, probably never used and totally obscure? I’m not sure that accumulating rubbish really helps anyone.

I think several parts have been removed, and no one noticed. Parts can always be restored if there is demand, and people are willing to upgrade them. We have seen that with some Z80 parts.

2 Likes

Well, if you can make an “Obsolete Parts” directory in a Kicad online repository, that would probably be a good place to move them to. That way, if a circuit-designer ever finds such an obsolete part in her parts bin, she can look in that folder to see if Kicad templates or footprints ever existed for it.

1 Like

We already do that https://gitlab.com/kicad/libraries/kicad-symbols/-/tree/master/obsolete

2 Likes

Great! Thank you for making the hypertext link explicit, bobc.

If they are really poor quality, probably never used and totally obscure, there is no doubt :wink:

Dictionary disagrees:

Definition of probably

: insofar as seems reasonably true, factual, or to be expected : without much doubt

I have standardized on 0805 for all R & C. I made my own Symbol ‘r’ and ‘c’ with an 0805 footprint specified in my lib. Every time I place one it already has the desired footprint.

Same for diode, 2n7002, other commonly used items. This greatly reduces the effort required to do associations.

Your expectation for 4000 donors seems kinda high for lib services. The current number is 0.

I’m working on a ‘re-spin’ of an obsolete board, and i’m tripped up on footprints for some of the axial and radial footprints needed.

I don’t really understand the naming convention of these footprints; other than the courtyards, these could all be replaced by a couple sets of pads spaced the correct distance, differing only by minimum / maximum distances and in the diameter of the barrels…

It’s funny, I see KiCad schematics on the web and think “those are some of the symbols I contributed”. A lot of people complain about the libraries, but improvements don’t come out of thin air. A “thank you” to the volunteers would be nice, and cost nothing, but they rarely get even that.

2 Likes

Does this help?

2 Likes

bob, Thank you for contributing the footprints you made on your own to this project called kicad.