41 Commits

Author SHA1 Message Date
Lenny Khazan f9c98abeb7 feat: prefer Board(path) with layout_path compatibility (#1267)
* feat: use project path in Board with layout_path compatibility

Amp-Thread-ID: https://ampcode.com/threads/T-01a08986-f282-7225-8fba-ba0448e07284
Co-authored-by: Amp <amp@ampcode.com>

* fix: preserve board template compatibility and reject empty paths

Amp-Thread-ID: https://ampcode.com/threads/T-01a08986-f282-7225-8fba-ba0448e07284
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-09-10 13:35:58 -04:00
Akhil Velagapudi 50c1e8ca91 Preserve native KiCad fiducial and bare test-point metadata (#1257)
* Mark standard-library fiducial pads as global fiducials

Amp-Thread-ID: https://ampcode.com/threads/T-01a081e9-1436-747f-ad81-f4772fb5c5dd

* Annotate bare test-point footprints with native KiCad properties

Amp-Thread-ID: https://ampcode.com/threads/T-01a081e9-1436-747f-ad81-f4772fb5c5dd
2026-09-08 17:09:21 -04:00
Lenny Khazan 6a3d88fde1 Upgrade shipped symbols to KiCad 10 and enforce their format (#1198)
Amp-Thread-ID: https://ampcode.com/threads/T-01a07398-1a5e-751d-9d9c-c9e05b3d1313

Co-authored-by: Amp <amp@ampcode.com>
2026-09-05 22:19:00 +00:00
Akhil Velagapudi 7f9c5ac110 Update supported LED colors 2026-09-03 21:21:57 -04:00
Lucia Camacho dbbbfb9baf Make stdlib QR generic a white square (#1123) 2026-09-02 10:54:07 -04:00
Lenny Khazan 30f1b84845 feat(std): add schematic option to Board (#1128) 2026-09-01 10:11:14 -07:00
Akhil Velagapudi 6f29672259 Keep SPICE DC measurements across later ngspice analyses
Create vdrop_dc in the const plot before the first analysis so later AC and transient plots do not hide the DC result.

Amp-Thread-ID: https://ampcode.com/threads/T-01a05503-b971-744a-92d7-4a79c32b168b
2026-08-31 01:23:23 +00:00
Akhil Velagapudi bac69e5ce9 ENG-1103 Complete E48 and E192 tables (#1108)
Amp-Thread-ID: https://ampcode.com/threads/T-01a049f3-6fc0-76ca-af3e-89e69679c03e
2026-08-28 19:20:28 -04:00
Akhil Velagapudi eb1a4d121e Restore match_component stdlib helper (#1107) 2026-08-28 04:57:47 +00:00
Akhil Velagapudi a31b48b499 Use API-only generic BOM matching (#1100)
* Preserve BOM match provenance in output

* Remove local generic BOM matching

* Fix grouped BOM status rendering

* Cache BOM sourcing groups atomically

* Shorten BOM changelog entry
2026-08-27 14:42:06 -04:00
Akhil Velagapudi 46a4e2e71c Serialize pin headers for BOM matching 2026-08-26 22:42:12 -04:00
Akhil Velagapudi a690b0056a Restrict pin header house matching 2026-08-26 22:08:36 -04:00
Akhil Velagapudi e75c3a4c3a Remove stale terminal block house matching 2026-08-26 22:08:36 -04:00
Lenny Khazan 5c48ca6edf feat(cli): add pcb apply schematic reconciliation (#1048)
pcb apply schematic reconciles a linked KiCad project with its Zener design: composing missing schematics, scoped per-issue repairs (always-repairable connectivity), interface-port analysis, and build/publish/release diagnostics for linked projects. Opt-in via Project(); Layout()-only projects are unaffected.
2026-08-26 01:22:57 -07:00
Akhil Velagapudi 681d7e6074 Identify ICT contacts by the TestPoint ICT variant (#1085)
* Identify ICT contacts by the TestPoint ICT variant

ict= now pairs with a dedicated ICT TestPoint variant whose footprint
carries a 3 mm courtyard — KiCad's native courtyard DRC enforces the
interposer pogo pitch on the board itself, with no generated rules.
IPC extraction requires the TestPoint_ICT footprint alongside the Ict
characteristic.

* Let ict= imply the ICT footprint

Existing boards set ict= on ordinary pad variants; erroring would break
their builds. The role now upgrades the footprint to TestPoint_ICT on
any variant, so those boards pick up the courtyard on their next layout
sync, and only an ICT variant without a role is an error. Also formats
the zen per pcb fmt.

* Tighten the changelog entry

* Reject ict= on Keystone test points

The upgrade path would swap in the ICT footprint while the Keystone
branch keeps its commercial MPN and BOM/CPL presence; the combination
is incoherent, so it errors.

* Prune low-value comments

The ict= rationale lives once, in the config help.
2026-08-24 17:28:30 -04:00
Akhil Velagapudi eb8c83860f Add an optional ict fixture role to TestPoint (#1069)
TestPoint takes an optional ict config (swd, swdio, swclk, nrst, swo,
gnd, vusb, vtarget, usb_dp, usb_dm, ls) and copies it onto the
footprint as an ict property, so test-fixture tooling can identify
fixture pads without scraping names.
2026-08-19 21:43:56 -04:00
Akhil Velagapudi dc160eaf47 Increase default hole-to-hole clearance 2026-08-17 16:10:44 -04:00
Akhil Velagapudi d13d564de8 Preserve high-layer-count KiCad stackups during import (#1042)
* Fix high-layer-count KiCad stackup imports

* Shorten KiCad import changelog entry
2026-08-09 01:30:05 -04:00
Akhil Velagapudi 457cbd0759 Increase the default copper edge clearance 2026-08-06 14:03:34 -04:00
Akhil Velagapudi 11ba6e8537 Update the default 1 oz via size 2026-08-06 13:54:40 -04:00
Akhil Velagapudi 7aed9551a3 Use TDK manufacturer name 2026-08-03 18:22:35 -04:00
Akhil Velagapudi e5ce20ce92 Use Panasonic Industry manufacturer name 2026-08-03 18:08:57 -04:00
Akhil Velagapudi 06173022d8 Add Vishay D/CRCW 0402 house resistors (#1002) 2026-08-03 17:18:23 -04:00
Akhil Velagapudi 94db536ee8 Fix TVS BOM matching and ratings (#965) 2026-07-29 10:06:42 -04:00
Akhil Velagapudi 131e3f1586 Fix E-series exact-value snapping (#951) 2026-07-24 12:10:17 -04:00
Akhil Velagapudi 0bcff99504 ENG-463 Fix E-series snapping across decade boundaries (#949) 2026-07-23 18:21:12 -04:00
Lucia Camacho 8d5341966a Warn for unmatched house inductor packages (#941) 2026-07-23 11:37:30 -04:00
Akhil Velagapudi 902c9e61f2 Expand Murata house capacitor coverage 2026-07-22 12:35:18 -04:00
Damien Espitallier 911acf9cab SpiceModel accepts PhysicalValue directly in args 2026-07-20 17:36:17 +02:00
Damien Espitallier d8956125e4 fix spice generation for unit like Mohms 2026-07-20 17:36:17 +02:00
Akhil Velagapudi 2f1c6e37be Adopt five-axis SI unit dimensions 2026-07-10 11:10:46 -04:00
Akhil Velagapudi b479789c51 Add composable physical quantity types 2026-07-10 11:10:46 -04:00
Akhil Velagapudi 7685f55fa7 Treat NotConnected as open-net constructor (#898) 2026-06-23 10:04:14 -04:00
Akhil Velagapudi 0b4c1cda31 Add SOD-882 TVS power rating (#892) 2026-06-18 23:54:41 -04:00
Akhil Velagapudi 256bf1df69 Smol symbols (#887)
* Use small KiCad symbols for stdlib generics

* Add color variants for stdlib LED symbols
2026-06-17 14:29:07 -04:00
Akhil Velagapudi ec31fb0326 Restore 2012 crystal footprint 2026-06-17 13:17:35 -04:00
Akhil Velagapudi 4e01cb2635 Bundle kicad lib assets into lib/std (#886)
* docs: simplify README

* Add third-party notices

* Bundle stdlib KiCad assets

* Remove implicit KiCad library resolution

* Remove stale KiCad alias fixtures

* Remove layout-time model embedding

* Remove global KiCad footprint lookup

* Add KiCad stdlib path aliases

* Clean up KiCad stdlib aliases

* Derive WorkspaceConfig default

* Clean up KiCad STEP generator typing

* Use bundled KiCad footprints in tests

* Simplify interface template tests

* Ignore bundled KiCad library dependencies

* Bundle KiCad connector compatibility assets

* Resolve KiCad FPIDs to bundled stdlib footprints

* Normalize legacy KiCad library dependencies

* Bundle Governor KiCad compatibility assets

* Restore changelog entries
2026-06-17 11:56:42 -04:00
Akhil Velagapudi adfdc228d8 pcb 0.4 breaking changes (#870)
* Migrate stdlib to KiCad 10 symbols + footprints (#701)

* Bump stdlib KiCad asset pin to 10.0.0

* Update crystal generic for KiCad 10 pin names

* Update snapshots

* Delete deprecated stdlib (#703)

* Delete deprecated stdlib files

* Fix tests

* Remove deprecated generic stdlib modules

* Remove deprecated standoff and terminal block generics

* Remove deprecated stdlib helpers and API shims

* Remove physical value range deprecation hook

* Drop legacy stdlib load path

* Remove V1 manifest migration support

* Remove legacy net moved directives

* Remove legacy manifest assets support

* Bump KiCad 10 assets to 10.0.3

* Error on legacy Component properties

* Remove legacy module property API

* Drop old toolchain compatibility shims

* Strict 0.4 net naming (#849)

* Enforce strict regular net naming

* Treat NotConnected nets as source-unnamed

* Update unreleased changelog for 0.4 changes

* Clean up 0.4 docs

* fix: pcb fmt

* Fix CI for KiCad 10 symbols and examples

* Fix symbol library fallback and NetTie defaults

* Use versioned KiCad parts index URL

* Include stdlib assets in frozen dependency materialization

* fix: bump W25Q128JVE dep

* Bundle KiCad split symbols granularly

* Remove flash module from workspace test board

* Update publish snapshots

* chore: bump @stdlib dependencies

* Fix Crystal compatibility for KiCad 9 symbols
2026-06-09 17:22:27 -04:00
Akhil Velagapudi acb7cc8963 Add ESR-aware crystal house matching (#869) 2026-06-04 11:00:27 -04:00
Akhil Velagapudi b2e725caf2 Update docs for hydrated dependency manifests (#862) 2026-06-02 10:07:38 -04:00
Akhil Velagapudi 4413c9d4d9 Deprecate [workspace.members] (#852)
* Hydrate V2 deps during migrate

* Fix mixed hydrated package resolution

* Simplify workspace discovery

* Clean up workspace package discovery naming

* Update stdlib formatting paths
2026-05-27 16:23:57 -04:00