diff --git a/qa/data/cli/basic_test/basic_test.kicad_pcb b/qa/data/cli/basic_test/basic_test.kicad_pcb new file mode 100644 index 0000000000..25ee0a0aa1 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.kicad_pcb @@ -0,0 +1,1696 @@ +(kicad_pcb (version 20221018) (generator pcbnew) + + (general + (thickness 1.6) + ) + + (paper "A4") + (title_block + (title "Awesome LPF") + (date "2023-04-28") + (rev "1") + (company "KiCad") + ) + + (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) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros false) + (usegerberextensions false) + (usegerberattributes true) + (usegerberadvancedattributes true) + (creategerberjobfile true) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 4) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (dxfpolygonmode true) + (dxfimperialunits true) + (dxfusepcbnewfont true) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (sketchpadsonfab false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "") + ) + ) + + (net 0 "") + (net 1 "GND") + (net 2 "Net-(U1-+)") + (net 3 "Net-(U1--)") + (net 4 "/VCC") + (net 5 "/IN") + (net 6 "/OUT") + + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm" (layer "F.Cu") + (tstamp 1390739f-0b91-4d50-b8ae-92acd725ec51) + (at 200.8 156.6) + (descr "SMD rectangular pad as test Point, square 3.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Generic connector, single row, 01x01, script generated") + (property "ki_keywords" "connector") + (path "/203ec3c1-122c-4087-8f6d-2a0dd0b941e6") + (attr exclude_from_pos_files) + (fp_text reference "J1" (at 0 -2.398) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c402ec1d-df0d-40ce-b9d6-f08ac19c7c42) + ) + (fp_text value "Conn_01x01_Pin" (at 0 2.55) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c61baf68-4b03-4f7f-b652-412be8113d00) + ) + (fp_text user "${REFERENCE}" (at 0 -2.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d9577952-4e8d-477c-8f6d-723533579833) + ) + (fp_line (start -1.7 -1.7) (end 1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5affe134-784a-41e6-af7c-46b23a03b320)) + (fp_line (start -1.7 1.7) (end -1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d20cfa67-660e-4316-9c07-b533ec4c6b60)) + (fp_line (start 1.7 -1.7) (end 1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f760b864-488a-40b2-9b55-1cb2d80f5b76)) + (fp_line (start 1.7 1.7) (end -1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b69639f7-6a20-44b4-828a-38174f3197fc)) + (fp_line (start -2 -2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 23f10dc0-019c-453d-b631-408b3248f395)) + (fp_line (start -2 -2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp bd80a489-4a51-423e-aa10-6b5530b09b91)) + (fp_line (start 2 2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3eb888ec-5420-49ca-a908-9d695cd023b3)) + (fp_line (start 2 2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 88777fb0-4523-4748-b3c1-bc84cbdfe155)) + (pad "1" smd rect (at 0 0) (size 3 3) (layers "F.Cu" "F.Mask") + (net 4 "/VCC") (pinfunction "Pin_1") (pintype "passive") (tstamp df72ab8d-9b14-4015-a2dc-781750ca0d55)) + ) + + (footprint "Package_TO_SOT_SMD:SOT-23-5" (layer "F.Cu") + (tstamp 46ee94d1-977a-45b0-a3f4-b6f45331a22d) + (at 201.9 145.3 180) + (descr "SOT, 5 Pin (https://www.jedec.org/sites/default/files/docs/Mo-178c.PDF variant AA), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "SOT TO_SOT_SMD") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5") + (property "ki_keywords" "single opamp") + (path "/b8a40376-5e4f-459f-9886-5e9ee83698cf") + (attr smd) + (fp_text reference "U1" (at 0 -2.4) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp bfad795c-4b8c-4327-8266-ba0993b9afbb) + ) + (fp_text value "TLV2371DBV" (at 0 2.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 4bb5fc3d-fbb4-4ac0-8249-d5ee63314e61) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.4 0.4) (thickness 0.06))) + (tstamp ba65195d-d8a7-4cb3-9484-e697c6b79866) + ) + (fp_line (start 0 -1.56) (end -1.8 -1.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b51097ce-8483-41cd-8f84-3ee55f491ecd)) + (fp_line (start 0 -1.56) (end 0.8 -1.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6ede3a08-77a5-4246-a719-726d97b93959)) + (fp_line (start 0 1.56) (end -0.8 1.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 88be5486-6a92-4277-8f41-0946cd1024eb)) + (fp_line (start 0 1.56) (end 0.8 1.56) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b096345d-7ed7-4e7c-9d92-3c9b943f7da2)) + (fp_line (start -2.05 -1.7) (end -2.05 1.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e2946aeb-0e16-457a-994e-d6cbe0e82111)) + (fp_line (start -2.05 1.7) (end 2.05 1.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a99b1c3e-0efc-4399-8f55-9512d1b4e6a0)) + (fp_line (start 2.05 -1.7) (end -2.05 -1.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c156e750-1b42-4970-a0ea-8eb63e8b177a)) + (fp_line (start 2.05 1.7) (end 2.05 -1.7) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 18bb65b3-b1d6-424b-9a86-15fd6507c5d8)) + (fp_line (start -0.8 -1.05) (end -0.4 -1.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3d54da5c-8fa2-45b9-bbfa-c67ad517ae24)) + (fp_line (start -0.8 1.45) (end -0.8 -1.05) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp de14f44f-d67f-4f96-8008-229734a4c368)) + (fp_line (start -0.4 -1.45) (end 0.8 -1.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f2670ff0-f7df-4df7-bae1-1ec0a52e5790)) + (fp_line (start 0.8 -1.45) (end 0.8 1.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a7e78ea6-3261-46fa-92d2-993a3a6092e4)) + (fp_line (start 0.8 1.45) (end -0.8 1.45) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0c99aad9-5ac5-417b-b18e-f578b533e38c)) + (pad "1" smd roundrect (at -1.1375 -0.95 180) (size 1.325 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 6 "/OUT") (pintype "output") (tstamp 6ecc4c59-b18b-4bb6-902d-7f60294b8c2c)) + (pad "2" smd roundrect (at -1.1375 0 180) (size 1.325 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 1 "GND") (pinfunction "V-") (pintype "power_in") (tstamp d597c756-5560-4537-9610-7b6c0708cee7)) + (pad "3" smd roundrect (at -1.1375 0.95 180) (size 1.325 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 2 "Net-(U1-+)") (pinfunction "+") (pintype "input") (tstamp 6dc4469c-a461-4514-a9c4-49b356bfb05c)) + (pad "4" smd roundrect (at 1.1375 0.95 180) (size 1.325 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 3 "Net-(U1--)") (pinfunction "-") (pintype "input") (tstamp 9a78eba5-f755-4036-8bcc-28f230d9ce20)) + (pad "5" smd roundrect (at 1.1375 -0.95 180) (size 1.325 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) + (net 4 "/VCC") (pinfunction "V+") (pintype "power_in") (tstamp 18587219-dc3e-459e-8761-5e60b9e45e5a)) + (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-23-5.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm" (layer "F.Cu") + (tstamp 7cb3954f-ecbc-4d4a-948f-f385aacc2198) + (at 218 146) + (descr "SMD rectangular pad as test Point, square 3.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Generic connector, single row, 01x01, script generated") + (property "ki_keywords" "connector") + (path "/9efa520e-00e1-47a2-b8dc-bf8e2121d065") + (attr exclude_from_pos_files) + (fp_text reference "J3" (at 0 -2.398) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp dafed00d-db1c-46f6-a01d-55f390a6120f) + ) + (fp_text value "Conn_01x01_Pin" (at 0 2.55) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp de5e9eba-5ad4-4c13-870a-6a640da893e2) + ) + (fp_text user "${REFERENCE}" (at 0 -2.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 9968eedd-dad6-47d6-bfe6-6c8d22a30dc7) + ) + (fp_line (start -1.7 -1.7) (end 1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp bed3bc55-d879-4a42-8a6b-4aee1b085121)) + (fp_line (start -1.7 1.7) (end -1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f9729fd1-4989-4250-a89f-5e3fd131063e)) + (fp_line (start 1.7 -1.7) (end 1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 2c63b408-7523-46a4-8529-f2e2d9907792)) + (fp_line (start 1.7 1.7) (end -1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 644acc0e-33a9-4bf7-91d9-0455ab423bde)) + (fp_line (start -2 -2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5c2c2858-669d-4c7f-a703-c72a9f739e61)) + (fp_line (start -2 -2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 939ee0b1-9583-4935-8e76-ca54b4d88df0)) + (fp_line (start 2 2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a3a335d2-923f-4a31-aac3-7db40f115121)) + (fp_line (start 2 2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ecf7c3fa-5412-4d9e-9705-2adef48e1440)) + (pad "1" smd rect (at 0 0) (size 3 3) (layers "F.Cu" "F.Mask") + (net 6 "/OUT") (pinfunction "Pin_1") (pintype "passive") (tstamp 379851fb-1c9b-4946-a532-2dd0a5d0af27)) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric" (layer "F.Cu") + (tstamp 84d75378-f03e-476c-badf-38e6fb8d9772) + (at 198 145 -90) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Resistor, US symbol") + (property "ki_keywords" "R res resistor") + (path "/8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1") + (attr smd) + (fp_text reference "R2" (at 0 2 90) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp af3f3793-65cb-419e-a8db-19f076fda395) + ) + (fp_text value "10k" (at 0 1.82 90) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 0889d219-f635-4ee9-8a29-88efeb2cc262) + ) + (fp_text user "${REFERENCE}" (at 0 0 90) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp a286735f-5ca8-4f3d-b0ff-6f7e5b05b603) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp afe6a5d3-1d1e-4997-a970-28d98df802af)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 762674b4-b36b-427e-8d68-c76ce91117c8)) + (fp_line (start -2.28 -1.12) (end 2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 49e8cd9d-ec4b-410e-a141-0324a659ebdb)) + (fp_line (start -2.28 1.12) (end -2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a54a7317-0491-4f2e-b718-a2e35529f959)) + (fp_line (start 2.28 -1.12) (end 2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 2829d769-dd74-40e2-9cc4-a3f9453fd468)) + (fp_line (start 2.28 1.12) (end -2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ed3883c5-34a9-4439-b478-f5b8d85f27f9)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 6934866d-b0be-4340-be9e-8b09165edbe0)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp da8b5def-da5a-40a4-9fd5-0f364f2f259a)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2399eafb-1404-4e13-97fb-2d92a3a71b01)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp eaee3543-6d4b-48b1-ac60-2728f1372f84)) + (pad "1" smd roundrect (at -1.4625 0 270) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 3 "Net-(U1--)") (pintype "passive") (tstamp 872d9f99-b956-4565-af38-aed2f3936357)) + (pad "2" smd roundrect (at 1.4625 0 270) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 6 "/OUT") (pintype "passive") (tstamp 52d92644-bc54-4ae7-bf57-4529a3ceadef)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric" (layer "F.Cu") + (tstamp 9ba418c8-2eec-4809-8f5b-d46c1151991e) + (at 197 141) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Resistor, US symbol") + (property "ki_keywords" "R res resistor") + (path "/eaf8668d-aec7-4209-a3f9-fc7bfb5b931b") + (attr smd) + (fp_text reference "R1" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp ed6a314d-8b73-4e08-b13e-4c00cc1ba207) + ) + (fp_text value "10k" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 932bc526-a5eb-45a3-8799-cdcfe36751d8) + ) + (fp_text user "${REFERENCE}" (at 0.205 2.93) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 70488729-1251-47fa-981e-4a5cfedb7f86) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1cdfd649-de93-4e71-ace4-9115786d8802)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp faa365e2-ea38-4930-a091-0b903304cb55)) + (fp_line (start -2.28 -1.12) (end 2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp fdc11395-9bb6-45be-ba0e-71cfcb784b95)) + (fp_line (start -2.28 1.12) (end -2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f27ebd0e-2d72-421d-a98d-e9340374bbb1)) + (fp_line (start 2.28 -1.12) (end 2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9a53e238-edf6-4c27-bfdc-00e977825227)) + (fp_line (start 2.28 1.12) (end -2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp a73f6f71-a4d4-4127-b20d-4334ad74d863)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c70709c3-04cc-4be4-9479-cbd2ce14f16d)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fab1e776-f259-49a9-937a-2c3f45313fcb)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b812b044-1fc1-4678-8a2b-c2bcb9f036e7)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d873023b-4cb3-4dc4-9c2d-4ac7b0c7481a)) + (pad "1" smd roundrect (at -1.4625 0) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 1 "GND") (pintype "passive") (tstamp 1fdb11e5-7eb9-4037-9bc8-f60c4dc210e1)) + (pad "2" smd roundrect (at 1.4625 0) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 3 "Net-(U1--)") (pintype "passive") (tstamp a3c810a4-1e7c-4f95-bfb0-381afb0d6d86)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm" (layer "F.Cu") + (tstamp 9bcb01a9-2bff-45c9-bb09-f3c9476a6e17) + (at 193 147) + (descr "SMD rectangular pad as test Point, square 3.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Generic connector, single row, 01x01, script generated") + (property "ki_keywords" "connector") + (path "/2a9f5f63-d864-4898-ae3e-539c635e8f2c") + (attr exclude_from_pos_files) + (fp_text reference "J2" (at 0 -2.398) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp e297df1f-d90d-4c09-83db-72bdd7b5d05e) + ) + (fp_text value "Conn_01x01_Pin" (at 0 2.55) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp c5db08e7-7368-4051-abe1-40c3e5554b1e) + ) + (fp_text user "${REFERENCE}" (at 0 -2.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp d2b06c8a-2d69-49b6-98be-3fbe4a39dd17) + ) + (fp_line (start -1.7 -1.7) (end 1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 91848f22-f7be-4953-8c8d-71cac613cda2)) + (fp_line (start -1.7 1.7) (end -1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp dc938bd0-2299-499c-8815-ccdc4fcf08ce)) + (fp_line (start 1.7 -1.7) (end 1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e0124998-174c-48e9-8d0e-18ae8ddef5ae)) + (fp_line (start 1.7 1.7) (end -1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8fe63d6e-e60f-4fcd-9909-493bdfe067ae)) + (fp_line (start -2 -2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9d426986-474c-407b-ab72-23c3ab1ad262)) + (fp_line (start -2 -2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 29b09084-9f3c-43c4-aa82-094b439b9f32)) + (fp_line (start 2 2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp dcd4818f-1ad2-46c1-ac05-fc6ad393833a)) + (fp_line (start 2 2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8f2e9069-edbc-4b1a-a53e-f45d05996b33)) + (pad "1" smd rect (at 0 0) (size 3 3) (layers "F.Cu" "F.Mask") + (net 5 "/IN") (pinfunction "Pin_1") (pintype "passive") (tstamp 9c5d773a-2c0f-45e2-827f-52aeafdc1aa2)) + ) + + (footprint "Resistor_SMD:R_1206_3216Metric" (layer "F.Cu") + (tstamp cfe1ba2c-d301-4a4b-b0fe-608ede2e0767) + (at 204 151) + (descr "Resistor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator") + (tags "resistor") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Resistor, US symbol") + (property "ki_keywords" "R res resistor") + (path "/985a669c-9a7f-4b74-bb4f-9487b164d3aa") + (attr smd) + (fp_text reference "R3" (at 0 -1.82) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 81397456-3d69-4233-80fa-2676b6aafb29) + ) + (fp_text value "10k" (at 0 1.82) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 82ebd18a-0eee-4b26-a1b7-a7b31a22d365) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp 04d46550-4719-4b68-b50b-22eb7b01db03) + ) + (fp_line (start -0.727064 -0.91) (end 0.727064 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 80ab45a6-f1b5-4e67-a826-1aee33156f6b)) + (fp_line (start -0.727064 0.91) (end 0.727064 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 33d6a424-6642-46a1-9ec0-7fd1aced659e)) + (fp_line (start -2.28 -1.12) (end 2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp d6798e30-92d3-4b14-a00b-3a817ea230f8)) + (fp_line (start -2.28 1.12) (end -2.28 -1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 7c954754-b649-4e20-8c9c-06c59994d246)) + (fp_line (start 2.28 -1.12) (end 2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp de2c8fd5-91ad-4a4f-9e24-b883754954eb)) + (fp_line (start 2.28 1.12) (end -2.28 1.12) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 1ef1ffac-9fb5-4e87-a5be-c34e346e5033)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 97b75da2-f6ee-4c05-8dab-f1949d211cb6)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 4ff93c23-41c2-42c6-8c8f-ef262b6734c2)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 26f3bdf7-70c6-43dc-8fb9-c5c11f9b8e94)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 58557ae5-819a-4c49-9d29-3831d5762464)) + (pad "1" smd roundrect (at -1.4625 0) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 5 "/IN") (pintype "passive") (tstamp ad4725b5-cfd0-4a5d-8319-7ea59e11d3dd)) + (pad "2" smd roundrect (at 1.4625 0) (size 1.125 1.75) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.222222) + (net 2 "Net-(U1-+)") (pintype "passive") (tstamp 48329b63-2ce9-4724-b55f-9fa153f95ea9)) + (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "Capacitor_SMD:C_1206_3216Metric" (layer "F.Cu") + (tstamp db9388ac-163d-40bc-be40-37f8cd7f2c2a) + (at 207.5 145.9) + (descr "Capacitor SMD 1206 (3216 Metric), square (rectangular) end terminal, IPC_7351 nominal, (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), generated with kicad-footprint-generator") + (tags "capacitor") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Unpolarized capacitor, small symbol") + (property "ki_keywords" "capacitor cap") + (path "/8a4f4d93-4e0c-474b-8535-68c4fef6e828") + (attr smd) + (fp_text reference "C1" (at 0 -1.85) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 63bcac6b-f1d7-4eee-988b-e6cea6715e01) + ) + (fp_text value "10u" (at 4 -0.3) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7f205ae8-f5d4-461c-9d99-65ec6a7a22ba) + ) + (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") + (effects (font (size 0.8 0.8) (thickness 0.12))) + (tstamp c1c3323c-1a81-4c2c-8767-67a942e80a28) + ) + (fp_line (start -0.711252 -0.91) (end 0.711252 -0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 47bd530b-7f76-4ec5-b56b-c43ab918e9d7)) + (fp_line (start -0.711252 0.91) (end 0.711252 0.91) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b237fa10-56fd-4d2f-b731-712dd614f8fe)) + (fp_line (start -2.3 -1.15) (end 2.3 -1.15) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 04e1156c-315e-405f-9a03-ac1049e2c2de)) + (fp_line (start -2.3 1.15) (end -2.3 -1.15) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ce55659e-4f35-4767-9988-84466a71e44d)) + (fp_line (start 2.3 -1.15) (end 2.3 1.15) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b4bce62a-8dcf-4e30-93f8-c6ab5ad69566)) + (fp_line (start 2.3 1.15) (end -2.3 1.15) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 75849174-c9e9-42a4-9a7b-400957963a9e)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 579bcf29-20b4-4792-a5cb-776184708ded)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7462b436-dc0c-4fb0-b25f-add05146e971)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7f30a39e-9eb9-40cf-9a74-a5be0e35ad49)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) + (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c91ac925-0e81-4008-92e2-7cd058480ad5)) + (pad "1" smd roundrect (at -1.475 0) (size 1.15 1.8) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.217391) + (net 2 "Net-(U1-+)") (pintype "passive") (tstamp fd2ecf18-0d07-4c82-adf6-4f0bfea73d0c)) + (pad "2" smd roundrect (at 1.475 0) (size 1.15 1.8) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.217391) + (net 1 "GND") (pintype "passive") (tstamp 1ab9efcd-99d6-4d4e-af49-0d765086e196)) + (model "${KICAD6_3DMODEL_DIR}/Capacitor_SMD.3dshapes/C_1206_3216Metric.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm" (layer "F.Cu") + (tstamp f4673e4d-d9f7-4c2a-a854-c35665e7dbd9) + (at 209 156.6) + (descr "SMD rectangular pad as test Point, square 3.0mm side length") + (tags "test point SMD pad rectangle square") + (property "Sheetfile" "CliTest.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Generic connector, single row, 01x01, script generated") + (property "ki_keywords" "connector") + (path "/789295bb-2cfb-4a2b-977f-b3831d5aa975") + (attr exclude_from_pos_files) + (fp_text reference "J4" (at 0 -2.398) (layer "F.SilkS") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 7c38d615-9988-4c82-b03f-c22d2c4faaf0) + ) + (fp_text value "Conn_01x01_Pin" (at 0 2.55) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp 982c46a6-4963-4849-9f45-dd60361e1bb7) + ) + (fp_text user "${REFERENCE}" (at 0 -2.4) (layer "F.Fab") + (effects (font (size 1 1) (thickness 0.15))) + (tstamp b62a6bfe-d4a4-4cfb-b505-0bff2a74f45d) + ) + (fp_line (start -1.7 -1.7) (end 1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 340ecdde-a74b-4a5d-b6e9-948413aa9075)) + (fp_line (start -1.7 1.7) (end -1.7 -1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d9744bbe-e969-4a05-a17b-51e5ae5be107)) + (fp_line (start 1.7 -1.7) (end 1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 83df3b99-7fd7-4f94-8241-6729b45c6c4f)) + (fp_line (start 1.7 1.7) (end -1.7 1.7) + (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 60f7966f-8044-4989-b50d-6ff4a6d7d90f)) + (fp_line (start -2 -2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6f775d53-a60b-462c-b50d-b3418814c287)) + (fp_line (start -2 -2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e0fbec47-99c8-4346-bd00-4390021376aa)) + (fp_line (start 2 2) (end -2 2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3aa7310f-8620-42d1-8371-2d3bd420b960)) + (fp_line (start 2 2) (end 2 -2) + (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e41e2973-3235-42e3-89ed-e54fdd819893)) + (pad "1" smd rect (at 0 0) (size 3 3) (layers "F.Cu" "F.Mask") + (net 1 "GND") (pinfunction "Pin_1") (pintype "passive") (tstamp ce4b82b7-e796-433d-942f-d6658110a74f)) + ) + + (gr_rect (start 188 138) (end 223 160) + (stroke (width 0.1) (type default)) (fill none) (layer "Edge.Cuts") (tstamp 7ef29bed-d4ce-40b7-b4ab-066b9f26f18c)) + (gr_text "AWESOME LPF" (at 207 140) (layer "F.SilkS") (tstamp 4c71c61d-87af-4aac-a9e4-107a5f2585e7) + (effects (font (size 1.5 1.5) (thickness 0.3) bold) (justify left bottom)) + ) + + (segment (start 206.025 150.4375) (end 206.025 145.9) (width 0.25) (layer "F.Cu") (net 2) (tstamp 6af5e53f-a89d-4628-bdf0-1d744e1ac0ee)) + (segment (start 204.475 144.35) (end 203.0375 144.35) (width 0.25) (layer "F.Cu") (net 2) (tstamp 8f4ee24c-0318-410b-b82e-ffebe56eab0e)) + (segment (start 206.025 145.9) (end 204.475 144.35) (width 0.25) (layer "F.Cu") (net 2) (tstamp a59120c0-0064-477d-8790-844e211e4a91)) + (segment (start 205.4625 151) (end 206.025 150.4375) (width 0.25) (layer "F.Cu") (net 2) (tstamp ae3e4624-8be2-4214-a4e8-3f0b6dd2aeea)) + (segment (start 198 141.4625) (end 198.4625 141) (width 0.25) (layer "F.Cu") (net 3) (tstamp 2a97922b-d1ef-448e-b2e9-fe742d0dbd96)) + (segment (start 198 143.5375) (end 198 141.4625) (width 0.25) (layer "F.Cu") (net 3) (tstamp 3e60a55c-df66-4ab5-9967-5d1b2bc38360)) + (segment (start 198 143.5375) (end 199.95 143.5375) (width 0.25) (layer "F.Cu") (net 3) (tstamp 8e49a5a8-3339-48d0-b165-09ca258d14af)) + (segment (start 199.95 143.5375) (end 200.7625 144.35) (width 0.25) (layer "F.Cu") (net 3) (tstamp f1e23dfe-1d11-4acc-bb03-65c8f578b0c4)) + (segment (start 200.7625 146.25) (end 200.7625 147.2375) (width 0.25) (layer "F.Cu") (net 4) (tstamp 85534454-d491-4953-955b-52f0e5c460e9)) + (segment (start 200 153) (end 200.8 153.8) (width 0.25) (layer "F.Cu") (net 4) (tstamp a850b2ad-1789-4dc2-b330-b5672bb3bd35)) + (segment (start 200.8 153.8) (end 200.8 156.6) (width 0.25) (layer "F.Cu") (net 4) (tstamp a8f3268f-8a45-47d6-850a-3928f701bf8e)) + (segment (start 200.7625 147.2375) (end 200 148) (width 0.25) (layer "F.Cu") (net 4) (tstamp d495af85-40b2-4d2d-99f6-2cde0b1efce2)) + (via (at 200 148) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 0add1e57-1646-4aa6-9492-37069351e01a)) + (via (at 200 153) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 4) (tstamp 92333fa1-af3d-4367-8bc0-9cbb5841ebba)) + (segment (start 200 148) (end 200 153) (width 0.25) (layer "B.Cu") (net 4) (tstamp 2bac8d8f-6e21-48b8-8492-c3b9aa36d7f5)) + (segment (start 197 151) (end 202.5375 151) (width 0.25) (layer "F.Cu") (net 5) (tstamp 21dc81f3-9cc6-4114-8add-ed8bb34f5493)) + (segment (start 193 147) (end 197 151) (width 0.25) (layer "F.Cu") (net 5) (tstamp 8e586fd3-f13b-4ddf-8f13-b84e8ff1545b)) + (segment (start 203 149) (end 204 148) (width 0.25) (layer "F.Cu") (net 6) (tstamp 1b0a80e6-63aa-4abc-ba9c-1de4f7cd2bb9)) + (segment (start 199 149) (end 203 149) (width 0.25) (layer "F.Cu") (net 6) (tstamp 9aa10e91-5da0-4924-8d1b-ad7b28a547da)) + (segment (start 198 148) (end 199 149) (width 0.25) (layer "F.Cu") (net 6) (tstamp a688d845-f2b8-4372-a120-bf9cdec0c18d)) + (segment (start 198 146.4625) (end 198 148) (width 0.25) (layer "F.Cu") (net 6) (tstamp b948dc12-cefb-4026-a263-1cd9d953fc0e)) + (segment (start 216 146) (end 218 146) (width 0.25) (layer "F.Cu") (net 6) (tstamp b9d7539a-bbd4-4778-b406-893cf0d37ae9)) + (segment (start 204 147.2125) (end 203.0375 146.25) (width 0.25) (layer "F.Cu") (net 6) (tstamp c8b2bd6b-0280-4c97-a7be-cc4ddc7ed8cc)) + (segment (start 204 148) (end 205 148) (width 0.25) (layer "F.Cu") (net 6) (tstamp d0d48809-5eec-42fa-bb5b-45d363ec8ff3)) + (segment (start 204 148) (end 204 147.2125) (width 0.25) (layer "F.Cu") (net 6) (tstamp f1e36132-b9bd-40bd-b533-12ab65321d7f)) + (segment (start 215 147) (end 216 146) (width 0.25) (layer "F.Cu") (net 6) (tstamp fabf32ad-7bd3-430e-b52e-dceead5fe31a)) + (via (at 205 148) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 6) (tstamp 336df05d-e6e1-4fa3-b44f-087a2683aead)) + (via (at 215 147) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (net 6) (tstamp 4771f646-3441-45f9-856f-0ddd80f3ea50)) + (segment (start 205 148) (end 214 148) (width 0.25) (layer "B.Cu") (net 6) (tstamp 0ee0ef59-d060-442f-91b9-615bb9cbf2c4)) + (segment (start 214 148) (end 215 147) (width 0.25) (layer "B.Cu") (net 6) (tstamp d984f40d-1d21-48ce-8d26-282cc14dd9ff)) + + (zone (net 1) (net_name "GND") (layers "F&B.Cu") (tstamp 9f1de67c-2f6b-46ef-9c44-e478f4e6b562) (hatch edge 0.5) + (connect_pads (clearance 0.5)) + (min_thickness 0.25) (filled_areas_thickness no) + (fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5)) + (polygon + (pts + (xy 187 137) + (xy 187 161) + (xy 224 161) + (xy 224 137) + ) + ) + (filled_polygon + (layer "F.Cu") + (pts + (xy 222.942539 138.020185) + (xy 222.988294 138.072989) + (xy 222.9995 138.1245) + (xy 222.9995 159.8755) + (xy 222.979815 159.942539) + (xy 222.927011 159.988294) + (xy 222.8755 159.9995) + (xy 188.1245 159.9995) + (xy 188.057461 159.979815) + (xy 188.011706 159.927011) + (xy 188.0005 159.8755) + (xy 188.0005 158.144578) + (xy 198.7995 158.144578) + (xy 198.799501 158.147872) + (xy 198.805909 158.207483) + (xy 198.856204 158.342331) + (xy 198.942454 158.457546) + (xy 199.057669 158.543796) + (xy 199.192517 158.594091) + (xy 199.252127 158.6005) + (xy 202.347872 158.600499) + (xy 202.407483 158.594091) + (xy 202.542331 158.543796) + (xy 202.657546 158.457546) + (xy 202.743796 158.342331) + (xy 202.794091 158.207483) + (xy 202.8005 158.147873) + (xy 202.800499 156.85) + (xy 207 156.85) + (xy 207 158.144518) + (xy 207.000354 158.151132) + (xy 207.0064 158.207371) + (xy 207.056647 158.342089) + (xy 207.142811 158.457188) + (xy 207.25791 158.543352) + (xy 207.392628 158.593599) + (xy 207.448867 158.599645) + (xy 207.455482 158.6) + (xy 208.75 158.6) + (xy 208.75 156.85) + (xy 209.25 156.85) + (xy 209.25 158.6) + (xy 210.544518 158.6) + (xy 210.551132 158.599645) + (xy 210.607371 158.593599) + (xy 210.742089 158.543352) + (xy 210.857188 158.457188) + (xy 210.943352 158.342089) + (xy 210.993599 158.207371) + (xy 210.999645 158.151132) + (xy 211 158.144518) + (xy 211 156.85) + (xy 209.25 156.85) + (xy 208.75 156.85) + (xy 207 156.85) + (xy 202.800499 156.85) + (xy 202.800499 156.35) + (xy 207 156.35) + (xy 208.75 156.35) + (xy 208.75 154.6) + (xy 209.25 154.6) + (xy 209.25 156.35) + (xy 211 156.35) + (xy 211 155.055481) + (xy 210.999645 155.048867) + (xy 210.993599 154.992628) + (xy 210.943352 154.85791) + (xy 210.857188 154.742811) + (xy 210.742089 154.656647) + (xy 210.607371 154.6064) + (xy 210.551132 154.600354) + (xy 210.544518 154.6) + (xy 209.25 154.6) + (xy 208.75 154.6) + (xy 207.455482 154.6) + (xy 207.448867 154.600354) + (xy 207.392628 154.6064) + (xy 207.25791 154.656647) + (xy 207.142811 154.742811) + (xy 207.056647 154.85791) + (xy 207.0064 154.992628) + (xy 207.000354 155.048867) + (xy 207 155.055481) + (xy 207 156.35) + (xy 202.800499 156.35) + (xy 202.800499 155.052128) + (xy 202.794091 154.992517) + (xy 202.743796 154.857669) + (xy 202.657546 154.742454) + (xy 202.542331 154.656204) + (xy 202.407483 154.605909) + (xy 202.355816 154.600354) + (xy 202.351166 154.599854) + (xy 202.351165 154.599853) + (xy 202.347873 154.5995) + (xy 202.344551 154.5995) + (xy 201.5495 154.5995) + (xy 201.482461 154.579815) + (xy 201.436706 154.527011) + (xy 201.4255 154.4755) + (xy 201.4255 153.882743) + (xy 201.427764 153.862237) + (xy 201.42556 153.792126) + (xy 201.425499 153.788226) + (xy 201.425499 153.784151) + (xy 201.4255 153.76065) + (xy 201.424998 153.756677) + (xy 201.42408 153.745018) + (xy 201.422709 153.701373) + (xy 201.41712 153.68214) + (xy 201.413174 153.663082) + (xy 201.410664 153.643206) + (xy 201.394588 153.602604) + (xy 201.390804 153.591553) + (xy 201.384881 153.571168) + (xy 201.378618 153.54961) + (xy 201.368414 153.532355) + (xy 201.359861 153.514895) + (xy 201.352486 153.496269) + (xy 201.352486 153.496268) + (xy 201.326808 153.460925) + (xy 201.320401 153.451171) + (xy 201.298169 153.413579) + (xy 201.284006 153.399416) + (xy 201.271367 153.384617) + (xy 201.259595 153.368413) + (xy 201.225941 153.340573) + (xy 201.217299 153.332709) + (xy 200.93896 153.054369) + (xy 200.905475 152.993046) + (xy 200.903323 152.979668) + (xy 200.885674 152.811744) + (xy 200.827179 152.631716) + (xy 200.827179 152.631715) + (xy 200.732533 152.467783) + (xy 200.60587 152.32711) + (xy 200.45273 152.215848) + (xy 200.279802 152.138855) + (xy 200.094648 152.0995) + (xy 200.094646 152.0995) + (xy 199.905354 152.0995) + (xy 199.905352 152.0995) + (xy 199.720197 152.138855) + (xy 199.547269 152.215848) + (xy 199.394129 152.32711) + (xy 199.267466 152.467783) + (xy 199.17282 152.631715) + (xy 199.114326 152.811742) + (xy 199.09454 153) + (xy 199.114326 153.188257) + (xy 199.17282 153.368284) + (xy 199.267466 153.532216) + (xy 199.394129 153.672889) + (xy 199.547269 153.784151) + (xy 199.720197 153.861144) + (xy 199.905352 153.9005) + (xy 199.905354 153.9005) + (xy 199.964546 153.9005) + (xy 200.031585 153.920185) + (xy 200.052227 153.936818) + (xy 200.138181 154.022771) + (xy 200.171666 154.084094) + (xy 200.1745 154.110453) + (xy 200.174499 154.4755) + (xy 200.154814 154.54254) + (xy 200.10201 154.588295) + (xy 200.050499 154.5995) + (xy 199.255439 154.5995) + (xy 199.25542 154.5995) + (xy 199.252128 154.599501) + (xy 199.248848 154.599853) + (xy 199.24884 154.599854) + (xy 199.192515 154.605909) + (xy 199.057669 154.656204) + (xy 198.942454 154.742454) + (xy 198.856204 154.857668) + (xy 198.80591 154.992515) + (xy 198.805909 154.992517) + (xy 198.7995 155.052127) + (xy 198.7995 155.055448) + (xy 198.7995 155.055449) + (xy 198.7995 158.14456) + (xy 198.7995 158.144578) + (xy 188.0005 158.144578) + (xy 188.0005 148.544578) + (xy 190.9995 148.544578) + (xy 190.999501 148.547872) + (xy 191.005909 148.607483) + (xy 191.056204 148.742331) + (xy 191.142454 148.857546) + (xy 191.257669 148.943796) + (xy 191.392517 148.994091) + (xy 191.452127 149.0005) + (xy 194.064546 149.000499) + (xy 194.131585 149.020184) + (xy 194.152227 149.036818) + (xy 196.499196 151.383787) + (xy 196.512096 151.399888) + (xy 196.563223 151.4479) + (xy 196.56602 151.450611) + (xy 196.585529 151.47012) + (xy 196.588709 151.472587) + (xy 196.597571 151.480155) + (xy 196.629418 151.510062) + (xy 196.64697 151.519711) + (xy 196.663238 151.530397) + (xy 196.679064 151.542673) + (xy 196.719146 151.560017) + (xy 196.729633 151.565155) + (xy 196.767907 151.586197) + (xy 196.77641 151.588379) + (xy 196.787308 151.591178) + (xy 196.805713 151.597478) + (xy 196.824104 151.605437) + (xy 196.86725 151.61227) + (xy 196.878668 151.614635) + (xy 196.920981 151.6255) + (xy 196.941016 151.6255) + (xy 196.960415 151.627027) + (xy 196.980196 151.63016) + (xy 197.023674 151.62605) + (xy 197.035344 151.6255) + (xy 201.357465 151.6255) + (xy 201.424504 151.645185) + (xy 201.470259 151.697989) + (xy 201.480823 151.736899) + (xy 201.485 151.777796) + (xy 201.540186 151.944334) + (xy 201.632288 152.093657) + (xy 201.756342 152.217711) + (xy 201.756344 152.217712) + (xy 201.905666 152.309814) + (xy 202.017016 152.346712) + (xy 202.072202 152.364999) + (xy 202.171858 152.37518) + (xy 202.171859 152.37518) + (xy 202.174991 152.3755) + (xy 202.900008 152.375499) + (xy 203.002797 152.364999) + (xy 203.169334 152.309814) + (xy 203.318656 152.217712) + (xy 203.442712 152.093656) + (xy 203.534814 151.944334) + (xy 203.589999 151.777797) + (xy 203.6005 151.675009) + (xy 203.600499 150.324992) + (xy 203.589999 150.222203) + (xy 203.534814 150.055666) + (xy 203.442712 149.906344) + (xy 203.442711 149.906342) + (xy 203.318658 149.782289) + (xy 203.31229 149.778361) + (xy 203.296359 149.768535) + (xy 203.249636 149.71659) + (xy 203.238412 149.647627) + (xy 203.266254 149.583545) + (xy 203.29292 149.564261) + (xy 203.291057 149.561696) + (xy 203.339061 149.526817) + (xy 203.34883 149.5204) + (xy 203.386418 149.498171) + (xy 203.386417 149.498171) + (xy 203.38642 149.49817) + (xy 203.400585 149.484004) + (xy 203.415373 149.471373) + (xy 203.431587 149.459594) + (xy 203.459438 149.425926) + (xy 203.467279 149.417309) + (xy 204.215301 148.669288) + (xy 204.276622 148.635805) + (xy 204.346314 148.640789) + (xy 204.383139 148.665841) + (xy 204.383586 148.665227) + (xy 204.394126 148.672884) + (xy 204.394129 148.672888) + (xy 204.54727 148.784151) + (xy 204.547271 148.784151) + (xy 204.547272 148.784152) + (xy 204.720197 148.861144) + (xy 204.905352 148.9005) + (xy 204.905354 148.9005) + (xy 205.094648 148.9005) + (xy 205.249719 148.867539) + (xy 205.319386 148.872855) + (xy 205.37512 148.914992) + (xy 205.399225 148.980572) + (xy 205.3995 148.988829) + (xy 205.3995 149.5005) + (xy 205.379815 149.567539) + (xy 205.327011 149.613294) + (xy 205.275501 149.6245) + (xy 205.103141 149.6245) + (xy 205.103121 149.6245) + (xy 205.099992 149.624501) + (xy 205.09686 149.62482) + (xy 205.096858 149.624821) + (xy 204.997203 149.635) + (xy 204.830665 149.690186) + (xy 204.681342 149.782288) + (xy 204.557288 149.906342) + (xy 204.465186 150.055665) + (xy 204.41 150.222202) + (xy 204.399819 150.321858) + (xy 204.399817 150.321878) + (xy 204.3995 150.324991) + (xy 204.3995 150.328138) + (xy 204.3995 150.328139) + (xy 204.3995 151.671859) + (xy 204.3995 151.671878) + (xy 204.399501 151.675008) + (xy 204.39982 151.67814) + (xy 204.399821 151.678141) + (xy 204.41 151.777796) + (xy 204.465186 151.944334) + (xy 204.557288 152.093657) + (xy 204.681342 152.217711) + (xy 204.681344 152.217712) + (xy 204.830666 152.309814) + (xy 204.942016 152.346712) + (xy 204.997202 152.364999) + (xy 205.096858 152.37518) + (xy 205.096859 152.37518) + (xy 205.099991 152.3755) + (xy 205.825008 152.375499) + (xy 205.927797 152.364999) + (xy 206.094334 152.309814) + (xy 206.243656 152.217712) + (xy 206.367712 152.093656) + (xy 206.459814 151.944334) + (xy 206.514999 151.777797) + (xy 206.5255 151.675009) + (xy 206.525499 150.857313) + (xy 206.540834 150.797582) + (xy 206.544711 150.790529) + (xy 206.555399 150.774258) + (xy 206.567673 150.758436) + (xy 206.585018 150.718352) + (xy 206.59016 150.707856) + (xy 206.611197 150.669592) + (xy 206.616179 150.650184) + (xy 206.622481 150.63178) + (xy 206.630437 150.613396) + (xy 206.637269 150.570252) + (xy 206.639633 150.558838) + (xy 206.6505 150.516519) + (xy 206.6505 150.496482) + (xy 206.652027 150.477084) + (xy 206.65516 150.457304) + (xy 206.65105 150.413824) + (xy 206.6505 150.402155) + (xy 206.6505 147.315638) + (xy 206.670185 147.248599) + (xy 206.709404 147.210099) + (xy 206.785154 147.163376) + (xy 206.818656 147.142712) + (xy 206.942712 147.018656) + (xy 207.034814 146.869334) + (xy 207.089999 146.702797) + (xy 207.1005 146.600009) + (xy 207.1005 146.15) + (xy 207.900001 146.15) + (xy 207.900001 146.596829) + (xy 207.900321 146.603111) + (xy 207.910493 146.702695) + (xy 207.965642 146.869122) + (xy 208.057683 147.018345) + (xy 208.181654 147.142316) + (xy 208.330877 147.234357) + (xy 208.497303 147.289506) + (xy 208.59689 147.29968) + (xy 208.603168 147.299999) + (xy 208.724999 147.299999) + (xy 208.725 147.299998) + (xy 208.725 146.15) + (xy 209.225 146.15) + (xy 209.225 147.299999) + (xy 209.346829 147.299999) + (xy 209.353111 147.299678) + (xy 209.452695 147.289506) + (xy 209.619122 147.234357) + (xy 209.768345 147.142316) + (xy 209.892316 147.018345) + (xy 209.903631 147) + (xy 214.09454 147) + (xy 214.099543 147.047597) + (xy 214.114326 147.188257) + (xy 214.17282 147.368284) + (xy 214.267466 147.532216) + (xy 214.394129 147.672889) + (xy 214.547269 147.784151) + (xy 214.720197 147.861144) + (xy 214.905352 147.9005) + (xy 214.905354 147.9005) + (xy 215.094648 147.9005) + (xy 215.218083 147.874262) + (xy 215.279803 147.861144) + (xy 215.45273 147.784151) + (xy 215.582942 147.689547) + (xy 215.60587 147.672889) + (xy 215.642943 147.631716) + (xy 215.732533 147.532216) + (xy 215.768113 147.470588) + (xy 215.818678 147.422373) + (xy 215.887285 147.409149) + (xy 215.95215 147.435116) + (xy 215.992679 147.49203) + (xy 215.9995 147.53258) + (xy 215.9995 147.544556) + (xy 215.9995 147.544574) + (xy 215.999501 147.547872) + (xy 215.999853 147.551152) + (xy 215.999854 147.551159) + (xy 216.005909 147.607484) + (xy 216.030303 147.672888) + (xy 216.056204 147.742331) + (xy 216.142454 147.857546) + (xy 216.257669 147.943796) + (xy 216.392517 147.994091) + (xy 216.452127 148.0005) + (xy 219.547872 148.000499) + (xy 219.607483 147.994091) + (xy 219.742331 147.943796) + (xy 219.857546 147.857546) + (xy 219.943796 147.742331) + (xy 219.994091 147.607483) + (xy 220.0005 147.547873) + (xy 220.000499 144.452128) + (xy 219.994091 144.392517) + (xy 219.943796 144.257669) + (xy 219.857546 144.142454) + (xy 219.742331 144.056204) + (xy 219.607483 144.005909) + (xy 219.607483 144.005908) + (xy 219.551166 143.999854) + (xy 219.551165 143.999853) + (xy 219.547873 143.9995) + (xy 219.54455 143.9995) + (xy 216.455439 143.9995) + (xy 216.45542 143.9995) + (xy 216.452128 143.999501) + (xy 216.448848 143.999853) + (xy 216.44884 143.999854) + (xy 216.392515 144.005909) + (xy 216.257669 144.056204) + (xy 216.142454 144.142454) + (xy 216.056204 144.257668) + (xy 216.00591 144.392515) + (xy 216.005909 144.392517) + (xy 215.9995 144.452127) + (xy 215.9995 144.455448) + (xy 215.9995 144.455449) + (xy 215.9995 145.255679) + (xy 215.979815 145.322718) + (xy 215.927011 145.368473) + (xy 215.910092 145.374756) + (xy 215.88213 145.382879) + (xy 215.863084 145.386824) + (xy 215.843208 145.389335) + (xy 215.8026 145.405413) + (xy 215.791554 145.409194) + (xy 215.788781 145.410001) + (xy 215.749607 145.421383) + (xy 215.732365 145.431579) + (xy 215.714904 145.440133) + (xy 215.696267 145.447512) + (xy 215.660931 145.473185) + (xy 215.651174 145.479595) + (xy 215.61358 145.501829) + (xy 215.599413 145.515996) + (xy 215.584624 145.528626) + (xy 215.568413 145.540404) + (xy 215.540572 145.574058) + (xy 215.532711 145.582697) + (xy 215.052228 146.063181) + (xy 214.990905 146.096666) + (xy 214.964547 146.0995) + (xy 214.905352 146.0995) + (xy 214.720197 146.138855) + (xy 214.547269 146.215848) + (xy 214.394129 146.32711) + (xy 214.267466 146.467783) + (xy 214.17282 146.631715) + (xy 214.114326 146.811742) + (xy 214.103957 146.910404) + (xy 214.09454 147) + (xy 209.903631 147) + (xy 209.984357 146.869122) + (xy 210.039506 146.702696) + (xy 210.04968 146.603109) + (xy 210.05 146.596831) + (xy 210.05 146.15) + (xy 209.225 146.15) + (xy 208.725 146.15) + (xy 207.900001 146.15) + (xy 207.1005 146.15) + (xy 207.100499 145.65) + (xy 207.9 145.65) + (xy 208.725 145.65) + (xy 208.725 144.5) + (xy 209.225 144.5) + (xy 209.225 145.65) + (xy 210.049999 145.65) + (xy 210.049999 145.20317) + (xy 210.049678 145.196888) + (xy 210.039506 145.097304) + (xy 209.984357 144.930877) + (xy 209.892316 144.781654) + (xy 209.768345 144.657683) + (xy 209.619122 144.565642) + (xy 209.452696 144.510493) + (xy 209.353109 144.500319) + (xy 209.346832 144.5) + (xy 209.225 144.5) + (xy 208.725 144.5) + (xy 208.603171 144.5) + (xy 208.596888 144.500321) + (xy 208.497304 144.510493) + (xy 208.330877 144.565642) + (xy 208.181654 144.657683) + (xy 208.057683 144.781654) + (xy 207.965642 144.930877) + (xy 207.910493 145.097303) + (xy 207.900319 145.19689) + (xy 207.9 145.203168) + (xy 207.9 145.65) + (xy 207.100499 145.65) + (xy 207.100499 145.199992) + (xy 207.089999 145.097203) + (xy 207.034814 144.930666) + (xy 206.942712 144.781344) + (xy 206.942711 144.781342) + (xy 206.818657 144.657288) + (xy 206.669334 144.565186) + (xy 206.502797 144.51) + (xy 206.403141 144.499819) + (xy 206.403122 144.499818) + (xy 206.400009 144.4995) + (xy 206.39686 144.4995) + (xy 205.653141 144.4995) + (xy 205.653121 144.4995) + (xy 205.649992 144.499501) + (xy 205.646862 144.49982) + (xy 205.646856 144.499821) + (xy 205.580766 144.506572) + (xy 205.512074 144.493802) + (xy 205.480485 144.470895) + (xy 205.245079 144.235489) + (xy 204.975802 143.966211) + (xy 204.962906 143.950113) + (xy 204.911775 143.902098) + (xy 204.908978 143.899387) + (xy 204.892227 143.882636) + (xy 204.889471 143.87988) + (xy 204.88629 143.877412) + (xy 204.877422 143.869837) + (xy 204.845582 143.839938) + (xy 204.828024 143.830285) + (xy 204.811764 143.819604) + (xy 204.795936 143.807327) + (xy 204.755851 143.78998) + (xy 204.745361 143.784841) + (xy 204.707091 143.763802) + (xy 204.687691 143.758821) + (xy 204.669284 143.752519) + (xy 204.650897 143.744562) + (xy 204.607758 143.737729) + (xy 204.596324 143.735361) + (xy 204.554019 143.7245) + (xy 204.533984 143.7245) + (xy 204.514586 143.722973) + (xy 204.507162 143.721797) + (xy 204.494805 143.71984) + (xy 204.494804 143.71984) + (xy 204.461751 143.722964) + (xy 204.451325 143.72395) + (xy 204.439656 143.7245) + (xy 204.045808 143.7245) + (xy 203.978769 143.704815) + (xy 203.958127 143.688181) + (xy 203.951865 143.681919) + (xy 203.810397 143.598255) + (xy 203.652572 143.552402) + (xy 203.618128 143.549691) + (xy 203.618114 143.54969) + (xy 203.615694 143.5495) + (xy 202.459306 143.5495) + (xy 202.456886 143.54969) + (xy 202.456871 143.549691) + (xy 202.422427 143.552402) + (xy 202.264602 143.598255) + (xy 202.123134 143.681919) + (xy 202.006919 143.798134) + (xy 202.006731 143.798453) + (xy 202.004771 143.800282) + (xy 201.995842 143.809212) + (xy 201.995535 143.808905) + (xy 201.955661 143.846135) + (xy 201.886919 143.858638) + (xy 201.82233 143.831991) + (xy 201.793269 143.798453) + (xy 201.79308 143.798134) + (xy 201.676865 143.681919) + (xy 201.535397 143.598255) + (xy 201.377572 143.552402) + (xy 201.343128 143.549691) + (xy 201.343114 143.54969) + (xy 201.340694 143.5495) + (xy 201.338249 143.5495) + (xy 200.897953 143.5495) + (xy 200.830914 143.529815) + (xy 200.810272 143.513181) + (xy 200.450802 143.153711) + (xy 200.437906 143.137613) + (xy 200.386775 143.089598) + (xy 200.383978 143.086887) + (xy 200.367227 143.070136) + (xy 200.364471 143.06738) + (xy 200.36129 143.064912) + (xy 200.352422 143.057337) + (xy 200.320582 143.027438) + (xy 200.303024 143.017785) + (xy 200.286764 143.007104) + (xy 200.270936 142.994827) + (xy 200.230851 142.97748) + (xy 200.220361 142.972341) + (xy 200.182091 142.951302) + (xy 200.162691 142.946321) + (xy 200.144284 142.940019) + (xy 200.125897 142.932062) + (xy 200.082758 142.925229) + (xy 200.071324 142.922861) + (xy 200.029019 142.912) + (xy 200.008984 142.912) + (xy 199.989586 142.910473) + (xy 199.982162 142.909297) + (xy 199.969805 142.90734) + (xy 199.969804 142.90734) + (xy 199.936751 142.910464) + (xy 199.926325 142.91145) + (xy 199.914656 142.912) + (xy 199.382928 142.912) + (xy 199.315889 142.892315) + (xy 199.277389 142.853096) + (xy 199.217711 142.756342) + (xy 199.093657 142.632288) + (xy 198.98012 142.562259) + (xy 198.933395 142.510312) + (xy 198.922172 142.441349) + (xy 198.950015 142.377267) + (xy 199.006209 142.339015) + (xy 199.094334 142.309814) + (xy 199.243656 142.217712) + (xy 199.367712 142.093656) + (xy 199.459814 141.944334) + (xy 199.514999 141.777797) + (xy 199.5255 141.675009) + (xy 199.525499 140.324992) + (xy 199.514999 140.222203) + (xy 199.459814 140.055666) + (xy 199.367712 139.906344) + (xy 199.367711 139.906342) + (xy 199.243657 139.782288) + (xy 199.094334 139.690186) + (xy 198.927797 139.635) + (xy 198.828141 139.624819) + (xy 198.828122 139.624818) + (xy 198.825009 139.6245) + (xy 198.82186 139.6245) + (xy 198.103141 139.6245) + (xy 198.103121 139.6245) + (xy 198.099992 139.624501) + (xy 198.09686 139.62482) + (xy 198.096858 139.624821) + (xy 197.997203 139.635) + (xy 197.830665 139.690186) + (xy 197.681342 139.782288) + (xy 197.557288 139.906342) + (xy 197.465186 140.055665) + (xy 197.41 140.222202) + (xy 197.399819 140.321858) + (xy 197.399817 140.321878) + (xy 197.3995 140.324991) + (xy 197.3995 140.328138) + (xy 197.3995 140.328139) + (xy 197.3995 141.249515) + (xy 197.395087 141.270834) + (xy 197.397012 141.271139) + (xy 197.387728 141.329743) + (xy 197.38536 141.341174) + (xy 197.3745 141.383477) + (xy 197.3745 141.403516) + (xy 197.372973 141.422914) + (xy 197.36984 141.442694) + (xy 197.37395 141.486173) + (xy 197.3745 141.497843) + (xy 197.3745 142.357465) + (xy 197.354815 142.424504) + (xy 197.302011 142.470259) + (xy 197.263101 142.480823) + (xy 197.222203 142.485) + (xy 197.055665 142.540186) + (xy 196.906342 142.632288) + (xy 196.782288 142.756342) + (xy 196.690186 142.905665) + (xy 196.635 143.072202) + (xy 196.624819 143.171858) + (xy 196.624817 143.171878) + (xy 196.6245 143.174991) + (xy 196.6245 143.178138) + (xy 196.6245 143.178139) + (xy 196.6245 143.896858) + (xy 196.6245 143.896877) + (xy 196.624501 143.900008) + (xy 196.62482 143.90314) + (xy 196.624821 143.903141) + (xy 196.635 144.002796) + (xy 196.690186 144.169334) + (xy 196.782288 144.318657) + (xy 196.906342 144.442711) + (xy 196.916279 144.44884) + (xy 197.055666 144.534814) + (xy 197.148699 144.565642) + (xy 197.222202 144.589999) + (xy 197.321858 144.60018) + (xy 197.321859 144.60018) + (xy 197.324991 144.6005) + (xy 198.675008 144.600499) + (xy 198.777797 144.589999) + (xy 198.944334 144.534814) + (xy 199.093656 144.442712) + (xy 199.217712 144.318656) + (xy 199.277388 144.221904) + (xy 199.329337 144.175179) + (xy 199.382928 144.163) + (xy 199.4755 144.163) + (xy 199.542539 144.182685) + (xy 199.588294 144.235489) + (xy 199.5995 144.287) + (xy 199.5995 144.565694) + (xy 199.59969 144.568114) + (xy 199.599691 144.568128) + (xy 199.602402 144.602572) + (xy 199.648255 144.760397) + (xy 199.731919 144.901865) + (xy 199.848135 145.018081) + (xy 199.912598 145.056204) + (xy 199.989602 145.101744) + (xy 200.147427 145.147597) + (xy 200.147431 145.147598) + (xy 200.184306 145.1505) + (xy 200.186751 145.1505) + (xy 201.338249 145.1505) + (xy 201.340694 145.1505) + (xy 201.377569 145.147598) + (xy 201.535398 145.101744) + (xy 201.676865 145.018081) + (xy 201.676865 145.01808) + (xy 201.690348 145.010107) + (xy 201.69106 145.011311) + (xy 201.736019 144.986758) + (xy 201.805711 144.991739) + (xy 201.853439 145.023751) + (xy 201.877704 145.05) + (xy 202.143185 145.05) + (xy 202.206306 145.067268) + (xy 202.264602 145.101744) + (xy 202.422427 145.147597) + (xy 202.422431 145.147598) + (xy 202.459306 145.1505) + (xy 202.461751 145.1505) + (xy 203.613249 145.1505) + (xy 203.615694 145.1505) + (xy 203.652569 145.147598) + (xy 203.810398 145.101744) + (xy 203.868693 145.067268) + (xy 203.931815 145.05) + (xy 204.239048 145.05) + (xy 204.306087 145.069685) + (xy 204.326729 145.086319) + (xy 204.913181 145.672771) + (xy 204.946666 145.734094) + (xy 204.9495 145.760452) + (xy 204.9495 146.596858) + (xy 204.9495 146.596877) + (xy 204.949501 146.600008) + (xy 204.94982 146.60314) + (xy 204.949821 146.603141) + (xy 204.96 146.702796) + (xy 205.015186 146.869334) + (xy 205.040518 146.910404) + (xy 205.058958 146.977796) + (xy 205.038035 147.04446) + (xy 204.984393 147.089229) + (xy 204.934979 147.0995) + (xy 204.905351 147.0995) + (xy 204.752028 147.132089) + (xy 204.682361 147.126773) + (xy 204.626628 147.084636) + (xy 204.610956 147.056447) + (xy 204.610664 147.05571) + (xy 204.610664 147.055708) + (xy 204.594581 147.015089) + (xy 204.590808 147.004068) + (xy 204.578618 146.96211) + (xy 204.568414 146.944855) + (xy 204.559861 146.927395) + (xy 204.555444 146.916239) + (xy 204.552486 146.908768) + (xy 204.526808 146.873425) + (xy 204.520401 146.863671) + (xy 204.49817 146.82608) + (xy 204.484006 146.811916) + (xy 204.471367 146.797117) + (xy 204.459595 146.780913) + (xy 204.425941 146.753073) + (xy 204.417299 146.745209) + (xy 204.236346 146.564256) + (xy 204.202861 146.502933) + (xy 204.200424 146.466989) + (xy 204.200213 146.470558) + (xy 204.200308 146.468129) + (xy 204.2005 146.465694) + (xy 204.2005 146.034306) + (xy 204.197598 145.997431) + (xy 204.197531 145.997202) + (xy 204.151744 145.839602) + (xy 204.150578 145.83763) + (xy 204.133395 145.769906) + (xy 204.150579 145.711386) + (xy 204.151281 145.710198) + (xy 204.197099 145.552488) + (xy 204.197295 145.55) + (xy 203.931815 145.55) + (xy 203.868694 145.532732) + (xy 203.810397 145.498255) + (xy 203.652572 145.452402) + (xy 203.618128 145.449691) + (xy 203.618114 145.44969) + (xy 203.615694 145.4495) + (xy 202.459306 145.4495) + (xy 202.456886 145.44969) + (xy 202.456871 145.449691) + (xy 202.422427 145.452402) + (xy 202.264602 145.498255) + (xy 202.206306 145.532732) + (xy 202.143185 145.55) + (xy 201.877704 145.55) + (xy 201.853439 145.576249) + (xy 201.793477 145.612114) + (xy 201.723643 145.609869) + (xy 201.690569 145.589519) + (xy 201.690348 145.589893) + (xy 201.671188 145.578562) + (xy 201.565395 145.515996) + (xy 201.535397 145.498255) + (xy 201.377572 145.452402) + (xy 201.343128 145.449691) + (xy 201.343114 145.44969) + (xy 201.340694 145.4495) + (xy 200.184306 145.4495) + (xy 200.181886 145.44969) + (xy 200.181871 145.449691) + (xy 200.147427 145.452402) + (xy 199.989602 145.498255) + (xy 199.848134 145.581919) + (xy 199.731919 145.698134) + (xy 199.648255 145.839602) + (xy 199.602829 145.995958) + (xy 199.565222 146.054843) + (xy 199.50175 146.084049) + (xy 199.432563 146.074303) + (xy 199.379629 146.028698) + (xy 199.366047 146.000366) + (xy 199.364586 145.995958) + (xy 199.309814 145.830666) + (xy 199.217712 145.681344) + (xy 199.217711 145.681342) + (xy 199.093657 145.557288) + (xy 198.944334 145.465186) + (xy 198.777797 145.41) + (xy 198.678141 145.399819) + (xy 198.678122 145.399818) + (xy 198.675009 145.3995) + (xy 198.67186 145.3995) + (xy 197.32814 145.3995) + (xy 197.32812 145.3995) + (xy 197.324992 145.399501) + (xy 197.32186 145.39982) + (xy 197.321858 145.399821) + (xy 197.222203 145.41) + (xy 197.055665 145.465186) + (xy 196.906342 145.557288) + (xy 196.782288 145.681342) + (xy 196.690186 145.830665) + (xy 196.635 145.997202) + (xy 196.624819 146.096858) + (xy 196.624817 146.096878) + (xy 196.6245 146.099991) + (xy 196.6245 146.103138) + (xy 196.6245 146.103139) + (xy 196.6245 146.821858) + (xy 196.6245 146.821877) + (xy 196.624501 146.825008) + (xy 196.62482 146.82814) + (xy 196.624821 146.828141) + (xy 196.635 146.927796) + (xy 196.690186 147.094334) + (xy 196.782288 147.243657) + (xy 196.906342 147.367711) + (xy 196.906344 147.367712) + (xy 197.055666 147.459814) + (xy 197.166657 147.496593) + (xy 197.222202 147.514999) + (xy 197.235566 147.516364) + (xy 197.263101 147.519177) + (xy 197.327793 147.545572) + (xy 197.367945 147.602753) + (xy 197.3745 147.642535) + (xy 197.3745 147.917256) + (xy 197.372235 147.937766) + (xy 197.374439 148.007872) + (xy 197.3745 148.011767) + (xy 197.3745 148.03935) + (xy 197.374988 148.043219) + (xy 197.374989 148.043225) + (xy 197.375004 148.043343) + (xy 197.375918 148.054967) + (xy 197.37729 148.098626) + (xy 197.382879 148.11786) + (xy 197.386825 148.136916) + (xy 197.389335 148.156792) + (xy 197.405414 148.197404) + (xy 197.409197 148.208451) + (xy 197.421382 148.250391) + (xy 197.43158 148.267635) + (xy 197.440136 148.2851) + (xy 197.447514 148.303732) + (xy 197.447515 148.303733) + (xy 197.47318 148.339059) + (xy 197.479593 148.348822) + (xy 197.501826 148.386416) + (xy 197.501829 148.386419) + (xy 197.50183 148.38642) + (xy 197.515995 148.400585) + (xy 197.528627 148.415375) + (xy 197.540406 148.431587) + (xy 197.574058 148.459426) + (xy 197.582699 148.467289) + (xy 198.499197 149.383787) + (xy 198.512098 149.399889) + (xy 198.514212 149.401874) + (xy 198.514214 149.401877) + (xy 198.561561 149.446339) + (xy 198.56324 149.447916) + (xy 198.566036 149.450626) + (xy 198.58553 149.47012) + (xy 198.588615 149.472513) + (xy 198.588701 149.47258) + (xy 198.597573 149.480158) + (xy 198.629418 149.510062) + (xy 198.646974 149.519714) + (xy 198.663231 149.530392) + (xy 198.679064 149.542674) + (xy 198.695185 149.549649) + (xy 198.719156 149.560023) + (xy 198.729643 149.56516) + (xy 198.767908 149.586197) + (xy 198.787316 149.59118) + (xy 198.80571 149.597478) + (xy 198.824105 149.605438) + (xy 198.867254 149.612271) + (xy 198.87868 149.614638) + (xy 198.894222 149.618629) + (xy 198.92098 149.6255) + (xy 198.920981 149.6255) + (xy 198.941016 149.6255) + (xy 198.960413 149.627026) + (xy 198.980196 149.63016) + (xy 199.023674 149.62605) + (xy 199.035344 149.6255) + (xy 201.613769 149.6255) + (xy 201.680808 149.645185) + (xy 201.726563 149.697989) + (xy 201.736507 149.767147) + (xy 201.707482 149.830703) + (xy 201.70145 149.837181) + (xy 201.632288 149.906342) + (xy 201.540186 150.055665) + (xy 201.485 150.222202) + (xy 201.480823 150.263101) + (xy 201.454428 150.327793) + (xy 201.397247 150.367945) + (xy 201.357465 150.3745) + (xy 197.310453 150.3745) + (xy 197.243414 150.354815) + (xy 197.222772 150.338181) + (xy 195.036818 148.152227) + (xy 195.003333 148.090904) + (xy 195.000499 148.064546) + (xy 195.000499 145.455439) + (xy 195.000499 145.455438) + (xy 195.000499 145.452128) + (xy 194.994091 145.392517) + (xy 194.943796 145.257669) + (xy 194.857546 145.142454) + (xy 194.742331 145.056204) + (xy 194.607483 145.005909) + (xy 194.547873 144.9995) + (xy 194.54455 144.9995) + (xy 191.455439 144.9995) + (xy 191.45542 144.9995) + (xy 191.452128 144.999501) + (xy 191.448848 144.999853) + (xy 191.44884 144.999854) + (xy 191.392515 145.005909) + (xy 191.257669 145.056204) + (xy 191.142454 145.142454) + (xy 191.056204 145.257668) + (xy 191.005909 145.392516) + (xy 191.00079 145.440133) + (xy 190.9995 145.452127) + (xy 190.9995 145.455448) + (xy 190.9995 145.455449) + (xy 190.9995 148.54456) + (xy 190.9995 148.544578) + (xy 188.0005 148.544578) + (xy 188.0005 141.25) + (xy 194.475001 141.25) + (xy 194.475001 141.671829) + (xy 194.475321 141.678111) + (xy 194.485493 141.777695) + (xy 194.540642 141.944122) + (xy 194.632683 142.093345) + (xy 194.756654 142.217316) + (xy 194.905877 142.309357) + (xy 195.072303 142.364506) + (xy 195.17189 142.37468) + (xy 195.178168 142.374999) + (xy 195.287499 142.374999) + (xy 195.2875 142.374998) + (xy 195.2875 141.25) + (xy 195.7875 141.25) + (xy 195.7875 142.374999) + (xy 195.896829 142.374999) + (xy 195.903111 142.374678) + (xy 196.002695 142.364506) + (xy 196.169122 142.309357) + (xy 196.318345 142.217316) + (xy 196.442316 142.093345) + (xy 196.534357 141.944122) + (xy 196.589506 141.777696) + (xy 196.59968 141.678109) + (xy 196.6 141.671831) + (xy 196.6 141.25) + (xy 195.7875 141.25) + (xy 195.2875 141.25) + (xy 194.475001 141.25) + (xy 188.0005 141.25) + (xy 188.0005 140.75) + (xy 194.475 140.75) + (xy 195.2875 140.75) + (xy 195.2875 139.625) + (xy 195.7875 139.625) + (xy 195.7875 140.75) + (xy 196.599999 140.75) + (xy 196.599999 140.32817) + (xy 196.599678 140.321888) + (xy 196.589506 140.222304) + (xy 196.534357 140.055877) + (xy 196.442316 139.906654) + (xy 196.318345 139.782683) + (xy 196.169122 139.690642) + (xy 196.002696 139.635493) + (xy 195.903109 139.625319) + (xy 195.896832 139.625) + (xy 195.7875 139.625) + (xy 195.2875 139.625) + (xy 195.178171 139.625) + (xy 195.171888 139.625321) + (xy 195.072304 139.635493) + (xy 194.905877 139.690642) + (xy 194.756654 139.782683) + (xy 194.632683 139.906654) + (xy 194.540642 140.055877) + (xy 194.485493 140.222303) + (xy 194.475319 140.32189) + (xy 194.475 140.328168) + (xy 194.475 140.75) + (xy 188.0005 140.75) + (xy 188.0005 138.1245) + (xy 188.020185 138.057461) + (xy 188.072989 138.011706) + (xy 188.1245 138.0005) + (xy 222.8755 138.0005) + ) + ) + ) +) diff --git a/qa/data/cli/basic_test/basic_test.kicad_pro b/qa/data/cli/basic_test/basic_test.kicad_pro new file mode 100644 index 0000000000..1fff29ff44 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.kicad_pro @@ -0,0 +1,477 @@ +{ + "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.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_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_allow_use_two_tracks": true, + "td_curve_segcount": 5, + "td_on_pad_in_zone": false, + "td_onpadsmd": true, + "td_onroundshapesonly": false, + "td_ontrackend": false, + "td_onviapad": true + } + ], + "teardrop_parameters": [ + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "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": "error", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "CliTest.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": "custom_ds.kicad_wks" + }, + "schematic": { + "annotate_start_num": 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, + "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": "custom_ds.kicad_wks", + "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_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "64c481bc-ea0a-4f9c-a176-3729f4987c58", + "" + ] + ], + "text_variables": {} +} diff --git a/qa/data/cli/basic_test/basic_test.kicad_sch b/qa/data/cli/basic_test/basic_test.kicad_sch new file mode 100644 index 0000000000..8335ed4355 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.kicad_sch @@ -0,0 +1,767 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 64c481bc-ea0a-4f9c-a176-3729f4987c58) + + (paper "A4") + + (title_block + (title "Cli Test") + (date "2023-04-28") + (rev "1") + (company "KiCad") + ) + + (lib_symbols + (symbol "Amplifier_Operational:TLV2371DBV" (pin_names (offset 0.127)) (in_bom yes) (on_board yes) + (property "Reference" "U" (at -1.27 6.35 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "TLV2371DBV" (at -1.27 3.81 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23-5" (at -2.54 -5.08 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/tlv2375.pdf" (at 0 5.08 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "single opamp" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "SOT?23*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "TLV2371DBV_0_1" + (polyline + (pts + (xy -5.08 5.08) + (xy 5.08 0) + (xy -5.08 -5.08) + (xy -5.08 5.08) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin power_in line (at -2.54 -7.62 90) (length 3.81) + (name "V-" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at -2.54 7.62 270) (length 3.81) + (name "V+" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "TLV2371DBV_1_1" + (pin output line (at 7.62 0 180) (length 2.54) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 2.54 0) (length 2.54) + (name "+" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 -2.54 0) (length 2.54) + (name "-" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Connector:Conn_01x01_Pin" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "J" (at 0 2.54 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x01_Pin" (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) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_locked" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "ki_keywords" "connector" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Generic connector, single row, 01x01, script generated" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Conn_01x01_Pin_1_1" + (polyline + (pts + (xy 1.27 0) + (xy 0.8636 0) + ) + (stroke (width 0.1524) (type default)) + (fill (type none)) + ) + (rectangle (start 0.8636 0.127) (end 0 -0.127) + (stroke (width 0.1524) (type default)) + (fill (type outline)) + ) + (pin passive line (at 5.08 0 180) (length 3.81) + (name "Pin_1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:C_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes) + (property "Reference" "C" (at 0.254 1.778 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C_Small" (at 0.254 -2.032 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "capacitor cap" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Unpolarized capacitor, small symbol" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "C_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "C_Small_0_1" + (polyline + (pts + (xy -1.524 -0.508) + (xy 1.524 -0.508) + ) + (stroke (width 0.3302) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -1.524 0.508) + (xy 1.524 0.508) + ) + (stroke (width 0.3048) (type default)) + (fill (type none)) + ) + ) + (symbol "C_Small_1_1" + (pin passive line (at 0 2.54 270) (length 2.032) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -2.54 90) (length 2.032) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R_US" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.54 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R_US" (at -2.54 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 1.016 -0.254 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor, US symbol" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_US_0_1" + (polyline + (pts + (xy 0 -2.286) + (xy 0 -2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.286) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -0.762) + (xy 1.016 -1.143) + (xy 0 -1.524) + (xy -1.016 -1.905) + (xy 0 -2.286) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0.762) + (xy 1.016 0.381) + (xy 0 0) + (xy -1.016 -0.381) + (xy 0 -0.762) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.286) + (xy 1.016 1.905) + (xy 0 1.524) + (xy -1.016 1.143) + (xy 0 0.762) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "R_US_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 "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (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) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (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) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (junction (at 134.62 93.98) (diameter 0) (color 0 0 0 0) + (uuid 95b8d484-12f8-4fca-a194-a4164930c127) + ) + (junction (at 160.02 78.74) (diameter 0) (color 0 0 0 0) + (uuid ea040fa8-aa2d-4fed-8787-7e26c1c669b8) + ) + (junction (at 121.92 76.2) (diameter 0) (color 0 0 0 0) + (uuid f12e4844-3bfa-4ba9-a948-8eea756cd6f7) + ) + + (wire (pts (xy 111.76 99.06) (xy 111.76 100.33)) + (stroke (width 0) (type default)) + (uuid 08af12ec-4712-41fd-9ec7-7bcab2a5653c) + ) + (wire (pts (xy 134.62 81.28) (xy 134.62 93.98)) + (stroke (width 0) (type default)) + (uuid 1aa5be3d-8dd9-4569-a84e-5cae7bf092e9) + ) + (wire (pts (xy 160.02 78.74) (xy 172.72 78.74)) + (stroke (width 0) (type default)) + (uuid 1aa864e1-a609-4d35-b2c5-4c241a86a849) + ) + (wire (pts (xy 160.02 93.98) (xy 160.02 78.74)) + (stroke (width 0) (type default)) + (uuid 3623525b-e0d6-4d60-bce4-bcaaa7767775) + ) + (wire (pts (xy 121.92 76.2) (xy 135.89 76.2)) + (stroke (width 0) (type default)) + (uuid 4fbe4c6e-56e8-4bd6-9c5f-c3770f43ba09) + ) + (wire (pts (xy 110.49 99.06) (xy 111.76 99.06)) + (stroke (width 0) (type default)) + (uuid 5407c84a-af3e-4bab-aebd-073a09a5ba82) + ) + (wire (pts (xy 110.49 76.2) (xy 111.76 76.2)) + (stroke (width 0) (type default)) + (uuid 5966e8da-c16f-47e7-a174-c66471082756) + ) + (wire (pts (xy 140.97 71.12) (xy 140.97 63.5)) + (stroke (width 0) (type default)) + (uuid 695324a4-6328-4985-8945-29ba869bbea5) + ) + (wire (pts (xy 121.92 83.82) (xy 121.92 82.55)) + (stroke (width 0) (type default)) + (uuid 6ae72b5a-69de-4720-b826-8cf1ab7a0f70) + ) + (wire (pts (xy 123.19 93.98) (xy 119.38 93.98)) + (stroke (width 0) (type default)) + (uuid 6f677f05-ff17-4de3-87fd-bde2fd6b29f2) + ) + (wire (pts (xy 135.89 81.28) (xy 134.62 81.28)) + (stroke (width 0) (type default)) + (uuid 772392e2-1c1a-47d6-ba2d-798b15f2f550) + ) + (wire (pts (xy 119.38 93.98) (xy 119.38 96.52)) + (stroke (width 0) (type default)) + (uuid 97d23f6f-bf0b-4d84-810a-f7e53fa2cac7) + ) + (wire (pts (xy 130.81 93.98) (xy 134.62 93.98)) + (stroke (width 0) (type default)) + (uuid 9a5bdf49-1e3d-4ce7-b0a1-89fb629c489b) + ) + (wire (pts (xy 121.92 76.2) (xy 121.92 77.47)) + (stroke (width 0) (type default)) + (uuid aa725e94-39a8-4607-be85-ba7f946ce45d) + ) + (wire (pts (xy 110.49 63.5) (xy 140.97 63.5)) + (stroke (width 0) (type default)) + (uuid adc5346d-3039-4115-8bdc-5cd64da5204c) + ) + (wire (pts (xy 140.97 86.36) (xy 140.97 87.63)) + (stroke (width 0) (type default)) + (uuid b4d811be-7415-49a0-af31-59099da811e5) + ) + (wire (pts (xy 119.38 76.2) (xy 121.92 76.2)) + (stroke (width 0) (type default)) + (uuid b80a0ece-ed6d-4f10-b3c2-34ffb7192b4e) + ) + (wire (pts (xy 151.13 78.74) (xy 160.02 78.74)) + (stroke (width 0) (type default)) + (uuid ca4b7553-b18c-4839-a487-365a6f099259) + ) + (wire (pts (xy 134.62 93.98) (xy 146.05 93.98)) + (stroke (width 0) (type default)) + (uuid ef499c8a-f99c-4656-9267-fa7ca70da5dc) + ) + (wire (pts (xy 153.67 93.98) (xy 160.02 93.98)) + (stroke (width 0) (type default)) + (uuid f5053032-736a-4d5d-adf8-a019d15a0d8e) + ) + + (circle (center 49.53 77.47) (radius 7.1842) + (stroke (width 0) (type default)) + (fill (type color) (color 255 255 0 1)) + (uuid 6b614d85-9a1b-4527-9512-5b4a0b30fa93) + ) + (rectangle (start 38.1 52.07) (end 60.96 102.87) + (stroke (width 0) (type dash)) + (fill (type none)) + (uuid 6de281c7-d339-413a-a2e5-2d9d950b9b4a) + ) + (circle (center 49.53 93.98) (radius 7.1842) + (stroke (width 0) (type default)) + (fill (type color) (color 194 0 0 1)) + (uuid 8a164146-df39-4696-b093-49f575e4883e) + ) + (circle (center 49.53 60.96) (radius 7.1842) + (stroke (width 0) (type default)) + (fill (type color) (color 0 132 0 1)) + (uuid acadf2ad-71ef-4007-b744-01eaa5b11cb5) + ) + + (text_box "The above is a single pole low pass filter for no other reason than something on a page." + (at 140.97 110.49 0) (size 38.1 17.78) + (stroke (width 0) (type default)) + (fill (type color) (color 255 255 194 1)) + (effects (font (size 1.27 1.27)) (justify left top)) + (uuid 35be3d14-1fd5-4760-8b4c-5c287964f680) + ) + + (text "CLI TEST" (at 127 52.07 0) + (effects (font (size 5 5) (thickness 0.254) bold) (justify left bottom)) + (uuid 9be20d76-216a-4288-83e8-5765bd37d7f3) + ) + + (label "VCC" (at 124.46 63.5 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 2d398714-012b-4433-971b-a44c26328bb0) + ) + (label "IN" (at 110.49 76.2 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 5fb63630-676f-4166-be5d-d554c8998770) + ) + (label "OUT" (at 167.64 78.74 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid e979b1ed-d6d7-4ae2-ba25-df57e59c3737) + ) + + (symbol (lib_id "power:GND") (at 119.38 96.52 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 19ba0538-2910-44b8-9336-edf1ff095912) + (property "Reference" "#PWR01" (at 119.38 102.87 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 119.38 101.6 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 119.38 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 119.38 96.52 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d244be40-4f72-4136-9d69-8cadcdfa193b)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "#PWR01") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Pin") (at 105.41 63.5 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 203ec3c1-122c-4087-8f6d-2a0dd0b941e6) + (property "Reference" "J1" (at 104.14 62.23 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x01_Pin" (at 111.76 64.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_3.0x3.0mm" (at 105.41 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 105.41 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4ce4f6e6-8253-4006-a8f1-6feddc16e0c0)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "J1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Pin") (at 105.41 76.2 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 2a9f5f63-d864-4898-ae3e-539c635e8f2c) + (property "Reference" "J2" (at 104.14 74.93 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x01_Pin" (at 111.76 77.47 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_3.0x3.0mm" (at 105.41 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 105.41 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 58e5e7d7-252f-47c7-a985-52c74ed5f439)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "J2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 121.92 83.82 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 5d9a8cf4-5c54-4c57-accb-dd6295272287) + (property "Reference" "#PWR03" (at 121.92 90.17 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 121.92 87.63 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 121.92 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 121.92 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid dd0c4950-cf3a-44b4-a8df-50f0786976ed)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "#PWR03") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 140.97 87.63 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 62fef766-bfdd-4a4a-a8fa-79183473dd3b) + (property "Reference" "#PWR02" (at 140.97 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 143.51 90.17 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 140.97 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 140.97 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bda821c9-4b59-46e7-84b2-e4cf65772b17)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "#PWR02") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Pin") (at 105.41 99.06 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 789295bb-2cfb-4a2b-977f-b3831d5aa975) + (property "Reference" "J4" (at 104.14 97.79 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x01_Pin" (at 111.76 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_3.0x3.0mm" (at 105.41 99.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 105.41 99.06 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7daddeb4-fd3c-47bd-b053-795e23187826)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "J4") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C_Small") (at 121.92 80.01 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8a4f4d93-4e0c-474b-8535-68c4fef6e828) + (property "Reference" "C1" (at 124.46 79.3813 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "10u" (at 124.46 81.9213 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "Capacitor_SMD:C_1206_3216Metric" (at 121.92 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 121.92 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 1e8e8c80-97d7-45fc-9b74-c06bf8646533)) + (pin "2" (uuid ea2e2778-b890-4d75-9097-7cc368e3c09c)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "C1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R_US") (at 149.86 93.98 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1) + (property "Reference" "R2" (at 149.86 88.9 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "10k" (at 149.86 91.44 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_1206_3216Metric" (at 150.114 92.964 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 149.86 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c67a5bf1-d95a-484e-b01b-b912cdf3db71)) + (pin "2" (uuid 9f220203-e10e-4e38-b114-cd5b27962ab0)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "R2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R_US") (at 115.57 76.2 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 985a669c-9a7f-4b74-bb4f-9487b164d3aa) + (property "Reference" "R3" (at 115.57 71.12 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "10k" (at 115.57 73.66 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_1206_3216Metric" (at 115.824 75.184 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 115.57 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 86d62a66-2048-4150-81a5-c4b0916dbe77)) + (pin "2" (uuid e0046d70-f42a-4632-8315-782fb389a067)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "R3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Connector:Conn_01x01_Pin") (at 177.8 78.74 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 9efa520e-00e1-47a2-b8dc-bf8e2121d065) + (property "Reference" "J3" (at 177.165 74.93 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Conn_01x01_Pin" (at 180.34 81.28 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "TestPoint:TestPoint_Pad_3.0x3.0mm" (at 177.8 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 177.8 78.74 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 79714b42-1363-4d85-a94f-70e20e3cb143)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "J3") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 111.76 100.33 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid a45b22f2-0929-43b6-b1fb-e2272cb68106) + (property "Reference" "#PWR04" (at 111.76 106.68 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 114.3 102.87 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 111.76 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 111.76 100.33 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 049a3f7b-129b-48ad-a49a-3897bf04a814)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "#PWR04") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Amplifier_Operational:TLV2371DBV") (at 143.51 78.74 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid b8a40376-5e4f-459f-9886-5e9ee83698cf) + (property "Reference" "U1" (at 146.05 82.55 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "TLV2371DBV" (at 149.86 85.09 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Package_TO_SOT_SMD:SOT-23-5" (at 140.97 83.82 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/ds/symlink/tlv2375.pdf" (at 143.51 73.66 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "2" (uuid 74f1f498-1594-4d18-a0fd-b624cedbd22a)) + (pin "5" (uuid 0123f423-4b4c-467f-8b7d-43421b82330d)) + (pin "1" (uuid fc161e33-0433-4df3-846a-3fafd4eccab8)) + (pin "3" (uuid c64f9bc2-9b61-465a-b225-86256d9505ac)) + (pin "4" (uuid 44de0295-df78-42b3-bcdc-a158404b85d9)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "U1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R_US") (at 127 93.98 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid eaf8668d-aec7-4209-a3f9-fc7bfb5b931b) + (property "Reference" "R1" (at 127 88.9 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "10k" (at 127 91.44 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Resistor_SMD:R_1206_3216Metric" (at 127.254 92.964 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 127 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 43d31f44-35d7-4970-8846-3666070c5be4)) + (pin "2" (uuid b2590023-5594-46a0-8b13-49b4719fab4f)) + (instances + (project "CliTest" + (path "/64c481bc-ea0a-4f9c-a176-3729f4987c58" + (reference "R1") (unit 1) + ) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) +) diff --git a/qa/data/cli/basic_test/basic_test.netlist.cadstar b/qa/data/cli/basic_test/basic_test.netlist.cadstar new file mode 100644 index 0000000000..8493a84522 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.netlist.cadstar @@ -0,0 +1,40 @@ +.HEA +.TIM 5/2/2023 8:59:04 PM +.APP "Eeschema 7.99.0-893-g4a5939297b-dirty" +.TYP FULL + +.ADD_COM R1 "10k" "Resistor_SMD:R_1206_3216Metric" +.ADD_COM C1 "10u" "Capacitor_SMD:C_1206_3216Metric" +.ADD_COM R2 "10k" "Resistor_SMD:R_1206_3216Metric" +.ADD_COM J3 "Conn_01x01_Pin" "TestPoint:TestPoint_Pad_3.0x3.0mm" +.ADD_COM J2 "Conn_01x01_Pin" "TestPoint:TestPoint_Pad_3.0x3.0mm" +.ADD_COM J1 "Conn_01x01_Pin" "TestPoint:TestPoint_Pad_3.0x3.0mm" +.ADD_COM J4 "Conn_01x01_Pin" "TestPoint:TestPoint_Pad_3.0x3.0mm" +.ADD_COM R3 "10k" "Resistor_SMD:R_1206_3216Metric" +.ADD_COM U1 "TLV2371DBV" "Package_TO_SOT_SMD:SOT-23-5" + + +.ADD_TER J3 1 "/OUT" +.TER R2 2 + U1 1 + +.ADD_TER J1 1 "/VCC" +.TER U1 5 + +.ADD_TER C1 1 "Net-(U1-+)" +.TER R3 2 + U1 3 + +.ADD_TER R1 2 "Net-(U1--)" +.TER R2 1 + U1 4 + +.ADD_TER C1 2 "GND" +.TER J4 1 + R1 1 + U1 2 + +.ADD_TER J2 1 "/IN" +.TER R3 1 + +.END diff --git a/qa/data/cli/basic_test/basic_test.netlist.kicadsexpr b/qa/data/cli/basic_test/basic_test.netlist.kicadsexpr new file mode 100644 index 0000000000..c0bc9d8e3f --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.netlist.kicadsexpr @@ -0,0 +1,196 @@ +(export (version "E") + (design + (source "E:\\kicad\\kicad\\qa\\data\\cli\\basic_test.kicad_sch") + (date "5/2/2023 8:59:03 PM") + (tool "Eeschema 7.99.0-893-g4a5939297b-dirty") + (sheet (number "1") (name "/") (tstamps "/") + (title_block + (title "Cli Test") + (company "KiCad") + (rev "1") + (date "2023-04-28") + (source "basic_test.kicad_sch") + (comment (number "1") (value "")) + (comment (number "2") (value "")) + (comment (number "3") (value "")) + (comment (number "4") (value "")) + (comment (number "5") (value "")) + (comment (number "6") (value "")) + (comment (number "7") (value "")) + (comment (number "8") (value "")) + (comment (number "9") (value ""))))) + (components + (comp (ref "C1") + (value "10u") + (footprint "Capacitor_SMD:C_1206_3216Metric") + (libsource (lib "Device") (part "C_Small") (description "Unpolarized capacitor, small symbol")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Unpolarized capacitor, small symbol")) + (property (name "ki_keywords") (value "capacitor cap")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "8a4f4d93-4e0c-474b-8535-68c4fef6e828")) + (comp (ref "J1") + (value "Conn_01x01_Pin") + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm") + (libsource (lib "Connector") (part "Conn_01x01_Pin") (description "Generic connector, single row, 01x01, script generated")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Generic connector, single row, 01x01, script generated")) + (property (name "ki_keywords") (value "connector")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "203ec3c1-122c-4087-8f6d-2a0dd0b941e6")) + (comp (ref "J2") + (value "Conn_01x01_Pin") + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm") + (libsource (lib "Connector") (part "Conn_01x01_Pin") (description "Generic connector, single row, 01x01, script generated")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Generic connector, single row, 01x01, script generated")) + (property (name "ki_keywords") (value "connector")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "2a9f5f63-d864-4898-ae3e-539c635e8f2c")) + (comp (ref "J3") + (value "Conn_01x01_Pin") + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm") + (libsource (lib "Connector") (part "Conn_01x01_Pin") (description "Generic connector, single row, 01x01, script generated")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Generic connector, single row, 01x01, script generated")) + (property (name "ki_keywords") (value "connector")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "9efa520e-00e1-47a2-b8dc-bf8e2121d065")) + (comp (ref "J4") + (value "Conn_01x01_Pin") + (footprint "TestPoint:TestPoint_Pad_3.0x3.0mm") + (libsource (lib "Connector") (part "Conn_01x01_Pin") (description "Generic connector, single row, 01x01, script generated")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Generic connector, single row, 01x01, script generated")) + (property (name "ki_keywords") (value "connector")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "789295bb-2cfb-4a2b-977f-b3831d5aa975")) + (comp (ref "R1") + (value "10k") + (footprint "Resistor_SMD:R_1206_3216Metric") + (libsource (lib "Device") (part "R_US") (description "Resistor, US symbol")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Resistor, US symbol")) + (property (name "ki_keywords") (value "R res resistor")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "eaf8668d-aec7-4209-a3f9-fc7bfb5b931b")) + (comp (ref "R2") + (value "10k") + (footprint "Resistor_SMD:R_1206_3216Metric") + (libsource (lib "Device") (part "R_US") (description "Resistor, US symbol")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Resistor, US symbol")) + (property (name "ki_keywords") (value "R res resistor")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1")) + (comp (ref "R3") + (value "10k") + (footprint "Resistor_SMD:R_1206_3216Metric") + (libsource (lib "Device") (part "R_US") (description "Resistor, US symbol")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Resistor, US symbol")) + (property (name "ki_keywords") (value "R res resistor")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "985a669c-9a7f-4b74-bb4f-9487b164d3aa")) + (comp (ref "U1") + (value "TLV2371DBV") + (footprint "Package_TO_SOT_SMD:SOT-23-5") + (datasheet "http://www.ti.com/lit/ds/symlink/tlv2375.pdf") + (libsource (lib "Amplifier_Operational") (part "TLV2371DBV") (description "Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5")) + (property (name "Sheetname") (value "")) + (property (name "Sheetfile") (value "basic_test.kicad_sch")) + (property (name "ki_description") (value "Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5")) + (property (name "ki_keywords") (value "single opamp")) + (sheetpath (names "/") (tstamps "/")) + (tstamps "b8a40376-5e4f-459f-9886-5e9ee83698cf"))) + (libparts + (libpart (lib "Amplifier_Operational") (part "TLV2371DBV") + (description "Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5") + (docs "http://www.ti.com/lit/ds/symlink/tlv2375.pdf") + (footprints + (fp "SOT?23*")) + (fields + (field (name "Reference") "U") + (field (name "Value") "TLV2371DBV") + (field (name "Footprint") "Package_TO_SOT_SMD:SOT-23-5") + (field (name "Datasheet") "http://www.ti.com/lit/ds/symlink/tlv2375.pdf")) + (pins + (pin (num "1") (name "") (type "output")) + (pin (num "2") (name "V-") (type "power_in")) + (pin (num "3") (name "+") (type "input")) + (pin (num "4") (name "-") (type "input")) + (pin (num "5") (name "V+") (type "power_in")))) + (libpart (lib "Connector") (part "Conn_01x01_Pin") + (description "Generic connector, single row, 01x01, script generated") + (docs "~") + (footprints + (fp "Connector*:*_1x??_*")) + (fields + (field (name "Reference") "J") + (field (name "Value") "Conn_01x01_Pin") + (field (name "Datasheet") "~")) + (pins + (pin (num "1") (name "Pin_1") (type "passive")))) + (libpart (lib "Device") (part "C_Small") + (description "Unpolarized capacitor, small symbol") + (docs "~") + (footprints + (fp "C_*")) + (fields + (field (name "Reference") "C") + (field (name "Value") "C_Small") + (field (name "Datasheet") "~")) + (pins + (pin (num "1") (name "") (type "passive")) + (pin (num "2") (name "") (type "passive")))) + (libpart (lib "Device") (part "R_US") + (description "Resistor, US symbol") + (docs "~") + (footprints + (fp "R_*")) + (fields + (field (name "Reference") "R") + (field (name "Value") "R_US") + (field (name "Datasheet") "~")) + (pins + (pin (num "1") (name "") (type "passive")) + (pin (num "2") (name "") (type "passive"))))) + (libraries + (library (logical "Amplifier_Operational") + (uri "C:\\Program Files\\KiCad\\7.99\\share\\kicad\\symbols/Amplifier_Operational.kicad_sym")) + (library (logical "Connector") + (uri "C:\\Program Files\\KiCad\\7.99\\share\\kicad\\symbols/Connector.kicad_sym")) + (library (logical "Device") + (uri "C:\\Program Files\\KiCad\\7.99\\share\\kicad\\symbols/Device.kicad_sym"))) + (nets + (net (code "1") (name "/IN") + (node (ref "J2") (pin "1") (pinfunction "Pin_1") (pintype "passive")) + (node (ref "R3") (pin "1") (pintype "passive"))) + (net (code "2") (name "/OUT") + (node (ref "J3") (pin "1") (pinfunction "Pin_1") (pintype "passive")) + (node (ref "R2") (pin "2") (pintype "passive")) + (node (ref "U1") (pin "1") (pintype "output"))) + (net (code "3") (name "/VCC") + (node (ref "J1") (pin "1") (pinfunction "Pin_1") (pintype "passive")) + (node (ref "U1") (pin "5") (pinfunction "V+") (pintype "power_in"))) + (net (code "4") (name "GND") + (node (ref "C1") (pin "2") (pintype "passive")) + (node (ref "J4") (pin "1") (pinfunction "Pin_1") (pintype "passive")) + (node (ref "R1") (pin "1") (pintype "passive")) + (node (ref "U1") (pin "2") (pinfunction "V-") (pintype "power_in"))) + (net (code "5") (name "Net-(U1-+)") + (node (ref "C1") (pin "1") (pintype "passive")) + (node (ref "R3") (pin "2") (pintype "passive")) + (node (ref "U1") (pin "3") (pinfunction "+") (pintype "input"))) + (net (code "6") (name "Net-(U1--)") + (node (ref "R1") (pin "2") (pintype "passive")) + (node (ref "R2") (pin "1") (pintype "passive")) + (node (ref "U1") (pin "4") (pinfunction "-") (pintype "input"))))) \ No newline at end of file diff --git a/qa/data/cli/basic_test/basic_test.netlist.kicadxml b/qa/data/cli/basic_test/basic_test.netlist.kicadxml new file mode 100644 index 0000000000..98670fc650 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.netlist.kicadxml @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<export version="E"> + <design> + <source>E:\kicad\kicad\qa\data\cli\basic_test.kicad_sch</source> + <date>5/2/2023 8:59:04 PM</date> + <tool>Eeschema 7.99.0-893-g4a5939297b-dirty</tool> + <sheet number="1" name="/" tstamps="/"> + <title_block> + <title>Cli Test</title> + <company>KiCad</company> + <rev>1</rev> + <date>2023-04-28</date> + <source>basic_test.kicad_sch</source> + <comment number="1" value=""/> + <comment number="2" value=""/> + <comment number="3" value=""/> + <comment number="4" value=""/> + <comment number="5" value=""/> + <comment number="6" value=""/> + <comment number="7" value=""/> + <comment number="8" value=""/> + <comment number="9" value=""/> + </title_block> + </sheet> + </design> + <components> + <comp ref="C1"> + <value>10u</value> + <footprint>Capacitor_SMD:C_1206_3216Metric</footprint> + <libsource lib="Device" part="C_Small" description="Unpolarized capacitor, small symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor, small symbol"/> + <property name="ki_keywords" value="capacitor cap"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>8a4f4d93-4e0c-474b-8535-68c4fef6e828</tstamps> + </comp> + <comp ref="J1"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>203ec3c1-122c-4087-8f6d-2a0dd0b941e6</tstamps> + </comp> + <comp ref="J2"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>2a9f5f63-d864-4898-ae3e-539c635e8f2c</tstamps> + </comp> + <comp ref="J3"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>9efa520e-00e1-47a2-b8dc-bf8e2121d065</tstamps> + </comp> + <comp ref="J4"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>789295bb-2cfb-4a2b-977f-b3831d5aa975</tstamps> + </comp> + <comp ref="R1"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>eaf8668d-aec7-4209-a3f9-fc7bfb5b931b</tstamps> + </comp> + <comp ref="R2"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1</tstamps> + </comp> + <comp ref="R3"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>985a669c-9a7f-4b74-bb4f-9487b164d3aa</tstamps> + </comp> + <comp ref="U1"> + <value>TLV2371DBV</value> + <footprint>Package_TO_SOT_SMD:SOT-23-5</footprint> + <datasheet>http://www.ti.com/lit/ds/symlink/tlv2375.pdf</datasheet> + <libsource lib="Amplifier_Operational" part="TLV2371DBV" description="Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5"/> + <property name="ki_keywords" value="single opamp"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>b8a40376-5e4f-459f-9886-5e9ee83698cf</tstamps> + </comp> + </components> + <libparts> + <libpart lib="Amplifier_Operational" part="TLV2371DBV"> + <description>Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5</description> + <docs>http://www.ti.com/lit/ds/symlink/tlv2375.pdf</docs> + <footprints> + <fp>SOT?23*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">TLV2371DBV</field> + <field name="Footprint">Package_TO_SOT_SMD:SOT-23-5</field> + <field name="Datasheet">http://www.ti.com/lit/ds/symlink/tlv2375.pdf</field> + </fields> + <pins> + <pin num="1" name="" type="output"/> + <pin num="2" name="V-" type="power_in"/> + <pin num="3" name="+" type="input"/> + <pin num="4" name="-" type="input"/> + <pin num="5" name="V+" type="power_in"/> + </pins> + </libpart> + <libpart lib="Connector" part="Conn_01x01_Pin"> + <description>Generic connector, single row, 01x01, script generated</description> + <docs>~</docs> + <footprints> + <fp>Connector*:*_1x??_*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">Conn_01x01_Pin</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="Pin_1" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="C_Small"> + <description>Unpolarized capacitor, small symbol</description> + <docs>~</docs> + <footprints> + <fp>C_*</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">C_Small</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="R_US"> + <description>Resistor, US symbol</description> + <docs>~</docs> + <footprints> + <fp>R_*</fp> + </footprints> + <fields> + <field name="Reference">R</field> + <field name="Value">R_US</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + </libparts> + <libraries> + <library logical="Amplifier_Operational"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Amplifier_Operational.kicad_sym</uri> + </library> + <library logical="Connector"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Connector.kicad_sym</uri> + </library> + <library logical="Device"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Device.kicad_sym</uri> + </library> + </libraries> + <nets> + <net code="1" name="/IN"> + <node ref="J2" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R3" pin="1" pintype="passive"/> + </net> + <net code="2" name="/OUT"> + <node ref="J3" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R2" pin="2" pintype="passive"/> + <node ref="U1" pin="1" pintype="output"/> + </net> + <net code="3" name="/VCC"> + <node ref="J1" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="U1" pin="5" pinfunction="V+" pintype="power_in"/> + </net> + <net code="4" name="GND"> + <node ref="C1" pin="2" pintype="passive"/> + <node ref="J4" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R1" pin="1" pintype="passive"/> + <node ref="U1" pin="2" pinfunction="V-" pintype="power_in"/> + </net> + <net code="5" name="Net-(U1-+)"> + <node ref="C1" pin="1" pintype="passive"/> + <node ref="R3" pin="2" pintype="passive"/> + <node ref="U1" pin="3" pinfunction="+" pintype="input"/> + </net> + <net code="6" name="Net-(U1--)"> + <node ref="R1" pin="2" pintype="passive"/> + <node ref="R2" pin="1" pintype="passive"/> + <node ref="U1" pin="4" pinfunction="-" pintype="input"/> + </net> + </nets> +</export> diff --git a/qa/data/cli/basic_test/basic_test.netlist.orcadpcb2 b/qa/data/cli/basic_test/basic_test.netlist.orcadpcb2 new file mode 100644 index 0000000000..73bccb7943 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.netlist.orcadpcb2 @@ -0,0 +1,38 @@ +( { EESchema Netlist Version 1.1 created 5/2/2023 8:59:05 PM } + ( /eaf8668d-aec7-4209-a3f9-fc7bfb5b931b Resistor_SMD:R_1206_3216Metric R1 10k + ( 1 GND ) + ( 2 Net-(U1--) ) + ) + ( /8a4f4d93-4e0c-474b-8535-68c4fef6e828 Capacitor_SMD:C_1206_3216Metric C1 10u + ( 1 Net-(U1-+) ) + ( 2 GND ) + ) + ( /8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1 Resistor_SMD:R_1206_3216Metric R2 10k + ( 1 Net-(U1--) ) + ( 2 /OUT ) + ) + ( /9efa520e-00e1-47a2-b8dc-bf8e2121d065 TestPoint:TestPoint_Pad_3.0x3.0mm J3 Conn_01x01_Pin + ( 1 /OUT ) + ) + ( /2a9f5f63-d864-4898-ae3e-539c635e8f2c TestPoint:TestPoint_Pad_3.0x3.0mm J2 Conn_01x01_Pin + ( 1 /IN ) + ) + ( /203ec3c1-122c-4087-8f6d-2a0dd0b941e6 TestPoint:TestPoint_Pad_3.0x3.0mm J1 Conn_01x01_Pin + ( 1 /VCC ) + ) + ( /789295bb-2cfb-4a2b-977f-b3831d5aa975 TestPoint:TestPoint_Pad_3.0x3.0mm J4 Conn_01x01_Pin + ( 1 GND ) + ) + ( /985a669c-9a7f-4b74-bb4f-9487b164d3aa Resistor_SMD:R_1206_3216Metric R3 10k + ( 1 /IN ) + ( 2 Net-(U1-+) ) + ) + ( /b8a40376-5e4f-459f-9886-5e9ee83698cf Package_TO_SOT_SMD:SOT-23-5 U1 TLV2371DBV + ( 1 /OUT ) + ( 2 GND ) + ( 3 Net-(U1-+) ) + ( 4 Net-(U1--) ) + ( 5 /VCC ) + ) +) +* diff --git a/qa/data/cli/basic_test/basic_test.pythonbom b/qa/data/cli/basic_test/basic_test.pythonbom new file mode 100644 index 0000000000..91571a4f31 --- /dev/null +++ b/qa/data/cli/basic_test/basic_test.pythonbom @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<export version="E"> + <design> + <source>E:\kicad\kicad\qa\data\cli\basic_test\basic_test.kicad_sch</source> + <date>5/2/2023 11:18:18 PM</date> + <tool>Eeschema 7.99.0-893-g4a5939297b-dirty</tool> + <sheet number="1" name="/" tstamps="/"> + <title_block> + <title>Cli Test</title> + <company>KiCad</company> + <rev>1</rev> + <date>2023-04-28</date> + <source>basic_test.kicad_sch</source> + <comment number="1" value=""/> + <comment number="2" value=""/> + <comment number="3" value=""/> + <comment number="4" value=""/> + <comment number="5" value=""/> + <comment number="6" value=""/> + <comment number="7" value=""/> + <comment number="8" value=""/> + <comment number="9" value=""/> + </title_block> + </sheet> + </design> + <components> + <comp ref="C1"> + <value>10u</value> + <footprint>Capacitor_SMD:C_1206_3216Metric</footprint> + <libsource lib="Device" part="C_Small" description="Unpolarized capacitor, small symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Unpolarized capacitor, small symbol"/> + <property name="ki_keywords" value="capacitor cap"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>8a4f4d93-4e0c-474b-8535-68c4fef6e828</tstamps> + </comp> + <comp ref="J1"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>203ec3c1-122c-4087-8f6d-2a0dd0b941e6</tstamps> + </comp> + <comp ref="J2"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>2a9f5f63-d864-4898-ae3e-539c635e8f2c</tstamps> + </comp> + <comp ref="J3"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>9efa520e-00e1-47a2-b8dc-bf8e2121d065</tstamps> + </comp> + <comp ref="J4"> + <value>Conn_01x01_Pin</value> + <footprint>TestPoint:TestPoint_Pad_3.0x3.0mm</footprint> + <libsource lib="Connector" part="Conn_01x01_Pin" description="Generic connector, single row, 01x01, script generated"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Generic connector, single row, 01x01, script generated"/> + <property name="ki_keywords" value="connector"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>789295bb-2cfb-4a2b-977f-b3831d5aa975</tstamps> + </comp> + <comp ref="R1"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>eaf8668d-aec7-4209-a3f9-fc7bfb5b931b</tstamps> + </comp> + <comp ref="R2"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>8b2eeae5-e1ad-4999-aeb9-01fe06aff8b1</tstamps> + </comp> + <comp ref="R3"> + <value>10k</value> + <footprint>Resistor_SMD:R_1206_3216Metric</footprint> + <libsource lib="Device" part="R_US" description="Resistor, US symbol"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Resistor, US symbol"/> + <property name="ki_keywords" value="R res resistor"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>985a669c-9a7f-4b74-bb4f-9487b164d3aa</tstamps> + </comp> + <comp ref="U1"> + <value>TLV2371DBV</value> + <footprint>Package_TO_SOT_SMD:SOT-23-5</footprint> + <datasheet>http://www.ti.com/lit/ds/symlink/tlv2375.pdf</datasheet> + <libsource lib="Amplifier_Operational" part="TLV2371DBV" description="Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5"/> + <property name="Sheetname" value=""/> + <property name="Sheetfile" value="basic_test.kicad_sch"/> + <property name="ki_description" value="Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5"/> + <property name="ki_keywords" value="single opamp"/> + <sheetpath names="/" tstamps="/"/> + <tstamps>b8a40376-5e4f-459f-9886-5e9ee83698cf</tstamps> + </comp> + </components> + <libparts> + <libpart lib="Amplifier_Operational" part="TLV2371DBV"> + <description>Rail-to-Rail Input/Output Operational Amplifier, SOT-23-5</description> + <docs>http://www.ti.com/lit/ds/symlink/tlv2375.pdf</docs> + <footprints> + <fp>SOT?23*</fp> + </footprints> + <fields> + <field name="Reference">U</field> + <field name="Value">TLV2371DBV</field> + <field name="Footprint">Package_TO_SOT_SMD:SOT-23-5</field> + <field name="Datasheet">http://www.ti.com/lit/ds/symlink/tlv2375.pdf</field> + </fields> + <pins> + <pin num="1" name="" type="output"/> + <pin num="2" name="V-" type="power_in"/> + <pin num="3" name="+" type="input"/> + <pin num="4" name="-" type="input"/> + <pin num="5" name="V+" type="power_in"/> + </pins> + </libpart> + <libpart lib="Connector" part="Conn_01x01_Pin"> + <description>Generic connector, single row, 01x01, script generated</description> + <docs>~</docs> + <footprints> + <fp>Connector*:*_1x??_*</fp> + </footprints> + <fields> + <field name="Reference">J</field> + <field name="Value">Conn_01x01_Pin</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="Pin_1" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="C_Small"> + <description>Unpolarized capacitor, small symbol</description> + <docs>~</docs> + <footprints> + <fp>C_*</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">C_Small</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + <libpart lib="Device" part="R_US"> + <description>Resistor, US symbol</description> + <docs>~</docs> + <footprints> + <fp>R_*</fp> + </footprints> + <fields> + <field name="Reference">R</field> + <field name="Value">R_US</field> + <field name="Datasheet">~</field> + </fields> + <pins> + <pin num="1" name="" type="passive"/> + <pin num="2" name="" type="passive"/> + </pins> + </libpart> + </libparts> + <libraries> + <library logical="Amplifier_Operational"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Amplifier_Operational.kicad_sym</uri> + </library> + <library logical="Connector"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Connector.kicad_sym</uri> + </library> + <library logical="Device"> + <uri>C:\Program Files\KiCad\7.99\share\kicad\symbols/Device.kicad_sym</uri> + </library> + </libraries> + <nets> + <net code="1" name="/IN"> + <node ref="J2" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R3" pin="1" pintype="passive"/> + </net> + <net code="2" name="/OUT"> + <node ref="J3" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R2" pin="2" pintype="passive"/> + <node ref="U1" pin="1" pintype="output"/> + </net> + <net code="3" name="/VCC"> + <node ref="J1" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="U1" pin="5" pinfunction="V+" pintype="power_in"/> + </net> + <net code="4" name="GND"> + <node ref="C1" pin="2" pintype="passive"/> + <node ref="J4" pin="1" pinfunction="Pin_1" pintype="passive"/> + <node ref="R1" pin="1" pintype="passive"/> + <node ref="U1" pin="2" pinfunction="V-" pintype="power_in"/> + </net> + <net code="5" name="Net-(U1-+)"> + <node ref="C1" pin="1" pintype="passive"/> + <node ref="R3" pin="2" pintype="passive"/> + <node ref="U1" pin="3" pinfunction="+" pintype="input"/> + </net> + <net code="6" name="Net-(U1--)"> + <node ref="R1" pin="2" pintype="passive"/> + <node ref="R2" pin="1" pintype="passive"/> + <node ref="U1" pin="4" pinfunction="-" pintype="input"/> + </net> + </nets> +</export> diff --git a/qa/data/cli/basic_test/custom_ds.kicad_wks b/qa/data/cli/basic_test/custom_ds.kicad_wks new file mode 100644 index 0000000000..3f52c70f70 --- /dev/null +++ b/qa/data/cli/basic_test/custom_ds.kicad_wks @@ -0,0 +1,46 @@ +(kicad_wks (version 20220228) (generator pl_editor) + (setup (textsize 1.5 1.5)(linewidth 0.15)(textlinewidth 0.15) + (left_margin 10)(right_margin 10)(top_margin 10)(bottom_margin 10)) + (rect (name "") (start 110 34) (end 2 2) (comment "rect around the title block") +) + (rect (name "") (start 0 0 ltcorner) (end 0 0) (repeat 2) (incrx 2) (incry 2)) + (line (name "") (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50)) + (tbtext "1" (name "") (pos 25 1 ltcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50)) + (line (name "") (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50)) + (tbtext "1" (name "") (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50)) + (line (name "") (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50)) + (tbtext "A" (name "") (pos 1 25 ltcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50)) + (line (name "") (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50)) + (tbtext "A" (name "") (pos 1 25 rtcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50)) + (tbtext "Date: ${ISSUE_DATE}" (name "") (pos 87 6.9)) + (line (name "") (start 110 5.5) (end 2 5.5)) + (tbtext "${KICAD_VERSION}" (name "") (pos 109 4.1) (comment "Kicad version") +) + (line (name "") (start 110 8.5) (end 2 8.5)) + (tbtext "Rev: ${REVISION}" (name "") (pos 24 6.9) (font bold)) + (tbtext "Size: ${PAPER}" (name "") (pos 109 6.9) (comment "Paper format name") +) + (tbtext "Id: ${#}/${##}" (name "") (pos 24 4.1) (comment "Sheet id") +) + (line (name "") (start 110 12.5) (end 2 12.5)) + (tbtext "Title: ${TITLE}" (name "") (pos 109 10.7) (font (size 2 2) bold italic)) + (tbtext "File: ${FILENAME}" (name "") (pos 109 14.3)) + (line (name "") (start 110 18.5) (end 2 18.5)) + (tbtext "Sheet: ${SHEETPATH}" (name "") (pos 109 17)) + (tbtext "${COMPANY}" (name "") (pos 109 20) (font bold) (comment "Company name") +) + (tbtext "${COMMENT1}" (name "") (pos 109 23) (comment "Comment 0") +) + (tbtext "${COMMENT2}" (name "") (pos 109 26) (comment "Comment 1") +) + (tbtext "${COMMENT3}" (name "") (pos 109 29) (comment "Comment 2") +) + (tbtext "${COMMENT4}" (name "") (pos 109 32) (comment "Comment 3") +) + (line (name "") (start 90 8.5) (end 90 5.5)) + (line (name "") (start 26 8.5) (end 26 2)) + (tbtext "CUSTOM DRAWING SHEET" (name "") (pos 79.789 22.8422) (font (size 4 4) bold)) + (tbtext "CUSTOM DRAWING SHEET" (name "") (pos 274.0992 6.3322) (font (size 4 4) bold)) + (tbtext "CUSTOM DRAWING SHEET" (name "") (pos 274.0992 184.1322) (font (size 4 4) bold)) + (tbtext "CUSTOM DRAWING SHEET" (name "") (pos 77.2492 184.1322) (font (size 4 4) bold)) +) diff --git a/qa/tests/CMakeLists.txt b/qa/tests/CMakeLists.txt index 688c1199f8..af3ab7f34d 100644 --- a/qa/tests/CMakeLists.txt +++ b/qa/tests/CMakeLists.txt @@ -32,15 +32,42 @@ endif() if( KICAD_TEST_XML_OUTPUT ) # To do this, you will need xmlrunner - set( PY_TEST_ARGS --xml=${CMAKE_CURRENT_BINARY_DIR}/python.xunit-results ) + set( PYTEST_ARGS_QAPYTHON --xml=${CMAKE_CURRENT_BINARY_DIR}/qapython.xunit-results ) + set( PYTEST_ARGS_QACLI --junitxml=${CMAKE_CURRENT_BINARY_DIR}/qacli.junit-results ) endif() + +if( MSVC ) +# avoid formatting this otherwise you will introduce whitespace into the PATH string + set( QA_PATH_REPLACEMENT +"PATH=${CMAKE_BINARY_DIR}/kicad/;\ +${CMAKE_BINARY_DIR}/pcbnew/;\ +${CMAKE_BINARY_DIR}/eeschema/;\ +$ENV{PATH};" ) +endif() + + +if( NOT (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug") ) +# qa_python will never work under MSVC + Debug because we only have the Release mode python.exe +# but the kicad binaries are linked to the debug mode python # Test that runs the QA tests through scripting add_test( NAME qa_python - COMMAND ${PYTHON_EXECUTABLE} test-pcbnewswig.py ${PY_TEST_ARGS} + COMMAND ${PYTHON_EXECUTABLE} test-pcbnewswig.py ${PYTEST_ARGS_QAPYTHON} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) -set_property( TEST qa_python - PROPERTY ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}/pcbnew${PYTHON_QA_PATH}" -) \ No newline at end of file +set_tests_properties( qa_python + PROPERTIES + ENVIRONMENT "${QA_PATH_REPLACEMENT}PYTHONPATH=${CMAKE_BINARY_DIR}/pcbnew;${PYTHON_QA_PATH}" +) +endif() + +add_test(NAME qa_cli + COMMAND ${PYTHON_EXECUTABLE} -m pytest ${CMAKE_CURRENT_SOURCE_DIR}/cli ${PYTEST_ARGS_QACLI} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +) + +set_tests_properties( qa_cli + PROPERTIES + ENVIRONMENT "${QA_PATH_REPLACEMENT};KICAD_RUN_FROM_BUILD_DIR=1;PYTHONPATH=${CMAKE_BINARY_DIR}/pcbnew;${PYTHON_QA_PATH}" +) diff --git a/qa/tests/cli/conftest.py b/qa/tests/cli/conftest.py new file mode 100644 index 0000000000..9a4212b64d --- /dev/null +++ b/qa/tests/cli/conftest.py @@ -0,0 +1,69 @@ +# +# This program source code file is part of KiCad, a free EDA CAD application. +# +# Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com> +# Copyright (C) 2023 KiCad Developers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +import pytest +import os +from pathlib import Path + +class KiTestFixture: + def __init__( self, config ) -> None: + self._junit = False + junitxml = config.getoption("xmlpath") + + if junitxml is not None: + p = Path( junitxml ) + p = Path( p.parent ) # get the directory as junitxml points to a file + p = p.resolve() # get absolute path + self._junit = True + else: + p = Path.cwd() + + p = p.joinpath('output/') + + self._output_path = p + + def get_output_path( self, sub: str ) -> Path: + """Return the calculated output path for test artifacts""" + + output_path = self._output_path.joinpath( sub ) + + os.makedirs( str( output_path ), exist_ok=True ) + + return output_path + + def get_data_file_path( self, file: str ) -> str: + current_dir = os.path.dirname(__file__) + base_data_path = os.path.abspath(os.path.join(current_dir, '../../data')) + + return os.path.join(base_data_path, file) + + def add_attachment( self, path: str ) -> None: + """Prints the attachment message line for junit reports""" + + if self._junit: + print( "[[ATTACHMENT|{}]]".format( path ) ) + + +@pytest.fixture +def kitest( pytestconfig ): + kitesthelper = KiTestFixture( pytestconfig ) + yield kitesthelper \ No newline at end of file diff --git a/qa/tests/cli/pytest.ini b/qa/tests/cli/pytest.ini new file mode 100644 index 0000000000..ac65ad1f40 --- /dev/null +++ b/qa/tests/cli/pytest.ini @@ -0,0 +1,5 @@ +[pytest] +junit_suite_name = cli +junit_logging = all +log_cli = true +log_level = INFO \ No newline at end of file diff --git a/qa/tests/cli/test_common.py b/qa/tests/cli/test_common.py new file mode 100644 index 0000000000..087ad802ce --- /dev/null +++ b/qa/tests/cli/test_common.py @@ -0,0 +1,54 @@ +# +# This program source code file is part of KiCad, a free EDA CAD application. +# +# Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com> +# Copyright (C) 2023 KiCad Developers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +import pytest +import utils +import re + +def test_version(): + command = ["kicad-cli", "version"] + stdout, stderr, exitcode = utils.run_and_capture(command) + assert exitcode == 0 + assert re.match("\\d+.\\d+.\\d+", stdout) + assert stderr == '' + +def test_version_plain(): + command = ["kicad-cli", "version", "--format=plain"] + stdout, stderr, exitcode = utils.run_and_capture(command) + assert exitcode == 0 + assert re.match("\\d+.\\d+.\\d+", stdout) + assert stderr == '' + +def test_version_commit(): + command = ["kicad-cli", "version", "--format=commit"] + stdout, stderr, exitcode = utils.run_and_capture(command) + assert exitcode == 0 + assert re.match("\\b[0-9a-f]{40}\\b", stdout) + assert stderr == '' + +def test_help(): + command = ["kicad-cli", "help"] + stdout, stderr, exitcode = utils.run_and_capture(command) + assert exitcode == 1 + assert stdout != '' + assert stderr == '' + \ No newline at end of file diff --git a/qa/tests/cli/test_sch.py b/qa/tests/cli/test_sch.py new file mode 100644 index 0000000000..5277b523f1 --- /dev/null +++ b/qa/tests/cli/test_sch.py @@ -0,0 +1,159 @@ +# +# This program source code file is part of KiCad, a free EDA CAD application. +# +# Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com> +# Copyright (C) 2023 KiCad Developers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +import utils +import cairosvg +import re +import os +from pathlib import Path +import pytest + +@pytest.mark.parametrize("test_file,output_dir,compare_fn,cli_args", + [("cli\\basic_test\\basic_test.kicad_sch", "basic_test", "cli\\basic_test\\basic_test.png", []), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test_nobg_bnw_nods", "cli\\basic_test\\basic_test_nobg_bnw_nods.png", ["--no-background-color", "--exclude-drawing-sheet", "--black-and-white"]) + ]) +def test_sch_export_svg( kitest, + image_diff, + test_file: str, + output_dir: str, + compare_fn: str, + cli_args: list): + input_file = kitest.get_data_file_path( test_file ) + + output_path = kitest.get_output_path( "cli\\{}\\".format( output_dir ) ) + + command = ["kicad-cli", "sch", "export", "svg"] + command.extend( cli_args ) + command.append( "-o" ) + command.append( str( output_path ) ) + command.append( input_file ) + + stdout, stderr, exitcode = utils.run_and_capture( command ) + + assert exitcode == 0 + assert stderr == '' + + stdout_regex = re.match("^Plotted to '(.+)'", stdout) + assert stdout_regex + + # now try and manipulate the extracted path + output_svg_path = Path( stdout_regex.group(1) ) + assert output_svg_path.exists() + + kitest.add_attachment( output_svg_path ) + + png_converted_from_svg_path = output_svg_path.with_suffix( '.png' ) + + compare_file_path = kitest.get_data_file_path( compare_fn ) + + cairosvg.svg2png( url=str( output_svg_path ), write_to=str( png_converted_from_svg_path ) ) + + assert image_diff( png_converted_from_svg_path, compare_file_path, throw_exception=False ) + + +@pytest.mark.parametrize("test_file,output_fn,line_skip_count,cli_args", + [("cli\\basic_test\\basic_test.kicad_sch", "basic_test.netlist.kicadsexpr", 5, []), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.netlist.kicadsexpr", 5, ["--format=kicadsexpr"]), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.netlist.kicadxml", 6, ["--format=kicadxml"]), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.netlist.cadstar", 3, ["--format=cadstar"]), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.netlist.orcadpcb2", 1, ["--format=orcadpcb2"]) + ]) +def test_sch_export_netlist( kitest, + test_file: str, + output_fn: str, + line_skip_count: int, + cli_args: list): + input_file = kitest.get_data_file_path( test_file ) + compare_filepath = kitest.get_data_file_path( "cli\\basic_test\\{}".format( output_fn ) ) + + output_filepath = kitest.get_output_path( "cli\\" ).joinpath( output_fn ) + + command = ["kicad-cli", "sch", "export", "netlist"] + command.extend( cli_args ) + command.append( "-o" ) + command.append( str( output_filepath ) ) + command.append( input_file ) + + stdout, stderr, exitcode = utils.run_and_capture( command ) + + assert exitcode == 0 + assert stderr == '' + + assert utils.textdiff_files( compare_filepath, str( output_filepath ), line_skip_count ) + + kitest.add_attachment( str( output_filepath ) ) + + +@pytest.mark.parametrize("test_file,output_fn,cli_args", + [("cli\\basic_test\\basic_test.kicad_sch", "basic_test.pdf", []), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.bnw.nods.nobg.pdf", ["--black-and-white","--exclude-drawing-sheet","--no-background-color"]), + ("cli\\basic_test\\basic_test.kicad_sch", "basic_test.pone.pdf", ["--plot-one"]) + ]) +def test_sch_export_pdf( kitest, + test_file: str, + output_fn: str, + cli_args: list): + input_file = kitest.get_data_file_path( test_file ) + + output_filepath = kitest.get_output_path( "cli\\" ).joinpath( output_fn ) + + command = ["kicad-cli", "sch", "export", "pdf"] + command.extend( cli_args ) + command.append( "-o" ) + command.append( str( output_filepath ) ) + command.append( input_file ) + + stdout, stderr, exitcode = utils.run_and_capture( command ) + + assert exitcode == 0 + assert stderr == '' + + kitest.add_attachment( str( output_filepath ) ) + + +@pytest.mark.parametrize("test_file,output_fn,line_skip_count,cli_args", + [("cli\\basic_test\\basic_test.kicad_sch", "basic_test.pythonbom", 6, []) + ]) +def test_sch_export_pythonbom( kitest, + test_file: str, + output_fn: str, + line_skip_count: int, + cli_args: list): + input_file = kitest.get_data_file_path( test_file ) + compare_filepath = kitest.get_data_file_path( "cli\\basic_test\\{}".format( output_fn ) ) + + output_filepath = kitest.get_output_path( "cli\\" ).joinpath( output_fn ) + + command = ["kicad-cli", "sch", "export", "python-bom"] + command.extend( cli_args ) + command.append( "-o" ) + command.append( str( output_filepath ) ) + command.append( input_file ) + + stdout, stderr, exitcode = utils.run_and_capture( command ) + + assert exitcode == 0 + assert stderr == '' + + assert utils.textdiff_files( compare_filepath, str( output_filepath ), line_skip_count ) + + kitest.add_attachment( str( output_filepath ) ) \ No newline at end of file diff --git a/qa/tests/cli/utils.py b/qa/tests/cli/utils.py new file mode 100644 index 0000000000..083a9230cf --- /dev/null +++ b/qa/tests/cli/utils.py @@ -0,0 +1,59 @@ +# +# This program source code file is part of KiCad, a free EDA CAD application. +# +# Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com> +# Copyright (C) 2023 KiCad Developers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +import difflib +import logging +import subprocess +import os + +logger = logging.getLogger("cli_util") + +def run_and_capture( command: list ) -> tuple[ str, str, int ]: + logger.info("Executing command \"%s\"", " ".join( command )) + + proc = subprocess.Popen( command, + stdout = subprocess.PIPE, + stderr = subprocess.PIPE, + encoding = 'utf-8' + ) + + out,err = proc.communicate() + + return out, err, proc.returncode + +def textdiff_files( golden_filepath: str, new_filepath: str, skip: int = 0 ) -> bool: + status: bool = True + + with open( golden_filepath, 'r' ) as f: + golden_lines = f.readlines()[skip:] + + with open( new_filepath, 'r' ) as f: + new_lines = f.readlines()[skip:] + + diff = difflib.unified_diff( golden_lines, new_lines, fromfile = golden_filepath, tofile = new_filepath ) + diff_text = ''.join(list(diff)) + + if diff_text != "": + logger.info( "Text diff found:" ) + logger.info( diff_text ) + + return diff_text == "" \ No newline at end of file diff --git a/qa/tests/requirements.txt b/qa/tests/requirements.txt new file mode 100644 index 0000000000..5563e6a79b --- /dev/null +++ b/qa/tests/requirements.txt @@ -0,0 +1,3 @@ +pytest +cairosvg +pytest-image-diff \ No newline at end of file