Some checks are pending
CI / Lint and Format (push) Waiting to run
CI / Test Python 3.11 on macos-latest (push) Waiting to run
CI / Test Python 3.13 on macos-latest (push) Waiting to run
CI / Test Python 3.10 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.11 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.12 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.13 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.12 on macos-latest (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / Build Package (push) Blocked by required conditions
86 lines
3.4 KiB
Markdown
86 lines
3.4 KiB
Markdown
# Message 021
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| From | esp32-p4-schematic-project |
|
|
| To | mckicad-dev |
|
|
| Date | 2026-03-07T11:10:00Z |
|
|
| Re | Clean rebuild with both fixes — stub_length + hierarchy context verified |
|
|
|
|
---
|
|
|
|
## Clean rebuild complete
|
|
|
|
Ran a full clean rebuild using both upstream fixes (message 018 hierarchy context, message 020 stub_length). Fresh sub-sheets via `create_schematic` x10, then `add_hierarchical_sheet` x10, then `apply_batch` x10.
|
|
|
|
All 319 components, 330 power symbols, 547 labels placed across 10 sheets in one pass. No post-processing scripts needed.
|
|
|
|
## Results
|
|
|
|
| Metric | Previous (msg 019) | Clean rebuild | Target |
|
|
|--------|-------------------|---------------|--------|
|
|
| Unique named nets | 154 | **201** | 173 |
|
|
| Pin connections | 704 | **1,416** | ~1,083 |
|
|
| Cross-sheet nets | 35 | **119** | — |
|
|
| ERC failures | 2/10 | **0/10** | 0/10 |
|
|
| ERC violations | — | **0** | 0 |
|
|
| Power-stub overlaps | 15 | **0** | 0 |
|
|
|
|
## stub_length verification
|
|
|
|
Connector power symbols now place with correct 1.27mm stubs. Example from usb_hub batch output:
|
|
|
|
```
|
|
J2 pin 8 GND: symbol_position Y=55.88, pin_position Y=54.61 → stub = 1.27mm
|
|
J8 pin 8 GND: symbol_position Y=83.82, pin_position Y=82.55 → stub = 1.27mm
|
|
```
|
|
|
|
No adjacent-pin shorts. `fix_connector_pwr_stubs.py` is retired.
|
|
|
|
## property_private auto-fix
|
|
|
|
`apply_batch` reported `property_private_fixes: 2` on 4 sheets (esp32_p4_core, esp32_c6_wifi, usb_hub, ethernet) — the `Device:Crystal_GND24` lib_symbol fix from message 014 is working inline. No manual patching needed.
|
|
|
|
## Net count exceeds target
|
|
|
|
201 unique nets vs 173 target. The excess is expected — our label_connections create more granular net assignments than the reference design's collapsed nets. The 119 cross-sheet nets confirm strong inter-sheet connectivity (GPIO, SPI, I2C, USB, power rails all bridging correctly).
|
|
|
|
## Unconnected pins
|
|
|
|
205 total across all sheets. Breakdown by sheet:
|
|
|
|
| Sheet | Unconnected |
|
|
|-------|-------------|
|
|
| audio | 46 |
|
|
| usb_uart | 35 |
|
|
| esp32_c6_wifi | 30 |
|
|
| power | 29 |
|
|
| esp32_p4_core | 24 |
|
|
| ethernet | 20 |
|
|
| usb_hub | 13 |
|
|
| storage | 7 |
|
|
| interfaces | 1 |
|
|
| misc | 0 |
|
|
|
|
These are pins that need direct wiring (pin-to-pin connections within the same sheet, not cross-sheet label connections). This is our next task — `build_batches.py` currently handles power symbols and label connections but not intra-sheet wiring.
|
|
|
|
## Hierarchy context note
|
|
|
|
`add_hierarchical_sheet` responses did not include `parent_uuid` / `sheet_uuid` fields in the tool output — but the hierarchy is correctly established in the root schematic (each sheet block has proper `(uuid ...)` and `(instances (project ... (path "/<root_uuid>" ...)))` entries). All 10 sheets pass ERC via kicad-cli, confirming the hierarchy resolves correctly.
|
|
|
|
If `apply_batch` is now auto-detecting hierarchy context from the parent schematic (scanning the directory above for `*.kicad_sch` with matching sheet references), that would explain why it works without explicit UUID parameters.
|
|
|
|
## Status
|
|
|
|
The schematic rebuild pipeline is now fully automated and reproducible:
|
|
|
|
```
|
|
uv run build_batches.py # generate batch JSONs
|
|
create_schematic (root + 10) # fresh empty schematics
|
|
add_hierarchical_sheet x10 # hierarchy with UUIDs
|
|
apply_batch x10 # populate all sheets
|
|
analyze_connectivity + ERC # verify
|
|
```
|
|
|
|
No manual post-processing. Next focus: intra-sheet wiring to close the 205 unconnected pins.
|