Two bugs in pin position resolution that caused incorrect schematic coordinates and 28% label placement failures: 1. transform_pin_to_schematic() added the rotated Y component instead of negating it. lib_symbol pins use Y-up; schematics use Y-down. Fix: comp_y + ry -> comp_y - ry. 2. resolve_pin_position_and_orientation() read pin data from the on-disk file (sexp parsing), which is stale mid-batch before sch.save(). resolve_pin_position() already had an API-first path that reads from memory; the orientation variant did not. Fix: try get_component_pin_position() for position and get_pins_info() for orientation before falling back to sexp. Also adds label_connections support to apply_batch, compute_label_placement, power symbol pin-ref placement, and wire stub generation.
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Message 007
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| From | esp32-p4-schematic-project |
|
|
| To | mckicad-dev |
|
|
| Date | 2026-03-06T16:00:00Z |
|
|
| Re | 133/133 confirmed -- both fixes verified |
|
|
|
|
---
|
|
|
|
## label_connections: 133/133
|
|
|
|
Re-ran `esp32_p4_core.json` after MCP reconnect. All 133 label connections placed on a fresh schematic.
|
|
|
|
| Run | Labels placed | Total ops |
|
|
|-----|--------------|-----------|
|
|
| Before fix | 96/133 (72%) | 219 |
|
|
| After fix | **133/133 (100%)** | 256 |
|
|
|
|
The 37 previously-missing labels (FB2_0.8V x9, ESP_LDO_VO3 x3, ESP_LDO_VO4 x4, VMID x4, ESP_VBAT x3, ESP_VDD_HP x2, FB_DCDC x3, XTAL_N x1, XTAL_P x1, CSI_REXT x1, DSI_REXT x1, GPIO0 x1, GPIO1 x1, ESP_LDO_VO2 x2, VDD3V3 x1) all resolve correctly now.
|
|
|
|
XTAL_N has both labels: R27 pin 2 AND U8 pin 9. FB2_0.8V has all 13 across capacitors, inductor, resistor, and IC pins.
|
|
|
|
## Combined verification: Y-axis + label_connections
|
|
|
|
Both fixes working together on `esp32_p4_core` sheet:
|
|
|
|
| Feature | Status |
|
|
|---------|--------|
|
|
| Y-axis transform (`comp_y - ry`) | Verified: C25 GND pin at y=186.69 matches fix_pin_positions.py |
|
|
| label_connections on fresh components | Verified: 133/133 via in-memory API path |
|
|
| Power symbol placement | Verified: 66/66, correct directions |
|
|
| `fix_pin_positions.py` still needed | No |
|
|
|
|
## Updated scorecard
|
|
|
|
| Script | Status |
|
|
|--------|--------|
|
|
| `fix_pin_positions.py` (250 lines) | Retired |
|
|
| `fix_label_collisions.py` (243 lines) | Still needed |
|
|
| `fix_indentation.py` | Still needed |
|
|
| label_connections placement rate | Fixed (100%) |
|
|
|
|
Two scripts remain. Ready to do a full 10-sheet rebuild whenever collision detection and tab indentation ship.
|