Files
ESP32_Serial_Swiss_Army_Knife/hardware/PCB/validation/pcb-routing-run.json
T
Commander1024 60c1e279d6 Add KiCad module carrier PCB draft
Introduce an editable KiCad 10 schematic and routed two-layer 82 × 80 mm
layout with local provisional footprints, validation tooling, and
component
research. Keep the RS-232 male-module mapping and mechanical clearances
explicitly provisional pending hardware verification.
2026-09-20 23:14:01 +02:00

666 lines
12 KiB
JSON

{
"draft_only": true,
"saved": true,
"grid_mm": 0.05,
"clearance_mm": 0.25,
"safety_margin_mm": 0.02,
"via_diameter_mm": 0.7,
"via_drill_mm": 0.3,
"elapsed_seconds": 26.517815405000874,
"connections": [
{
"net": "/+3V3",
"start": "U1.1",
"end": "U1.2",
"start_mm": [
108.0,
104.0
],
"end_mm": [
108.0,
106.54
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 52
},
{
"net": "/+3V3",
"start": "R2.1",
"end": "DS1.2",
"start_mm": [
154.0,
134.0
],
"end_mm": [
154.73,
137.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 911
},
{
"net": "/+3V3",
"start": "U2.1",
"end": "R1.1",
"start_mm": [
143.0,
130.0
],
"end_mm": [
143.0,
134.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 81
},
{
"net": "/BTN_NEXT",
"start": "SW3.1",
"end": "SW3.1",
"start_mm": [
167.0,
168.0
],
"end_mm": [
173.5,
168.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 131
},
{
"net": "/BTN_PREVIOUS",
"start": "SW1.1",
"end": "SW1.1",
"start_mm": [
149.5,
168.0
],
"end_mm": [
143.0,
168.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 131
},
{
"net": "/BTN_SELECT",
"start": "SW2.1",
"end": "SW2.1",
"start_mm": [
155.0,
168.0
],
"end_mm": [
161.5,
168.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 131
},
{
"net": "/+3V3",
"start": "DS1.2",
"end": "R3.1",
"start_mm": [
154.73,
137.5
],
"end_mm": [
165.0,
134.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 5139
},
{
"net": "/+3V3",
"start": "R1.1",
"end": "R2.1",
"start_mm": [
143.0,
134.0
],
"end_mm": [
154.0,
134.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 14153
},
{
"net": "/BTN_SELECT",
"start": "SW2.1",
"end": "R2.2",
"start_mm": [
161.5,
168.0
],
"end_mm": [
161.62,
134.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 2039
},
{
"net": "/BTN_NEXT",
"start": "SW3.1",
"end": "R3.2",
"start_mm": [
173.5,
168.0
],
"end_mm": [
172.62,
134.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 12615
},
{
"net": "/BTN_PREVIOUS",
"start": "R1.2",
"end": "SW1.1",
"start_mm": [
150.62,
134.0
],
"end_mm": [
149.5,
168.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 15179
},
{
"net": "/+3V3",
"start": "U1.2",
"end": "U2.1",
"start_mm": [
108.0,
106.54
],
"end_mm": [
143.0,
130.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 894511
},
{
"net": "/RS_RX",
"start": "U1.11",
"end": "U2.4",
"start_mm": [
108.0,
129.4
],
"end_mm": [
150.62,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 51516
},
{
"net": "/BTN_PREVIOUS",
"start": "U1.16",
"end": "R1.2",
"start_mm": [
108.0,
142.1
],
"end_mm": [
150.62,
134.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 94479
},
{
"net": "/RS_DCD",
"start": "U1.4",
"end": "U2.3",
"start_mm": [
108.0,
111.62
],
"end_mm": [
148.08,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 266031
},
{
"net": "/RS_TX",
"start": "U1.10",
"end": "U2.5",
"start_mm": [
108.0,
126.86
],
"end_mm": [
153.16,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 175689
},
{
"net": "/RS_DTR",
"start": "U1.7",
"end": "U2.6",
"start_mm": [
108.0,
119.24
],
"end_mm": [
155.7,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 326823
},
{
"net": "/OLED_SCL",
"start": "U1.18",
"end": "DS1.3",
"start_mm": [
108.0,
147.18
],
"end_mm": [
157.27,
137.5
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 82557
},
{
"net": "/BTN_SELECT",
"start": "SW2.1",
"end": "U1.19",
"start_mm": [
155.0,
168.0
],
"end_mm": [
108.0,
149.72
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 147997
},
{
"net": "/OLED_SDA",
"start": "U1.17",
"end": "DS1.4",
"start_mm": [
108.0,
144.64
],
"end_mm": [
159.81,
137.5
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 266428
},
{
"net": "/RS_DSR",
"start": "U1.5",
"end": "U2.7",
"start_mm": [
108.0,
114.16
],
"end_mm": [
158.24,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 372014
},
{
"net": "/RS_RTS",
"start": "U1.8",
"end": "U2.8",
"start_mm": [
108.0,
121.78
],
"end_mm": [
160.78,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 298514
},
{
"net": "/RS_CTS",
"start": "U1.9",
"end": "U2.9",
"start_mm": [
108.0,
124.32
],
"end_mm": [
163.32,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 265272
},
{
"net": "/RS_RI",
"start": "U1.6",
"end": "U2.10",
"start_mm": [
108.0,
116.7
],
"end_mm": [
165.86,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 332506
},
{
"net": "/RS_VALID",
"start": "U1.12",
"end": "U2.11",
"start_mm": [
108.0,
131.94
],
"end_mm": [
168.4,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 348384
},
{
"net": "/BTN_NEXT",
"start": "U1.20",
"end": "SW3.1",
"start_mm": [
108.0,
152.26
],
"end_mm": [
167.0,
168.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 272795
},
{
"net": "/RS_OFF_N",
"start": "U1.15",
"end": "U2.12",
"start_mm": [
108.0,
139.56
],
"end_mm": [
170.94,
130.0
],
"routed": true,
"width_mm": 0.25,
"power_fallback": false,
"expansions": 351630
},
{
"net": "/GND",
"start": "U1.44",
"end": "U1.43",
"start_mm": [
133.4,
157.34
],
"end_mm": [
133.4,
154.8
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 52
},
{
"net": "/GND",
"start": "SW2.2",
"end": "SW1.2",
"start_mm": [
155.0,
172.5
],
"end_mm": [
149.5,
172.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 111
},
{
"net": "/GND",
"start": "SW2.2",
"end": "SW3.2",
"start_mm": [
161.5,
172.5
],
"end_mm": [
167.0,
172.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 111
},
{
"net": "/GND",
"start": "SW2.2",
"end": "SW2.2",
"start_mm": [
155.0,
172.5
],
"end_mm": [
161.5,
172.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 131
},
{
"net": "/GND",
"start": "SW3.2",
"end": "SW3.2",
"start_mm": [
167.0,
172.5
],
"end_mm": [
173.5,
172.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 131
},
{
"net": "/GND",
"start": "SW1.2",
"end": "SW1.2",
"start_mm": [
149.5,
172.5
],
"end_mm": [
143.0,
172.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 131
},
{
"net": "/GND",
"start": "DS1.1",
"end": "U2.2",
"start_mm": [
152.19,
137.5
],
"end_mm": [
145.54,
130.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 17468
},
{
"net": "/GND",
"start": "SW1.2",
"end": "U1.44",
"start_mm": [
143.0,
172.5
],
"end_mm": [
133.4,
157.34
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 27488
},
{
"net": "/GND",
"start": "U1.44",
"end": "U1.22",
"start_mm": [
133.4,
157.34
],
"end_mm": [
108.0,
157.34
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 73753
},
{
"net": "/GND",
"start": "U1.43",
"end": "DS1.1",
"start_mm": [
133.4,
154.8
],
"end_mm": [
152.19,
137.5
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 54021
},
{
"net": "/GND",
"start": "U2.2",
"end": "U1.23",
"start_mm": [
145.54,
130.0
],
"end_mm": [
133.4,
104.0
],
"routed": true,
"width_mm": 0.5,
"power_fallback": false,
"expansions": 98250
}
],
"routed_tree_edges": 38,
"total_tree_edges": 38,
"tracks": 569,
"vias": 20,
"immutable_identity_sha256": "81def52e6c1d574b4d3ab1a5859a5266b893df0ea6c5b9aa7d7b688cc4a98519",
"input_sha256": "41643d6089dae5ef2eee1a2071a6d11ae4c00f3c922eddfeaafff619fc5fab19",
"validation": "KiCad DRC must be run separately; tree-edge counts are not DRC connectivity"
}