Alternate KiCad Library 2.0

Massive update for AKL introducing over 20000 symbols in the new KiCad 6 format and multiple new footprint libraries.
Now available directly from KiCAD’s Plugin and Content Manager.

Introducing:

Top:


Bottom:

Detailed list of changes can be found here:
Alternate KiCad Library User Manual.pdf (3.7 MB)

Installation instructions

  • Via the KiCad’s Plugin and Content Manager:

Open Plugin and Content Manager from KiCad’s home screen.
In the ‘Libraries’ tab search for ‘Alternate KiCad Library’ and install it.

KiCad uses library tables to keep track of installed libraries. As of 6.0.0-rc1 Content Manager does not automatically update these library tables.
To do it manually, go to ‘Manage Footprint Libraries’ in the preferences tab.
Press the folder icon and locate:
<KiCad 6 user directory>\3rdparty\footprints\com_github_dawidcislo_alternate-kicad-library

Multiple folders ending in .Pretty should be visible. Each of these is a separate footprint library. Select all the libraries that you want to install and press ‘Select Folder’

Next, go to ‘Manage Symbol Libraries’ in the preferences tab.
Press the folder icon and locate the folder:
<KiCad 6 user directory>\3rdparty\symbols\com_github_dawidcislo_alternate-kicad-library
Multiple files ending in .kicad_sym should be visible. Each of these is a separate symbol library. Select all the libraries that you want to install and press ‘Open’.

All the installed libraries should be now accessible.

  • Manual installation:

Extract the AKL files into any folder you want. Repeat the steps outlined above, but locate the folder with the previously extracted libraries in the library manager instead.

Get it here:

https://drive.google.com/drive/folders/1PUlp_1QcneiuK2Whkp_YgyxAr2PHHJxH?usp=sharing

https://mega.nz/folder/W7ogBYiT#fn2W0zo-Ao6-3u--oH4MFA

License information, detailed installation instructions, known issues can be found in the User Manual posted above.

7 Likes

Just a small note: KiCad is spelled KiCad, not KiCAD.

Great to see new content in the PCM!

1 Like

I will eventually change the naming :grinning:, glad you like it.

Really nice work, thank you very much.

May I suggest that naming convention should be like this:

Device_AKL => AKL_Device
Diode_AKL => AKL_Diode
.
.
.
Optocoupler_Misc_AKL => AKL_Optocoupler_Misc

Capacitor_SMD_AKL => AKL_Capacitor_SMD
Capacitor_Tantalum_SMD_AKL => AKL_Capacitor_Tantalum
.
.
.
Resistor_THT_AKL => AKL_Resistor_THT

This way, they are in consecutive order in the library/footprint editors.

1 Like

I remember the digi-key library doing something similar, and I’m not entirely sure about this. I found that it often gets in the way while just browsing different kinds of libraries and expecting them to be listed alphabetically. I’ll think it over.

You can directly edit this file for symbol libraries and append the following lines:

For windows: C:\Users\elekgeek\AppData\Roaming\kicad\6.0\sym-lib-table

  (lib (name "AKL_Device")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Device_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diac")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diac_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_Bridge")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_Bridge_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_Capacitance")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_Capacitance_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_Current_Limiting")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_Current_Limiting_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_Schottky")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_Schottky_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_TVS")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_TVS_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Diode_Zener")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Diode_Zener_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Optocoupler")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Optocoupler_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Optocoupler_Gate_Driver")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Optocoupler_Gate_Driver_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Optocoupler_Logic")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Optocoupler_Logic_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Optocoupler_Misc")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Optocoupler_Misc_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Optocoupler_Triac")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Optocoupler_Triac_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Thyristor")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Thyristor_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_BJT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_BJT_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_BJT_Darlington")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_BJT_Darlington_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_BJT_Pre-Biased")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_BJT_Pre-Biased_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_IGBT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_IGBT_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_JFET")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_JFET_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Transistor_MOSFET")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Transistor_MOSFET_AKL.kicad_sym")(options "")(descr ""))
  (lib (name "AKL_Triac")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/symbols/com_github_dawidcislo_alternate-kicad-library/Triac_AKL.kicad_sym")(options "")(descr ""))

image

and for footprints on windows, append below lines to this file: C:\Users\elekgeek\AppData\Roaming\kicad\6.0\fp-lib-table

  (lib (name "AKL_Capacitor_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_SMD_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Capacitor_SMD_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_SMD_Handsoldering_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Capacitor_Tantalum_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_Tantalum_SMD_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Capacitor_Tantalum_SMD_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_Tantalum_SMD_Handsoldering_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Capacitor_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_THT_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Capacitor_THT_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Capacitor_THT_AKL_Double.pretty")(options "")(descr "")) 
  (lib (name "AKL_Crystal")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Crystal_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Diode_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Diode_SMD_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Diode_SMD_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Diode_SMD_Handsoldering_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Diode_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Diode_THT_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Diode_THT_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Diode_THT_AKL_Double.pretty")(options "")(descr ""))
  (lib (name "AKL_Ferrite_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Ferrite_SMD_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Ferrite_SMD_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Ferrite_SMD_Handsoldering_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Ferrite_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Ferrite_THT_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Fuse")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Fuse_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Fuse_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Fuse_AKL_Double.pretty")(options "")(descr "")) 
  (lib (name "AKL_Fuse_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Fuse_Handsoldering_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Inductor_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Inductor_SMD_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Inductor_SMD_Handsoldering")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Inductor_SMD_Handsoldering_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Inductor_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Inductor_THT_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Inductor_THT_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Inductor_THT_AKL_Double.pretty")(options "")(descr ""))
  (lib (name "AKL_Jumper")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Jumper_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Jumper_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Jumper_AKL_Double.pretty")(options "")(descr ""))
  (lib (name "AKL_Optocoupler")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Optocoupler_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Package_CSP")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_CSP_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_DFN_QFN")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_DFN_QFN_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_DIP")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_DIP_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_LCC")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_LCC_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Package_QFP")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_QFP_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_SON")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_SON_AKL.pretty")(options "")(descr "")) 
  (lib (name "AKL_Package_SO")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_SO_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_TO_SOT_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_TO_SOT_SMD_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_TO_SOT_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_TO_SOT_THT_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Package_TO_SOT_THT_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Package_TO_SOT_THT_AKL_Double.pretty")(options "")(descr ""))
  (lib (name "AKL_Resistor_SMD")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Resistor_SMD_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Resistor_THT")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Resistor_THT_AKL.pretty")(options "")(descr ""))
  (lib (name "AKL_Resistor_THT_Double")(type "KiCad")(uri "${KICAD6_3RD_PARTY}/footprints/com_github_dawidcislo_alternate-kicad-library/Resistor_THT_AKL_Double.pretty")(options "")(descr ""))

Unfortunately global library tables are problematic. All further updates to the tables must be made manually, whether it’s AKL libraries or the official libraries. The whole idea of having only one global library table is problematic; I hope something like https://gitlab.com/kicad/code/kicad/-/issues/2118 gets implemented.

1 Like

The inability of PCM to manage/enroll those libs/footprints into editors is by itself a problem, but IMHO PCM should not be responsible for that anyway, as a result you have to add them one by one which is a tedious task because there is no other way currently…

A dynamic update method in the libs/footprints system able to scan those directories and automatically enroll those items and check if they are broken is what should be done after all. In this footprint library there are 37 lines to be manipulated to make it appear in the footprint editor, even if scripted using python to overcome the missing functionality, frankly it is still an inefficient way of handling libs/footprints. Since the path is defined, a scan method can enroll those libs/footprints, and at the same time check if the lib is already existing or broken then added accordingly.

1 Like

I added an issue on gitlab.

1 Like