Initial commit
This commit is contained in:
commit
c9744004ea
21 changed files with 148418 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
venv
|
||||
__pycache__
|
||||
gerber
|
||||
41
balancing-footprints.pretty/bal-10x10mm.kicad_mod
Normal file
41
balancing-footprints.pretty/bal-10x10mm.kicad_mod
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
(footprint "bal-10x10mm" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 -0.5 0 unlocked) (layer "F.SilkS") (tstamp 3359a3e4-31fb-47b9-b16b-0de58bdb9045)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "bal-10x10mm" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp 64a76c86-9dcb-403b-9cc1-498db73315bd)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 447a31db-e46c-4599-80f8-8228935a2474)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp a78abcd1-67b1-46a6-9d26-349df0dd048a)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 9b04e6e6-2c0a-43b8-aace-405f3681e211)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_rect (start -5 -5) (end 5 5)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd") (tstamp e638c5a1-c193-4c12-b8c5-fc574824dfad))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 615c98ba-759a-478e-bee0-2f8fa8dbc4fb)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd circle (at 0 0) (size 10 10) (layers "F.Cu")
|
||||
(tstamp 5a84eceb-f684-46f8-b85a-c96eb1f31ff5)
|
||||
)
|
||||
(zone (net 0) (net_name "") (layer "F.Cu") (tstamp ed385c04-3160-4b79-9161-5d0c0fd0b46f) (hatch edge 0.5)
|
||||
(connect_pads (clearance 0))
|
||||
(min_thickness 0.25) (filled_areas_thickness no)
|
||||
(keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints not_allowed))
|
||||
(fill (thermal_gap 0.5) (thermal_bridge_width 0.5))
|
||||
(polygon
|
||||
(pts
|
||||
(xy -5 -5)
|
||||
(xy 5 -5)
|
||||
(xy 5 5)
|
||||
(xy -5 5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
90
footprints.pretty/Bosch_BMI088_LGA.kicad_mod
Normal file
90
footprints.pretty/Bosch_BMI088_LGA.kicad_mod
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
(footprint "Bosch_BMI088_LGA" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 14.5 0 unlocked) (layer "F.SilkS") (tstamp f97a3efe-8e1f-4684-abec-f09b41d0273a)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "Bosch_BMI088_LGA" (at 0 16 0 unlocked) (layer "F.Fab") (tstamp 507ecc84-52fd-413f-bbd7-488e6a6774d5)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 15 0 unlocked) (layer "F.Fab") hide (tstamp 86a561ab-f459-4896-a3fb-deffc38169af)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 15 0 unlocked) (layer "F.Fab") hide (tstamp 47e3ecba-bfc7-4cb8-aee6-a0c58e0d8f6c)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 15 0 unlocked) (layer "F.Fab") hide (tstamp 61b1f77d-fee5-4715-aefa-934b7eb8bf2d)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_rect (start -1.5 -2.25) (end 1.5 2.25)
|
||||
(stroke (width 0.1) (type default)) (fill none) (layer "F.SilkS") (tstamp d4da083c-48cd-45d8-85d2-7ba5414f92c2))
|
||||
(fp_rect (start -1.75 -2.5) (end 1.75 2.5)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Margin") (tstamp d9afc9e9-a34c-49a9-a1ee-a81aa2657292))
|
||||
(fp_text user "${REFERENCE}" (at 0 17.5 0 unlocked) (layer "F.Fab") (tstamp 05e60479-6332-49f4-8e05-9851167efb3f)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd rect (at 1.2625 -1.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 33e4075d-571a-440f-beb1-39b5fc17748f)
|
||||
)
|
||||
(pad "2" smd rect (at 1.2625 -1) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 445ee1e7-5125-4727-854a-238f96f6239c)
|
||||
)
|
||||
(pad "3" smd rect (at 1.2625 -0.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 2d4aee6a-bfa1-47b5-931c-d1e9a1e75a32)
|
||||
)
|
||||
(pad "4" smd rect (at 1.2625 0) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 095909e0-1173-47ef-8f60-91851bef766c)
|
||||
)
|
||||
(pad "5" smd rect (at 1.2625 0.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp c889a00c-1efd-42a7-9620-07b6e1ad38ad)
|
||||
)
|
||||
(pad "6" smd rect (at 1.2625 1) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp fd785a6e-a6e4-479e-a743-9436638169b2)
|
||||
)
|
||||
(pad "7" smd rect (at 1.2625 1.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 98826b32-2175-45f7-a2e9-f123abbc8058)
|
||||
)
|
||||
(pad "8" smd rect (at 0 2.0125 90) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 649df130-2925-4aa0-9c17-b33575023cb7)
|
||||
)
|
||||
(pad "9" smd rect (at -1.2625 1.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp a3b62a16-22dc-4c87-a4b5-a7392f718405)
|
||||
)
|
||||
(pad "10" smd rect (at -1.2625 1) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 5a8497c5-7b36-4416-969b-523e2ad81294)
|
||||
)
|
||||
(pad "11" smd rect (at -1.2625 0.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 8976fc4d-827c-4ce9-ba98-c3392b3fded9)
|
||||
)
|
||||
(pad "12" smd rect (at -1.2625 0) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp b589d726-1f22-4583-b98c-ead3ecd8bf5f)
|
||||
)
|
||||
(pad "13" smd rect (at -1.2625 -0.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp ee32064b-3874-4d43-abf6-1ad170bfec82)
|
||||
)
|
||||
(pad "14" smd rect (at -1.2625 -1) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp dd51ecf0-f3c8-4742-8fb4-d2754cab1b14)
|
||||
)
|
||||
(pad "15" smd rect (at -1.2625 -1.5) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 98c84001-0cd6-4ab7-83e0-c351f3810a71)
|
||||
)
|
||||
(pad "16" smd rect (at 0 -2.0125 90) (size 0.675 0.25) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 1560c8a5-30bb-4783-b4a2-a69f1b22772d)
|
||||
)
|
||||
)
|
||||
56
footprints.pretty/MTSM1346SMF1-100.kicad_mod
Normal file
56
footprints.pretty/MTSM1346SMF1-100.kicad_mod
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
(footprint "MTSM1346SMF1-100" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 -3.5 0 unlocked) (layer "F.SilkS") (tstamp 94844c15-568c-4fa3-a607-69040e661d97)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "MTSM1346SMF1-100" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp 6f1aa1c0-3c66-4205-b8f1-1964440b2a97)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp ecc39ab9-7bd3-435c-9592-2ed9167c0029)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 03e564f4-0f2c-4b49-b752-e767cfcf778d)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 1f41df07-2728-4aae-9b94-3e28ebeaefd7)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line (start -0.25 0.6) (end -0.25 1.5)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp 6600c07a-dc8f-4f4f-b698-4b36f01b7898))
|
||||
(fp_line (start 0 0.6) (end -0.25 0.6)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp 4acbf4c6-6d04-4e48-9b42-e9363a7f99e3))
|
||||
(fp_line (start 1.45 0.6) (end 0 0.6)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp 9b89d808-0216-4d0e-8369-486f19e4828a))
|
||||
(fp_rect (start -1.5 -1.5) (end 1.5 1.5)
|
||||
(stroke (width 0.1) (type default)) (fill none) (layer "F.SilkS") (tstamp 8b2f86fb-d332-4688-a68e-d12000493540))
|
||||
(fp_rect (start -1.7 -1.7) (end 1.7 1.7)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd") (tstamp 9780c955-5324-4f3a-a757-bafd450ff138))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 76ae142d-c1dd-4fd1-8324-8892d6724e8e)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd roundrect (at 1.25 1.15 180) (size 2.5 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.4285714286)
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 5314e829-2a31-47d2-8c38-725917263cbc)
|
||||
)
|
||||
(pad "2" smd rect (at 1.575 0 180) (size 1.85 0.7) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 1c32838c-a5f9-4403-9438-b3afde00faf9)
|
||||
)
|
||||
(pad "3" smd rect (at 1.575 -1.15 180) (size 1.85 0.7) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp f247bdbc-b440-4a5e-a621-e4c358d98147)
|
||||
)
|
||||
(pad "4" smd rect (at -1.575 -1.15 180) (size 1.85 0.7) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 522d816f-4c10-4df4-86fb-7a69840d426c)
|
||||
)
|
||||
(pad "5" smd rect (at -1.575 0 180) (size 1.85 0.7) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp d971adf6-52b5-4d64-a89a-8e23528e6ba5)
|
||||
)
|
||||
(pad "6" smd rect (at -1.575 1.15 180) (size 1.85 0.7) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 68ce1124-7c10-40b9-b5ba-823548e5189c)
|
||||
)
|
||||
)
|
||||
38
footprints.pretty/P16612-011CA.kicad_mod
Normal file
38
footprints.pretty/P16612-011CA.kicad_mod
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
(footprint "P16612-011CA" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 -2.55 0 unlocked) (layer "F.SilkS") (tstamp c2276d27-16d8-4ad4-8bde-592813a4d3a8)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "P16612-011CA" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp c17f9354-4dcd-427f-a0cd-3651420b79cd)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 65b5b503-94ba-469f-ac07-825c708743d5)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp c4b71734-68fe-44c7-a657-275085e813a7)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 4907b044-9154-4565-bbc3-4d78188ae664)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line (start 0.75 -1.75) (end 1.8 -1.75)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp 5bc9e9b8-c81f-4e2f-aeda-6038318a1525))
|
||||
(fp_line (start 1.8 -1.75) (end 1.8 -0.8)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp ef59ca4e-da2f-41c0-8fee-f72ca0a547ee))
|
||||
(fp_rect (start -1.3 -1.3) (end 1.3 1.3)
|
||||
(stroke (width 0.1) (type default)) (fill none) (layer "F.SilkS") (tstamp d519c4bb-87d6-401d-8dfe-10740fe38960))
|
||||
(fp_rect (start -1.5 -1.5) (end 1.5 1.5)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd") (tstamp 9e7fce77-0bdc-4c75-b86e-4d88362275b0))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 76855fc3-1cfc-4e28-b002-8380fdafa654)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd rect (at 0.9 0 180) (size 1.3 3.1) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 3198d885-b53d-4ffb-96b6-184c86fac519)
|
||||
)
|
||||
(pad "2" smd rect (at -0.9 0 180) (size 1.3 3.1) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp 7295e3bf-5769-43de-a2ad-24d6cd74bcf1)
|
||||
)
|
||||
)
|
||||
38
footprints.pretty/VBPW34S.kicad_mod
Normal file
38
footprints.pretty/VBPW34S.kicad_mod
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
(footprint "VBPW34S" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at -1.6 -3 0 unlocked) (layer "F.SilkS") hide (tstamp 88390548-67d9-49ae-8e4c-db01d26978d2)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "VBPW34S" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp 49bcfcc7-6ef0-4846-b5f7-960c636434bb)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp db2c230f-92ec-4075-9bd3-c08c516cad56)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp f9c53b5c-993a-4b69-8b9e-da34f17dd77b)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 4e42c3fd-b0f8-4932-8240-d6c55ea8e994)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line (start -1.6 -1.95) (end -1.6 1.95)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp a2f763ed-a004-441d-8244-eac6029b573e))
|
||||
(fp_rect (start -2.2 -1.95) (end 2.2 1.95)
|
||||
(stroke (width 0.1) (type default)) (fill none) (layer "F.SilkS") (tstamp 13d36aea-793c-41ad-904d-3542d7f1a2c4))
|
||||
(fp_rect (start -1 -1) (end 1 1)
|
||||
(stroke (width 0.1) (type dot)) (fill none) (layer "F.SilkS") (tstamp 93cc726b-eb93-4c74-875e-19bac486e589))
|
||||
(fp_rect (start -3.4 -2.2) (end 3.4 2.2)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Margin") (tstamp 35a10b49-2333-4ae0-ad4f-be7c11e460a8))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 6da511a8-5272-4940-a236-8bdcca2bcba5)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd rect (at -3.575 0 90) (size 1.75 1.8) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp c26b90cf-eb56-4095-b993-a534163b7718)
|
||||
)
|
||||
(pad "2" smd rect (at 3.575 0 90) (size 1.75 1.8) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp e1b9bf11-3775-4900-ad1e-6eb4ef74afc1)
|
||||
)
|
||||
)
|
||||
40
footprints.pretty/VBPW34SR.kicad_mod
Normal file
40
footprints.pretty/VBPW34SR.kicad_mod
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
(footprint "VBPW34SR" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at -1.6 -3 0 unlocked) (layer "F.SilkS") hide (tstamp b09223af-b049-4a61-b9aa-5a8bddba26fd)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "VBPW34SR" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp 916ac511-8dba-449e-af8b-b56f77084c5b)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 98d8ede5-a9e7-4027-a862-08ae5bb89b1b)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 3d72a385-02d0-4197-9835-027a41835154)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 73a86ea5-bdba-4bde-991b-98b412192463)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line (start -1.6 -1.95) (end -1.6 1.95)
|
||||
(stroke (width 0.1) (type default)) (layer "F.SilkS") (tstamp f03db372-3115-4690-9e13-0199284ffb8c))
|
||||
(fp_rect (start -2.2 -1.95) (end 2.2 1.95)
|
||||
(stroke (width 0.1) (type default)) (fill none) (layer "F.SilkS") (tstamp b173977a-593e-4cb3-8763-3ea91ef7fc7b))
|
||||
(fp_rect (start -1.68 -1.5) (end 1.32 1.5)
|
||||
(stroke (width 0.1) (type dot)) (fill none) (layer "F.SilkS") (tstamp 42b9372a-e36b-4210-a75a-de580540d86e))
|
||||
(fp_rect (start -1.98 -1.8) (end 1.62 1.8)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Edge.Cuts") (tstamp dad98ac0-65e9-41f5-8e7c-1f1f5eed6e44))
|
||||
(fp_rect (start -3.4 -2.2) (end 3.4 2.2)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Margin") (tstamp 7fe3bec6-3955-4c21-ae6d-44ba50829f15))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 733f454d-fa09-4888-9ea7-47aa0099102d)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd rect (at -3.575 0 90) (size 1.75 1.8) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp a01d329c-5bba-43ac-a2c0-8a89e3e4d16b)
|
||||
)
|
||||
(pad "2" smd rect (at 3.575 0 90) (size 1.75 1.8) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(thermal_bridge_angle 45)
|
||||
(tstamp fb8a214a-920d-478a-b94c-cae1c738661a)
|
||||
)
|
||||
)
|
||||
548
footprints.pretty/coil_rx.kicad_mod
Normal file
548
footprints.pretty/coil_rx.kicad_mod
Normal file
|
|
@ -0,0 +1,548 @@
|
|||
(footprint "coil_rx" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 -0.5 0 unlocked) (layer "F.SilkS") hide (tstamp a1cfaab7-dc54-48c5-ba8c-a23b49020a51)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "coil_rx" (at 0 1 0 unlocked) (layer "F.Fab") hide (tstamp 3e6b6586-c676-486b-bc5d-08fb92b33e36)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 6a949703-cc2e-4e6d-a727-55482d808100)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp c8122c05-2772-430f-b597-c294324e5263)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 60dc2314-287c-486d-a4a2-f8571d1f9802)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line (start -11.871582 -3.404121) (end -12.015771 -3.445467)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a3993b40-9ae0-4444-8152-592b0245c1d9))
|
||||
(fp_line (start -11.282286 5.023198) (end -11.419318 5.084208)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 32687b92-84a7-44af-bf93-9bc11cd73187))
|
||||
(fp_line (start -7.545904 2.163753) (end -7.401715 2.122408)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 33bd81b4-ca32-4c13-b2ea-34faac4ffc87))
|
||||
(fp_line (start -7.171332 -3.192883) (end -7.0343 -3.131872)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c7431749-d259-48f2-b444-10e4d4826004))
|
||||
(fp_line (start -6.906032 -10.238614) (end -6.989911 -10.36297)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ba908801-2714-4f46-a292-68f50f5c064f))
|
||||
(fp_line (start -5.413884 11.100106) (end -5.479639 11.234926)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp aa3da8e1-edfa-46ac-9a9b-4cb12e928566))
|
||||
(fp_line (start -4.389664 6.507945) (end -4.305785 6.383589)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a19fc8cf-253f-4a4e-8b75-36153f812188))
|
||||
(fp_line (start -3.441214 -7.055533) (end -3.375458 -6.920714)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0c23c8e9-1aa6-4864-b166-67800816cbcc))
|
||||
(fp_line (start 0.820548 7.806997) (end 0.804869 7.657819)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e73721af-d29c-472a-9bb6-2e55c3a5a759))
|
||||
(fp_line (start 1.290927 -12.282345) (end 1.306606 -12.431524)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp cb45bab2-6f09-429c-bd33-4d3d5322736d))
|
||||
(fp_line (start 1.899087 -7.616821) (end 1.862799 -7.471277)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 36944a4a-e788-4261-9a8d-bab0c7c21f75))
|
||||
(fp_line (start 2.987735 11.983152) (end 3.024024 12.128697)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 51006d3d-a7ec-4331-960d-ed9836d8f340))
|
||||
(fp_line (start 5.646817 5.453068) (end 5.538916 5.348869)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c43990b6-c00e-49e3-be82-b669c7758ef8))
|
||||
(fp_line (start 6.350783 -4.614114) (end 6.229431 -4.525946)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 353bfd0c-72d6-43f0-89f8-cea3be2d4867))
|
||||
(fp_line (start 7.830878 0.547588) (end 7.681243 0.537125)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp be88ce0f-6ec7-4e3b-8f4c-15e42b71abb8))
|
||||
(fp_line (start 8.883847 -8.579031) (end 8.991748 -8.68323)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5779e245-5454-48b0-a228-4985eb5f8ba3))
|
||||
(fp_line (start 9.99136 7.259148) (end 10.112712 7.347316)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 43acd05b-779f-4094-8773-2e6960fe48f8))
|
||||
(fp_line (start 12.319916 -0.861492) (end 12.469551 -0.871956)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp bd37c49d-985c-402f-8376-a33b72e5677f))
|
||||
(fp_arc (start -11.871582 3.404121) (mid -12.35 0) (end -11.871582 -3.404121)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 3648bf77-57f2-4fee-b75f-547ce5620bd9))
|
||||
(fp_arc (start -11.390951 -3.266303) (mid -11.36977 -4.146801) (end -11.282286 -5.023198)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a9249ba7-9079-4b67-a5e8-823c71ba4ce5))
|
||||
(fp_arc (start -11.390951 3.266303) (mid -11.85 0) (end -11.390951 -3.266303)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 385ba1ee-4942-4514-89be-99a74df92460))
|
||||
(fp_arc (start -11.282286 -5.023198) (mid -9.460649 -7.938427) (end -6.906032 -10.238614)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ebb25c0f-b242-4961-b6a9-292df3ee8cc6))
|
||||
(fp_arc (start -10.91032 -3.128484) (mid -10.900016 -3.975766) (end -10.825514 -4.819829)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 49f94a42-8263-49de-80e5-f20dcf05b374))
|
||||
(fp_arc (start -10.91032 3.128484) (mid -11.35 0) (end -10.91032 -3.128484)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ba021543-0107-4d9f-95c6-3af389ff0dea))
|
||||
(fp_arc (start -10.825514 -4.819829) (mid -9.077627 -7.617033) (end -6.626436 -9.824095)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp bb348e7e-6805-4d4d-a320-002a91414e94))
|
||||
(fp_arc (start -10.825514 4.819829) (mid -11.375259 4.131712) (end -11.871582 3.404121)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f1c56ac4-ba21-4589-bb7a-946f1cfc1a6f))
|
||||
(fp_arc (start -10.429689 -2.990665) (mid -10.430278 -3.804727) (end -10.368741 -4.616461)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 811cc591-8b80-4077-a4f5-80806de34220))
|
||||
(fp_arc (start -10.429689 2.990665) (mid -10.85 0) (end -10.429689 -2.990665)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 676b7dc7-37fe-4390-988e-2a10a3f9a431))
|
||||
(fp_arc (start -10.368741 -4.616461) (mid -8.694604 -7.29564) (end -6.346839 -9.409576)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 9dcc55aa-e9f3-4178-bc78-c504fe75ac79))
|
||||
(fp_arc (start -10.368741 4.616461) (mid -10.905473 3.960784) (end -11.390951 3.266303)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 33248033-f66e-4145-be89-f6ba445ac51f))
|
||||
(fp_arc (start -9.949059 -2.852847) (mid -9.96055 -3.633684) (end -9.911968 -4.413093)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 68e42fba-1df4-436c-83aa-f63dc90ff702))
|
||||
(fp_arc (start -9.949059 2.852847) (mid -10.350001 0) (end -9.949059 -2.852847)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp d97ce90f-8c82-470e-aa1b-e0987ef9d100))
|
||||
(fp_arc (start -9.911968 -4.413093) (mid -8.311582 -6.974246) (end -6.067243 -8.995058)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 61197733-d706-41f0-a59d-1783feb93b5f))
|
||||
(fp_arc (start -9.911968 4.413093) (mid -10.43569 3.789865) (end -10.91032 3.128484)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 9c8246b0-c80d-4cbb-932d-81b68cb2f93e))
|
||||
(fp_arc (start -9.468428 -2.715028) (mid -9.490826 -3.462633) (end -9.455195 -4.209724)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 95ed9fc1-4012-462c-adf2-12950772f7f5))
|
||||
(fp_arc (start -9.468428 2.715028) (mid -9.85 0) (end -9.468428 -2.715028)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp fd455d44-9537-4150-87ed-dd0c69e97421))
|
||||
(fp_arc (start -9.455195 -4.209724) (mid -7.92856 -6.652852) (end -5.787647 -8.580539)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ed8f9fa7-4ae5-4a51-ac24-ab93a00168fc))
|
||||
(fp_arc (start -9.455195 4.209724) (mid -9.96591 3.618954) (end -10.429689 2.990665)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp eb3b707b-9c8d-4c49-bade-34ac793be7e1))
|
||||
(fp_arc (start -8.998423 -4.006356) (mid -7.545538 -6.331458) (end -5.50805 -8.16602)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e4907387-702a-40a2-810c-88ab04bc923b))
|
||||
(fp_arc (start -8.998423 4.006356) (mid -9.496132 3.448054) (end -9.949059 2.852847)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 26b269ae-f9d0-421c-b4ba-b12e42f88917))
|
||||
(fp_arc (start -8.987797 -2.577209) (mid -9.021114 -3.291574) (end -8.998423 -4.006356)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp b2c131ee-c2fa-490b-94f1-d492751d0d84))
|
||||
(fp_arc (start -8.987797 2.577209) (mid -9.35 0) (end -8.987797 -2.577209)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 52dde411-a618-47e1-b304-5b00ae620871))
|
||||
(fp_arc (start -8.54165 -3.802988) (mid -7.162516 -6.010064) (end -5.228454 -7.751501)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1b1aa203-794f-4507-aaf8-3a3ae8768e4b))
|
||||
(fp_arc (start -8.54165 3.802988) (mid -9.026357 3.277168) (end -9.468428 2.715028)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 9fe0ec90-ff32-4fef-898b-42650c76d335))
|
||||
(fp_arc (start -8.507166 -2.439391) (mid -8.551412 -3.120507) (end -8.54165 -3.802988)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 60a72548-91b2-45d9-bdac-92998649240a))
|
||||
(fp_arc (start -8.507166 2.439391) (mid -8.85 0) (end -8.507166 -2.439391)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 4943ede4-e827-4fad-af71-71dc7a3a3947))
|
||||
(fp_arc (start -8.084877 -3.599619) (mid -6.779492 -5.68867) (end -4.948857 -7.336983)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp cb64f833-9707-4adc-8b61-704801d2c2e6))
|
||||
(fp_arc (start -8.084877 3.599619) (mid -8.556585 3.106295) (end -8.987797 2.577209)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ab7b53d7-e4eb-4027-a145-97797de72c6b))
|
||||
(fp_arc (start -8.026535 -2.301572) (mid -8.081723 -2.949426) (end -8.084877 -3.599619)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp aa6d1787-8372-49d2-b4b9-d1ad690708cc))
|
||||
(fp_arc (start -8.026535 2.301572) (mid -8.35 0) (end -8.026535 -2.301572)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e967f264-484f-4294-82c6-485b3c59e242))
|
||||
(fp_arc (start -7.628105 -3.396251) (mid -6.396471 -5.367277) (end -4.669261 -6.922464)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 400860d2-0b83-4069-930d-908a7b4577b6))
|
||||
(fp_arc (start -7.628105 3.396251) (mid -8.086813 2.93544) (end -8.507166 2.439391)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 31a64cd0-368e-4dc6-9a56-4d4dd24cf42b))
|
||||
(fp_arc (start -7.545904 -2.163753) (mid -7.612046 -2.778332) (end -7.628105 -3.396251)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 2ffbe47e-3093-4b34-bcdc-7e74b1480d6e))
|
||||
(fp_arc (start -7.545904 2.163753) (mid -7.85 0) (end -7.545904 -2.163753)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp dc1bf59e-b3b9-4b1f-9b4b-edc27e6af2b3))
|
||||
(fp_arc (start -7.171332 -3.192883) (mid -6.013449 -5.045883) (end -4.389664 -6.507945)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp cdf66c4a-5e93-41f0-9a44-df65dc052cad))
|
||||
(fp_arc (start -7.171332 3.192883) (mid -7.617043 2.764603) (end -8.026535 2.301572)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp df9aaf7a-881d-4e73-a144-d2e8340db53d))
|
||||
(fp_arc (start -6.906032 10.238614) (mid -9.460649 7.938427) (end -11.282286 5.023198)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5dd3f70c-6c61-496a-9ca1-3d532ff63f9b))
|
||||
(fp_arc (start -6.626436 -9.824095) (mid -6.044232 -10.484975) (end -5.413884 -11.100106)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 748ba3cf-f2d7-4fea-8dff-f0da6e807bfc))
|
||||
(fp_arc (start -6.626436 9.824095) (mid -9.077627 7.617033) (end -10.825514 4.819829)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 00453789-6b23-448c-a210-17c630dde33f))
|
||||
(fp_arc (start -6.346839 -9.409576) (mid -5.794327 -10.052012) (end -5.194698 -10.650709)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 653cbfd8-5c19-4878-8c39-fd533f2b7554))
|
||||
(fp_arc (start -6.346839 9.409576) (mid -8.694604 7.295639) (end -10.368741 4.616461)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 25c3a7fa-68bb-47a4-bd8e-098e3971bf5e))
|
||||
(fp_arc (start -6.067243 -8.995058) (mid -5.544429 -9.619048) (end -4.975513 -10.201312)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 97c1eb75-c8be-4bd8-952d-b03d47d7b3e1))
|
||||
(fp_arc (start -6.067243 8.995058) (mid -8.311582 6.974246) (end -9.911968 4.413093)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp fa358037-7694-47ee-af78-1faf84663432))
|
||||
(fp_arc (start -5.787647 -8.580539) (mid -5.294535 -9.186079) (end -4.756327 -9.751915)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ea450c28-c5e0-4317-9847-7509b0ade0ce))
|
||||
(fp_arc (start -5.787647 8.580539) (mid -7.92856 6.652852) (end -9.455195 4.209724)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 400e9034-47c9-458d-9f1d-15230984d131))
|
||||
(fp_arc (start -5.50805 -8.16602) (mid -5.044656 -8.753115) (end -4.537141 -9.302518)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f5fdb948-3f4a-4e53-aa20-c8e4e1ec9276))
|
||||
(fp_arc (start -5.50805 8.16602) (mid -7.545538 6.331458) (end -8.998423 4.006356)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp aa9f5989-eee2-4908-8ce0-fab3d7b870f8))
|
||||
(fp_arc (start -5.413884 -11.100106) (mid -2.144555 -12.162376) (end 1.290927 -12.282345)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 904c0cbe-7edf-4d0c-9d16-39872e270bbf))
|
||||
(fp_arc (start -5.228454 -7.751501) (mid -4.794794 -8.320154) (end -4.317956 -8.853121)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 11036d1a-9f61-47a7-90d3-1ae34e54a09e))
|
||||
(fp_arc (start -5.228454 7.751501) (mid -7.162516 6.010064) (end -8.54165 3.802988)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c1b15131-c0f8-46ae-9edc-14aaf0e41b47))
|
||||
(fp_arc (start -5.194698 -10.650709) (mid -2.057731 -11.669972) (end 1.238662 -11.785084)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp fd2ea3e7-3b7e-44d2-9767-690f51898f3b))
|
||||
(fp_arc (start -5.194698 10.650709) (mid -6.05814 10.47695) (end -6.906032 10.238614)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 2995d48b-a5f0-4f9f-8665-2ba62f20c9f0))
|
||||
(fp_arc (start -4.975513 -10.201312) (mid -1.970907 -11.177568) (end 1.186398 -11.287824)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c03bd4f0-1fa1-4a2b-a6e2-7facedaa888f))
|
||||
(fp_arc (start -4.975513 10.201312) (mid -5.808134 10.04404) (end -6.626436 9.824095)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e3bb4c68-7ade-4c97-9ba7-c1d2e6245da5))
|
||||
(fp_arc (start -4.948857 -7.336983) (mid -4.544938 -7.887188) (end -4.09877 -8.403724)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 3fb83447-231c-47da-859a-171d04898144))
|
||||
(fp_arc (start -4.948857 7.336983) (mid -6.779493 5.68867) (end -8.084877 3.599619)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 7809e31e-4232-4b05-9084-25a8554896a7))
|
||||
(fp_arc (start -4.756327 -9.751915) (mid -1.884083 -10.685164) (end 1.134134 -10.790563)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 39d782d9-1b35-4771-9f21-beaee87c9a04))
|
||||
(fp_arc (start -4.756327 9.751915) (mid -5.558124 9.611137) (end -6.346839 9.409576)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 2dd27eb3-2fdd-4ef9-a275-127097054637))
|
||||
(fp_arc (start -4.669261 -6.922464) (mid -4.295102 -7.454221) (end -3.879585 -7.954327)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 8a49a4f2-3b8d-4a7b-83d2-1fbb1901de6d))
|
||||
(fp_arc (start -4.669261 6.922464) (mid -6.396471 5.367277) (end -7.628105 3.396251)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1bafdad7-a484-4b02-8479-05e803b0ae75))
|
||||
(fp_arc (start -4.537141 -9.302518) (mid -1.797258 -10.19276) (end 1.08187 -10.293302)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f9a234a0-0c9b-4c66-b0d1-c7bf46a66ff6))
|
||||
(fp_arc (start -4.537141 9.302518) (mid -5.308111 9.178243) (end -6.067243 8.995058)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0510de1b-0407-450f-928e-0d7f510a61fb))
|
||||
(fp_arc (start -4.389664 -6.507945) (mid -4.04529 -7.021257) (end -3.660399 -7.50493)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 421d5cd8-e181-4c3e-8ac0-ec19c02f95c7))
|
||||
(fp_arc (start -4.389664 6.507945) (mid -6.013449 5.045883) (end -7.171332 3.192883)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1e8cff37-3d03-4e46-92b3-7fc7cbaa446f))
|
||||
(fp_arc (start -4.317956 -8.853121) (mid -1.710435 -9.700356) (end 1.029605 -9.796041)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0415432a-e8c0-40aa-8433-a3d1f52b568e))
|
||||
(fp_arc (start -4.317956 8.853121) (mid -5.058093 8.74536) (end -5.787647 8.580539)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 32c8a720-ce51-4fbc-9ef0-020168b9a7fc))
|
||||
(fp_arc (start -4.09877 -8.403724) (mid -1.62361 -9.207952) (end 0.977341 -9.29878)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 3d666f1a-4f33-4085-8925-a9816821d422))
|
||||
(fp_arc (start -4.09877 8.403724) (mid -4.808068 8.312487) (end -5.50805 8.16602)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 4cba87ef-12ab-4212-997e-ce13e9a09c70))
|
||||
(fp_arc (start -3.879585 -7.954327) (mid -1.536787 -8.715549) (end 0.925077 -8.801519)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e257df78-e740-4d05-8039-80378b54e733))
|
||||
(fp_arc (start -3.879585 7.954327) (mid -4.558036 7.879627) (end -5.228454 7.751501)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1ef0a1bb-4f60-4224-8f6b-5b70e6d58d2a))
|
||||
(fp_arc (start -3.660399 -7.50493) (mid -1.449962 -8.223145) (end 0.872813 -8.304258)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp d2338715-9b46-4b69-b2fe-2be409fbb6ca))
|
||||
(fp_arc (start -3.660399 7.50493) (mid -4.307994 7.44678) (end -4.948857 7.336983)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f4a2f86b-4151-4c17-862f-b43de1c497e5))
|
||||
(fp_arc (start -3.441214 -7.055533) (mid -1.363139 -7.730741) (end 0.820548 -7.806997)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c8836614-d220-4126-8413-eda002c2d6ac))
|
||||
(fp_arc (start -3.441214 7.055533) (mid -4.057941 7.01395) (end -4.669261 6.922464)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 32d0e30c-a704-4867-8ca2-c5094b990922))
|
||||
(fp_arc (start 0.820548 -7.806997) (mid 1.414305 -7.978852) (end 2.020048 -8.101969)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 58afbadc-36d0-4b8b-b0d7-7019527c54e0))
|
||||
(fp_arc (start 0.820548 7.806997) (mid -1.363139 7.730741) (end -3.441214 7.055533)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp b8fd4170-6b91-4c66-a3fd-ee36ae280a5a))
|
||||
(fp_arc (start 0.872813 -8.304258) (mid 1.501241 -8.47111) (end 2.141009 -8.587117)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 080070bb-1be4-4813-bcc7-4dcc4e3936e8))
|
||||
(fp_arc (start 0.872813 8.304258) (mid -1.449962 8.223145) (end -3.660399 7.50493)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 49a766a6-1f21-4c3b-93a0-d7eaa4ae879c))
|
||||
(fp_arc (start 0.925077 -8.801519) (mid 1.588161 -8.96337) (end 2.26197 -9.072265)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 05b08cc2-c7e1-47f5-8958-9968b689fbe4))
|
||||
(fp_arc (start 0.925077 8.801519) (mid -1.536787 8.715549) (end -3.879585 7.954327)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 30d15fad-0828-4aff-8da5-5d9d015e9d4e))
|
||||
(fp_arc (start 0.977341 -9.29878) (mid 1.675069 -9.455635) (end 2.382931 -9.557413)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 62a7d764-5b9d-41df-8132-ae7d554d9dba))
|
||||
(fp_arc (start 0.977341 9.29878) (mid -1.62361 9.207952) (end -4.09877 8.403724)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 6570655d-4a75-4419-a52d-8760e3817097))
|
||||
(fp_arc (start 1.029605 -9.796041) (mid 1.761964 -9.947915) (end 2.503892 -10.042561)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e2f8dfac-3a0a-4d7c-a898-5424c7b80b4a))
|
||||
(fp_arc (start 1.029605 9.796041) (mid -1.710435 9.700356) (end -4.317956 8.853121)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 78f4c75e-2203-4f98-815e-0b4480e6f333))
|
||||
(fp_arc (start 1.08187 -10.293302) (mid 1.848849 -10.440206) (end 2.624853 -10.527709)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5fe83780-a27c-4afc-b6d2-519b9fbc0a33))
|
||||
(fp_arc (start 1.08187 10.293302) (mid -1.797258 10.19276) (end -4.537141 9.302518)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 42ae2590-bb35-47d2-999b-6a9f685ffc3c))
|
||||
(fp_arc (start 1.134134 -10.790563) (mid 1.935726 -10.932506) (end 2.745814 -11.012856)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 4eeba512-26a9-4dd0-8bec-6a2947564cf0))
|
||||
(fp_arc (start 1.134134 10.790563) (mid -1.884083 10.685164) (end -4.756327 9.751915)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0af2f51b-b40f-4f51-a0d4-cc216bd46b84))
|
||||
(fp_arc (start 1.186398 -11.287824) (mid 2.022597 -11.42481) (end 2.866774 -11.498004)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ede62406-68a2-49e2-931a-5f2e4cb621de))
|
||||
(fp_arc (start 1.186398 11.287824) (mid -1.970907 11.177568) (end -4.975513 10.201312)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp b77af2a3-9e46-4f59-b4ae-93e3adbfab07))
|
||||
(fp_arc (start 1.238662 -11.785084) (mid 2.109461 -11.917119) (end 2.987735 -11.983152)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 8cb800c9-7948-46a3-9170-6d13ec4b986d))
|
||||
(fp_arc (start 1.238662 11.785084) (mid -2.057731 11.669972) (end -5.194698 10.650709)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a546a25a-a6f1-4bc8-8baa-8273324c4915))
|
||||
(fp_arc (start 1.290927 12.282345) (mid -2.144555 12.162376) (end -5.413884 11.100106)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e4d757cf-683e-4ab6-b68d-046b27c35d77))
|
||||
(fp_arc (start 1.899087 -7.616821) (mid 3.925 -6.798299) (end 5.646817 -5.453068)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a26830cc-ebe0-41c6-aee2-2ddc85afdebf))
|
||||
(fp_arc (start 1.899087 7.616821) (mid 1.399917 7.981391) (end 0.872813 8.304258)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp adf8011d-009b-4cbf-87b4-1c2704f34b07))
|
||||
(fp_arc (start 2.020048 -8.101969) (mid 4.174999 -7.231311) (end 6.006487 -5.800397)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0522bd0f-24e9-42af-81ba-eb5c7856f54b))
|
||||
(fp_arc (start 2.020048 8.101969) (mid 1.486583 8.47369) (end 0.925077 8.801519)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 95b0b474-9997-4afc-828a-8059e450a1f7))
|
||||
(fp_arc (start 2.141009 -8.587117) (mid 4.425 -7.664325) (end 6.366157 -6.147727)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 0635ed25-25c3-48ed-866d-4c9b07cf5f0a))
|
||||
(fp_arc (start 2.141009 8.587117) (mid 1.573269 8.965993) (end 0.977341 9.29878)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 30cfa8c1-6bac-4e68-b5fb-853320cb91d6))
|
||||
(fp_arc (start 2.26197 -9.072265) (mid 4.675 -8.097338) (end 6.725827 -6.495056)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 7f1b48b3-e496-4e92-86a6-5f1ba113509a))
|
||||
(fp_arc (start 2.26197 9.072265) (mid 1.65997 9.458301) (end 1.029605 9.796041)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 9ed32220-0a7e-4470-84e0-4a241433df65))
|
||||
(fp_arc (start 2.382931 -9.557413) (mid 4.925 -8.53035) (end 7.085497 -6.842385)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp ab70f786-ff1a-4cb0-b35d-7131c9ae8ae0))
|
||||
(fp_arc (start 2.382931 9.557413) (mid 1.746685 9.950613) (end 1.08187 10.293302)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 3b1500fe-837c-402a-8090-798fe80e30e7))
|
||||
(fp_arc (start 2.503892 -10.042561) (mid 5.175 -8.963363) (end 7.445167 -7.189714)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 56301a3d-fa6a-4c36-88d6-1434293a2d56))
|
||||
(fp_arc (start 2.503892 10.042561) (mid 1.833412 10.44293) (end 1.134134 10.790563)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp dd9499e7-bfb2-4118-a31b-6d99624c1a73))
|
||||
(fp_arc (start 2.624853 -10.527709) (mid 5.425001 -9.396376) (end 7.804837 -7.537043)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5ddba821-10d9-4548-a6d6-76e0ca8e71b4))
|
||||
(fp_arc (start 2.624853 10.527709) (mid 1.920149 10.935251) (end 1.186398 11.287824)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 81ee4c17-c659-4ddf-aa0a-e2c05b7526ea))
|
||||
(fp_arc (start 2.745814 -11.012856) (mid 5.675 -9.829388) (end 8.164507 -7.884373)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 7ad99fd6-befc-4888-94ef-bdb9d4370493))
|
||||
(fp_arc (start 2.745814 11.012856) (mid 2.006896 11.427577) (end 1.238662 11.785084)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a1af5f11-a905-43b5-9a09-688dd8efb40b))
|
||||
(fp_arc (start 2.866774 -11.498004) (mid 5.925 -10.262401) (end 8.524177 -8.231702)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 2dbd5f16-a54f-4209-9cf2-5513e703eeda))
|
||||
(fp_arc (start 2.866774 11.498004) (mid 2.093649 11.919907) (end 1.290927 12.282345)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 4eaa680e-bd2a-4b27-9aff-9f32fe107d56))
|
||||
(fp_arc (start 2.987735 -11.983152) (mid 6.175 -10.695413) (end 8.883847 -8.579031)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 28cace0f-0e39-41b5-a0f6-29503fc7e109))
|
||||
(fp_arc (start 5.646817 -5.453068) (mid 6.212129 -5.20306) (end 6.755292 -4.908007)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1e627c0c-fe8f-4c89-a162-78dcc59274ea))
|
||||
(fp_arc (start 5.646817 5.453068) (mid 3.925 6.798299) (end 1.899087 7.616821)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp db065c7f-eb5d-46be-8965-d229ddb14abb))
|
||||
(fp_arc (start 6.006487 -5.800397) (mid 6.59514 -5.524265) (end 7.1598 -5.201899)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 4255f015-055b-4a34-aea0-f3f854383eb0))
|
||||
(fp_arc (start 6.006487 5.800397) (mid 4.175 7.231312) (end 2.020048 8.101969)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 8bf2f2a8-094b-4462-883e-6d65f7036809))
|
||||
(fp_arc (start 6.350783 -4.614114) (mid 7.376587 -2.684858) (end 7.830878 -0.547588)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp b7d55476-36cb-429d-a94e-3eaa456cdf08))
|
||||
(fp_arc (start 6.350783 4.614114) (mid 6.202738 5.214251) (end 6.006487 5.800397)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 84e4a8f7-28d0-4275-a664-c98f75e47676))
|
||||
(fp_arc (start 6.366157 -6.147727) (mid 6.978144 -5.845488) (end 7.564309 -5.495792)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 20420b3c-4a69-4c18-a8ca-afd34f83e3b5))
|
||||
(fp_arc (start 6.366157 6.147727) (mid 4.425 7.664325) (end 2.141009 8.587117)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e493dcd8-2b40-4be4-8aa1-54d56777fec7))
|
||||
(fp_arc (start 6.725827 -6.495056) (mid 7.361144 -6.166727) (end 7.968817 -5.789685)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 40b56914-472f-4907-bb29-9397caedffcb))
|
||||
(fp_arc (start 6.725827 6.495056) (mid 4.675 8.097338) (end 2.26197 9.072265)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 722081df-22e2-4c12-a4ab-4c5fbd33a754))
|
||||
(fp_arc (start 6.755292 -4.908007) (mid 7.846433 -2.855868) (end 8.32966 -0.582467)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1666794c-36b9-4ccd-96ed-113f531910dd))
|
||||
(fp_arc (start 6.755292 4.908007) (mid 6.585571 5.535666) (end 6.366157 6.147727)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 50cffe0f-3ce2-4c34-a345-6b230fbc94ff))
|
||||
(fp_arc (start 7.085497 -6.842385) (mid 7.74414 -6.487978) (end 8.373326 -6.083577)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 07ae52d6-3860-4d06-b689-e87dbd9d4a76))
|
||||
(fp_arc (start 7.085497 6.842385) (mid 4.925 8.53035) (end 2.382931 9.557413)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5b9b3220-e7a8-4536-b98d-268654e7d176))
|
||||
(fp_arc (start 7.1598 -5.201899) (mid 8.316279 -3.026878) (end 8.828442 -0.617345)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 478983ab-639d-433f-b435-98675b54f4c6))
|
||||
(fp_arc (start 7.1598 5.201899) (mid 6.968422 5.857072) (end 6.725827 6.495056)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp d4d1bace-8bb7-4ac9-829c-00e426f04f92))
|
||||
(fp_arc (start 7.445167 -7.189714) (mid 8.127138 -6.809248) (end 8.777834 -6.37747)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 27fff3c2-4f42-406e-a2b8-154f97adc093))
|
||||
(fp_arc (start 7.445167 7.189714) (mid 5.175 8.963363) (end 2.503892 10.042561)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp c1da1655-2454-431b-8922-6d8343bfba4e))
|
||||
(fp_arc (start 7.564309 -5.495792) (mid 8.786126 -3.197888) (end 9.327224 -0.652223)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 6ba57556-b139-4619-b93a-0f298e4a80ee))
|
||||
(fp_arc (start 7.564309 5.495792) (mid 7.351289 6.178471) (end 7.085497 6.842385)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 299377fd-ec65-461a-88a8-608bd0e8d270))
|
||||
(fp_arc (start 7.804837 -7.537043) (mid 8.51013 -7.130523) (end 9.182343 -6.671363)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 1db3418e-9374-409f-b8b7-a2f1e42b99a7))
|
||||
(fp_arc (start 7.804837 7.537043) (mid 5.425 9.396375) (end 2.624853 10.527709)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5b9a80b0-77fe-45ab-b490-53cc9b2bb9d3))
|
||||
(fp_arc (start 7.830878 -0.547588) (mid 8.103227 0.007306) (end 8.32966 0.582467)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 20f1ea7e-47c5-4bcd-97bf-6018093f0ffb))
|
||||
(fp_arc (start 7.830878 0.547588) (mid 7.376587 2.684858) (end 6.350783 4.614114)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 92b0fc81-15d2-4e36-85e2-c97d6db35647))
|
||||
(fp_arc (start 7.968817 -5.789685) (mid 9.255972 -3.368898) (end 9.826006 -0.687101)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp bfcd8ed8-700d-469b-b952-bebebfd5dec7))
|
||||
(fp_arc (start 7.968817 5.789685) (mid 7.734169 6.499865) (end 7.445167 7.189714)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 17c5c843-9d5d-4802-b669-9643cd60c6f9))
|
||||
(fp_arc (start 8.164507 -7.884373) (mid 8.893125 -7.451812) (end 9.586851 -6.965255)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 6a671f88-eb75-409f-8869-5f6e95fb23d5))
|
||||
(fp_arc (start 8.164507 7.884373) (mid 5.675 9.829388) (end 2.745814 11.012856)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f994c6d8-59ef-42f1-abb3-22a50e6588bf))
|
||||
(fp_arc (start 8.32966 -0.582467) (mid 8.603095 0.007443) (end 8.828442 0.617345)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp decd2c18-79b9-4e22-bda2-9b79ea5244f4))
|
||||
(fp_arc (start 8.32966 0.582467) (mid 7.846433 2.855868) (end 6.755292 4.908007)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 58a8c6b9-f70e-40d1-b4d2-9ccfe33a201c))
|
||||
(fp_arc (start 8.373326 -6.083577) (mid 9.725818 -3.539909) (end 10.324788 -0.72198)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 10043c7e-2aa4-48c6-8622-0e6e5b990e9e))
|
||||
(fp_arc (start 8.373326 6.083577) (mid 8.117061 6.821254) (end 7.804837 7.537043)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e18de31d-79bf-46dd-9e75-7a532f703e8c))
|
||||
(fp_arc (start 8.524177 -8.231702) (mid 9.276118 -7.773108) (end 9.99136 -7.259148)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 8c0c56f3-842e-4848-92aa-ffee2881faae))
|
||||
(fp_arc (start 8.524177 8.231702) (mid 5.925 10.262402) (end 2.866774 11.498004)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 047cb941-bf8d-422f-bda3-dc288a194e86))
|
||||
(fp_arc (start 8.777834 -6.37747) (mid 10.195665 -3.710919) (end 10.82357 -0.756858)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f2ddad53-1063-4c37-ac37-ae19f645fc20))
|
||||
(fp_arc (start 8.777834 6.37747) (mid 8.499963 7.14264) (end 8.164507 7.884373)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5ea726b9-f086-40fa-8b97-138d4550e249))
|
||||
(fp_arc (start 8.828442 -0.617345) (mid 9.102971 0.007563) (end 9.327224 0.652223)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp f9a61d9a-4bfe-4783-b914-ad05ae5d6b94))
|
||||
(fp_arc (start 8.828442 0.617345) (mid 8.31628 3.026878) (end 7.1598 5.201899)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 02379b64-2304-40c8-9412-6f69bd99f38e))
|
||||
(fp_arc (start 8.883847 8.579031) (mid 6.175 10.695414) (end 2.987735 11.983152)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp fbe23968-3de7-40b6-b07b-09d29a05a4cb))
|
||||
(fp_arc (start 9.182343 -6.671363) (mid 10.665511 -3.881929) (end 11.322352 -0.791736)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 914b190a-77ad-49f4-bfe8-9151376a1a6d))
|
||||
(fp_arc (start 9.182343 6.671363) (mid 8.882876 7.464025) (end 8.524177 8.231702)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp af70cf0b-6afb-4f4f-b9dc-32c7c7b867b0))
|
||||
(fp_arc (start 9.327224 -0.652223) (mid 9.602857 0.007666) (end 9.826006 0.687101)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 50db6715-71d0-4cb6-a9ac-c0d1f2fe8ef0))
|
||||
(fp_arc (start 9.327224 0.652223) (mid 8.786126 3.197888) (end 7.564309 5.495792)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 82b70219-a76c-4efe-8b57-23e41036b6f8))
|
||||
(fp_arc (start 9.586851 -6.965255) (mid 11.135358 -4.052939) (end 11.821134 -0.826614)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 9409874d-a1e6-4dcd-ac39-c06f864babf4))
|
||||
(fp_arc (start 9.586851 6.965255) (mid 9.265797 7.785407) (end 8.883847 8.579031)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 04501c67-90d2-4d15-8902-7b5b0e333ea1))
|
||||
(fp_arc (start 9.826006 -0.687101) (mid 10.102752 0.007757) (end 10.324788 0.72198)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp b512dde2-9609-4bb1-8ce4-3882fa550493))
|
||||
(fp_arc (start 9.826006 0.687101) (mid 9.255972 3.368898) (end 7.968817 5.789685)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 7a9e210e-12fa-4a00-bae9-a6f9df50486f))
|
||||
(fp_arc (start 9.99136 -7.259148) (mid 11.605204 -4.223949) (end 12.319916 -0.861492)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 3309510a-73c2-42e0-b0bd-46a0848e44d5))
|
||||
(fp_arc (start 10.324788 -0.72198) (mid 10.602647 0.007837) (end 10.82357 0.756858)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 5bd9c743-6d02-4144-993d-ea03ff11e32c))
|
||||
(fp_arc (start 10.324788 0.72198) (mid 9.725819 3.539909) (end 8.373326 6.083577)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 969bd48d-a9a3-4d7a-b185-c41f7e92e3d1))
|
||||
(fp_arc (start 10.82357 -0.756858) (mid 11.102551 0.007908) (end 11.322352 0.791736)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 66395571-98e3-47da-b960-607a95a94b5b))
|
||||
(fp_arc (start 10.82357 0.756858) (mid 10.195665 3.710919) (end 8.777834 6.37747)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp a4af5201-f383-46b7-b6ba-23aad6c71a35))
|
||||
(fp_arc (start 11.322352 -0.791736) (mid 11.602459 0.007972) (end 11.821134 0.826614)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp e2b7346e-a4e2-43ae-8a89-72fd4f776625))
|
||||
(fp_arc (start 11.322352 0.791736) (mid 10.665511 3.881929) (end 9.182343 6.671363)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 89f5c538-dbcd-4c87-b722-61b203af05fd))
|
||||
(fp_arc (start 11.821134 -0.826614) (mid 12.102375 0.008028) (end 12.319916 0.861492)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp af2d3eab-eae3-43e9-a0d7-1ae3de8c499c))
|
||||
(fp_arc (start 11.821134 0.826614) (mid 11.135359 4.052939) (end 9.586851 6.965255)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 948b8c10-7e47-4e6d-9fb4-6f743723c834))
|
||||
(fp_arc (start 12.319916 0.861492) (mid 11.605204 4.223949) (end 9.99136 7.259148)
|
||||
(stroke (width 0.3) (type default)) (layer "F.Cu") (tstamp 526189a3-d46d-48a5-87ce-45177210d49d))
|
||||
(fp_line (start -12.015771 -3.445467) (end -7.0343 -3.131872)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp 4dfb6faa-f1dd-4c13-9a19-6e8ca2965d77))
|
||||
(fp_line (start -11.419318 5.084208) (end -7.401715 2.122408)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp af26be84-9b91-4ce0-a95e-6fe8a4e8bea9))
|
||||
(fp_line (start -6.989911 -10.36297) (end -3.375458 -6.920714)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp 6b6125ce-027b-4338-83c0-2ef34516dd75))
|
||||
(fp_line (start -5.479639 11.234926) (end -4.305785 6.383589)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp 404f11b1-2c42-4644-96e7-bd01958ab1f7))
|
||||
(fp_line (start 1.306606 -12.431524) (end 1.862799 -7.471277)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp e8feae16-6377-4993-b776-3333f3942231))
|
||||
(fp_line (start 3.024024 12.128697) (end 0.804869 7.657819)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp dcced2eb-3e6e-4d8a-bd7d-b0c1da05bff1))
|
||||
(fp_line (start 8.991748 -8.68323) (end 6.229431 -4.525946)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp 536e70fe-196b-4b65-ae1d-2595ce932c4f))
|
||||
(fp_line (start 10.112712 7.347316) (end 5.538916 5.348869)
|
||||
(stroke (width 0.3) (type default)) (layer "B.Cu") (tstamp 858b212a-2abb-46f5-a21f-203f9d406e87))
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp 6c8fa2a5-a478-40a9-97f4-50b5aacc217f)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd circle (at 12.469551 -0.871956) (size 0.3 0.3) (layers "F.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 8cd0bf25-35de-4228-8d90-937ff64879a6)
|
||||
)
|
||||
(pad "2" smd circle (at 7.681243 0.537125) (size 0.3 0.3) (layers "F.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 663fd2a9-ccdb-4dc3-98e5-f920ac0c88da)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -12.015771 -3.445467) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 744de119-b4e2-4891-9b87-86e3e7e0d541)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -11.419318 5.084208) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp baf93bf6-3fdb-42cd-ad23-17b834c8835a)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -7.401715 2.122408) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 343c8edf-267c-40e8-8f34-9beb07bfcd41)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -7.0343 -3.131872) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 3a346c83-8adc-4449-9a6b-c2a39d4a5bc0)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -6.989911 -10.36297) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp a8b1a947-293e-451e-8aeb-4828cf1483bb)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -5.479639 11.234926) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 71debb63-2e1d-4be0-af77-4260bbd93d82)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -4.305785 6.383589) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 07ccdd0f-3e24-49e5-9806-8c824a100ae6)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at -3.375458 -6.920714) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 32fdf4e8-94fd-48f3-b6fa-5674e2eb9af3)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 0.804869 7.657819) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 863582ff-e798-4af4-8fbc-29f6c60c4211)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 1.306606 -12.431524) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp e33f711b-d661-4ff3-966c-ab759c06c9cc)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 1.862799 -7.471277) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp f668767f-8e19-4ef3-a930-6599dfe74a74)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 3.024024 12.128697) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 21973359-2fa3-4372-8ed5-181dd8be354c)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 5.538916 5.348869) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp c5fdedcc-1674-4281-846d-859f55a930f0)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 6.229431 -4.525946) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp f5d1a3b8-b172-4dea-8e73-13349916ff99)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 7.681243 0.537125) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 09f1ae60-b808-40b6-a8d2-a6f37b291817)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 8.991748 -8.68323) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp 3d0dd932-1ee3-46a9-b70a-28f48cbb9e2f)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 10.112712 7.347316) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp c0b6b4f7-d31a-4ab5-827a-0b44f28b9e2e)
|
||||
)
|
||||
(pad "NC" thru_hole circle (at 12.469551 -0.871956) (size 0.6 0.6) (drill 0.3) (layers "F&B.Cu")
|
||||
(clearance 0.2) (zone_connect 0) (thermal_bridge_width 0.5)
|
||||
(tstamp c53d3ffe-86b8-448d-9350-320dd3b757fd)
|
||||
)
|
||||
(zone (net 0) (net_name "") (layers "*.Cu") (tstamp df7e1b52-b61b-4b2f-9f2b-b72795adae37) (hatch edge 0.5)
|
||||
(connect_pads (clearance 0))
|
||||
(min_thickness 0.254) (filled_areas_thickness no)
|
||||
(keepout (tracks allowed) (vias allowed) (pads allowed) (copperpour not_allowed) (footprints allowed))
|
||||
(fill (thermal_gap 0.508) (thermal_bridge_width 0.508))
|
||||
(polygon
|
||||
(pts
|
||||
(xy 17.5 0)
|
||||
(xy 17.304539 2.60824)
|
||||
(xy 16.722524 5.158216)
|
||||
(xy 15.766955 7.592965)
|
||||
(xy 14.459179 9.858101)
|
||||
(xy 12.828408 11.903023)
|
||||
(xy 10.911072 13.682051)
|
||||
(xy 8.75 15.155445)
|
||||
(xy 6.393468 16.290291)
|
||||
(xy 3.894116 17.061238)
|
||||
(xy 1.307777 17.451066)
|
||||
(xy -1.307777 17.451066)
|
||||
(xy -3.894116 17.061238)
|
||||
(xy -6.393468 16.290291)
|
||||
(xy -8.75 15.155445)
|
||||
(xy -10.911072 13.682051)
|
||||
(xy -12.828408 11.903023)
|
||||
(xy -14.459179 9.858101)
|
||||
(xy -15.766955 7.592965)
|
||||
(xy -16.722524 5.158216)
|
||||
(xy -17.304539 2.60824)
|
||||
(xy -17.5 0)
|
||||
(xy -17.304539 -2.60824)
|
||||
(xy -16.722524 -5.158216)
|
||||
(xy -15.766955 -7.592965)
|
||||
(xy -14.459179 -9.858101)
|
||||
(xy -12.828408 -11.903023)
|
||||
(xy -10.911072 -13.682051)
|
||||
(xy -8.75 -15.155445)
|
||||
(xy -6.393468 -16.290291)
|
||||
(xy -3.894116 -17.061238)
|
||||
(xy -1.307777 -17.451066)
|
||||
(xy 1.307777 -17.451066)
|
||||
(xy 3.894116 -17.061238)
|
||||
(xy 6.393468 -16.290291)
|
||||
(xy 8.75 -15.155445)
|
||||
(xy 10.911072 -13.682051)
|
||||
(xy 12.828408 -11.903023)
|
||||
(xy 14.459179 -9.858101)
|
||||
(xy 15.766955 -7.592965)
|
||||
(xy 16.722524 -5.158216)
|
||||
(xy 17.304539 -2.60824)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
34
footprints.pretty/mesh_conn.kicad_mod
Normal file
34
footprints.pretty/mesh_conn.kicad_mod
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
(footprint "mesh_conn" (version 20230620) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**" (at 0 -2.25 0 unlocked) (layer "F.SilkS") hide (tstamp ad4f86a6-c40a-45de-9755-536816782561)
|
||||
(effects (font (size 1 1) (thickness 0.1)))
|
||||
)
|
||||
(property "Value" "mesh_conn" (at 0 1 0 unlocked) (layer "F.Fab") (tstamp e87da325-b358-40c2-9a7c-2bf2cb54bc3f)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 1a4151b5-9c45-483f-b7de-b3c48b0e0373)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Datasheet" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 3a2afd89-4c34-4a0b-a3cc-24800fe97f31)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(property "Description" "" (at 0 0 0 unlocked) (layer "F.Fab") hide (tstamp 5f1f1696-4799-4134-b64d-57be44267fde)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(attr smd)
|
||||
(fp_text user "${REFERENCE}" (at 0 2.5 0 unlocked) (layer "F.Fab") (tstamp f741b3b8-fc10-442d-8f89-4dd2860f992f)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(pad "1" smd circle (at 0 -0.45) (size 0.15 0.15) (layers "F.Cu")
|
||||
(tstamp e65c026b-a582-481d-aa0f-83da4e05e52b)
|
||||
)
|
||||
(pad "2" smd circle (at 0 -0.15) (size 0.15 0.15) (layers "F.Cu")
|
||||
(tstamp 4adac25c-6de4-4cdf-b81d-79aadd631463)
|
||||
)
|
||||
(pad "3" smd circle (at 0 0.15) (size 0.15 0.15) (layers "F.Cu")
|
||||
(tstamp 80b9cf1e-76d6-499a-8d4a-c27e4b29a23a)
|
||||
)
|
||||
(pad "4" smd circle (at 0 0.45) (size 0.15 0.15) (layers "F.Cu")
|
||||
(tstamp 6911242a-667c-4407-8e79-6ac9c5f4704c)
|
||||
)
|
||||
)
|
||||
88516
fp-info-cache
Normal file
88516
fp-info-cache
Normal file
File diff suppressed because it is too large
Load diff
7
fp-lib-table
Normal file
7
fp-lib-table
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(fp_lib_table
|
||||
(version 7)
|
||||
(lib (name "footprints")(type "KiCad")(uri "${KIPRJMOD}/footprints.pretty")(options "")(descr ""))
|
||||
(lib (name "Package_CSP")(type "KiCad")(uri "/home/jaseg/ref/kicad-footprint-generator/scripts/Packages/Package_BGA/Package_CSP.pretty")(options "")(descr ""))
|
||||
(lib (name "Package_BGA")(type "KiCad")(uri "/home/jaseg/ref/kicad-footprint-generator/scripts/Packages/Package_BGA/Package_BGA.pretty")(options "")(descr ""))
|
||||
(lib (name "balancing-footprints")(type "KiCad")(uri "${KIPRJMOD}/balancing-footprints.pretty")(options "")(descr ""))
|
||||
)
|
||||
43
layout_radial.py
Normal file
43
layout_radial.py
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
import math
|
||||
|
||||
import gerbonara.cad.kicad.pcb as pcb
|
||||
|
||||
|
||||
r = 85
|
||||
cx, cy = 150, 100
|
||||
|
||||
|
||||
si_prefixes = {'k': 1e3, 'M': 1e6, 'G': 1e9, 'm': 1e-3, 'u': 1e-6, 'µ': 1e-6, 'n': 1e-9, 'p': 1e-12, '.': 1, 'r': 1}
|
||||
def parse_si(s, unit=''):
|
||||
if not (match := re.fullmatch(f'([0-9]*)(([.pPnNuUµmrRkKMgG])([0-9]*))?([pPnNuUµmrRkKMgG]?)({unit})?', s)):
|
||||
raise ValueError(f'{s} is not a valid number with an SI prefix')
|
||||
|
||||
left, _1, dot, right, prefix, _unit = match.groups()
|
||||
prefix = prefix or dot or '.'
|
||||
multiplier = si_prefixes.get(prefix, si_prefixes.get(prefix.upper(), si_prefixes.get(prefix.lower())))
|
||||
|
||||
return float(f'{left}.{right or ""}0') * multiplier
|
||||
|
||||
|
||||
b = pcb.Board.open('self-balancing-test-a.kicad_pcb.bak')
|
||||
|
||||
matches = list(b.find_footprints(name='Package_TO_SOT_SMD:SOT-23', sheetfile='resistor_bank.kicad_sch'))
|
||||
for i, fp in enumerate(matches):
|
||||
alpha = 2*math.pi * i/len(matches)
|
||||
fp.at.x, fp.at.y = cx+r, cy
|
||||
fp.rotate(alpha, cx, cy)
|
||||
|
||||
res1, res2 = fp.pads_by_number[3].find_connected(name='Resistor_SMD.*')
|
||||
if parse_si(res1.property_value('Value')) > parse_si(res2.property_value('Value')):
|
||||
res1, res2 = res2, res1
|
||||
|
||||
res1.at.x, res1.at.y = cx+r+5, cy+2
|
||||
res2.at.x, res2.at.y = cx+r+5, cy-2
|
||||
|
||||
res1.rotate(alpha, cx, cy)
|
||||
res2.rotate(alpha, cx, cy)
|
||||
|
||||
b.write('self-balancing-test-a.testout.kicad_pcb')
|
||||
324
moment_of_inertia.py
Normal file
324
moment_of_inertia.py
Normal file
|
|
@ -0,0 +1,324 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
import math
|
||||
import shutil
|
||||
import subprocess
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
from gerbonara import LayerStack
|
||||
from gerbonara.utils import setup_svg, Tag, MM, rotate_point
|
||||
import gerbonara.cad.kicad.pcb as pcb
|
||||
from PIL import Image
|
||||
import click
|
||||
import shapely
|
||||
import numpy as np
|
||||
from scipy.optimize import minimize
|
||||
|
||||
# Default density according to https://www.avx.com/docs/techinfo/CeramicCapacitors/yngsmodu.pdf
|
||||
density_x7r = 5.8 # g/cm^3
|
||||
# Default density according to https://en.wikipedia.org/wiki/FR-4
|
||||
density_fr4 = 1.850 # g/cm^3
|
||||
|
||||
density_copper = 8.96 # g/cm^3
|
||||
|
||||
def volume_mass(w:'mm', l:'mm', density:'g/cm^3', thickness:'mm'=None):
|
||||
""" Calculate approximate mass of a component of a given size. When no thickness is given, thickness = width is
|
||||
assumed. Lengths are in mm, density in g/cm^3 and the result will be in mg. """
|
||||
thickness = thickness or w
|
||||
return w*l*thickness * 1e-3 * density * 1e3
|
||||
|
||||
# masses for some common components in mg
|
||||
# approximate! Especially for capacitors, there can be significant differences between component height (and thus mass)
|
||||
# for parts with the same footprint.
|
||||
common_masses = {
|
||||
'C_0201_0603Metric': volume_mass(0.3, 0.6, density_x7r),
|
||||
'C_0402_1005Metric': volume_mass(0.5, 1.0, density_x7r),
|
||||
'C_0603_1608Metric': volume_mass(0.8, 1.5, density_x7r),
|
||||
'C_0805_2012Metric': volume_mass(1.3, 2.0, density_x7r),
|
||||
'C_1206_3216Metric': volume_mass(1.5, 3.0, density_x7r),
|
||||
'C_1210_3225Metric': volume_mass(2.5, 3.2, density_x7r),
|
||||
# Resistor masses from https://www.vishay.com/docs/20035/dcrcwe3.pdf
|
||||
'R_0402_1005Metric': 0.65,
|
||||
'R_0603_1608Metric': 2.0,
|
||||
'R_0805_2012Metric': 5.5,
|
||||
'R_1206_3216Metric': 10,
|
||||
}
|
||||
|
||||
|
||||
def angle_difference(a, b):
|
||||
return (b - a) % (2*math.pi) - math.pi
|
||||
|
||||
def parse_mass(s):
|
||||
if not (m := re.match(r'^([0-9.,]*)([mkuµ]?)[g]?', s)):
|
||||
raise ValueError(f'Invalid mass "{s}"')
|
||||
si_prefix = {'m': 1e-3, 'u': 1e-6, 'µ': 1e-6, 'k': 1e3}
|
||||
return float(m.group(1)) * si_prefix.get(m.group(2), 1)
|
||||
|
||||
|
||||
def get_pixel_size(img, phys_w, phys_h):
|
||||
px_w, px_h = img.size
|
||||
pixel_size_x, pixel_size_y = phys_w/px_w, phys_h/px_h
|
||||
assert math.isclose(pixel_size_x, pixel_size_y, rel_tol=1e-2, abs_tol=0.05)
|
||||
return (pixel_size_x + pixel_size_y) / 2
|
||||
|
||||
|
||||
def pixel_inertia(svg, phys_w, phys_h, phys_x0, phys_y0, area_density):
|
||||
with tempfile.NamedTemporaryFile(suffix='.png') as tmp_png:
|
||||
tmp_png = Path(tmp_png.name)
|
||||
|
||||
subprocess.run(['resvg', '--background', 'white', str(svg), str(tmp_png)], check=True)
|
||||
with Image.open(tmp_png) as img:
|
||||
pixel_size = get_pixel_size(img, phys_w, phys_h) # [m]
|
||||
px_w, px_h = img.size
|
||||
img = 1 - np.array(img.convert('L'), dtype=float) / 255
|
||||
pixel_weight = pixel_size**2 * area_density # [g]
|
||||
img *= pixel_weight # [g]
|
||||
|
||||
tens_y = np.zeros(shape=(px_h, 3, 3))
|
||||
tens_x = np.zeros(shape=(px_w, 3, 3))
|
||||
mass_y = np.zeros(px_h)
|
||||
mass_x = np.zeros(px_w)
|
||||
com_y = np.zeros(shape=(px_h, 2))
|
||||
com_x = np.zeros(shape=(px_w, 2))
|
||||
|
||||
for y in range(px_h):
|
||||
for x in range(px_w):
|
||||
m = img[y, x]
|
||||
x_phys = (x + 0.5) * pixel_size - phys_x0 # [m]
|
||||
y_phys = (y + 0.5) * pixel_size - phys_y0 # [m]
|
||||
|
||||
tens_x[x][0,0] = m * y_phys**2
|
||||
tens_x[x][1,1] = m * x_phys**2
|
||||
tens_x[x][2,2] = m * x_phys**2 + y_phys**2
|
||||
tens_x[x][0,1] = tens_x[x][1,0] = m * x_phys * y_phys
|
||||
|
||||
mass_x[x] = m
|
||||
|
||||
com_x[x] = (x_phys*m, y_phys*m)
|
||||
|
||||
tens_y[y] = tens_x.sum(axis=0)
|
||||
mass_y[y] = mass_x.sum()
|
||||
com_y[y] = com_x.sum(axis=0)
|
||||
|
||||
tens_solder = tens_y.sum(axis=0)
|
||||
mass_solder = mass_y.sum()
|
||||
center_of_mass = com_y.sum(axis=0) / mass_solder
|
||||
return mass_solder, center_of_mass, tens_solder
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.argument('kicad_pcb', type=click.Path(file_okay=True, dir_okay=False, path_type=Path))
|
||||
@click.argument('gerber', type=click.Path(file_okay=False, dir_okay=True, path_type=Path))
|
||||
@click.argument('pcb_out', required=False, type=click.Path(file_okay=True, dir_okay=False, path_type=Path))
|
||||
@click.option('--board-thickness', type=float, default=0.75, help='PCB thickness in mm')
|
||||
@click.option('--fr4-density', type=float, default=density_fr4, help='FR-4 density in g/cm^3')
|
||||
@click.option('--stencil-thickness', type=float, default=0.125, help='Stencil thickness in mm')
|
||||
@click.option('--copper-thickness', type=float, default=35, help='Stencil thickness in µm')
|
||||
# Default solder paste density from:
|
||||
# - https://www.kester.com/Portals/0/Documents/Knowledge%20Base/Calculating%20Solder%20Paste%20Volume%20Percent.pdf
|
||||
# - http://www.chipquik.com/datasheets/SMD291SNL10.pdf
|
||||
@click.option('--solder-paste-density', type=float, default=4.2, help='Solder paste density in g/cm^3')
|
||||
@click.option('--solder-paste-metal-content', type=float, default=87.0, help='Solder paste metal content by weight in percent. The default value is for Chipquik SMD291SNL lead-free SAC305 solder paste.')
|
||||
def analyze_board(kicad_pcb, gerber, pcb_out, board_thickness, fr4_density, stencil_thickness, copper_thickness, solder_paste_density, solder_paste_metal_content):
|
||||
board = pcb.Board.open(kicad_pcb)
|
||||
stack = LayerStack.open(gerber)
|
||||
print()
|
||||
|
||||
(min_x, min_y), (max_x, max_y) = bounds = stack.outline.bounding_box(MM, default=((0, 0), (0, 0)))
|
||||
phys_w, phys_h = (max_x-min_x)/1e3, (max_y-min_y)/1e3 # [m]
|
||||
# Gerber flips the image Y axis compared to pillow and other modern computer graphics
|
||||
phys_x0, phys_y0 = -min_x/1e3, max_y/1e3 # [m]
|
||||
stencil_thickness /= 1e3 # [m]
|
||||
solder_paste_density *= 1e6 / 1e3 # [kg/m^3]
|
||||
solder_paste_metal_content /= 100 # [1]
|
||||
board_thickness /= 1e3 # [m]
|
||||
copper_thickness /= 1e6 # [m]
|
||||
fr4_density *= 1e6 / 1e3 # [kg/m^3]
|
||||
|
||||
with tempfile.NamedTemporaryFile(suffix='.svg') as tmp_svg:
|
||||
tmp_svg = Path(tmp_svg.name)
|
||||
tmp_svg.write_text(str(stack['top paste'].to_svg(force_bounds=bounds)))
|
||||
|
||||
area_density = stencil_thickness * solder_paste_density * solder_paste_metal_content # [kg/m^2]
|
||||
solder_mass, solder_center_of_mass, solder_tens = pixel_inertia(tmp_svg, phys_w, phys_h, phys_x0, phys_y0, area_density)
|
||||
|
||||
print(f'Solder mass: {solder_mass*1e6:.3f} mg')
|
||||
print(f'Solder inertia:\n', solder_tens)
|
||||
print(f'Solder center of mass: {solder_center_of_mass[0]*1e3:.3f}, {solder_center_of_mass[1]*1e3:.3f} mm')
|
||||
print()
|
||||
|
||||
with tempfile.NamedTemporaryFile(suffix='.svg') as tmp_svg:
|
||||
tmp_svg = Path(tmp_svg.name)
|
||||
|
||||
volume_density = density_copper * 1e6 / 1e3 # [kg/m^3]
|
||||
area_density = copper_thickness * volume_density # [kg/m^2]
|
||||
|
||||
tmp_svg.write_text(str(stack['top copper'].to_svg(force_bounds=bounds)))
|
||||
top_copper_mass, top_copper_center_of_mass, top_copper_tens = pixel_inertia(tmp_svg, phys_w, phys_h, phys_x0, phys_y0, area_density)
|
||||
|
||||
tmp_svg.write_text(str(stack['bottom copper'].to_svg(force_bounds=bounds)))
|
||||
bottom_copper_mass, bottom_copper_center_of_mass, bottom_copper_tens = pixel_inertia(tmp_svg, phys_w, phys_h, phys_x0, phys_y0, area_density)
|
||||
|
||||
copper_mass = top_copper_mass + bottom_copper_mass
|
||||
copper_center_of_mass = (top_copper_center_of_mass * top_copper_mass +
|
||||
bottom_copper_center_of_mass * bottom_copper_mass) / copper_mass
|
||||
copper_tens = top_copper_tens + bottom_copper_tens
|
||||
|
||||
print(f'Copper mass: {copper_mass*1e3:.3f} g')
|
||||
print(f'Copper inertia:\n', copper_tens)
|
||||
print(f'Copper center of mass: {copper_center_of_mass[0]*1e3:.3f}, {copper_center_of_mass[1]*1e3:.3f} mm')
|
||||
print()
|
||||
|
||||
with tempfile.NamedTemporaryFile(suffix='.svg') as tmp_svg:
|
||||
tmp_svg = Path(tmp_svg.name)
|
||||
path = Tag('path', d=stack.outline_svg_d(), fill='black')
|
||||
tmp_svg.write_text(str(setup_svg([path], bounds)))
|
||||
|
||||
area_density = board_thickness * fr4_density # [kg/m^2]
|
||||
fr4_mass, fr4_center_of_mass, fr4_tens = pixel_inertia(tmp_svg, phys_w, phys_h, phys_x0, phys_y0, area_density)
|
||||
|
||||
print(f'FR-4 mass: {fr4_mass*1e3:.3f} g')
|
||||
print(f'FR-4 inertia:\n', fr4_tens)
|
||||
print(f'FR-4 center of mass: {fr4_center_of_mass[0]*1e3:.3f}, {fr4_center_of_mass[1]*1e3:.3f} mm')
|
||||
print()
|
||||
|
||||
component_mass = np.zeros(len(board.footprints))
|
||||
component_tens = np.zeros(shape=(len(board.footprints), 3, 3))
|
||||
component_com = np.zeros(shape=(len(board.footprints), 2))
|
||||
for i, fp in enumerate(board.footprints):
|
||||
if (m := fp.property_value('mass', None)):
|
||||
m = parse_mass(m) / 1e3
|
||||
|
||||
else:
|
||||
for key, value in common_masses.items():
|
||||
if key in fp.name:
|
||||
m = value/1e6 # [kg]
|
||||
break
|
||||
else:
|
||||
m = 0
|
||||
|
||||
x, y = fp.at.x, fp.at.y # [mm]
|
||||
x -= board.setup.aux_axis_origin.x
|
||||
y -= board.setup.aux_axis_origin.y
|
||||
x, y = x*1e-3, y*1e-3 # [m]
|
||||
|
||||
component_tens[i][0,0] = m * y**2
|
||||
component_tens[i][1,1] = m * x**2
|
||||
component_tens[i][2,2] = m * x**2 + y**2
|
||||
component_tens[i][0,1] = component_tens[i][1,0] = m * x * y
|
||||
|
||||
component_mass[i] = m
|
||||
|
||||
component_com[i] = (m*x, m*y)
|
||||
|
||||
component_mass = component_mass.sum()
|
||||
component_tens = component_tens.sum(axis=0)
|
||||
component_center_of_mass = component_com.sum(axis=0) / component_mass
|
||||
|
||||
print(f'Component mass: {component_mass*1e3:.3f} g')
|
||||
print(f'Component inertia:\n', component_tens)
|
||||
print(f'Component center of mass: {component_center_of_mass[0]*1e3:.3f}, {component_center_of_mass[1]*1e3:.3f} mm')
|
||||
print()
|
||||
|
||||
total_mass = fr4_mass + solder_mass + component_mass + copper_mass
|
||||
total_tens = fr4_tens + solder_tens + component_tens + copper_tens
|
||||
total_center_of_mass = (
|
||||
fr4_center_of_mass * fr4_mass +
|
||||
solder_center_of_mass * solder_mass +
|
||||
component_center_of_mass * component_mass +
|
||||
copper_center_of_mass * copper_mass) / total_mass
|
||||
imbalance_angle = math.atan2(*total_center_of_mass[::-1])
|
||||
print(f'Total mass: {total_mass*1e3:.3f} g')
|
||||
print(f'Total inertia:\n', total_tens)
|
||||
print(f'Total center of mass: {total_center_of_mass[0]*1e3:.3f}, {total_center_of_mass[1]*1e3:.3f} mm')
|
||||
print(f'Imbalance angle: {math.degrees(imbalance_angle):.2f} °')
|
||||
print(f'Imbalance radius: {math.hypot(*total_center_of_mass)*1e3:.2f} mm')
|
||||
print()
|
||||
|
||||
if not pcb_out: # No auto-balancing requested
|
||||
return
|
||||
|
||||
volume_density = density_copper * 1e6 / 1e3 # [kg/m^3]
|
||||
area_density = copper_thickness * volume_density # [kg/m^2]
|
||||
|
||||
balancing_pads = []
|
||||
for fp in board.footprints:
|
||||
if not fp.name.startswith('balancing-footprints:bal-'):
|
||||
continue
|
||||
fp_x, fp_y = fp.at.x - board.setup.aux_axis_origin.x, fp.at.y - board.setup.aux_axis_origin.y
|
||||
fp_x, fp_y = fp_x*1e-3, fp_y*1e-3 # [m]
|
||||
fp_rot = math.radians(fp.at.rotation or 0)
|
||||
|
||||
for pad in fp.pads:
|
||||
if pad.shape not in (pcb.Atom.rect, pcb.Atom.circle):
|
||||
print(f'Pad {pad.numebr} of balancing footprint {fp.get_property("Reference")} has unsupported pad shape {pad.shape}. Ignoring.')
|
||||
continue
|
||||
|
||||
x, y = pad.at.x, pad.at.y
|
||||
x, y = x*1e-3, y*1e-3 # [m]
|
||||
x, y = rotate_point(x, y, -fp_rot)
|
||||
x, y = x+fp_x, y+fp_y
|
||||
|
||||
a = math.atan2(y, x)
|
||||
a_diff = angle_difference(imbalance_angle, a)
|
||||
|
||||
|
||||
w, h = pad.size.x*1e-3, pad.size.y*1e-3 # [m]
|
||||
if pad.shape == pcb.Atom.rect:
|
||||
m = w*h*area_density
|
||||
else:
|
||||
m = max(w, h)**2 / 4 * math.pi * area_density
|
||||
|
||||
balancing_pads.append((pad, a, a_diff, x, y, w, h, m))
|
||||
|
||||
if not balancing_pads:
|
||||
print('Error: Cannot balance board: No balancing footprint instances found.')
|
||||
return
|
||||
|
||||
com_wo_bal_fps = total_center_of_mass * total_mass
|
||||
m_tot = total_mass
|
||||
for i, (pad, a, a_diff, x, y, w, h, m) in enumerate(balancing_pads):
|
||||
#print(f'Balancing footprint {i} at {x*1e3:.1f}, {y*1e3:.1f} mm')
|
||||
#print(f' angle: {math.degrees(a):.2f} °')
|
||||
#print(f' angle difference: {math.degrees(a_diff):.2f} °')
|
||||
#print(f' radius: {math.hypot(x, y)*1e3:.1f} mm')
|
||||
#print(f' weight: {m*1e6:.0f} mg')
|
||||
#print()
|
||||
|
||||
com_wo_bal_fps -= np.array([x, y]) * m
|
||||
m_tot -= m
|
||||
com_wo_bal_fps /= m_tot
|
||||
|
||||
def objective_function(x):
|
||||
xs = x
|
||||
total_com, m_bal = com_wo_bal_fps*m_tot, 0
|
||||
for i, (pad, a, a_diff, x, y, w, h, m) in enumerate(balancing_pads):
|
||||
m *= xs[i]
|
||||
total_com += np.array([x, y])*m
|
||||
m_bal += m
|
||||
total_com /= (m_tot + m_bal)
|
||||
|
||||
r = math.hypot(*total_com)
|
||||
#mean_change = 1 - xs.mean()
|
||||
|
||||
return r #+ mean_change * 1e-3
|
||||
|
||||
x0 = np.ones(len(balancing_pads))
|
||||
res = minimize(objective_function, x0, bounds=[(0.005, 1.0)]*len(x0), tol=1e-12)
|
||||
print(res)
|
||||
print(f'Residual imbalance radius: {objective_function(res.x)*1e3:.2f} mm')
|
||||
print('Adjusting balancing footprints:')
|
||||
for i, (pad, a, a_diff, x, y, w, h, m) in enumerate(balancing_pads):
|
||||
f = math.sqrt(res.x[i])
|
||||
pad.size.x *= f
|
||||
pad.size.y *= f
|
||||
print(f'[{i:> 3}] by {100-res.x[i]*100:> 6.2f} %', end=('\n' if i%4 == 3 else ' '))
|
||||
|
||||
board.write(pcb_out)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
analyze_board()
|
||||
|
||||
1849
pd_tia.kicad_sch
Normal file
1849
pd_tia.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
2021
resistor_bank.kicad_sch
Normal file
2021
resistor_bank.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
37992
self-balancing-test-a.kicad_pcb
Normal file
37992
self-balancing-test-a.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
77
self-balancing-test-a.kicad_prl
Normal file
77
self-balancing-test-a.kicad_prl
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"meta": {
|
||||
"filename": "self-balancing-test-a.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
604
self-balancing-test-a.kicad_pro
Normal file
604
self-balancing-test-a.kicad_pro
Normal file
|
|
@ -0,0 +1,604 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.09999999999999999,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.15,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"min_clearance": 0.25
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.7999999999999999,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.09999999999999999,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [],
|
||||
"via_dimensions": [],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [
|
||||
"footprints"
|
||||
],
|
||||
"pinned_symbol_libs": [
|
||||
"symbols"
|
||||
]
|
||||
},
|
||||
"meta": {
|
||||
"filename": "self-balancing-test-a.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "CSV",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"bom_settings": {
|
||||
"exclude_dnp": false,
|
||||
"fields_ordered": [
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Reference",
|
||||
"name": "Reference",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "Quantity",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Description",
|
||||
"name": "Description",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "DNP",
|
||||
"name": "DNP",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "LCSC",
|
||||
"name": "LCSC",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "digikey",
|
||||
"name": "digikey",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "mass",
|
||||
"name": "mass",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "mass_ref",
|
||||
"name": "mass_ref",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"name": "",
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"operating_point_overlay_i_precision": 3,
|
||||
"operating_point_overlay_i_range": "~A",
|
||||
"operating_point_overlay_v_precision": 3,
|
||||
"operating_point_overlay_v_range": "~V",
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"3046137d-98ba-4fe6-98da-3a8a74d99ad5",
|
||||
""
|
||||
],
|
||||
[
|
||||
"d9dd8301-3c73-4baa-ad63-b060d8ba6e6d",
|
||||
"PD_TIA"
|
||||
],
|
||||
[
|
||||
"9caf2a35-027f-42fd-9c5b-33991635f950",
|
||||
"PD_TIA2"
|
||||
],
|
||||
[
|
||||
"21ab36d5-c2b4-4e3c-9f31-39e788fe5b7f",
|
||||
"resistor_bank"
|
||||
],
|
||||
[
|
||||
"5efc82a9-23f3-49dc-b9bd-0d4e6ccdbeff",
|
||||
"resistor_bank1"
|
||||
],
|
||||
[
|
||||
"9165aeea-e5c9-4847-b386-ddb52c57fdca",
|
||||
"resistor_bank2"
|
||||
],
|
||||
[
|
||||
"91df35e2-6076-4ca0-8a79-437a67d41236",
|
||||
"resistor_bank3"
|
||||
],
|
||||
[
|
||||
"3618f925-efd9-4896-ac69-1f98eb774124",
|
||||
"resistor_bank4"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
14636
self-balancing-test-a.kicad_sch
Normal file
14636
self-balancing-test-a.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
4
sym-lib-table
Normal file
4
sym-lib-table
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(sym_lib_table
|
||||
(version 7)
|
||||
(lib (name "symbols")(type "KiCad")(uri "${KIPRJMOD}/symbols.kicad_sym")(options "")(descr ""))
|
||||
)
|
||||
1457
symbols.kicad_sym
Normal file
1457
symbols.kicad_sym
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue