5 Commits
Author SHA1 Message Date
michele 04632ea71f Add DMT6007LFG-7, TPS2121RUXR, Lattice ECP5 FPGA symbols; fix quoted 3D model path check
- Add DMT6007LFG-7 (transistor) and TPS2121RUXR (dual-input power mux) with
  footprints and TPS2121RUXR's 3D model.
- Import Lattice_ECP_FPGA symbol library (ECP5U-45 CABGA256/381/554,
  CSFBGA285) from mattvenn/basic-ecp5-pcb's legacy .lib, converted via
  kicad-cli sym upgrade; symbol-only, footprints resolved via the standard
  Package_BGA KiCad library. Add a vendor-accurate BG256 3D body
  (LFE5U-25F-8BG256I) for manual per-instance assignment.
- Fix check_library.py's 3D model reference regex to strip surrounding
  quotes, which KiCad 10's re-save format adds around (model "...") paths
  -- was causing a false "missing 3D model" error for SJ-3506-SMT-TR after
  its footprint got re-saved in the new format.
2026-09-02 20:35:53 +02:00
micheleandClaude Sonnet 5 c544db45f4 Add ESD9B5.0ST5G, PESD5V0L4UW, TPD2E007DCKR, TPS22994RUKT; fix FSC-BT1058 duplicate library registration
FSC-BT1058 had ended up with two footprint/symbol libraries on disk
(FSC-BT1058 and MIKILAB_FSC-BT1058) after a re-import baked the
"MIKILAB_" nickname prefix into the component name itself. Since that
prefix is normally added automatically when sym-lib-table/fp-lib-table
are generated, the double-prefixed copy (MIKILAB_MIKILAB_FSC_BT1058)
was invisible to collision checks and left the original as a stale,
outdated duplicate.

Consolidated onto the single correct library (symbols/other and
footprints/other without the redundant prefix, matching the rest of
the library's naming convention), fixed the symbol's Footprint
property and the footprint's 3D model reference, and regenerated both
lib-tables from disk.

To stop this class of bug from recurring:
- lib_common.check_component_name() rejects any --name that already
  starts with "MIKILAB", used by import_component.py's import_symbol/
  import_footprint (and therefore also by add_component.py and the
  SnapEDA/UltraLibrarian importers, which call into the same core).
- check_library.py now flags any on-disk symbol/footprint whose name
  already carries that prefix as an ERROR, independent of how it got
  there.
- import_component.py gains --remove to cleanly delete a component
  (symbol, footprint library, 3D model) and regenerate the lib-tables
  in one step, for exactly this kind of cleanup.

Errors: 0 on check_library.py after the fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 20:06:54 +02:00
michele 96f803f5d9 Fix ESP32-S31-WROOM-3 symbol failing to load in KiCad
The easyeda2kicad.py-generated file had an unquoted URL as the
(generator ...) value: '(generator https://github.com/uPesy/...)'.
Bare/unquoted s-expression tokens can't contain ':' or '/', which broke
KiCad's parser and made the whole library silently fail to load (the
symbol was present on disk and correctly registered in fp/sym-lib-table,
but invisible in KiCad). Wrapped the value in quotes.

Also added a check_library.py rule to catch this class of error (an
unquoted generator value containing ':' or '/') automatically going
forward.
2026-08-16 13:22:58 +02:00
michele 6207faf3dc Add global-install support and document installation in README
- 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
2026-08-16 13:13:42 +02:00
michele 93a521777d Initial commit: MIKILAB KiCad personal library
Self-contained KiCad library (symbols, footprints, 3D models, docs,
import/check tooling) with no dependency on kicad-personal-library.

- Fixed sym-lib-table/fp-lib-table: single (version 7) header, one entry
  per library, MIKILAB_<name> nicknames, ${KIPRJMOD}-relative URIs
- Resolved the SOT95P280X145-5N footprint collision (TPS7A2012PDBVR vs
  TPS7A2018PDBVR): confirmed byte-identical modulo KiCad's internal
  tedit timestamp, unified into one shared footprint
- Resolved a case-insensitive filename collision between the official
  Diode.kicad_sym and a custom diode.kicad_sym
- Wrapped standalone footprints (ESP32-S31-WROOM-3, IC_TPS63020DSJT,
  SOT95P280X145-5N) into their own .pretty libraries so they're
  actually registered in fp-lib-table
- Fixed broken symbol->footprint references (including one pointing at
  a nonexistent easyeda2kicad library)
- Added scripts/check_library.py, import_component.py, add_component.py,
  import_batch.py, and lib_common.py
2026-08-16 13:08:59 +02:00