skill
PCB Design Rules
Public Made by Adomby adom
Canonical PCB fab design rules (DRC) for every popular vendor: one JSON record per vendor, process and layer count, with generated Fusion/EAGLE .dru and .edru, KiCad .kicad_dru plus board-setup JSON, Altium .RUL exports, and a human comparison table. Every number cites the vendor's own capabilities page and the date it was read.
← Commit history
Silkscreen text minimums: 3rdPartyFab 0.5 mm, JLCPCB 0.8 mm (Adom-tested)
10 files changed
+35
kicad/adom-3rdpartyfab-2L.board-setup.json+1kicad/adom-3rdpartyfab-2L.kicad_dru+6kicad/adom-3rdpartyfab-4L.board-setup.json+1kicad/adom-3rdpartyfab-4L.kicad_dru+6kicad/jlcpcb-2L.board-setup.json+1kicad/jlcpcb-2L.kicad_dru+6kicad/jlcpcb-4L.board-setup.json+1kicad/jlcpcb-4L.kicad_dru+6kicad/jlcpcb-6L.board-setup.json+1kicad/jlcpcb-6L.kicad_dru+6kicad/adom-3rdpartyfab-2L.board-setup.json+1@@ -13,6 +13,7 @@ "annularRingViaMm": 0.1, "annularRingPadMm": 0.18, "silkMinLineWidthMm": null,+ "silkMinTextHeightMm": 0.5, "maskExpansionMm": 0.038 }, "notes": "Apply as Board Setup, Constraints. The matching .kicad_dru file carries the same limits as custom rules; the two are redundant on purpose so both the GUI constraints and kicad-cli DRC enforce them.",
kicad/adom-3rdpartyfab-2L.kicad_dru+6@@ -38,3 +38,9 @@ (rule "min-edge-clearance" (constraint edge_clearance (min 0.2mm)) (condition "A.type == 'track'"))++# 3rdPartyFab prints 0.5 mm silkscreen text.+(rule "min-silk-text-height"+ (constraint text_height (min 0.5mm))+ (layer "*.SilkS")+ (condition "A.type == 'text'"))
kicad/adom-3rdpartyfab-4L.board-setup.json+1@@ -13,6 +13,7 @@ "annularRingViaMm": 0.1, "annularRingPadMm": 0.18, "silkMinLineWidthMm": null,+ "silkMinTextHeightMm": 0.5, "maskExpansionMm": 0.038 }, "notes": "Apply as Board Setup, Constraints. The matching .kicad_dru file carries the same limits as custom rules; the two are redundant on purpose so both the GUI constraints and kicad-cli DRC enforce them.",
kicad/adom-3rdpartyfab-4L.kicad_dru+6@@ -38,3 +38,9 @@ (rule "min-edge-clearance" (constraint edge_clearance (min 0.2mm)) (condition "A.type == 'track'"))++# 3rdPartyFab prints 0.5 mm silkscreen text.+(rule "min-silk-text-height"+ (constraint text_height (min 0.5mm))+ (layer "*.SilkS")+ (condition "A.type == 'text'"))
kicad/jlcpcb-2L.board-setup.json+1@@ -13,6 +13,7 @@ "annularRingViaMm": 0.18, "annularRingPadMm": null, "silkMinLineWidthMm": 0.15,+ "silkMinTextHeightMm": 0.8, "maskExpansionMm": 0.0 }, "notes": "Apply as Board Setup, Constraints. The matching .kicad_dru file carries the same limits as custom rules; the two are redundant on purpose so both the GUI constraints and kicad-cli DRC enforce them.",
kicad/jlcpcb-2L.kicad_dru+6@@ -44,3 +44,9 @@ (constraint text_thickness (min 0.15mm)) (layer "*.SilkS") (condition "A.type == 'text' || A.type == 'graphic'"))++# JLCPCB lists 1.0 mm; Adom has tested 0.8 mm and it prints legibly (2026-10-08).+(rule "min-silk-text-height"+ (constraint text_height (min 0.8mm))+ (layer "*.SilkS")+ (condition "A.type == 'text'"))
kicad/jlcpcb-4L.board-setup.json+1@@ -13,6 +13,7 @@ "annularRingViaMm": 0.15, "annularRingPadMm": null, "silkMinLineWidthMm": 0.15,+ "silkMinTextHeightMm": 0.8, "maskExpansionMm": 0.0 }, "notes": "Apply as Board Setup, Constraints. The matching .kicad_dru file carries the same limits as custom rules; the two are redundant on purpose so both the GUI constraints and kicad-cli DRC enforce them.",
kicad/jlcpcb-4L.kicad_dru+6@@ -44,3 +44,9 @@ (constraint text_thickness (min 0.15mm)) (layer "*.SilkS") (condition "A.type == 'text' || A.type == 'graphic'"))++# JLCPCB lists 1.0 mm; Adom has tested 0.8 mm and it prints legibly (2026-10-08).+(rule "min-silk-text-height"+ (constraint text_height (min 0.8mm))+ (layer "*.SilkS")+ (condition "A.type == 'text'"))
kicad/jlcpcb-6L.board-setup.json+1@@ -13,6 +13,7 @@ "annularRingViaMm": 0.15, "annularRingPadMm": null, "silkMinLineWidthMm": 0.15,+ "silkMinTextHeightMm": 0.8, "maskExpansionMm": 0.0 }, "notes": "Apply as Board Setup, Constraints. The matching .kicad_dru file carries the same limits as custom rules; the two are redundant on purpose so both the GUI constraints and kicad-cli DRC enforce them.",
kicad/jlcpcb-6L.kicad_dru+6@@ -44,3 +44,9 @@ (constraint text_thickness (min 0.15mm)) (layer "*.SilkS") (condition "A.type == 'text' || A.type == 'graphic'"))++# JLCPCB lists 1.0 mm; Adom has tested 0.8 mm and it prints legibly (2026-10-08).+(rule "min-silk-text-height"+ (constraint text_height (min 0.8mm))+ (layer "*.SilkS")+ (condition "A.type == 'text'"))