16 Commits
Author SHA1 Message Date
micheleandClaude Sonnet 5 554a2a784f Add SnapEDA parts (AP2112K, BQ24040, MAX17048, MCP1640, MT3608, SK6812) and fix TS3425UA-3x4x2.5-160
Import SnapEDA-sourced symbols/footprints/3D models for a handful of
power and LED parts. Also corrects the TS3425UA-3x4x2.5-160 tactile
switch: courtyard was undersized (used the simplified 4.2x3.4mm
headline package size instead of the full 5.2x3.35mm mechanical
envelope), datasheet/sourcing metadata was empty, and no 3D model was
present -- now verified against the official SHOUHAN/CAX mechanical
drawing and LCSC C51927439, with a real STEP body added.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GjmdnB2SyPYKHbSq9Lasmr
2026-09-09 23:19:23 +02:00
micheleandClaude Sonnet 5 25b09cf48a Add AS4C32M16SA/SB SDRAM parts and castellated breakout footprints
- AS4C32M16SA-7TCNTR (TSOP-54) and AS4C32M16SB-7BIN (TFBGA-54) 512Mb
  SDRAM symbols/footprints, imported via UltraLibrarian/SnapEDA sources
  (see MANIFEST.csv for full provenance).
- Fix Lattice LFE5U-45F-8BG381 symbol's Value/manf# grade suffix.
- Import 3 castellated breakout footprints (QFP48/QFP64/SSOP8,
  1.27mm castellation pitch) from coddingtonbear/kicad-castellated-breakouts
  into footprints/other/castellated_breakouts.pretty/, plus the upstream
  reference board projects under reference/ for future consultation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T5pjBJQ7tf9pwsSs8rG2sm
2026-09-08 00:04:13 +02:00
micheleandClaude Sonnet 5 33738d156f Add LFE5U-45F-8BG381I (SamacSys) and IS66WVE4M16EBLL-70BLI symbols
- Import LFE5U-45F-8BG381I as a proper named/valued SamacSys symbol
  (symbol, footprint, 3D model) instead of relying on the generic
  ECP5U_45_CABGA381 placeholder, so it's findable by exact MPN in the
  Symbol Chooser. Dedupe the vendor STEP file (byte-identical to the
  one already added for the BG381 package) and repoint the footprint's
  bare, unresolvable "LFE5U-45F-8BG381I.stp" model reference to
  ${KIPRJMOD}/3dmodels/fpga_cpld/LFE5U-45F-8BG381I.step.
- Also make the existing 9-unit ECP5U_45_CABGA381 symbol (split by
  bank, easier to use on a schematic than the flat SamacSys one)
  findable under the same MPN: Value/manf# set to LFE5U-45F-8BG381I
  after verifying its 381 CABGA381 ball assignments match the SamacSys
  symbol 1:1, and link its Footprint to the newly imported footprint.
- Import IS66WVE4M16EBLL-70BLI (SamacSys) symbol, footprint and 3D
  model.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013gndCxJXQfouCQy4hP7NSX
2026-09-03 17:30:08 +02:00
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
michele 58185c2215 Add ADG936BCPZ, OSD32MP157F-1G-BAA, TPS22965DSGR, AXP2101; add programmatic API and usage guide
- scripts/mikilab_lib.py / mikilab_cli.py: typed Python API + JSON CLI
  for add/update/remove/query, for other apps to integrate without
  shelling out to add_component.py
- lib_common.py/import_component.py/import_batch.py: regenerate
  sym-lib-table.global/fp-lib-table.global on every mutating call, not
  just the project-local tables
- scripts/find_missing_3d_models.py: lists components with no 3D model
  and search links to fill the gap
- docs/GUIDA_USO.md: practical Italian usage guide (companion to README.md)
- checkup fixes: removed orphan duplicate footprint
  footprints/other/CP_20_1_ADI.kicad_mod, and a dangling
  ${easyeda2kicad}/tmp 3D model reference in AXP2101's footprint that
  pointed at a file that never existed on disk
2026-08-30 14:50:08 +02:00
micheleandClaude Sonnet 5 019dfcd450 Replace FSC-BT1058 footprint with FSC-BT1035 pad geometry; move to rf category
The auto-generated FSC-BT1058 footprint used roundrect pads with a
slightly different body outline than the physical module. Since the
FSC-BT1035 footprint (pad geometry verified against the Feasycom
datasheet perimeter walk) matches the same physical package/pinout,
FSC-BT1058.kicad_mod now reuses that geometry directly.

Also recategorized FSC-BT1058 from "other" to "rf" (symbol, footprint,
3D model), matching FSC-BT1035 and the rest of the Bluetooth/RF parts.
Regenerated sym-lib-table/fp-lib-table (project and global) and synced
the real KiCad global library tables. Added "bt1058" to the rf
classification tokens in lib_common.py so a future re-import doesn't
land back in "other".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-24 20:58:41 +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
micheleandClaude Sonnet 5 a4a20822bf Add ADG936BRUZ, SJ-series connectors, SN74AXC1T45DBVR, XTAC5212IRGER; add UltraLibrarian importer
Imports were done via import_snapeda.py for the SnapEDA parts and the new
scripts/import_ultralibrarian.py for XTAC5212IRGER (UltraLibrarian export),
mirroring import_snapeda.py but handling UL's timestamp-named symbol files
and its multiple pad-size footprint variants (nominal/-L/-M).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 09:50:13 +02:00
micheleandClaude Sonnet 5 3c22a3b948 Add BQ25896RTWT, 25AA1024, and CDCLVC1102PW via import_snapeda.py
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 01:35:43 +02:00
michele 5189f34882 Add TS3425UA-3x4x2.5-160 SMD tactile switch
Symbol + footprint reconstructed from manvalan/DigiRadio's EasyEDA
project (same method as the FSC-BT1035 footprint), cross-checked
against the manufacturer datasheet found in that same project. The
datasheet's own circuit diagram shows two independent, mechanically
-ganged contact pairs (not a simple SPST), reproduced faithfully in
the symbol. Pin numbering preserved exactly as extracted, kept
internally consistent between symbol and footprint.
2026-08-17 00:12:30 +02:00
michele 8d37069c3b Import TLV320AIC3104IRHBR via import_snapeda.py
TI stereo audio codec, imported from a SnapEDA KiCad export zip
(symbol + QFN50P500X500X100-33N footprint + STEP 3D model).
2026-08-16 15:53:03 +02:00
michele 1b52535795 Import RTL8211F-CG via import_snapeda.py
Realtek Gigabit Ethernet PHY, imported from a SnapEDA KiCad export zip
(symbol + QFN40P500X500X90-41N footprint + STEP 3D model, all bundled
together). This is the first real-world use of scripts/import_snapeda.py.
2026-08-16 15:48:07 +02:00
michele dbe1b71898 Add Si4684-A10-GM and FSC-BT1035 symbols, add SnapEDA import script
Si4684-A10-GM (Skyworks FM/DAB/DAB+ receiver): extracted from unmerged
kicad-symbols MR !4782 (cannot_be_merged, failing pipeline), then
independently validated with kicad-cli and cross-checked against two
unrelated sources (Skyworks public product summary block diagram, and
PE5PVB/SI4684-DAB-Receiver's built/fabricated symbol) -- all comparable
pin names/numbers agree. Symbol only, standard Package_DFN_QFN
footprint.

FSC-BT1035 (Feasycom BT 5.2 audio module): hand-authored from the
official Feasycom datasheet's Table 3-2 pin definition (all 52 pins),
validated with kicad-cli. Symbol only -- no reliable footprint/3D
source was found; see README for what was tried and how to add one
later (manvalan/DigiRadio has a fabricated footprint for this exact
part, but its geometry lives in EasyEDA's proprietary JSON format).

scripts/import_snapeda.py: unzips a SnapEDA "Download KiCad" export and
hands off to import_component.py's existing core logic (same
validation/collision/lib-table rules as every other import path).
2026-08-16 15:44:47 +02:00
michele b2396aed0e Import 19 official Espressif modules, replace easyeda2kicad ESP32-S31
Imports ESP32-C3/C5/C6/H2/S2/S3 MINI/WROOM/WROVER/SOLO modules and
ESP8684-WROOM-02C/U from the official espressif/kicad-libraries repo,
each with symbol + footprint + 3D model. Skipped bare SoC/die symbols
(no footprint of their own) and DevKit board symbols (not components
you'd place on your own board).

ESP32-S31-WROOM-3 is replaced: the previous easyeda2kicad.py export had
a fatal unquoted-URL syntax bug (fixed in an earlier commit, but the
official symbol/footprint/3D model is simply better -- real chip is
brand new, Espressif's own library already supports it).

All 19 footprints referenced their 3D model via ${KICAD8_3RD_PARTY} /
${KICAD9_3RD_PARTY} (KiCad Plugin & Content Manager install path, not
defined since this library isn't PCM-installed). Repointed to
${KIPRJMOD}/3dmodels/microcontrollers/ using the STEP files copied in
alongside each part, so every model resolves without PCM.
2026-08-16 14:06:54 +02:00
michele 0caa76acc3 Import 11 chips from FreeDSP_ki-CAD_Libraries
Adds ADAU1467WBCPZ300RL (the SigmaDSP chip previously missing), plus
PCM1808QPWRQ1, PCM9211PTR, Combo384, MW-1466CORE (ADAU1466 core module),
LME49720MA, CS8421-CZZ, PCM1861DBT, FDC608PZ, IMN10T108, AK5384.

Source repo used legacy KiCad .lib/.dcm format; converted via
kicad-cli sym upgrade. Parts already covered by the official mirrored
libraries (PCM5102A, INA194, AZ1117-3.3, ADAU1452) were intentionally
skipped to avoid duplication. PCM1681-Q1 skipped (KiCad 'extends'
variant, can't stand alone without duplicating PCM1681).

Fixed real defects found in the source footprints during import:
- PCM1808QPWRQ1 had an absolute 3D model path pointing at the upstream
  maintainer's own machine (/Users/HILO/...)
- ADAU1467WBCPZ300RL and PCM9211PTR each had two dead 3D model
  references (${KICAD_USER_TEMPLATE_DIR} and a bare filename)
All three now use a single ${KIPRJMOD}-relative reference to the STEP
files under 3dmodels/audio/.

LME49720MA imported symbol-only, Footprint property repointed at the
existing MIKILAB_ipc_soic:IPC_SOIC127P600X175-8N instead of duplicating
a generic SOIC-8 footprint.
2026-08-16 13:56:44 +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