From 6207faf3dc18ac7476a7606f8c6979df9fe84462 Mon Sep 17 00:00:00 2001 From: Michele Bigi Date: Sun, 16 Aug 2026 13:13:42 +0200 Subject: [PATCH] Add global-install support and document installation in README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scripts/generate_global_tables.py generates sym-lib-table.global / fp-lib-table.global using a custom env var (default MIKILAB) instead of ${KIPRJMOD}, for use across every KiCad project - README §1 now has concrete, tested install steps for this machine's KiCad 10.0 setup (per-project vs. global), including a merge script and a note about stale kicad-personal-library entries already present in the user's global sym-lib-table --- README.md | 99 ++++++++++--- fp-lib-table.global | 77 ++++++++++ scripts/check_library.py | 3 +- scripts/generate_global_tables.py | 60 ++++++++ scripts/lib_common.py | 8 +- sym-lib-table.global | 232 ++++++++++++++++++++++++++++++ 6 files changed, 458 insertions(+), 21 deletions(-) create mode 100644 fp-lib-table.global create mode 100644 scripts/generate_global_tables.py create mode 100644 sym-lib-table.global diff --git a/README.md b/README.md index 021c5d3..fb5aed3 100644 --- a/README.md +++ b/README.md @@ -43,23 +43,90 @@ automatically from the file/directory name and are guaranteed unique. ## 1. Installing the library -Point KiCad at this directory's two lib-tables so its symbols and -footprints show up in the schematic/PCB editors: +There are two ways to make this library available in KiCad. Which one you +want depends on whether you use it in one project or in every project. -- **Symbols**: KiCad → Preferences → Manage Symbol Libraries → Global (or - Project) Libraries → add all entries from `sym-lib-table`, or simply - copy/merge this repo's `sym-lib-table` into your KiCad configuration - directory (or your project directory, if you set `KIPRJMOD` per - project). -- **Footprints**: same, using `fp-lib-table` under Manage Footprint - Libraries. -- Easiest in practice: open a KiCad project whose project directory *is* - (or contains a symlink/copy of) this library, so `${KIPRJMOD}` resolves - to `mikylab_kikad_library` automatically. Alternatively, define your own - KiCad environment variable (e.g. `MIKILAB`) pointing at this directory - and rewrite the two table files to use it instead of `${KIPRJMOD}` if - you want the library available across every project without copying - files. +### Option A -- one project only (no KiCad config changes) + +`sym-lib-table` / `fp-lib-table` at the root of this repo use +`${KIPRJMOD}`, which KiCad automatically resolves to *the currently open +project's directory*. So if a `.kicad_pro` project lives directly inside +`mikylab_kikad_library/` (or you copy these two table files into your +project's directory), KiCad picks them up automatically -- no extra +configuration needed. This is the setup `check_library.py` and the +`scripts/` tooling assume. + +### Option B -- available in every project (recommended for a personal library) + +This is the practical setup for a library you want in every schematic you +open, not just one project. Tested against the KiCad 10.0 install on this +machine (`/Applications/KiCad/KiCad.app`, config at +`~/Library/Preferences/kicad/10.0/`). + +1. **Define an environment variable pointing at this library.** + KiCad → Preferences → Configure Paths... → add a new entry: + - Name: `MIKILAB` + - Path: `/Users/michelebigi/Development/mikylab_kikad_library` + +2. **Generate the "global" table variant** (uses `${MIKILAB}` instead of + `${KIPRJMOD}`; regenerate any time after adding components): + ``` + python3 scripts/generate_global_tables.py + ``` + This writes `sym-lib-table.global` and `fp-lib-table.global` at the + library root. + +3. **Merge those into KiCad's global tables.** The simplest way is to + append their `(lib ...)` lines into your existing global tables (back + them up first): + ``` + cp ~/Library/Preferences/kicad/10.0/sym-lib-table ~/Library/Preferences/kicad/10.0/sym-lib-table.bak + cp ~/Library/Preferences/kicad/10.0/fp-lib-table ~/Library/Preferences/kicad/10.0/fp-lib-table.bak + + python3 - <<'EOF' + import re + from pathlib import Path + + kicad_dir = Path.home() / "Library/Preferences/kicad/10.0" + lib_root = Path("/Users/michelebigi/Development/mikylab_kikad_library") + + for kind, global_file, generated in ( + ("sym_lib_table", "sym-lib-table", "sym-lib-table.global"), + ("fp_lib_table", "fp-lib-table", "fp-lib-table.global"), + ): + target = kicad_dir / global_file + new_libs = (lib_root / generated).read_text().splitlines() + new_libs = [l for l in new_libs if l.strip().startswith("(lib")] + + text = target.read_text() + # insert the new (lib ...) lines just before the final closing paren + idx = text.rstrip().rfind(")") + text = text.rstrip()[:idx] + "\n" + "\n".join(new_libs) + "\n" + text.rstrip()[idx:] + "\n" + target.write_text(text) + print(f"Merged {len(new_libs)} libraries into {target}") + EOF + ``` + (Or do it by hand: open both `.global` files and copy each `(lib + ...)` line into the corresponding file under + `~/Library/Preferences/kicad/10.0/`, just before the final closing + `)`.) + +4. Restart KiCad. Every `MIKILAB_*` symbol and footprint library is now + available in any project, resolved via `${MIKILAB}`. + +**Known issue on this machine, to clean up before deleting +`kicad-personal-library`:** the current global `sym-lib-table` already +has a handful of entries pointing directly at +`/Users/michelebigi/Development/kicad-personal-library/...` with absolute +paths (added before this library existed, e.g. libraries named `ti`, +`TPS63020DSJT`). Once the `MIKILAB_*` libraries above are installed and +working, remove those old absolute-path entries from +`~/Library/Preferences/kicad/10.0/sym-lib-table` -- otherwise you'll have +duplicate/stale libraries, and deleting `kicad-personal-library` will +leave KiCad with broken references. This library's own tables never +contain absolute paths (verified by `check_library.py` and by `grep -R +"/Users/michelebigi"`), so this cleanup is only about your existing +global KiCad config, not about anything in this repo. ## 2. Using the symbols diff --git a/fp-lib-table.global b/fp-lib-table.global new file mode 100644 index 0000000..3601f11 --- /dev/null +++ b/fp-lib-table.global @@ -0,0 +1,77 @@ +(fp_lib_table + (version 7) + (lib (name "MIKILAB_lcd_kingtech")(type "KiCad")(uri "${MIKILAB}/footprints/display/lcd_kingtech.pretty")(options "")(descr "lcd_kingtech.pretty")) + (lib (name "MIKILAB_altera")(type "KiCad")(uri "${MIKILAB}/footprints/fpga_cpld/altera.pretty")(options "")(descr "altera.pretty")) + (lib (name "MIKILAB_lattice")(type "KiCad")(uri "${MIKILAB}/footprints/fpga_cpld/lattice.pretty")(options "")(descr "lattice.pretty")) + (lib (name "MIKILAB_xilinx")(type "KiCad")(uri "${MIKILAB}/footprints/fpga_cpld/xilinx.pretty")(options "")(descr "xilinx.pretty")) + (lib (name "MIKILAB_hdmi")(type "KiCad")(uri "${MIKILAB}/footprints/interface/hdmi.pretty")(options "")(descr "hdmi.pretty")) + (lib (name "MIKILAB_usb3_esd_son50_10")(type "KiCad")(uri "${MIKILAB}/footprints/interface/usb3_esd_son50-10.pretty")(options "")(descr "usb3_esd_son50-10.pretty")) + (lib (name "MIKILAB_usb3_micro_ab")(type "KiCad")(uri "${MIKILAB}/footprints/interface/usb3_micro_ab.pretty")(options "")(descr "usb3_micro_ab.pretty")) + (lib (name "MIKILAB_ESP32_S31_WROOM_3")(type "KiCad")(uri "${MIKILAB}/footprints/microcontrollers/ESP32-S31-WROOM-3.pretty")(options "")(descr "ESP32-S31-WROOM-3.pretty")) + (lib (name "MIKILAB_IC_TPS63020DSJT")(type "KiCad")(uri "${MIKILAB}/footprints/other/IC_TPS63020DSJT.pretty")(options "")(descr "IC_TPS63020DSJT.pretty")) + (lib (name "MIKILAB_SOT95P280X145_5N")(type "KiCad")(uri "${MIKILAB}/footprints/other/SOT95P280X145-5N.pretty")(options "")(descr "SOT95P280X145-5N.pretty")) + (lib (name "MIKILAB_abracon")(type "KiCad")(uri "${MIKILAB}/footprints/other/abracon.pretty")(options "")(descr "abracon.pretty")) + (lib (name "MIKILAB_alps")(type "KiCad")(uri "${MIKILAB}/footprints/other/alps.pretty")(options "")(descr "alps.pretty")) + (lib (name "MIKILAB_amp_te")(type "KiCad")(uri "${MIKILAB}/footprints/other/amp_te.pretty")(options "")(descr "amp_te.pretty")) + (lib (name "MIKILAB_amphenol")(type "KiCad")(uri "${MIKILAB}/footprints/other/amphenol.pretty")(options "")(descr "amphenol.pretty")) + (lib (name "MIKILAB_bat_coin")(type "KiCad")(uri "${MIKILAB}/footprints/other/bat_coin.pretty")(options "")(descr "bat_coin.pretty")) + (lib (name "MIKILAB_beaglebone_black")(type "KiCad")(uri "${MIKILAB}/footprints/other/beaglebone_black.pretty")(options "")(descr "beaglebone_black.pretty")) + (lib (name "MIKILAB_bel_fuse")(type "KiCad")(uri "${MIKILAB}/footprints/other/bel_fuse.pretty")(options "")(descr "bel_fuse.pretty")) + (lib (name "MIKILAB_bourns")(type "KiCad")(uri "${MIKILAB}/footprints/other/bourns.pretty")(options "")(descr "bourns.pretty")) + (lib (name "MIKILAB_ck")(type "KiCad")(uri "${MIKILAB}/footprints/other/ck.pretty")(options "")(descr "ck.pretty")) + (lib (name "MIKILAB_coilcraft")(type "KiCad")(uri "${MIKILAB}/footprints/other/coilcraft.pretty")(options "")(descr "coilcraft.pretty")) + (lib (name "MIKILAB_cts")(type "KiCad")(uri "${MIKILAB}/footprints/other/cts.pretty")(options "")(descr "cts.pretty")) + (lib (name "MIKILAB_cui")(type "KiCad")(uri "${MIKILAB}/footprints/other/cui.pretty")(options "")(descr "cui.pretty")) + (lib (name "MIKILAB_eastrising")(type "KiCad")(uri "${MIKILAB}/footprints/other/eastrising.pretty")(options "")(descr "eastrising.pretty")) + (lib (name "MIKILAB_epcos")(type "KiCad")(uri "${MIKILAB}/footprints/other/epcos.pretty")(options "")(descr "epcos.pretty")) + (lib (name "MIKILAB_fiducial")(type "KiCad")(uri "${MIKILAB}/footprints/other/fiducial.pretty")(options "")(descr "fiducial.pretty")) + (lib (name "MIKILAB_harwin")(type "KiCad")(uri "${MIKILAB}/footprints/other/harwin.pretty")(options "")(descr "harwin.pretty")) + (lib (name "MIKILAB_header")(type "KiCad")(uri "${MIKILAB}/footprints/other/header.pretty")(options "")(descr "header.pretty")) + (lib (name "MIKILAB_hirose")(type "KiCad")(uri "${MIKILAB}/footprints/other/hirose.pretty")(options "")(descr "hirose.pretty")) + (lib (name "MIKILAB_hole")(type "KiCad")(uri "${MIKILAB}/footprints/other/hole.pretty")(options "")(descr "hole.pretty")) + (lib (name "MIKILAB_idi")(type "KiCad")(uri "${MIKILAB}/footprints/other/idi.pretty")(options "")(descr "idi.pretty")) + (lib (name "MIKILAB_ipc_beadc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_beadc.pretty")(options "")(descr "ipc_beadc.pretty")) + (lib (name "MIKILAB_ipc_bga")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_bga.pretty")(options "")(descr "ipc_bga.pretty")) + (lib (name "MIKILAB_ipc_capae")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_capae.pretty")(options "")(descr "ipc_capae.pretty")) + (lib (name "MIKILAB_ipc_capc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_capc.pretty")(options "")(descr "ipc_capc.pretty")) + (lib (name "MIKILAB_ipc_capmp")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_capmp.pretty")(options "")(descr "ipc_capmp.pretty")) + (lib (name "MIKILAB_ipc_diom")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_diom.pretty")(options "")(descr "ipc_diom.pretty")) + (lib (name "MIKILAB_ipc_fussc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_fussc.pretty")(options "")(descr "ipc_fussc.pretty")) + (lib (name "MIKILAB_ipc_indc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_indc.pretty")(options "")(descr "ipc_indc.pretty")) + (lib (name "MIKILAB_ipc_ledc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_ledc.pretty")(options "")(descr "ipc_ledc.pretty")) + (lib (name "MIKILAB_ipc_osccc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_osccc.pretty")(options "")(descr "ipc_osccc.pretty")) + (lib (name "MIKILAB_ipc_oscsc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_oscsc.pretty")(options "")(descr "ipc_oscsc.pretty")) + (lib (name "MIKILAB_ipc_qfn")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_qfn.pretty")(options "")(descr "ipc_qfn.pretty")) + (lib (name "MIKILAB_ipc_qfp")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_qfp.pretty")(options "")(descr "ipc_qfp.pretty")) + (lib (name "MIKILAB_ipc_resc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_resc.pretty")(options "")(descr "ipc_resc.pretty")) + (lib (name "MIKILAB_ipc_rescax")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_rescax.pretty")(options "")(descr "ipc_rescax.pretty")) + (lib (name "MIKILAB_ipc_sodfl")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_sodfl.pretty")(options "")(descr "ipc_sodfl.pretty")) + (lib (name "MIKILAB_ipc_soic")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_soic.pretty")(options "")(descr "ipc_soic.pretty")) + (lib (name "MIKILAB_ipc_son")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_son.pretty")(options "")(descr "ipc_son.pretty")) + (lib (name "MIKILAB_ipc_sop")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_sop.pretty")(options "")(descr "ipc_sop.pretty")) + (lib (name "MIKILAB_ipc_sot")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_sot.pretty")(options "")(descr "ipc_sot.pretty")) + (lib (name "MIKILAB_ipc_xtalsc")(type "KiCad")(uri "${MIKILAB}/footprints/other/ipc_xtalsc.pretty")(options "")(descr "ipc_xtalsc.pretty")) + (lib (name "MIKILAB_jst")(type "KiCad")(uri "${MIKILAB}/footprints/other/jst.pretty")(options "")(descr "jst.pretty")) + (lib (name "MIKILAB_led_strip")(type "KiCad")(uri "${MIKILAB}/footprints/other/led_strip.pretty")(options "")(descr "led_strip.pretty")) + (lib (name "MIKILAB_littelfuse")(type "KiCad")(uri "${MIKILAB}/footprints/other/littelfuse.pretty")(options "")(descr "littelfuse.pretty")) + (lib (name "MIKILAB_minicircuits")(type "KiCad")(uri "${MIKILAB}/footprints/other/minicircuits.pretty")(options "")(descr "minicircuits.pretty")) + (lib (name "MIKILAB_molex")(type "KiCad")(uri "${MIKILAB}/footprints/other/molex.pretty")(options "")(descr "molex.pretty")) + (lib (name "MIKILAB_newhaven")(type "KiCad")(uri "${MIKILAB}/footprints/other/newhaven.pretty")(options "")(descr "newhaven.pretty")) + (lib (name "MIKILAB_ohmite")(type "KiCad")(uri "${MIKILAB}/footprints/other/ohmite.pretty")(options "")(descr "ohmite.pretty")) + (lib (name "MIKILAB_onshore")(type "KiCad")(uri "${MIKILAB}/footprints/other/onshore.pretty")(options "")(descr "onshore.pretty")) + (lib (name "MIKILAB_phoenix")(type "KiCad")(uri "${MIKILAB}/footprints/other/phoenix.pretty")(options "")(descr "phoenix.pretty")) + (lib (name "MIKILAB_pot")(type "KiCad")(uri "${MIKILAB}/footprints/other/pot.pretty")(options "")(descr "pot.pretty")) + (lib (name "MIKILAB_pulse")(type "KiCad")(uri "${MIKILAB}/footprints/other/pulse.pretty")(options "")(descr "pulse.pretty")) + (lib (name "MIKILAB_samtec")(type "KiCad")(uri "${MIKILAB}/footprints/other/samtec.pretty")(options "")(descr "samtec.pretty")) + (lib (name "MIKILAB_sullins")(type "KiCad")(uri "${MIKILAB}/footprints/other/sullins.pretty")(options "")(descr "sullins.pretty")) + (lib (name "MIKILAB_taiyo_yuden")(type "KiCad")(uri "${MIKILAB}/footprints/other/taiyo_yuden.pretty")(options "")(descr "taiyo_yuden.pretty")) + (lib (name "MIKILAB_terminal_block")(type "KiCad")(uri "${MIKILAB}/footprints/other/terminal_block.pretty")(options "")(descr "terminal_block.pretty")) + (lib (name "MIKILAB_ti")(type "KiCad")(uri "${MIKILAB}/footprints/other/ti.pretty")(options "")(descr "ti.pretty")) + (lib (name "MIKILAB_tp")(type "KiCad")(uri "${MIKILAB}/footprints/other/tp.pretty")(options "")(descr "tp.pretty")) + (lib (name "MIKILAB_ublox")(type "KiCad")(uri "${MIKILAB}/footprints/other/ublox.pretty")(options "")(descr "ublox.pretty")) + (lib (name "MIKILAB_wurth")(type "KiCad")(uri "${MIKILAB}/footprints/other/wurth.pretty")(options "")(descr "wurth.pretty")) + (lib (name "MIKILAB_zif")(type "KiCad")(uri "${MIKILAB}/footprints/other/zif.pretty")(options "")(descr "zif.pretty")) + (lib (name "MIKILAB_antenna")(type "KiCad")(uri "${MIKILAB}/footprints/rf/antenna.pretty")(options "")(descr "antenna.pretty")) + (lib (name "MIKILAB_hackrf_expansion")(type "KiCad")(uri "${MIKILAB}/footprints/rf/hackrf_expansion.pretty")(options "")(descr "hackrf_expansion.pretty")) + (lib (name "MIKILAB_rf_sma")(type "KiCad")(uri "${MIKILAB}/footprints/rf/rf_sma.pretty")(options "")(descr "rf_sma.pretty")) +) diff --git a/scripts/check_library.py b/scripts/check_library.py index 9afb669..f991446 100644 --- a/scripts/check_library.py +++ b/scripts/check_library.py @@ -33,7 +33,8 @@ ROOT = lc.LIBRARY_ROOT EXPECTED_TOP_LEVEL = { "symbols", "footprints", "3dmodels", "docs", "legacy", "scripts", - "sym-lib-table", "fp-lib-table", "MANIFEST.csv", "MANIFEST.md", + "sym-lib-table", "fp-lib-table", "sym-lib-table.global", "fp-lib-table.global", + "MANIFEST.csv", "MANIFEST.md", "README.md", ".git", ".claude", ".gitignore", ".DS_Store", } diff --git a/scripts/generate_global_tables.py b/scripts/generate_global_tables.py new file mode 100644 index 0000000..9b29872 --- /dev/null +++ b/scripts/generate_global_tables.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +""" +generate_global_tables.py +========================== + +sym-lib-table / fp-lib-table at the library root use ${KIPRJMOD}, which +KiCad only resolves when this directory *is* (or is symlinked as) the +currently open project's directory. To use this library globally, across +every KiCad project, you instead need a custom environment variable (this +script defaults to MIKILAB) defined once in KiCad's Configure Paths, plus +a copy of the two tables that reference that variable instead of +${KIPRJMOD}. + +This script writes: + sym-lib-table.global + fp-lib-table.global + +at the library root, identical in content to sym-lib-table/fp-lib-table +except for the environment variable used in each URI. See README.md +section 1 for the full install steps. + +Usage: + python3 scripts/generate_global_tables.py [--env-var MIKILAB] +""" + +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +import lib_common as lc + +ROOT = lc.LIBRARY_ROOT + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--env-var", default="MIKILAB", help="KiCad environment variable name to use (default: MIKILAB)") + args = parser.parse_args() + + sym_entries = lc.build_sym_table_entries(ROOT, env_var=args.env_var) + fp_entries = lc.build_fp_table_entries(ROOT, env_var=args.env_var) + + (ROOT / "sym-lib-table.global").write_text( + lc.render_lib_table("sym_lib_table", sym_entries), encoding="utf-8" + ) + (ROOT / "fp-lib-table.global").write_text( + lc.render_lib_table("fp_lib_table", fp_entries), encoding="utf-8" + ) + + print(f"Wrote sym-lib-table.global ({len(sym_entries)} libraries, using \\${{{args.env_var}}})") + print(f"Wrote fp-lib-table.global ({len(fp_entries)} libraries, using \\${{{args.env_var}}})") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/lib_common.py b/scripts/lib_common.py index 3612e79..0176b04 100644 --- a/scripts/lib_common.py +++ b/scripts/lib_common.py @@ -155,27 +155,27 @@ class LibEntry: options: str = "" -def build_sym_table_entries(root: Path) -> list[LibEntry]: +def build_sym_table_entries(root: Path, env_var: str = "KIPRJMOD") -> list[LibEntry]: used: set[str] = set() entries = [] for path in discover_symbol_libraries(root): relative = path.relative_to(root) nickname = unique_nickname(sym_nickname(path), used) - uri = "${KIPRJMOD}/" + str(relative) + uri = "${" + env_var + "}/" + str(relative) entries.append(LibEntry(nickname=nickname, uri=uri, descr=path.stem)) return entries -def build_fp_table_entries(root: Path) -> list[LibEntry]: +def build_fp_table_entries(root: Path, env_var: str = "KIPRJMOD") -> list[LibEntry]: used: set[str] = set() entries = [] for path in discover_footprint_libraries(root): relative = path.relative_to(root) nickname = unique_nickname(fp_nickname(path), used) - uri = "${KIPRJMOD}/" + str(relative) + uri = "${" + env_var + "}/" + str(relative) entries.append(LibEntry(nickname=nickname, uri=uri, descr=path.name)) return entries diff --git a/sym-lib-table.global b/sym-lib-table.global new file mode 100644 index 0000000..4f06f8c --- /dev/null +++ b/sym-lib-table.global @@ -0,0 +1,232 @@ +(sym_lib_table + (version 7) + (lib (name "MIKILAB_Amplifier_Operational")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Amplifier_Operational.kicad_sym")(options "")(descr "Amplifier_Operational")) + (lib (name "MIKILAB_Analog")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Analog.kicad_sym")(options "")(descr "Analog")) + (lib (name "MIKILAB_Analog_ADC")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Analog_ADC.kicad_sym")(options "")(descr "Analog_ADC")) + (lib (name "MIKILAB_Analog_DAC")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Analog_DAC.kicad_sym")(options "")(descr "Analog_DAC")) + (lib (name "MIKILAB_Analog_Switch")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Analog_Switch.kicad_sym")(options "")(descr "Analog_Switch")) + (lib (name "MIKILAB_Diode_Bridge")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Diode_Bridge.kicad_sym")(options "")(descr "Diode_Bridge")) + (lib (name "MIKILAB_Diode_Laser")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Diode_Laser.kicad_sym")(options "")(descr "Diode_Laser")) + (lib (name "MIKILAB_Diode_Official")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Diode_Official.kicad_sym")(options "")(descr "Diode_Official")) + (lib (name "MIKILAB_Driver_FET")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Driver_FET.kicad_sym")(options "")(descr "Driver_FET")) + (lib (name "MIKILAB_Driver_Relay")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Driver_Relay.kicad_sym")(options "")(descr "Driver_Relay")) + (lib (name "MIKILAB_Filter")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Filter.kicad_sym")(options "")(descr "Filter")) + (lib (name "MIKILAB_Isolator_Analog")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Isolator_Analog.kicad_sym")(options "")(descr "Isolator_Analog")) + (lib (name "MIKILAB_Reference_Current")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Reference_Current.kicad_sym")(options "")(descr "Reference_Current")) + (lib (name "MIKILAB_Reference_Voltage")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Reference_Voltage.kicad_sym")(options "")(descr "Reference_Voltage")) + (lib (name "MIKILAB_Relay")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Relay.kicad_sym")(options "")(descr "Relay")) + (lib (name "MIKILAB_Relay_SolidState")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Relay_SolidState.kicad_sym")(options "")(descr "Relay_SolidState")) + (lib (name "MIKILAB_Sensor")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor.kicad_sym")(options "")(descr "Sensor")) + (lib (name "MIKILAB_Sensor_Current")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Current.kicad_sym")(options "")(descr "Sensor_Current")) + (lib (name "MIKILAB_Sensor_Distance")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Distance.kicad_sym")(options "")(descr "Sensor_Distance")) + (lib (name "MIKILAB_Sensor_Energy")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Energy.kicad_sym")(options "")(descr "Sensor_Energy")) + (lib (name "MIKILAB_Sensor_Gas")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Gas.kicad_sym")(options "")(descr "Sensor_Gas")) + (lib (name "MIKILAB_Sensor_Humidity")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Humidity.kicad_sym")(options "")(descr "Sensor_Humidity")) + (lib (name "MIKILAB_Sensor_Magnetic")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Magnetic.kicad_sym")(options "")(descr "Sensor_Magnetic")) + (lib (name "MIKILAB_Sensor_Motion")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Motion.kicad_sym")(options "")(descr "Sensor_Motion")) + (lib (name "MIKILAB_Sensor_Optical")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Optical.kicad_sym")(options "")(descr "Sensor_Optical")) + (lib (name "MIKILAB_Sensor_Pressure")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Pressure.kicad_sym")(options "")(descr "Sensor_Pressure")) + (lib (name "MIKILAB_Sensor_Proximity")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Proximity.kicad_sym")(options "")(descr "Sensor_Proximity")) + (lib (name "MIKILAB_Sensor_Temperature")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Temperature.kicad_sym")(options "")(descr "Sensor_Temperature")) + (lib (name "MIKILAB_Sensor_Touch")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Touch.kicad_sym")(options "")(descr "Sensor_Touch")) + (lib (name "MIKILAB_Sensor_Voltage")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Sensor_Voltage.kicad_sym")(options "")(descr "Sensor_Voltage")) + (lib (name "MIKILAB_Switch")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Switch.kicad_sym")(options "")(descr "Switch")) + (lib (name "MIKILAB_Transistor_Array")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Transistor_Array.kicad_sym")(options "")(descr "Transistor_Array")) + (lib (name "MIKILAB_Transistor_BJT")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Transistor_BJT.kicad_sym")(options "")(descr "Transistor_BJT")) + (lib (name "MIKILAB_Transistor_FET")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Transistor_FET.kicad_sym")(options "")(descr "Transistor_FET")) + (lib (name "MIKILAB_Transistor_FET_Other")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Transistor_FET_Other.kicad_sym")(options "")(descr "Transistor_FET_Other")) + (lib (name "MIKILAB_Transistor_IGBT")(type "KiCad")(uri "${MIKILAB}/symbols/analog/Transistor_IGBT.kicad_sym")(options "")(descr "Transistor_IGBT")) + (lib (name "MIKILAB_diode")(type "KiCad")(uri "${MIKILAB}/symbols/analog/diode.kicad_sym")(options "")(descr "diode")) + (lib (name "MIKILAB_Amplifier_Audio")(type "KiCad")(uri "${MIKILAB}/symbols/audio/Amplifier_Audio.kicad_sym")(options "")(descr "Amplifier_Audio")) + (lib (name "MIKILAB_Audio")(type "KiCad")(uri "${MIKILAB}/symbols/audio/Audio.kicad_sym")(options "")(descr "Audio")) + (lib (name "MIKILAB_Connector_Audio")(type "KiCad")(uri "${MIKILAB}/symbols/audio/Connector_Audio.kicad_sym")(options "")(descr "Connector_Audio")) + (lib (name "MIKILAB_DSP_AnalogDevices")(type "KiCad")(uri "${MIKILAB}/symbols/audio/DSP_AnalogDevices.kicad_sym")(options "")(descr "DSP_AnalogDevices")) + (lib (name "MIKILAB_DSP_Freescale")(type "KiCad")(uri "${MIKILAB}/symbols/audio/DSP_Freescale.kicad_sym")(options "")(descr "DSP_Freescale")) + (lib (name "MIKILAB_DSP_Microchip_DSPIC33")(type "KiCad")(uri "${MIKILAB}/symbols/audio/DSP_Microchip_DSPIC33.kicad_sym")(options "")(descr "DSP_Microchip_DSPIC33")) + (lib (name "MIKILAB_DSP_Motorola")(type "KiCad")(uri "${MIKILAB}/symbols/audio/DSP_Motorola.kicad_sym")(options "")(descr "DSP_Motorola")) + (lib (name "MIKILAB_DSP_Texas")(type "KiCad")(uri "${MIKILAB}/symbols/audio/DSP_Texas.kicad_sym")(options "")(descr "DSP_Texas")) + (lib (name "MIKILAB_Sensor_Audio")(type "KiCad")(uri "${MIKILAB}/symbols/audio/Sensor_Audio.kicad_sym")(options "")(descr "Sensor_Audio")) + (lib (name "MIKILAB_Display_Character")(type "KiCad")(uri "${MIKILAB}/symbols/display/Display_Character.kicad_sym")(options "")(descr "Display_Character")) + (lib (name "MIKILAB_Display_Graphic")(type "KiCad")(uri "${MIKILAB}/symbols/display/Display_Graphic.kicad_sym")(options "")(descr "Display_Graphic")) + (lib (name "MIKILAB_Driver_Display")(type "KiCad")(uri "${MIKILAB}/symbols/display/Driver_Display.kicad_sym")(options "")(descr "Driver_Display")) + (lib (name "MIKILAB_CPLD_Altera")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/CPLD_Altera.kicad_sym")(options "")(descr "CPLD_Altera")) + (lib (name "MIKILAB_CPLD_Microchip")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/CPLD_Microchip.kicad_sym")(options "")(descr "CPLD_Microchip")) + (lib (name "MIKILAB_CPLD_Renesas")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/CPLD_Renesas.kicad_sym")(options "")(descr "CPLD_Renesas")) + (lib (name "MIKILAB_CPLD_Xilinx")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/CPLD_Xilinx.kicad_sym")(options "")(descr "CPLD_Xilinx")) + (lib (name "MIKILAB_FPGA_Efinix_Trion")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Efinix_Trion.kicad_sym")(options "")(descr "FPGA_Efinix_Trion")) + (lib (name "MIKILAB_FPGA_Lattice")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Lattice.kicad_sym")(options "")(descr "FPGA_Lattice")) + (lib (name "MIKILAB_FPGA_Microsemi")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Microsemi.kicad_sym")(options "")(descr "FPGA_Microsemi")) + (lib (name "MIKILAB_FPGA_Xilinx")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx.kicad_sym")(options "")(descr "FPGA_Xilinx")) + (lib (name "MIKILAB_FPGA_Xilinx_Artix7")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Artix7.kicad_sym")(options "")(descr "FPGA_Xilinx_Artix7")) + (lib (name "MIKILAB_FPGA_Xilinx_Kintex7")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Kintex7.kicad_sym")(options "")(descr "FPGA_Xilinx_Kintex7")) + (lib (name "MIKILAB_FPGA_Xilinx_Spartan6")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Spartan6.kicad_sym")(options "")(descr "FPGA_Xilinx_Spartan6")) + (lib (name "MIKILAB_FPGA_Xilinx_Virtex5")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Virtex5.kicad_sym")(options "")(descr "FPGA_Xilinx_Virtex5")) + (lib (name "MIKILAB_FPGA_Xilinx_Virtex6")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Virtex6.kicad_sym")(options "")(descr "FPGA_Xilinx_Virtex6")) + (lib (name "MIKILAB_FPGA_Xilinx_Virtex7")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/FPGA_Xilinx_Virtex7.kicad_sym")(options "")(descr "FPGA_Xilinx_Virtex7")) + (lib (name "MIKILAB_lattice")(type "KiCad")(uri "${MIKILAB}/symbols/fpga_cpld/lattice.kicad_sym")(options "")(descr "lattice")) + (lib (name "MIKILAB_Connector")(type "KiCad")(uri "${MIKILAB}/symbols/interface/Connector.kicad_sym")(options "")(descr "Connector")) + (lib (name "MIKILAB_Connector_Generic")(type "KiCad")(uri "${MIKILAB}/symbols/interface/Connector_Generic.kicad_sym")(options "")(descr "Connector_Generic")) + (lib (name "MIKILAB_Connector_Generic_MountingPin")(type "KiCad")(uri "${MIKILAB}/symbols/interface/Connector_Generic_MountingPin.kicad_sym")(options "")(descr "Connector_Generic_MountingPin")) + (lib (name "MIKILAB_Connector_Generic_Shielded")(type "KiCad")(uri "${MIKILAB}/symbols/interface/Connector_Generic_Shielded.kicad_sym")(options "")(descr "Connector_Generic_Shielded")) + (lib (name "MIKILAB_Simulation_SPICE")(type "KiCad")(uri "${MIKILAB}/symbols/interface/Simulation_SPICE.kicad_sym")(options "")(descr "Simulation_SPICE")) + (lib (name "MIKILAB_4xxx")(type "KiCad")(uri "${MIKILAB}/symbols/logic/4xxx.kicad_sym")(options "")(descr "4xxx")) + (lib (name "MIKILAB_4xxx_IEEE")(type "KiCad")(uri "${MIKILAB}/symbols/logic/4xxx_IEEE.kicad_sym")(options "")(descr "4xxx_IEEE")) + (lib (name "MIKILAB_74xx")(type "KiCad")(uri "${MIKILAB}/symbols/logic/74xx.kicad_sym")(options "")(descr "74xx")) + (lib (name "MIKILAB_74xx_IEEE")(type "KiCad")(uri "${MIKILAB}/symbols/logic/74xx_IEEE.kicad_sym")(options "")(descr "74xx_IEEE")) + (lib (name "MIKILAB_Amplifier_Buffer")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Amplifier_Buffer.kicad_sym")(options "")(descr "Amplifier_Buffer")) + (lib (name "MIKILAB_Buffer")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Buffer.kicad_sym")(options "")(descr "Buffer")) + (lib (name "MIKILAB_Comparator")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Comparator.kicad_sym")(options "")(descr "Comparator")) + (lib (name "MIKILAB_FPGA_CologneChip_GateMate")(type "KiCad")(uri "${MIKILAB}/symbols/logic/FPGA_CologneChip_GateMate.kicad_sym")(options "")(descr "FPGA_CologneChip_GateMate")) + (lib (name "MIKILAB_Logic_LevelTranslator")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Logic_LevelTranslator.kicad_sym")(options "")(descr "Logic_LevelTranslator")) + (lib (name "MIKILAB_Logic_Programmable")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Logic_Programmable.kicad_sym")(options "")(descr "Logic_Programmable")) + (lib (name "MIKILAB_Timer")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Timer.kicad_sym")(options "")(descr "Timer")) + (lib (name "MIKILAB_Timer_PLL")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Timer_PLL.kicad_sym")(options "")(descr "Timer_PLL")) + (lib (name "MIKILAB_Timer_RTC")(type "KiCad")(uri "${MIKILAB}/symbols/logic/Timer_RTC.kicad_sym")(options "")(descr "Timer_RTC")) + (lib (name "MIKILAB_Jumper")(type "KiCad")(uri "${MIKILAB}/symbols/mechanical/Jumper.kicad_sym")(options "")(descr "Jumper")) + (lib (name "MIKILAB_Mechanical")(type "KiCad")(uri "${MIKILAB}/symbols/mechanical/Mechanical.kicad_sym")(options "")(descr "Mechanical")) + (lib (name "MIKILAB_Memory_EEPROM")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_EEPROM.kicad_sym")(options "")(descr "Memory_EEPROM")) + (lib (name "MIKILAB_Memory_EPROM")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_EPROM.kicad_sym")(options "")(descr "Memory_EPROM")) + (lib (name "MIKILAB_Memory_Flash")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_Flash.kicad_sym")(options "")(descr "Memory_Flash")) + (lib (name "MIKILAB_Memory_NVRAM")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_NVRAM.kicad_sym")(options "")(descr "Memory_NVRAM")) + (lib (name "MIKILAB_Memory_RAM")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_RAM.kicad_sym")(options "")(descr "Memory_RAM")) + (lib (name "MIKILAB_Memory_ROM")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_ROM.kicad_sym")(options "")(descr "Memory_ROM")) + (lib (name "MIKILAB_Memory_UniqueID")(type "KiCad")(uri "${MIKILAB}/symbols/memory/Memory_UniqueID.kicad_sym")(options "")(descr "Memory_UniqueID")) + (lib (name "MIKILAB_CPU")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/CPU.kicad_sym")(options "")(descr "CPU")) + (lib (name "MIKILAB_CPU_NXP_6800")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/CPU_NXP_6800.kicad_sym")(options "")(descr "CPU_NXP_6800")) + (lib (name "MIKILAB_CPU_NXP_68000")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/CPU_NXP_68000.kicad_sym")(options "")(descr "CPU_NXP_68000")) + (lib (name "MIKILAB_CPU_NXP_IMX")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/CPU_NXP_IMX.kicad_sym")(options "")(descr "CPU_NXP_IMX")) + (lib (name "MIKILAB_CPU_PowerPC")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/CPU_PowerPC.kicad_sym")(options "")(descr "CPU_PowerPC")) + (lib (name "MIKILAB_ESP32_S31_WROOM_3")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/ESP32-S31-WROOM-3.kicad_sym")(options "")(descr "ESP32-S31-WROOM-3")) + (lib (name "MIKILAB_MCU_AnalogDevices")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_AnalogDevices.kicad_sym")(options "")(descr "MCU_AnalogDevices")) + (lib (name "MIKILAB_MCU_Cypress")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Cypress.kicad_sym")(options "")(descr "MCU_Cypress")) + (lib (name "MIKILAB_MCU_Dialog")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Dialog.kicad_sym")(options "")(descr "MCU_Dialog")) + (lib (name "MIKILAB_MCU_Espressif")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Espressif.kicad_sym")(options "")(descr "MCU_Espressif")) + (lib (name "MIKILAB_MCU_Intel")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Intel.kicad_sym")(options "")(descr "MCU_Intel")) + (lib (name "MIKILAB_MCU_Microchip_8051")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_8051.kicad_sym")(options "")(descr "MCU_Microchip_8051")) + (lib (name "MIKILAB_MCU_Microchip_ATmega")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_ATmega.kicad_sym")(options "")(descr "MCU_Microchip_ATmega")) + (lib (name "MIKILAB_MCU_Microchip_ATtiny")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_ATtiny.kicad_sym")(options "")(descr "MCU_Microchip_ATtiny")) + (lib (name "MIKILAB_MCU_Microchip_AVR")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_AVR.kicad_sym")(options "")(descr "MCU_Microchip_AVR")) + (lib (name "MIKILAB_MCU_Microchip_AVR_Dx")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_AVR_Dx.kicad_sym")(options "")(descr "MCU_Microchip_AVR_Dx")) + (lib (name "MIKILAB_MCU_Microchip_PIC10")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC10.kicad_sym")(options "")(descr "MCU_Microchip_PIC10")) + (lib (name "MIKILAB_MCU_Microchip_PIC12")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC12.kicad_sym")(options "")(descr "MCU_Microchip_PIC12")) + (lib (name "MIKILAB_MCU_Microchip_PIC16")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC16.kicad_sym")(options "")(descr "MCU_Microchip_PIC16")) + (lib (name "MIKILAB_MCU_Microchip_PIC18")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC18.kicad_sym")(options "")(descr "MCU_Microchip_PIC18")) + (lib (name "MIKILAB_MCU_Microchip_PIC24")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC24.kicad_sym")(options "")(descr "MCU_Microchip_PIC24")) + (lib (name "MIKILAB_MCU_Microchip_PIC32")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_PIC32.kicad_sym")(options "")(descr "MCU_Microchip_PIC32")) + (lib (name "MIKILAB_MCU_Microchip_SAMA")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_SAMA.kicad_sym")(options "")(descr "MCU_Microchip_SAMA")) + (lib (name "MIKILAB_MCU_Microchip_SAMD")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_SAMD.kicad_sym")(options "")(descr "MCU_Microchip_SAMD")) + (lib (name "MIKILAB_MCU_Microchip_SAME")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_SAME.kicad_sym")(options "")(descr "MCU_Microchip_SAME")) + (lib (name "MIKILAB_MCU_Microchip_SAML")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_SAML.kicad_sym")(options "")(descr "MCU_Microchip_SAML")) + (lib (name "MIKILAB_MCU_Microchip_SAMV")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Microchip_SAMV.kicad_sym")(options "")(descr "MCU_Microchip_SAMV")) + (lib (name "MIKILAB_MCU_Module")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Module.kicad_sym")(options "")(descr "MCU_Module")) + (lib (name "MIKILAB_MCU_NXP_ColdFire")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_ColdFire.kicad_sym")(options "")(descr "MCU_NXP_ColdFire")) + (lib (name "MIKILAB_MCU_NXP_HC11")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_HC11.kicad_sym")(options "")(descr "MCU_NXP_HC11")) + (lib (name "MIKILAB_MCU_NXP_HC12")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_HC12.kicad_sym")(options "")(descr "MCU_NXP_HC12")) + (lib (name "MIKILAB_MCU_NXP_HCS12")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_HCS12.kicad_sym")(options "")(descr "MCU_NXP_HCS12")) + (lib (name "MIKILAB_MCU_NXP_Kinetis")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_Kinetis.kicad_sym")(options "")(descr "MCU_NXP_Kinetis")) + (lib (name "MIKILAB_MCU_NXP_LPC")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_LPC.kicad_sym")(options "")(descr "MCU_NXP_LPC")) + (lib (name "MIKILAB_MCU_NXP_MAC7100")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_MAC7100.kicad_sym")(options "")(descr "MCU_NXP_MAC7100")) + (lib (name "MIKILAB_MCU_NXP_MCore")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_MCore.kicad_sym")(options "")(descr "MCU_NXP_MCore")) + (lib (name "MIKILAB_MCU_NXP_NTAG")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_NTAG.kicad_sym")(options "")(descr "MCU_NXP_NTAG")) + (lib (name "MIKILAB_MCU_NXP_S08")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_NXP_S08.kicad_sym")(options "")(descr "MCU_NXP_S08")) + (lib (name "MIKILAB_MCU_Nordic")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Nordic.kicad_sym")(options "")(descr "MCU_Nordic")) + (lib (name "MIKILAB_MCU_Parallax")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Parallax.kicad_sym")(options "")(descr "MCU_Parallax")) + (lib (name "MIKILAB_MCU_RaspberryPi")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_RaspberryPi.kicad_sym")(options "")(descr "MCU_RaspberryPi")) + (lib (name "MIKILAB_MCU_Renesas_Synergy_S1")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Renesas_Synergy_S1.kicad_sym")(options "")(descr "MCU_Renesas_Synergy_S1")) + (lib (name "MIKILAB_MCU_STC")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_STC.kicad_sym")(options "")(descr "MCU_STC")) + (lib (name "MIKILAB_MCU_ST_STM32C0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32C0.kicad_sym")(options "")(descr "MCU_ST_STM32C0")) + (lib (name "MIKILAB_MCU_ST_STM32F0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F0.kicad_sym")(options "")(descr "MCU_ST_STM32F0")) + (lib (name "MIKILAB_MCU_ST_STM32F1")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F1.kicad_sym")(options "")(descr "MCU_ST_STM32F1")) + (lib (name "MIKILAB_MCU_ST_STM32F2")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F2.kicad_sym")(options "")(descr "MCU_ST_STM32F2")) + (lib (name "MIKILAB_MCU_ST_STM32F3")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F3.kicad_sym")(options "")(descr "MCU_ST_STM32F3")) + (lib (name "MIKILAB_MCU_ST_STM32F4")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F4.kicad_sym")(options "")(descr "MCU_ST_STM32F4")) + (lib (name "MIKILAB_MCU_ST_STM32F7")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32F7.kicad_sym")(options "")(descr "MCU_ST_STM32F7")) + (lib (name "MIKILAB_MCU_ST_STM32G0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32G0.kicad_sym")(options "")(descr "MCU_ST_STM32G0")) + (lib (name "MIKILAB_MCU_ST_STM32G4")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32G4.kicad_sym")(options "")(descr "MCU_ST_STM32G4")) + (lib (name "MIKILAB_MCU_ST_STM32H5")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32H5.kicad_sym")(options "")(descr "MCU_ST_STM32H5")) + (lib (name "MIKILAB_MCU_ST_STM32H7")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32H7.kicad_sym")(options "")(descr "MCU_ST_STM32H7")) + (lib (name "MIKILAB_MCU_ST_STM32L0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32L0.kicad_sym")(options "")(descr "MCU_ST_STM32L0")) + (lib (name "MIKILAB_MCU_ST_STM32L1")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32L1.kicad_sym")(options "")(descr "MCU_ST_STM32L1")) + (lib (name "MIKILAB_MCU_ST_STM32L4")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32L4.kicad_sym")(options "")(descr "MCU_ST_STM32L4")) + (lib (name "MIKILAB_MCU_ST_STM32L5")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32L5.kicad_sym")(options "")(descr "MCU_ST_STM32L5")) + (lib (name "MIKILAB_MCU_ST_STM32MP1")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32MP1.kicad_sym")(options "")(descr "MCU_ST_STM32MP1")) + (lib (name "MIKILAB_MCU_ST_STM32U0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32U0.kicad_sym")(options "")(descr "MCU_ST_STM32U0")) + (lib (name "MIKILAB_MCU_ST_STM32U5")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32U5.kicad_sym")(options "")(descr "MCU_ST_STM32U5")) + (lib (name "MIKILAB_MCU_ST_STM32WB")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32WB.kicad_sym")(options "")(descr "MCU_ST_STM32WB")) + (lib (name "MIKILAB_MCU_ST_STM32WL")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM32WL.kicad_sym")(options "")(descr "MCU_ST_STM32WL")) + (lib (name "MIKILAB_MCU_ST_STM8")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_ST_STM8.kicad_sym")(options "")(descr "MCU_ST_STM8")) + (lib (name "MIKILAB_MCU_SiFive")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_SiFive.kicad_sym")(options "")(descr "MCU_SiFive")) + (lib (name "MIKILAB_MCU_SiliconLabs")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_SiliconLabs.kicad_sym")(options "")(descr "MCU_SiliconLabs")) + (lib (name "MIKILAB_MCU_Texas")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Texas.kicad_sym")(options "")(descr "MCU_Texas")) + (lib (name "MIKILAB_MCU_Texas_MSP430")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Texas_MSP430.kicad_sym")(options "")(descr "MCU_Texas_MSP430")) + (lib (name "MIKILAB_MCU_Texas_SimpleLink")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_Texas_SimpleLink.kicad_sym")(options "")(descr "MCU_Texas_SimpleLink")) + (lib (name "MIKILAB_MCU_WCH_CH32V0")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_WCH_CH32V0.kicad_sym")(options "")(descr "MCU_WCH_CH32V0")) + (lib (name "MIKILAB_MCU_WCH_CH32V2")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_WCH_CH32V2.kicad_sym")(options "")(descr "MCU_WCH_CH32V2")) + (lib (name "MIKILAB_MCU_WCH_CH32V3")(type "KiCad")(uri "${MIKILAB}/symbols/microcontrollers/MCU_WCH_CH32V3.kicad_sym")(options "")(descr "MCU_WCH_CH32V3")) + (lib (name "MIKILAB_74xGxx")(type "KiCad")(uri "${MIKILAB}/symbols/other/74xGxx.kicad_sym")(options "")(descr "74xGxx")) + (lib (name "MIKILAB_Amplifier_Current")(type "KiCad")(uri "${MIKILAB}/symbols/other/Amplifier_Current.kicad_sym")(options "")(descr "Amplifier_Current")) + (lib (name "MIKILAB_Amplifier_Difference")(type "KiCad")(uri "${MIKILAB}/symbols/other/Amplifier_Difference.kicad_sym")(options "")(descr "Amplifier_Difference")) + (lib (name "MIKILAB_Amplifier_Instrumentation")(type "KiCad")(uri "${MIKILAB}/symbols/other/Amplifier_Instrumentation.kicad_sym")(options "")(descr "Amplifier_Instrumentation")) + (lib (name "MIKILAB_Amplifier_Video")(type "KiCad")(uri "${MIKILAB}/symbols/other/Amplifier_Video.kicad_sym")(options "")(descr "Amplifier_Video")) + (lib (name "MIKILAB_Device")(type "KiCad")(uri "${MIKILAB}/symbols/other/Device.kicad_sym")(options "")(descr "Device")) + (lib (name "MIKILAB_Driver_Haptic")(type "KiCad")(uri "${MIKILAB}/symbols/other/Driver_Haptic.kicad_sym")(options "")(descr "Driver_Haptic")) + (lib (name "MIKILAB_Driver_LED")(type "KiCad")(uri "${MIKILAB}/symbols/other/Driver_LED.kicad_sym")(options "")(descr "Driver_LED")) + (lib (name "MIKILAB_Driver_Motor")(type "KiCad")(uri "${MIKILAB}/symbols/other/Driver_Motor.kicad_sym")(options "")(descr "Driver_Motor")) + (lib (name "MIKILAB_Driver_TEC")(type "KiCad")(uri "${MIKILAB}/symbols/other/Driver_TEC.kicad_sym")(options "")(descr "Driver_TEC")) + (lib (name "MIKILAB_Fiber_Optic")(type "KiCad")(uri "${MIKILAB}/symbols/other/Fiber_Optic.kicad_sym")(options "")(descr "Fiber_Optic")) + (lib (name "MIKILAB_GPU")(type "KiCad")(uri "${MIKILAB}/symbols/other/GPU.kicad_sym")(options "")(descr "GPU")) + (lib (name "MIKILAB_Graphic")(type "KiCad")(uri "${MIKILAB}/symbols/other/Graphic.kicad_sym")(options "")(descr "Graphic")) + (lib (name "MIKILAB_Isolator")(type "KiCad")(uri "${MIKILAB}/symbols/other/Isolator.kicad_sym")(options "")(descr "Isolator")) + (lib (name "MIKILAB_LED")(type "KiCad")(uri "${MIKILAB}/symbols/other/LED.kicad_sym")(options "")(descr "LED")) + (lib (name "MIKILAB_Motor")(type "KiCad")(uri "${MIKILAB}/symbols/other/Motor.kicad_sym")(options "")(descr "Motor")) + (lib (name "MIKILAB_Oscillator")(type "KiCad")(uri "${MIKILAB}/symbols/other/Oscillator.kicad_sym")(options "")(descr "Oscillator")) + (lib (name "MIKILAB_Potentiometer_Digital")(type "KiCad")(uri "${MIKILAB}/symbols/other/Potentiometer_Digital.kicad_sym")(options "")(descr "Potentiometer_Digital")) + (lib (name "MIKILAB_Security")(type "KiCad")(uri "${MIKILAB}/symbols/other/Security.kicad_sym")(options "")(descr "Security")) + (lib (name "MIKILAB_TPS63020DSJT")(type "KiCad")(uri "${MIKILAB}/symbols/other/TPS63020DSJT.kicad_sym")(options "")(descr "TPS63020DSJT")) + (lib (name "MIKILAB_Transformer")(type "KiCad")(uri "${MIKILAB}/symbols/other/Transformer.kicad_sym")(options "")(descr "Transformer")) + (lib (name "MIKILAB_Triac_Thyristor")(type "KiCad")(uri "${MIKILAB}/symbols/other/Triac_Thyristor.kicad_sym")(options "")(descr "Triac_Thyristor")) + (lib (name "MIKILAB_Valve")(type "KiCad")(uri "${MIKILAB}/symbols/other/Valve.kicad_sym")(options "")(descr "Valve")) + (lib (name "MIKILAB_Video")(type "KiCad")(uri "${MIKILAB}/symbols/other/Video.kicad_sym")(options "")(descr "Video")) + (lib (name "MIKILAB_ti")(type "KiCad")(uri "${MIKILAB}/symbols/other/ti.kicad_sym")(options "")(descr "ti")) + (lib (name "MIKILAB_Battery_Management")(type "KiCad")(uri "${MIKILAB}/symbols/power/Battery_Management.kicad_sym")(options "")(descr "Battery_Management")) + (lib (name "MIKILAB_Converter_ACDC")(type "KiCad")(uri "${MIKILAB}/symbols/power/Converter_ACDC.kicad_sym")(options "")(descr "Converter_ACDC")) + (lib (name "MIKILAB_Converter_DCDC")(type "KiCad")(uri "${MIKILAB}/symbols/power/Converter_DCDC.kicad_sym")(options "")(descr "Converter_DCDC")) + (lib (name "MIKILAB_Power_Management")(type "KiCad")(uri "${MIKILAB}/symbols/power/Power_Management.kicad_sym")(options "")(descr "Power_Management")) + (lib (name "MIKILAB_Power_Protection")(type "KiCad")(uri "${MIKILAB}/symbols/power/Power_Protection.kicad_sym")(options "")(descr "Power_Protection")) + (lib (name "MIKILAB_Power_Supervisor")(type "KiCad")(uri "${MIKILAB}/symbols/power/Power_Supervisor.kicad_sym")(options "")(descr "Power_Supervisor")) + (lib (name "MIKILAB_Regulator_Controller")(type "KiCad")(uri "${MIKILAB}/symbols/power/Regulator_Controller.kicad_sym")(options "")(descr "Regulator_Controller")) + (lib (name "MIKILAB_Regulator_Current")(type "KiCad")(uri "${MIKILAB}/symbols/power/Regulator_Current.kicad_sym")(options "")(descr "Regulator_Current")) + (lib (name "MIKILAB_Regulator_Linear")(type "KiCad")(uri "${MIKILAB}/symbols/power/Regulator_Linear.kicad_sym")(options "")(descr "Regulator_Linear")) + (lib (name "MIKILAB_Regulator_SwitchedCapacitor")(type "KiCad")(uri "${MIKILAB}/symbols/power/Regulator_SwitchedCapacitor.kicad_sym")(options "")(descr "Regulator_SwitchedCapacitor")) + (lib (name "MIKILAB_Regulator_Switching")(type "KiCad")(uri "${MIKILAB}/symbols/power/Regulator_Switching.kicad_sym")(options "")(descr "Regulator_Switching")) + (lib (name "MIKILAB_TPS7A2012PDBVR")(type "KiCad")(uri "${MIKILAB}/symbols/power/TPS7A2012PDBVR.kicad_sym")(options "")(descr "TPS7A2012PDBVR")) + (lib (name "MIKILAB_TPS7A2018PDBVR")(type "KiCad")(uri "${MIKILAB}/symbols/power/TPS7A2018PDBVR.kicad_sym")(options "")(descr "TPS7A2018PDBVR")) + (lib (name "MIKILAB_Transistor_Power_Module")(type "KiCad")(uri "${MIKILAB}/symbols/power/Transistor_Power_Module.kicad_sym")(options "")(descr "Transistor_Power_Module")) + (lib (name "MIKILAB_power")(type "KiCad")(uri "${MIKILAB}/symbols/power/power.kicad_sym")(options "")(descr "power")) + (lib (name "MIKILAB_Interface")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface.kicad_sym")(options "")(descr "Interface")) + (lib (name "MIKILAB_Interface_CAN_LIN")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_CAN_LIN.kicad_sym")(options "")(descr "Interface_CAN_LIN")) + (lib (name "MIKILAB_Interface_CurrentLoop")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_CurrentLoop.kicad_sym")(options "")(descr "Interface_CurrentLoop")) + (lib (name "MIKILAB_Interface_Ethernet")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_Ethernet.kicad_sym")(options "")(descr "Interface_Ethernet")) + (lib (name "MIKILAB_Interface_Expansion")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_Expansion.kicad_sym")(options "")(descr "Interface_Expansion")) + (lib (name "MIKILAB_Interface_HDMI")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_HDMI.kicad_sym")(options "")(descr "Interface_HDMI")) + (lib (name "MIKILAB_Interface_HID")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_HID.kicad_sym")(options "")(descr "Interface_HID")) + (lib (name "MIKILAB_Interface_LineDriver")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_LineDriver.kicad_sym")(options "")(descr "Interface_LineDriver")) + (lib (name "MIKILAB_Interface_Optical")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_Optical.kicad_sym")(options "")(descr "Interface_Optical")) + (lib (name "MIKILAB_Interface_Telecom")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_Telecom.kicad_sym")(options "")(descr "Interface_Telecom")) + (lib (name "MIKILAB_Interface_UART")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_UART.kicad_sym")(options "")(descr "Interface_UART")) + (lib (name "MIKILAB_Interface_USB")(type "KiCad")(uri "${MIKILAB}/symbols/rf/Interface_USB.kicad_sym")(options "")(descr "Interface_USB")) + (lib (name "MIKILAB_RF")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF.kicad_sym")(options "")(descr "RF")) + (lib (name "MIKILAB_RF_AM_FM")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_AM_FM.kicad_sym")(options "")(descr "RF_AM_FM")) + (lib (name "MIKILAB_RF_Amplifier")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Amplifier.kicad_sym")(options "")(descr "RF_Amplifier")) + (lib (name "MIKILAB_RF_Bluetooth")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Bluetooth.kicad_sym")(options "")(descr "RF_Bluetooth")) + (lib (name "MIKILAB_RF_Filter")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Filter.kicad_sym")(options "")(descr "RF_Filter")) + (lib (name "MIKILAB_RF_GPS")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_GPS.kicad_sym")(options "")(descr "RF_GPS")) + (lib (name "MIKILAB_RF_GSM")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_GSM.kicad_sym")(options "")(descr "RF_GSM")) + (lib (name "MIKILAB_RF_Mixer")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Mixer.kicad_sym")(options "")(descr "RF_Mixer")) + (lib (name "MIKILAB_RF_Module")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Module.kicad_sym")(options "")(descr "RF_Module")) + (lib (name "MIKILAB_RF_NFC")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_NFC.kicad_sym")(options "")(descr "RF_NFC")) + (lib (name "MIKILAB_RF_RFID")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_RFID.kicad_sym")(options "")(descr "RF_RFID")) + (lib (name "MIKILAB_RF_Switch")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_Switch.kicad_sym")(options "")(descr "RF_Switch")) + (lib (name "MIKILAB_RF_WiFi")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_WiFi.kicad_sym")(options "")(descr "RF_WiFi")) + (lib (name "MIKILAB_RF_ZigBee")(type "KiCad")(uri "${MIKILAB}/symbols/rf/RF_ZigBee.kicad_sym")(options "")(descr "RF_ZigBee")) +)