From 422d1fe65cb83eca1f478c5d845bf2b506c89989 Mon Sep 17 00:00:00 2001 From: hakki Date: Thu, 12 Dec 2024 22:29:10 +0100 Subject: [PATCH] unittests: initial simple non-rectangle routing test --- tests/common/mod.rs | 7 +- tests/single_layer.rs | 19 + .../route_all.cmd | 51 + .../smd_non_rectangular_buck_converter.dsn | 181 ++ ...d_non_rectangular_buck_converter.kicad_pcb | 1107 +++++++++ ...d_non_rectangular_buck_converter.kicad_prl | 83 + ...d_non_rectangular_buck_converter.kicad_pro | 584 +++++ ...d_non_rectangular_buck_converter.kicad_sch | 2013 +++++++++++++++++ 8 files changed, 4043 insertions(+), 2 deletions(-) create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pcb create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_prl create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pro create mode 100644 tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_sch diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 499deee..1475727 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -174,10 +174,13 @@ pub fn assert_single_layer_groundless_autoroute( if let Some(netname) = autorouter.board().layout().rules().net_netname(net) { // We don't route ground. + let mut org = unionfind.find(origin_dot.petgraph_index()); + let mut desc = unionfind.find(destination_dot.petgraph_index()); + if netname != "GND" { assert_eq!( - unionfind.find(origin_dot.petgraph_index()), - unionfind.find(destination_dot.petgraph_index()) + org, + desc ); } } diff --git a/tests/single_layer.rs b/tests/single_layer.rs index efc9461..8941119 100644 --- a/tests/single_layer.rs +++ b/tests/single_layer.rs @@ -99,3 +99,22 @@ fn test_tht_3pin_xlr_to_tht_3pin_xlr() { // FIXME: The routing result is pretty bad. common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu"); } + +#[test] +fn test_smd_non_rectangular_buck_converter() { + let mut path = "tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn"; + let mut autorouter = common::load_design(&path); + + let mut invoker = common::create_invoker_and_assert(autorouter); + + common::replay_and_assert( + &mut invoker, + "tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd", + ); + + + let (mut autorouter, ..) = invoker.dissolve(); + + common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu"); + //common::assert_number_of_conncomps(&mut autorouter, 16); +} diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd b/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd new file mode 100644 index 0000000..8476e23 --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd @@ -0,0 +1,51 @@ +{ + "done": [ + { + "Autoroute": [ + [ + { + "pin": "L1-2", + "layer": "F.Cu" + }, + { + "pin": "L1-1", + "layer": "F.Cu" + }, + { + "pin": "D1-1", + "layer": "F.Cu" + }, + { + "pin": "D1-2", + "layer": "F.Cu" + }, + { + "pin": "C1-2", + "layer": "F.Cu" + }, + { + "pin": "R1-1", + "layer": "F.Cu" + }, + { + "pin": "C1-1", + "layer": "F.Cu" + }, + { + "pin": "R1-2", + "layer": "F.Cu" + } + ], + { + "presort_by_pairwise_detours": false, + "router_options": { + "routed_band_width": 100.0, + "wrap_around_bands": true, + "squeeze_through_under_bands": true + } + } + ] + } + ], + "undone": [] +} \ No newline at end of file diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn new file mode 100644 index 0000000..f4d5bbb --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn @@ -0,0 +1,181 @@ +(pcb /media/Projects/Projects/rust/topola/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn + (parser + (string_quote ") + (space_in_quoted_tokens on) + (host_cad "KiCad's Pcbnew") + (host_version "8.0.6+dfsg-1") + ) + (resolution um 10) + (unit um) + (structure + (layer F.Cu + (type signal) + (property + (index 0) + ) + ) + (layer B.Cu + (type signal) + (property + (index 1) + ) + ) + (boundary + (path pcb 0 152000 -114000 127500 -114000 127500 -97000 152000 -97000 + 152000 -114000) + ) + (via "Via[0-1]_600:300_um") + (rule + (width 200) + (clearance 200) + (clearance 200 (type default_smd)) + (clearance 50 (type smd_smd)) + ) + ) + (placement + (component Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder + (place C1 134500.000000 -110462.500000 front -90.000000 (PN C)) + ) + (component Diode_SMD:D_1210_3225Metric_Pad1.42x2.65mm_HandSolder + (place D1 138487.500000 -110000.000000 front -90.000000 (PN D)) + ) + (component Inductor_SMD:L_Coilcraft_LPS5030 + (place L1 138500.000000 -103227.500000 front 90.000000 (PN L)) + ) + (component Resistor_SMD:R_1218_3246Metric_Pad1.22x4.75mm_HandSolder + (place R1 144000.000000 -109937.500000 front -90.000000 (PN R)) + ) + ) + (library + (image Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder + (outline (path signal 120 -261.252 735 261.252 735)) + (outline (path signal 120 -261.252 -735 261.252 -735)) + (outline (path signal 50 -1880 980 1880 980)) + (outline (path signal 50 -1880 -980 -1880 980)) + (outline (path signal 50 1880 980 1880 -980)) + (outline (path signal 50 1880 -980 -1880 -980)) + (outline (path signal 100 -1000 625 1000 625)) + (outline (path signal 100 -1000 -625 -1000 625)) + (outline (path signal 100 1000 625 1000 -625)) + (outline (path signal 100 1000 -625 -1000 -625)) + (pin RoundRect[T]Pad_1175x1450_250.951_um_0.000000_0 1 -1037.5 0) + (pin RoundRect[T]Pad_1175x1450_250.951_um_0.000000_0 2 1037.5 0) + ) + (image Diode_SMD:D_1210_3225Metric_Pad1.42x2.65mm_HandSolder + (outline (path signal 120 -2460 1585 -2460 -1585)) + (outline (path signal 120 -2460 -1585 1600 -1585)) + (outline (path signal 120 1600 1585 -2460 1585)) + (outline (path signal 50 -2450 1580 2450 1580)) + (outline (path signal 50 -2450 -1580 -2450 1580)) + (outline (path signal 50 2450 1580 2450 -1580)) + (outline (path signal 50 2450 -1580 -2450 -1580)) + (outline (path signal 100 -1600 625 -1600 -1250)) + (outline (path signal 100 -1600 -1250 1600 -1250)) + (outline (path signal 100 -975 1250 -1600 625)) + (outline (path signal 100 1600 1250 -975 1250)) + (outline (path signal 100 1600 -1250 1600 1250)) + (pin RoundRect[T]Pad_1425x2650_250.952_um_0.000000_0 1 -1487.5 0) + (pin RoundRect[T]Pad_1425x2650_250.952_um_0.000000_0 2 1487.5 0) + ) + (image Inductor_SMD:L_Coilcraft_LPS5030 + (outline (path signal 120 -500 -2510 500 -2510)) + (outline (path signal 120 -500 2510 500 2510)) + (outline (path signal 50 3010 -1800 1800 -3010)) + (outline (path signal 50 3010 1800 3010 -1800)) + (outline (path signal 50 1800 -3010 -1800 -3010)) + (outline (path signal 50 1800 3010 3010 1800)) + (outline (path signal 50 -1800 -3010 -3010 -1800)) + (outline (path signal 50 -1800 3010 1800 3010)) + (outline (path signal 50 -3010 -1800 -3010 1800)) + (outline (path signal 50 -3010 1800 -1800 3010)) + (outline (path signal 100 2400 -1400 1400 -2400)) + (outline (path signal 100 2400 1400 2400 -1400)) + (outline (path signal 100 1400 -2400 -1400 -2400)) + (outline (path signal 100 1400 2400 2400 1400)) + (outline (path signal 100 -1400 2400 1400 2400)) + (outline (path signal 100 -2400 -1400 -1400 -2400)) + (outline (path signal 100 -2400 -1400 -2400 1400)) + (outline (path signal 100 -2400 1400 -1400 2400)) + (pin Cust[T]Pad_1055x3400_5510x_1995_7_um_86DF55DEC03B52FC2FEEC0D56D7CCG6E 1 -2227.5 0) + (pin Cust[T]Pad_1055x3400_5510x_1995_7_um_319E1B03C7E38G85D4418E5F1449F697 2 2227.5 0) + ) + (image Resistor_SMD:R_1218_3246Metric_Pad1.22x4.75mm_HandSolder + (outline (path signal 120 -777.064 -2410 777.064 -2410)) + (outline (path signal 120 -777.064 2410 777.064 2410)) + (outline (path signal 50 -2420 -2620 -2420 2620)) + (outline (path signal 50 2420 -2620 -2420 -2620)) + (outline (path signal 50 -2420 2620 2420 2620)) + (outline (path signal 50 2420 2620 2420 -2620)) + (outline (path signal 100 -1600 -2300 -1600 2300)) + (outline (path signal 100 1600 -2300 -1600 -2300)) + (outline (path signal 100 -1600 2300 1600 2300)) + (outline (path signal 100 1600 2300 1600 -2300)) + (pin RoundRect[T]Pad_1225x4750_250.951_um_0.000000_0 1 -1562.5 0) + (pin RoundRect[T]Pad_1225x4750_250.951_um_0.000000_0 2 1562.5 0) + ) + (padstack Cust[T]Pad_1055x3400_5510x_1995_7_um_319E1B03C7E38G85D4418E5F1449F697 + (shape (polygon F.Cu 0 -1467.5 2755 -527.5 2755 527.5 1700 527.5 -1700 -527.5 -2755 + -1467.5 -2755 -1467.5 2755)) + (attach off) + ) + (padstack Cust[T]Pad_1055x3400_5510x_1995_7_um_86DF55DEC03B52FC2FEEC0D56D7CCG6E + (shape (polygon F.Cu 0 -527.5 1700 527.5 2755 1467.5 2755 1467.5 -2755 527.5 -2755 + -527.5 -1700 -527.5 1700)) + (attach off) + ) + (padstack RoundRect[T]Pad_1175x1450_250.951_um_0.000000_0 + (shape (polygon F.Cu 0 -588.451 475 -569.348 571.035 -514.949 652.449 -433.535 706.848 + -337.499 725.95 337.5 725.951 433.535 706.848 514.949 652.449 + 569.348 571.035 588.45 474.999 588.451 -475 569.348 -571.035 + 514.949 -652.449 433.535 -706.848 337.499 -725.95 -337.5 -725.951 + -433.535 -706.848 -514.949 -652.449 -569.348 -571.035 -588.45 -474.999 + -588.451 475)) + (attach off) + ) + (padstack RoundRect[T]Pad_1225x4750_250.951_um_0.000000_0 + (shape (polygon F.Cu 0 -613.451 2125 -594.348 2221.03 -539.949 2302.45 -458.535 2356.85 + -362.499 2375.95 362.5 2375.95 458.535 2356.85 539.949 2302.45 + 594.348 2221.03 613.45 2125 613.451 -2125 594.348 -2221.03 + 539.949 -2302.45 458.535 -2356.85 362.499 -2375.95 -362.5 -2375.95 + -458.535 -2356.85 -539.949 -2302.45 -594.348 -2221.03 -613.45 -2125 + -613.451 2125)) + (attach off) + ) + (padstack RoundRect[T]Pad_1425x2650_250.952_um_0.000000_0 + (shape (polygon F.Cu 0 -713.451 1075 -694.348 1171.03 -639.949 1252.45 -558.534 1306.85 + -462.499 1325.95 462.499 1325.95 558.534 1306.85 639.949 1252.45 + 694.348 1171.03 713.451 1075 713.451 -1075 694.348 -1171.03 + 639.949 -1252.45 558.534 -1306.85 462.499 -1325.95 -462.499 -1325.95 + -558.534 -1306.85 -639.949 -1252.45 -694.348 -1171.03 -713.451 -1075 + -713.451 1075)) + (attach off) + ) + (padstack "Via[0-1]_600:300_um" + (shape (circle F.Cu 600)) + (shape (circle B.Cu 600)) + (attach off) + ) + ) + (network + (net +3.3V + (pins C1-1 L1-2 R1-1) + ) + (net GND + (pins C1-2 D1-2 R1-2) + ) + (net "Net-(D1-K)" + (pins D1-1 L1-1) + ) + (class kicad_default "" +3.3V GND "Net-(D1-K)" + (circuit + (use_via Via[0-1]_600:300_um) + ) + (rule + (width 200) + (clearance 200) + ) + ) + ) + (wiring + ) +) diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pcb b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pcb new file mode 100644 index 0000000..b67785f --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pcb @@ -0,0 +1,1107 @@ +(kicad_pcb + (version 20240108) + (generator "pcbnew") + (generator_version "8.0") + (general + (thickness 1.6) + (legacy_teardrops no) + ) + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + (setup + (pad_to_mask_clearance 0) + (allow_soldermask_bridges_in_footprints no) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros no) + (usegerberextensions no) + (usegerberattributes yes) + (usegerberadvancedattributes yes) + (creategerberjobfile yes) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 4) + (plotframeref no) + (viasonmask no) + (mode 1) + (useauxorigin no) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (pdf_front_fp_property_popups yes) + (pdf_back_fp_property_popups yes) + (dxfpolygonmode yes) + (dxfimperialunits yes) + (dxfusepcbnewfont yes) + (psnegative no) + (psa4output no) + (plotreference yes) + (plotvalue yes) + (plotfptext yes) + (plotinvisibletext no) + (sketchpadsonfab no) + (subtractmaskfromsilk no) + (outputformat 1) + (mirror no) + (drillshape 1) + (scaleselection 1) + (outputdirectory "") + ) + ) + (net 0 "") + (net 1 "+3.3V") + (net 2 "GND") + (net 3 "Net-(D1-K)") + (footprint "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" + (layer "F.Cu") + (uuid "30b21493-d616-4e17-943d-9a784bde0cf2") + (at 134.5 110.4625 -90) + (descr "Capacitor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: IPC-SM-782 page 76, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf, https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (property "Reference" "C1" + (at 0 -1.68 90) + (layer "F.SilkS") + (uuid "0b968302-ceb9-4ea9-aa71-440f3617ea56") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "C" + (at 0 1.68 90) + (layer "F.Fab") + (uuid "da90dc6c-0493-42b8-93c0-c4d56360399c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "4798d37f-6b6d-46c8-af2b-636004a3d865") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "9cd724e2-cc9e-4422-a01c-cee81ee73750") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "dbe3d1d3-baba-431e-b31a-ac1c54454932") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "C_*") + (path "/7b6dd441-d061-43d3-9ad3-d3acdd4edccd") + (sheetname "Root") + (sheetfile "non_rectangular_smd.kicad_sch") + (attr smd) + (fp_line + (start -0.261252 0.735) + (end 0.261252 0.735) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "3f86ef38-0acf-462d-9c3f-c3c706448996") + ) + (fp_line + (start -0.261252 -0.735) + (end 0.261252 -0.735) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "fb62ac46-1921-481e-a4ff-cdd026cbac27") + ) + (fp_line + (start -1.88 0.98) + (end -1.88 -0.98) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "654079da-6927-4862-b824-1f24a5b8db71") + ) + (fp_line + (start 1.88 0.98) + (end -1.88 0.98) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "2bd3f899-bd7c-4b05-8139-650709f457f7") + ) + (fp_line + (start -1.88 -0.98) + (end 1.88 -0.98) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "4a9ee158-db31-4613-9c52-5ec84f90a9eb") + ) + (fp_line + (start 1.88 -0.98) + (end 1.88 0.98) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "53eff332-350f-479f-a598-438634ceb3f2") + ) + (fp_line + (start -1 0.625) + (end -1 -0.625) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e2f3981d-fd64-48b2-a5dc-25dc925e4bf1") + ) + (fp_line + (start 1 0.625) + (end -1 0.625) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1375b33a-c8bf-4f03-a72b-9adb65ccc2df") + ) + (fp_line + (start -1 -0.625) + (end 1 -0.625) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "02a7dc05-01f7-466d-8212-a951d0674d52") + ) + (fp_line + (start 1 -0.625) + (end 1 0.625) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "41a79b7c-735c-4daf-ae6f-d3ddfa5ee0b9") + ) + (fp_text user "${REFERENCE}" + (at 0 0 90) + (layer "F.Fab") + (uuid "d90cc03a-8430-4f96-a126-6942a0f78dab") + (effects + (font + (size 0.5 0.5) + (thickness 0.08) + ) + ) + ) + (pad "1" smd roundrect + (at -1.0375 0 270) + (size 1.175 1.45) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.212766) + (net 1 "+3.3V") + (pintype "passive") + (uuid "3498cd4e-aa7a-4e47-bd4b-0bfdeb790d43") + ) + (pad "2" smd roundrect + (at 1.0375 0 270) + (size 1.175 1.45) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.212766) + (net 2 "GND") + (pintype "passive") + (uuid "a0536a6d-ab05-479e-841c-852efe6268d7") + ) + (model "${KICAD8_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_0805_2012Metric.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_SMD:D_1210_3225Metric_Pad1.42x2.65mm_HandSolder" + (layer "F.Cu") + (uuid "4acb8f14-2b64-4806-8342-498028219daf") + (at 138.4875 110 -90) + (descr "Diode SMD 1210 (3225 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "diode handsolder") + (property "Reference" "D1" + (at 0 -2.28 90) + (layer "F.SilkS") + (uuid "6b34830c-7fda-49d6-87c7-3fb39e71999b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "D" + (at 0 2.28 90) + (layer "F.Fab") + (uuid "261a1464-f7f7-453e-abe0-4ecdeaa67497") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_SMD:D_1210_3225Metric_Pad1.42x2.65mm_HandSolder" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "77220e19-ce7d-4a6b-9445-05f3d769fd4a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "61261c08-fa1b-4694-b8f4-dd6e44b418e4") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Diode" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "7e923f9c-51e8-42c7-aaca-2b847fb5e71b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "cd499056-6a21-4f6c-88d4-dafd1ff7aa2b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a36001b3-b163-40fd-b285-06e0a3ae90d9") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "TO-???* *_Diode_* *SingleDiode* D_*") + (path "/6a5b9058-965b-4300-ab18-c83ab10167e0") + (sheetname "Root") + (sheetfile "non_rectangular_smd.kicad_sch") + (attr smd) + (fp_line + (start -2.46 1.585) + (end 1.6 1.585) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d605fc04-adf9-478c-a780-fb3f6036962c") + ) + (fp_line + (start -2.46 -1.585) + (end -2.46 1.585) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "37fcd311-521a-4d5d-9a20-fdc94c52a7ed") + ) + (fp_line + (start 1.6 -1.585) + (end -2.46 -1.585) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6c9484a7-0db4-4d7a-9927-9cc77acf2701") + ) + (fp_line + (start -2.45 1.58) + (end -2.45 -1.58) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "6f179efa-ec2e-4be1-b193-fc9907c5d344") + ) + (fp_line + (start 2.45 1.58) + (end -2.45 1.58) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "32849bd5-3c56-4843-918c-3e29abecb5be") + ) + (fp_line + (start -2.45 -1.58) + (end 2.45 -1.58) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "64f9d256-2535-4e73-b17f-4b3f123b364b") + ) + (fp_line + (start 2.45 -1.58) + (end 2.45 1.58) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d0722279-e85b-45b8-9ec0-a5a9d41ed167") + ) + (fp_line + (start -1.6 1.25) + (end 1.6 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "89e7aec0-5dc7-4cb6-b6dc-1c03c971e3bf") + ) + (fp_line + (start 1.6 1.25) + (end 1.6 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b03e80ff-d13a-44c9-9565-897e2efa9b75") + ) + (fp_line + (start -1.6 -0.625) + (end -1.6 1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "44e8d905-5299-470b-b6df-106da15035ec") + ) + (fp_line + (start -0.975 -1.25) + (end -1.6 -0.625) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "938eb011-97a7-4294-a05f-50d9a3f08361") + ) + (fp_line + (start 1.6 -1.25) + (end -0.975 -1.25) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a3cb52ea-6a12-4570-b267-6ba04ff655ee") + ) + (fp_text user "${REFERENCE}" + (at 0 0 90) + (layer "F.Fab") + (uuid "ecf96d0d-594d-4c9a-aaab-c39048bc7bae") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" smd roundrect + (at -1.4875 0 270) + (size 1.425 2.65) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.175439) + (net 3 "Net-(D1-K)") + (pinfunction "K") + (pintype "passive") + (uuid "5de7f141-93b2-4146-b568-f0797168e55e") + ) + (pad "2" smd roundrect + (at 1.4875 0 270) + (size 1.425 2.65) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.175439) + (net 2 "GND") + (pinfunction "A") + (pintype "passive") + (uuid "1dad74dc-06b7-4879-b456-d6b6114dee26") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_SMD.3dshapes/D_1210_3225Metric.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Inductor_SMD:L_Coilcraft_LPS5030" + (layer "F.Cu") + (uuid "8e912274-fa11-4590-b935-893c0370d385") + (at 138.5 103.2275 90) + (descr "Shielded Power Inductor SMD, Coilcraft LPS5030, https://www.coilcraft.com/pdfs/lps5030.pdf, StepUp generated footprint") + (tags "inductor") + (property "Reference" "L1" + (at 0 -3.7 90) + (layer "F.SilkS") + (uuid "761d2f6b-78a6-402b-9d60-4237de54887a") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "L" + (at 0 3.8 90) + (layer "F.Fab") + (uuid "73138700-8538-436e-99b0-5b5e2a0e67fe") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (property "Footprint" "Inductor_SMD:L_Coilcraft_LPS5030" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "fd00a78e-9542-4709-a3e1-daa2cac8a648") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "16134c4f-4e7c-4801-bfa0-a987c3ed5444") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Inductor" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "2ec91a25-a796-486f-ae1a-8f93c945f170") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "Choke_* *Coil* Inductor_* L_*") + (path "/b8a75fee-84e1-4fc6-8518-94d9ac6bba52") + (sheetname "Root") + (sheetfile "non_rectangular_smd.kicad_sch") + (attr smd) + (fp_line + (start -0.5 -2.51) + (end 0.5 -2.51) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2c9a051c-1d58-4c34-ac61-6be5ed7466d3") + ) + (fp_line + (start -0.5 2.51) + (end 0.5 2.51) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f9df7644-cb2b-4560-8c98-f953e68fe076") + ) + (fp_line + (start 1.8 -3.01) + (end 3.01 -1.8) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "2aa4e9ad-7c4a-4332-9d39-10607ed7ef01") + ) + (fp_line + (start -1.8 -3.01) + (end 1.8 -3.01) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "fbaef5dc-f1c8-445b-ae9a-69f915731708") + ) + (fp_line + (start 3.01 -1.8) + (end 3.01 1.8) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "20cf7464-632e-44c0-a243-83176d8dfb60") + ) + (fp_line + (start -3.01 -1.8) + (end -1.8 -3.01) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a1548d8c-5de2-4f99-8c39-983c3514c71d") + ) + (fp_line + (start 3.01 1.8) + (end 1.8 3.01) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9b82faae-0fa0-4102-b5cf-40683c2bfb11") + ) + (fp_line + (start -3.01 1.8) + (end -3.01 -1.8) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0e96d241-3489-4d14-9d97-c4322070c036") + ) + (fp_line + (start 1.8 3.01) + (end -1.8 3.01) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "af5628af-1d40-48f8-9373-5f7338822fb0") + ) + (fp_line + (start -1.8 3.01) + (end -3.01 1.8) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "fa3bc9c3-a82c-45c0-b254-a6bb27e1188b") + ) + (fp_line + (start 1.4 -2.4) + (end 2.4 -1.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "102096d9-f78e-4b11-924f-c318bba2b1b8") + ) + (fp_line + (start -1.4 -2.4) + (end 1.4 -2.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "781b32f7-fe82-4736-b812-f49f0d756b59") + ) + (fp_line + (start 2.4 -1.4) + (end 2.4 1.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "848cb2e8-9348-47d0-bc88-af6b61fb49ae") + ) + (fp_line + (start -2.4 -1.4) + (end -1.4 -2.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d595b4bb-9158-44f7-9cff-e9c4adc67d28") + ) + (fp_line + (start 2.4 1.4) + (end 1.4 2.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f32f54cc-d3c2-4ffe-9e4d-12bbdccbb032") + ) + (fp_line + (start -2.4 1.4) + (end -2.4 -1.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "384bedef-70fb-4e55-960d-fa7ff6e799b7") + ) + (fp_line + (start -2.4 1.4) + (end -1.4 2.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "84c6cd9c-d9b2-42ba-bf53-e70e71bce669") + ) + (fp_line + (start 1.4 2.4) + (end -1.4 2.4) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "92514bcd-6bbc-46ff-942e-032ad08066d5") + ) + (fp_text user "${REFERENCE}" + (at 0 0 90) + (layer "F.Fab") + (uuid "7d4586d1-f272-451e-a6c1-ceba6278eb83") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" smd custom + (at -2.2275 0 90) + (size 1.055 3.4) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "Net-(D1-K)") + (pinfunction "1") + (pintype "passive") + (zone_connect 2) + (options + (clearance outline) + (anchor rect) + ) + (primitives + (gr_poly + (pts + (xy 1.4675 -1.7) (xy 0.5275 -0.8445) (xy 0.5275 0.8445) (xy 1.4675 1.7) (xy 1.4675 2.755) (xy 0.5275 2.755) + (xy -0.5275 1.7) (xy -0.5275 -1.7) (xy 0.5275 -2.755) (xy 1.4675 -2.755) + ) + (width 0) + (fill yes) + ) + ) + (uuid "5d25354d-ebda-4c8c-9d29-6742a46defa6") + ) + (pad "2" smd custom + (at 2.2275 0 90) + (size 1.055 3.4) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+3.3V") + (pinfunction "2") + (pintype "passive") + (zone_connect 2) + (options + (clearance outline) + (anchor rect) + ) + (primitives + (gr_poly + (pts + (xy 0.5275 -1.7) (xy 0.5275 1.7) (xy -0.5275 2.755) (xy -1.4675 2.755) (xy -1.4675 1.7) (xy -0.5275 0.8445) + (xy -0.5275 -0.8445) (xy -1.4675 -1.7) (xy -1.4675 -2.755) (xy -0.5275 -2.755) + ) + (width 0) + (fill yes) + ) + ) + (uuid "65358e7a-f94a-47d4-863e-5cd0298d277b") + ) + (model "${KICAD8_3DMODEL_DIR}/Inductor_SMD.3dshapes/L_Coilcraft_LPS5030.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Resistor_SMD:R_1218_3246Metric_Pad1.22x4.75mm_HandSolder" + (layer "F.Cu") + (uuid "b57d43d7-15c6-423a-9a70-42b5fcdca9eb") + (at 144 109.9375 -90) + (descr "Resistor SMD 1218 (3246 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: https://www.vishay.com/docs/20035/dcrcwe3.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (property "Reference" "R1" + (at 0 -3.32 90) + (layer "F.SilkS") + (uuid "d53ede34-cd9d-439d-93c0-c3acabf2ec51") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "R" + (at 0 3.32 90) + (layer "F.Fab") + (uuid "8d07bb25-22eb-416a-bdb5-925ec393cdaa") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Resistor_SMD:R_1218_3246Metric_Pad1.22x4.75mm_HandSolder" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5ca583da-699b-4a12-97e1-a64d39f78269") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e16e878b-e503-4cbb-8b79-062cbf3664d9") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Resistor" + (at 0 0 -90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "2270995f-69f8-4012-86e8-dda3d58a8732") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "R_*") + (path "/3a69f2ff-5140-4fcb-b924-99e572508a97") + (sheetname "Root") + (sheetfile "non_rectangular_smd.kicad_sch") + (attr smd) + (fp_line + (start -0.777064 2.41) + (end 0.777064 2.41) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "79192374-5104-482a-a931-41189c732f18") + ) + (fp_line + (start -0.777064 -2.41) + (end 0.777064 -2.41) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8f40e3e1-a2cf-45ae-ac91-e1b6685e7da5") + ) + (fp_line + (start -2.42 2.62) + (end -2.42 -2.62) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b87ae740-f80c-4bcb-b748-08c9f3910bd2") + ) + (fp_line + (start 2.42 2.62) + (end -2.42 2.62) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f402169e-2f94-4da7-bf97-007779e7ae06") + ) + (fp_line + (start -2.42 -2.62) + (end 2.42 -2.62) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8d877330-ccd4-457e-9cb3-d17633972612") + ) + (fp_line + (start 2.42 -2.62) + (end 2.42 2.62) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "c241b37e-b21c-4155-83fb-f9de66974a45") + ) + (fp_line + (start -1.6 2.3) + (end -1.6 -2.3) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c0e8ce23-1470-4669-a212-7b176078c3c3") + ) + (fp_line + (start 1.6 2.3) + (end -1.6 2.3) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4052beb5-a1f3-4122-a7aa-2c17986f905b") + ) + (fp_line + (start -1.6 -2.3) + (end 1.6 -2.3) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a6fcd8ba-931a-4869-8649-b8cf2ec6a600") + ) + (fp_line + (start 1.6 -2.3) + (end 1.6 2.3) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "127cc61b-007d-4b16-a708-db80e28d38bc") + ) + (fp_text user "${REFERENCE}" + (at 0 0 90) + (layer "F.Fab") + (uuid "29d9b8f4-8e20-4b0d-bc08-80f84356ac4b") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" smd roundrect + (at -1.5625 0 270) + (size 1.225 4.75) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.204082) + (net 1 "+3.3V") + (pintype "passive") + (uuid "52d6d7ff-46ca-4ca1-aaf1-fef799abcbd1") + ) + (pad "2" smd roundrect + (at 1.5625 0 270) + (size 1.225 4.75) + (layers "F.Cu" "F.Paste" "F.Mask") + (roundrect_rratio 0.204082) + (net 2 "GND") + (pintype "passive") + (uuid "b77eb889-0439-415b-8fda-51204bfda9e5") + ) + (model "${KICAD8_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1218_3246Metric.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (gr_rect + (start 127.5 97) + (end 152 114) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "Edge.Cuts") + (uuid "e91f019b-5b8f-47d8-ba05-a6726a0b158c") + ) +) diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_prl b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_prl new file mode 100644 index 0000000..b5c6947 --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_prl @@ -0,0 +1,83 @@ +{ + "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 + }, + "git": { + "repo_password": "", + "repo_type": "", + "repo_username": "", + "ssh_key": "" + }, + "meta": { + "filename": "smd_non_rectangular_buck_converter.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pro b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pro new file mode 100644 index 0000000..dd0ffe8 --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_pro @@ -0,0 +1,584 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "apply_defaults_to_fp_fields": false, + "apply_defaults_to_fp_shapes": false, + "apply_defaults_to_fp_text": false, + "board_outline_line_width": 0.05, + "copper_line_width": 0.2, + "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.05, + "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.1, + "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.1, + "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.1, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.1, + "silk_text_upright": false, + "zones": { + "min_clearance": 0.5 + } + }, + "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_symbol_mismatch": "warning", + "footprint_type_mismatch": "ignore", + "hole_clearance": "error", + "hole_near_hole": "error", + "holes_co_located": "warning", + "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.5, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.2, + "min_microvia_drill": 0.1, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.8, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.0, + "min_via_annular_width": 0.1, + "min_via_diameter": 0.5, + "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": [], + "tuning_pattern_settings": { + "diff_pair_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 1.0 + }, + "diff_pair_skew_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + }, + "single_track_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + } + }, + "via_dimensions": [], + "zones_allow_external_fillets": false + }, + "ipc2581": { + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "" + }, + "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": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "smd_non_rectangular_buck_converter.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.2, + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 3 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "plot": "", + "pos_files": "", + "specctra_dsn": "smd_non_rectangular_buck_converter.dsn", + "step": "", + "svg": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "bom_export_filename": "", + "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": true, + "label": "DNP", + "name": "${DNP}", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "name": "Grouped By Value", + "sort_asc": true, + "sort_field": "Reference" + }, + "connection_grid_size": 50.0, + "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", + "overbar_offset_ratio": 1.23, + "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": [ + [ + "e9b46317-8fd5-4a44-a655-e5b67d1ab9d0", + "Root" + ] + ], + "text_variables": {} +} diff --git a/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_sch b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_sch new file mode 100644 index 0000000..2e1634a --- /dev/null +++ b/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.kicad_sch @@ -0,0 +1,2013 @@ +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "e9b46317-8fd5-4a44-a655-e5b67d1ab9d0") + (paper "A4") + (lib_symbols + (symbol "Device:C" + (pin_numbers hide) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:D" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "D" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Diode" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "diode" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "TO-???* *_Diode_* *SingleDiode* D_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "D_0_1" + (polyline + (pts + (xy -1.27 1.27) (xy -1.27 -1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy -1.27 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "D_1_1" + (pin passive line + (at -3.81 0 0) + (length 2.54) + (name "K" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:L" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "L" + (at -1.27 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "L" + (at 1.905 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Inductor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "inductor choke coil reactor magnetic" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Choke_* *Coil* Inductor_* L_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "L_0_1" + (arc + (start 0 -2.54) + (mid 0.6323 -1.905) + (end 0 -1.27) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 0 -1.27) + (mid 0.6323 -0.635) + (end 0 0) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 0 0) + (mid 0.6323 0.635) + (end 0 1.27) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start 0 1.27) + (mid 0.6323 1.905) + (end 0 2.54) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "L_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Device:R" + (pin_numbers hide) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Transistor_FET:AO3400A" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "Q" + (at 5.08 1.905 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "AO3400A" + (at 5.08 0 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" + (at 5.08 -1.905 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "http://www.aosmd.com/pdfs/datasheet/AO3400A.pdf" + (at 5.08 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Description" "30V Vds, 5.7A Id, N-Channel MOSFET, SOT-23" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "N-Channel MOSFET" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "SOT?23*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "AO3400A_0_1" + (polyline + (pts + (xy 0.254 0) (xy -2.54 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 1.905) (xy 0.254 -1.905) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 -1.27) (xy 0.762 -2.286) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 0.508) (xy 0.762 -0.508) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 2.286) (xy 0.762 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 2.54) (xy 2.54 1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.54 -2.54) (xy 2.54 0) (xy 0.762 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 -1.778) (xy 3.302 -1.778) (xy 3.302 1.778) (xy 0.762 1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.016 0) (xy 2.032 0.381) (xy 2.032 -0.381) (xy 1.016 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 2.794 0.508) (xy 2.921 0.381) (xy 3.683 0.381) (xy 3.81 0.254) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.302 0.381) (xy 2.921 -0.254) (xy 3.683 -0.254) (xy 3.302 0.381) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.651 0) + (radius 2.794) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.54 -1.778) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (circle + (center 2.54 1.778) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + ) + (symbol "AO3400A_1_1" + (pin input line + (at -5.08 0 0) + (length 2.54) + (name "G" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 -5.08 90) + (length 2.54) + (name "S" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 5.08 270) + (length 2.54) + (name "D" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+12V" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+12V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+12V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+12V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+12V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+3.3V" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3.3V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+3.3V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+3.3V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 162.56 100.33) + (diameter 0) + (color 0 0 0 0) + (uuid "119c6479-6923-4a2f-b267-eb16c3205e53") + ) + (junction + (at 173.99 100.33) + (diameter 0) + (color 0 0 0 0) + (uuid "2038607e-7aad-41f5-9865-c25d5730f31d") + ) + (junction + (at 147.32 100.33) + (diameter 0) + (color 0 0 0 0) + (uuid "9bcafcaa-cdb8-429e-b61a-9463f0c3d5e7") + ) + (junction + (at 147.32 118.11) + (diameter 0) + (color 0 0 0 0) + (uuid "a7350745-0739-4e52-8389-8697ee18d911") + ) + (junction + (at 162.56 118.11) + (diameter 0) + (color 0 0 0 0) + (uuid "ecf55b4c-7eab-4e33-8edf-ce9a30020b25") + ) + (wire + (pts + (xy 162.56 100.33) (xy 162.56 105.41) + ) + (stroke + (width 0) + (type default) + ) + (uuid "06f4a7cd-dcc4-4542-8e5d-d1bcf67b7304") + ) + (wire + (pts + (xy 162.56 100.33) (xy 173.99 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "12cfcea3-d85d-4629-a6ee-14b230961093") + ) + (wire + (pts + (xy 147.32 118.11) (xy 162.56 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2e82f24a-1532-4757-a349-3871bad39495") + ) + (wire + (pts + (xy 162.56 118.11) (xy 173.99 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3dca64c3-c17a-41b0-a826-ef58c10862ff") + ) + (wire + (pts + (xy 173.99 100.33) (xy 179.07 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3e250682-9694-4bb4-8fca-0645575294c1") + ) + (wire + (pts + (xy 147.32 100.33) (xy 147.32 105.41) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4a210485-b49d-497b-98d4-e3f320d73530") + ) + (wire + (pts + (xy 179.07 100.33) (xy 179.07 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "67361e9e-c89f-4c20-bede-613da2cc60dd") + ) + (wire + (pts + (xy 162.56 113.03) (xy 162.56 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "72d2848a-eb9c-44f0-bb15-332abae98a21") + ) + (wire + (pts + (xy 129.54 118.11) (xy 147.32 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "810bf15a-8d38-4367-adbd-d5d9252fdabb") + ) + (wire + (pts + (xy 173.99 113.03) (xy 173.99 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8778a9ea-9f3c-47b2-b73c-db64b4539a91") + ) + (wire + (pts + (xy 128.27 100.33) (xy 128.27 99.06) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ae39ea6b-8eb7-4e2b-84b5-26b25c890ca2") + ) + (wire + (pts + (xy 147.32 113.03) (xy 147.32 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b88949a5-2557-4304-8eb0-68b6a798f401") + ) + (wire + (pts + (xy 157.48 100.33) (xy 162.56 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bb26a4ab-b215-4308-8df8-32bd1372b8b7") + ) + (wire + (pts + (xy 149.86 100.33) (xy 147.32 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c96e35a4-35a3-4ac7-970f-cb752c952523") + ) + (wire + (pts + (xy 133.35 100.33) (xy 128.27 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e6332ea2-b2f8-4089-8b3d-5382cdddc7bb") + ) + (wire + (pts + (xy 143.51 100.33) (xy 147.32 100.33) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ec1f2547-5125-4544-a1a6-7c4944ee2a43") + ) + (wire + (pts + (xy 173.99 100.33) (xy 173.99 105.41) + ) + (stroke + (width 0) + (type default) + ) + (uuid "eddac982-1afb-441c-8ea4-5c1c324ab90a") + ) + (global_label "PWM" + (shape input) + (at 138.43 107.95 270) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "a3aeaa9b-aa19-48d2-a104-92e65e13d348") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 138.43 115.108 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 129.54 118.11 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "205fc3f1-a2e1-46b5-8264-cc0f08659c8b") + (property "Reference" "#PWR01" + (at 123.19 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 125.73 118.1099 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 129.54 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 129.54 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 129.54 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "eb628ace-861c-4cf5-8b0a-f0d7ae7a4563") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+12V") + (at 128.27 99.06 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "239c8163-e7ee-4c0a-97b6-a64c68079ce0") + (property "Reference" "#PWR04" + (at 128.27 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+12V" + (at 128.27 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 128.27 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 128.27 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+12V\"" + (at 128.27 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e230e252-ca3e-483a-be13-76650d59cf93") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 173.99 109.22 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "3a69f2ff-5140-4fcb-b924-99e572508a97") + (property "Reference" "R1" + (at 176.53 107.9499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "R" + (at 176.53 110.4899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Resistor_SMD:R_1218_3246Metric_Pad1.22x4.75mm_HandSolder" + (at 172.212 109.22 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 173.99 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 173.99 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "e8b954e6-9b75-4fa0-9b36-ed05db324877") + ) + (pin "1" + (uuid "29e35d4d-23a6-4295-914d-b1fcdf98392c") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "R1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Transistor_FET:AO3400A") + (at 138.43 102.87 270) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6084b62d-96d9-49b9-8a99-b4208404f926") + (property "Reference" "Q1" + (at 138.43 93.98 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "AO3400A" + (at 138.43 96.52 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23" + (at 136.525 97.79 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "http://www.aosmd.com/pdfs/datasheet/AO3400A.pdf" + (at 134.62 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Description" "30V Vds, 5.7A Id, N-Channel MOSFET, SOT-23" + (at 138.43 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "f01c4bd3-41fa-49b8-bf11-a8d2bb82ea22") + ) + (pin "3" + (uuid "582c7301-8d6f-449a-a2f1-e1a1a549d7d2") + ) + (pin "1" + (uuid "2bc0ff47-89db-40fe-887e-bd7966f4d665") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "Q1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+3.3V") + (at 179.07 99.06 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "67244385-d6ac-4758-8ef7-8db68a97a629") + (property "Reference" "#PWR05" + (at 179.07 102.87 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+3.3V" + (at 179.07 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 179.07 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 179.07 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+3.3V\"" + (at 179.07 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f2603b69-e59b-4d9c-9bee-5e0c514e1984") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "#PWR05") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:D") + (at 147.32 109.22 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6a5b9058-965b-4300-ab18-c83ab10167e0") + (property "Reference" "D1" + (at 149.86 107.9499 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "D" + (at 149.86 110.4899 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Diode_SMD:D_1210_3225Metric_Pad1.42x2.65mm_HandSolder" + (at 147.32 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 147.32 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Diode" + (at 147.32 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 147.32 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 147.32 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "5ff6b272-acef-4fb0-9b1d-96da6faa4562") + ) + (pin "1" + (uuid "7891d02c-610b-4383-97d1-2afb8c3e5f1f") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "D1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 162.56 109.22 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "7b6dd441-d061-43d3-9ad3-d3acdd4edccd") + (property "Reference" "C1" + (at 166.37 107.9499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 166.37 110.4899 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder" + (at 163.5252 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 162.56 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 162.56 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e8c65dba-5877-47cd-9954-2b40581e170c") + ) + (pin "2" + (uuid "b78773b2-a7e8-4671-b184-cda45849a409") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "C1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:L") + (at 153.67 100.33 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "b8a75fee-84e1-4fc6-8518-94d9ac6bba52") + (property "Reference" "L1" + (at 153.67 95.25 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "L" + (at 153.67 97.79 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Inductor_SMD:L_Coilcraft_LPS5030" + (at 153.67 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 153.67 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Inductor" + (at 153.67 100.33 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "8b92f3e8-2038-48f7-847b-26f23a7240e9") + ) + (pin "1" + (uuid "dbbedca0-50fd-46b5-8736-10831c19193c") + ) + (instances + (project "" + (path "/e9b46317-8fd5-4a44-a655-e5b67d1ab9d0" + (reference "L1") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +)