PCB layout: component placement & board outline
PCB: 65x30mm 2-layer board with GND pours on F.Cu + B.Cu Placement: J1 (USB-C) at (5, 17.5) - left edge U2 (CH224K) at (18, 10) - PD controller Q1 (PMOS) at (18, 22) - VBUS switch U3 (LDO) at (33, 17.5) - 3.3V regulator U1 (ESP32-S3) at (50, 12) - right side Passives placed near respective ICs Footprints assigned: J1 (USB4105), U2 (SSOP-10), Q1 (SOT-23-3), U3 (SOT-223-3), U1 (ESP32-S3-WROOM-1) Design rules: 0.2mm clearance, 0.25mm track, 0.6/0.3mm via DRC: 42 violations (pre-routing - courtyard overlaps + edge clearance) Next: manual routing in KiCad UI
This commit is contained in:
444
USB_PD_ESP32S3_drc_violations.json
Normal file
444
USB_PD_ESP32S3_drc_violations.json
Normal file
@@ -0,0 +1,444 @@
|
||||
{
|
||||
"board": "/Users/nearxos/Documents/KiCad/10.0/USB_PD_ESP32S3/USB_PD_ESP32S3.kicad_pcb",
|
||||
"timestamp": "2026-06-20T17:50:49",
|
||||
"total_violations": 42,
|
||||
"violation_counts": {
|
||||
"items_not_allowed": 5,
|
||||
"clearance": 1,
|
||||
"courtyards_overlap": 4,
|
||||
"copper_edge_clearance": 4,
|
||||
"drill_out_of_range": 12,
|
||||
"invalid_outline": 7,
|
||||
"solder_mask_bridge": 1,
|
||||
"silk_edge_clearance": 2,
|
||||
"silk_overlap": 1,
|
||||
"silk_over_copper": 5
|
||||
},
|
||||
"severity_counts": {
|
||||
"error": 34,
|
||||
"warning": 8,
|
||||
"info": 0
|
||||
},
|
||||
"violations": [
|
||||
{
|
||||
"type": "items_not_allowed",
|
||||
"severity": "error",
|
||||
"message": "Items not allowed (keepout area of U1)",
|
||||
"location": {
|
||||
"x": 25.825,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "items_not_allowed",
|
||||
"severity": "error",
|
||||
"message": "Items not allowed (keepout area of U1)",
|
||||
"location": {
|
||||
"x": 25.0,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "items_not_allowed",
|
||||
"severity": "error",
|
||||
"message": "Items not allowed (keepout area of U1)",
|
||||
"location": {
|
||||
"x": 41.175,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "items_not_allowed",
|
||||
"severity": "error",
|
||||
"message": "Items not allowed (keepout area of U1)",
|
||||
"location": {
|
||||
"x": 42.825,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "items_not_allowed",
|
||||
"severity": "error",
|
||||
"message": "Items not allowed (keepout area of U1)",
|
||||
"location": {
|
||||
"x": 42.0,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "clearance",
|
||||
"severity": "error",
|
||||
"message": "Clearance violation ( clearance 0.2000 mm; actual 0.0000 mm)",
|
||||
"location": {
|
||||
"x": 24.175,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "courtyards_overlap",
|
||||
"severity": "error",
|
||||
"message": "Courtyards overlap",
|
||||
"location": {
|
||||
"x": 50.0,
|
||||
"y": 12.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "courtyards_overlap",
|
||||
"severity": "error",
|
||||
"message": "Courtyards overlap",
|
||||
"location": {
|
||||
"x": 50.0,
|
||||
"y": 12.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "courtyards_overlap",
|
||||
"severity": "error",
|
||||
"message": "Courtyards overlap",
|
||||
"location": {
|
||||
"x": 50.0,
|
||||
"y": 12.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "courtyards_overlap",
|
||||
"severity": "error",
|
||||
"message": "Courtyards overlap",
|
||||
"location": {
|
||||
"x": 25.0,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "copper_edge_clearance",
|
||||
"severity": "error",
|
||||
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.0000 mm)",
|
||||
"location": {
|
||||
"x": 65.0,
|
||||
"y": 30.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "copper_edge_clearance",
|
||||
"severity": "error",
|
||||
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.0000 mm)",
|
||||
"location": {
|
||||
"x": 65.0,
|
||||
"y": 30.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "copper_edge_clearance",
|
||||
"severity": "error",
|
||||
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1800 mm)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 30.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "copper_edge_clearance",
|
||||
"severity": "error",
|
||||
"message": "Board edge clearance violation (board setup constraints edge clearance 0.5000 mm; actual 0.1800 mm)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 30.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 47.1,
|
||||
"y": 13.76,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 47.1,
|
||||
"y": 15.16,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 47.8,
|
||||
"y": 13.06,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 47.8,
|
||||
"y": 14.46,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 47.8,
|
||||
"y": 15.86,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 48.5,
|
||||
"y": 13.76,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 48.5,
|
||||
"y": 15.16,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 49.2,
|
||||
"y": 13.06,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 49.2,
|
||||
"y": 14.46,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 49.2,
|
||||
"y": 15.86,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 49.9,
|
||||
"y": 13.76,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "drill_out_of_range",
|
||||
"severity": "error",
|
||||
"message": "Hole size out of range (board setup constraints min hole 0.2500 mm; actual 0.2000 mm)",
|
||||
"location": {
|
||||
"x": 49.9,
|
||||
"y": 15.16,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 30.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "invalid_outline",
|
||||
"severity": "error",
|
||||
"message": "Board has malformed outline (self-intersecting)",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "solder_mask_bridge",
|
||||
"severity": "error",
|
||||
"message": "Front solder mask aperture bridges items with different nets",
|
||||
"location": {
|
||||
"x": 24.825,
|
||||
"y": 4.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_edge_clearance",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by board edge",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_edge_clearance",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by board edge",
|
||||
"location": {
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_overlap",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clearance",
|
||||
"location": {
|
||||
"x": 25.0,
|
||||
"y": 2.57,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_over_copper",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by solder mask",
|
||||
"location": {
|
||||
"x": 40.8,
|
||||
"y": -0.9,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_over_copper",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by solder mask",
|
||||
"location": {
|
||||
"x": 24.762742,
|
||||
"y": 3.4775,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_over_copper",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by solder mask",
|
||||
"location": {
|
||||
"x": 24.762742,
|
||||
"y": 4.5225,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_over_copper",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by solder mask",
|
||||
"location": {
|
||||
"x": 23.762742,
|
||||
"y": 4.5225,
|
||||
"unit": "mm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "silk_over_copper",
|
||||
"severity": "warning",
|
||||
"message": "Silkscreen clipped by solder mask",
|
||||
"location": {
|
||||
"x": 23.762742,
|
||||
"y": 3.4775,
|
||||
"unit": "mm"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user