nouvelle version pcb dumber + nouvelle version monietur en QT

This commit is contained in:
vezde 2022-07-07 17:08:45 +02:00
parent fea60b1cc0
commit a9416d70bb
11 changed files with 1499 additions and 186 deletions

View file

@ -535,78 +535,55 @@
) )
) )
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA" locked (layer "F.Cu") (footprint "INSA:Battery-14500" locked (layer "F.Cu")
(tedit 5DBEA3CC) (tstamp 8b41067e-6e69-443e-93db-d62bc8903b11) (tedit 0) (tstamp 8b41067e-6e69-443e-93db-d62bc8903b11)
(at 180.975 131.5 90) (at 180.5 106 90)
(descr "https://www.keyelco.com/product-pdf.cfm?p=1025")
(tags "AA battery cell holder")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
(property "Sheetname" "Power_Charge") (property "Sheetname" "Power_Charge")
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/053dd8a9-6683-412e-b95b-646ea38b2cad") (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/053dd8a9-6683-412e-b95b-646ea38b2cad")
(attr through_hole) (attr through_hole)
(fp_text reference "BT1" (at -3.755 -7.62 180) (layer "F.SilkS") (fp_text reference "BT1" (at -29.128 9.492 90 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 1 1) (thickness 0.15)))
(tstamp d9addb3d-b4aa-4664-9c96-05fa8d34341d) (tstamp 5034a73b-0aa4-4c23-869f-d7ee02821d02)
) )
(fp_text value "Li-ION" (at 24.5 0 90) (layer "F.Fab") (fp_text value "Li-ION" (at 0 14 90 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 1 1) (thickness 0.15)))
(tstamp 6a0e3a45-bd1d-4a3b-a233-c28d7e1ed6ab) (tstamp 0541344d-2824-4d54-a87f-e4ddd641ab5b)
) )
(fp_text user "+" (at -3.4 -0.06 90) (layer "F.SilkS") (fp_text user "+" (at -32 0 90 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 2.5 2.5) (thickness 0.3)))
(tstamp 07e5c169-a3a9-4f7c-bf6f-f7ca16b1837e) (tstamp a647c7a1-8f07-42b5-b7c7-794faf831ecc)
) )
(fp_text user "-" (at 55.37 -0.06 90) (layer "F.SilkS") (fp_text user "-" (at 32 -0.2 90 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 2.5 2.5) (thickness 0.3)))
(tstamp 152ad189-81fe-41d9-a363-eac8aa9cae93) (tstamp aacb8f2b-8b29-49cc-9388-1f600e34db83)
) )
(fp_text user "${REFERENCE}" (at 0.01 -0.06 90) (layer "F.Fab") (fp_line (start -14.2 -7.8) (end -14.2 7.8) (layer "F.SilkS") (width 0.12) (tstamp 28e71141-ff2c-40c9-9554-2ee10d8226c9))
(effects (font (size 1 1) (thickness 0.15))) (fp_line (start 14.2 -7.8) (end 14.2 7.8) (layer "F.SilkS") (width 0.12) (tstamp 6aec16d3-205f-412c-9d8c-457312466c25))
(tstamp d3b88131-b8a2-4ecd-8e4a-7c7e29c13c9c) (fp_rect (start -29.8 -7.8) (end 29.8 7.8) (layer "F.SilkS") (width 0.12) (fill none) (tstamp 1992a7c6-c4b5-4e9a-ada0-bd5d4f8b1635))
) (fp_rect (start -30 -8) (end 30 8) (layer "F.CrtYd") (width 0.12) (fill none) (tstamp f65f3780-494d-4002-90ec-d1e756f2b33b))
(fp_line (start 18.1 -5.6) (end 33.9 -5.6) (layer "F.SilkS") (width 0.12) (tstamp 10aa8f78-c1ff-4f20-a772-e321c180bf35)) (pad "1" thru_hole circle locked (at -18.25 0 90) (size 3.5 3.5) (drill 1.9) (layers *.Cu *.Mask)
(fp_line (start 50.31 -4.06) (end 50.31 3.94) (layer "F.SilkS") (width 0.12) (tstamp 1a8caf80-6062-4c25-86bc-e7a12e348126)) (net 1 "+BATT") (pinfunction "+") (pintype "passive") (tstamp 45c75864-abd8-4abd-88d6-deb4549a4439))
(fp_line (start 49.31 2.94) (end 49.31 -3.06) (layer "F.SilkS") (width 0.12) (tstamp 22f27340-72c5-496d-90b9-382b0d5a61cf)) (pad "1" thru_hole circle locked (at -25.85 0 90) (size 3.5 3.5) (drill 1.9) (layers *.Cu *.Mask)
(fp_line (start 47.31 -1.06) (end 47.31 0.94) (layer "F.SilkS") (width 0.12) (tstamp 367f7182-1373-4c99-84f2-539c0e5603e4)) (net 1 "+BATT") (pinfunction "+") (pintype "passive") (tstamp e62b0f89-e1bd-426a-bbea-98c57998968b))
(fp_line (start -1.9 7.6) (end 16.1 7.6) (layer "F.SilkS") (width 0.12) (tstamp 36f5c5c9-fbfb-46ed-ab79-3db68f4bfebd)) (pad "2" thru_hole circle locked (at 25.85 0 90) (size 3.5 3.5) (drill 1.9) (layers *.Cu *.Mask)
(fp_line (start -1.9 -7.6) (end -1.9 7.6) (layer "F.SilkS") (width 0.12) (tstamp 3a66a4e2-6339-4444-9fcd-74e15b58236b)) (net 2 "GND") (pinfunction "-") (pintype "passive") (tstamp e128e729-32bd-4884-8141-6ccd41e06445))
(fp_line (start 54.62 8.565) (end -2.62 8.565) (layer "F.SilkS") (width 0.12) (tstamp 47d751f8-d530-408d-b146-563f0c91f9cf)) (pad "2" thru_hole circle locked (at 18.25 0 90) (size 3.5 3.5) (drill 1.9) (layers *.Cu *.Mask)
(fp_line (start 33.9 5.6) (end 18.1 5.6) (layer "F.SilkS") (width 0.12) (tstamp 5f9d0eea-b7f5-4818-927e-8d41bff32c4f)) (net 2 "GND") (pinfunction "-") (pintype "passive") (tstamp e5d1ae16-b6ce-49e5-8036-2bd33f1c03f0))
(fp_line (start -2.62 -8.565) (end 54.62 -8.565) (layer "F.SilkS") (width 0.12) (tstamp 603453ab-665b-4245-8768-8bc6644a3b45)) (model "/home/dimercur/kicad/local-packages3d/Insa.3dshapes/GL2003 AA Battery Clip MPD BK-92.stp"
(fp_line (start 35.9 7.6) (end 53.9 7.6) (layer "F.SilkS") (width 0.12) (tstamp 63e3517f-022d-40cc-975d-a14fce9f7c40)) (offset (xyz 23 0 0))
(fp_line (start -1.9 -7.6) (end 16.1 -7.6) (layer "F.SilkS") (width 0.12) (tstamp 6d06a57c-e77b-49b4-8c0d-58707a7e4fa1))
(fp_line (start 53.9 -7.6) (end 53.9 7.6) (layer "F.SilkS") (width 0.12) (tstamp 6fd0bb76-b760-4c3f-80d3-ac633bd454d6))
(fp_line (start 54.62 -8.565) (end 54.62 8.565) (layer "F.SilkS") (width 0.12) (tstamp 8174e340-cf91-4a09-9d89-66e2ffaf6dcd))
(fp_line (start 48.31 -2.06) (end 48.31 1.94) (layer "F.SilkS") (width 0.12) (tstamp b1f4efd2-287d-4f69-83d5-72d044b05a1c))
(fp_line (start 35.9 -7.6) (end 53.9 -7.6) (layer "F.SilkS") (width 0.12) (tstamp c456af8b-919f-473c-8426-3fe53d0f1c42))
(fp_line (start -2.62 8.565) (end -2.62 -8.565) (layer "F.SilkS") (width 0.12) (tstamp f3d219ef-5ae4-47f1-8f54-9354d94687d4))
(fp_arc (start 35.9 -7.6) (mid 35.314214 -6.185786) (end 33.9 -5.6) (layer "F.SilkS") (width 0.12) (tstamp a33d4e88-f65d-448d-985e-0ed5765879df))
(fp_arc (start 16.1 7.6) (mid 16.685786 6.185786) (end 18.1 5.6) (layer "F.SilkS") (width 0.12) (tstamp ba4d9348-1253-4eaf-a089-4b4ff1ed132c))
(fp_arc (start 18.1 -5.6) (mid 16.685786 -6.185786) (end 16.1 -7.6) (layer "F.SilkS") (width 0.12) (tstamp d8690ea1-7c06-424c-9eed-270587aa2bf6))
(fp_arc (start 33.9 5.6) (mid 35.314214 6.185786) (end 35.9 7.6) (layer "F.SilkS") (width 0.12) (tstamp daa76c1a-294f-468e-87f3-dbeaaba54045))
(fp_line (start -2.75 8.7) (end -2.75 -8.7) (layer "F.CrtYd") (width 0.05) (tstamp 2dcb98ae-9b2f-4d0b-8faf-5786b3a686c3))
(fp_line (start 54.75 -8.7) (end 54.75 8.7) (layer "F.CrtYd") (width 0.05) (tstamp 9213585f-9345-4d81-8ed3-e42cdc867493))
(fp_line (start -2.75 -8.7) (end 54.75 -8.7) (layer "F.CrtYd") (width 0.05) (tstamp cd7a07fb-61f3-4960-9a8a-4f88b2da37c1))
(fp_line (start 54.75 8.7) (end -2.75 8.7) (layer "F.CrtYd") (width 0.05) (tstamp fd2c49bc-4ca7-4cac-a05f-c12bbee2841a))
(fp_line (start -2.5 -8.445) (end -2.5 8.445) (layer "F.Fab") (width 0.1) (tstamp 28bb66b0-a4e5-42c9-a7b6-e988a1a777b3))
(fp_line (start 54.5 8.445) (end 54.5 -8.445) (layer "F.Fab") (width 0.1) (tstamp 2a692316-e077-48e0-8173-f92cac27635a))
(fp_line (start 54.5 -8.445) (end -2.5 -8.445) (layer "F.Fab") (width 0.1) (tstamp 9680adb9-c8aa-4b42-a883-64e1961dbc3a))
(fp_line (start -2.5 8.445) (end 54.5 8.445) (layer "F.Fab") (width 0.1) (tstamp d4dbb5ce-4e8f-4556-a2a2-9f416d7a855d))
(pad "" np_thru_hole circle locked (at 49.23 5.995 90) (size 2.64 2.64) (drill 2.64) (layers *.Cu *.Mask) (tstamp 88d417f2-24c5-4ff6-b100-29b6f3273425))
(pad "" np_thru_hole circle locked (at 2.75 -5.995 180) (size 2.64 2.64) (drill 2.64) (layers *.Cu *.Mask) (tstamp e8d20cf8-7e82-413f-9d8d-32eb81028bec))
(pad "1" thru_hole rect locked (at 0 0 270) (size 2 2) (drill 1.02) (layers *.Cu *.Mask)
(net 1 "+BATT") (pinfunction "+") (pintype "passive") (tstamp 299c368e-aa33-41d1-a49e-f6dd0ce8bb02))
(pad "2" thru_hole circle locked (at 51.99 0 270) (size 2 2) (drill 1.02) (layers *.Cu *.Mask)
(net 2 "GND") (pinfunction "-") (pintype "passive") (tstamp 1a5dac4e-6410-4b69-a2b9-4e10730ba1ac))
(model "${KICAD6_3DMODEL_DIR}/Battery.3dshapes/BatteryHolder_Keystone_2460_1xAA.step"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1)) (scale (xyz 1 1 1))
(rotate (xyz 0 0 0)) (rotate (xyz 0 0 90))
) )
(model "/home/dimercur/kicad/local-packages3d/keystone-PN2460.STEP" (model "/home/dimercur/kicad/local-packages3d/Insa.3dshapes/GL2003 AA Battery Clip MPD BK-92.stp"
(offset (xyz 23 0.75 10.5)) (offset (xyz -23 0 0))
(scale (xyz 1 1 1)) (scale (xyz 1 1 1))
(rotate (xyz -90 0 0)) (rotate (xyz 0 0 -90))
)
(model "/home/dimercur/kicad/local-packages3d/Insa.3dshapes/Saft LS 14500 AA Size Lithium Battery v2.step"
(offset (xyz 25.5 0 7.5))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -90))
) )
) )
@ -957,7 +934,7 @@
(pad "17" thru_hole circle locked (at 23.2 -14 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask) (pad "17" thru_hole circle locked (at 23.2 -14 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask)
(net 43 "unconnected-(U1-Pad17)") (pinfunction "DIO3") (pintype "bidirectional+no_connect") (tstamp b6f23ec5-7ef9-47fa-a7fa-a4086e510043)) (net 43 "unconnected-(U1-Pad17)") (pinfunction "DIO3") (pintype "bidirectional+no_connect") (tstamp b6f23ec5-7ef9-47fa-a7fa-a4086e510043))
(pad "18" thru_hole circle locked (at 23.2 -16 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask) (pad "18" thru_hole circle locked (at 23.2 -16 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask)
(net 44 "unconnected-(U1-Pad18)") (pinfunction "DIO2") (pintype "bidirectional") (tstamp 01e6735d-a3ca-4409-a40a-adf8acf85dfc)) (net 44 "unconnected-(U1-Pad18)") (pinfunction "DIO2") (pintype "bidirectional+no_connect") (tstamp 01e6735d-a3ca-4409-a40a-adf8acf85dfc))
(pad "19" thru_hole circle locked (at 23.2 -18 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask) (pad "19" thru_hole circle locked (at 23.2 -18 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask)
(net 45 "unconnected-(U1-Pad19)") (pinfunction "DIO1") (pintype "bidirectional+no_connect") (tstamp 186ddc71-2599-4473-851e-61a11658ffe0)) (net 45 "unconnected-(U1-Pad19)") (pinfunction "DIO1") (pintype "bidirectional+no_connect") (tstamp 186ddc71-2599-4473-851e-61a11658ffe0))
(pad "20" thru_hole circle locked (at 23.2 -20 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask) (pad "20" thru_hole circle locked (at 23.2 -20 90) (size 1.2 1.2) (drill 0.7) (layers *.Cu *.Mask)
@ -1111,22 +1088,22 @@
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu") (footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu")
(tedit 5F68FEEE) (tstamp 0f00971c-65cb-4442-b3fd-ed50aea5be4d) (tedit 5F68FEEE) (tstamp 0f00971c-65cb-4442-b3fd-ed50aea5be4d)
(at 179.705 85.8575 -90) (at 174.752 81)
(descr "Resistor SMD 0805 (2012 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") (descr "Resistor SMD 0805 (2012 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") (tags "resistor")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
(property "Sheetname" "Power_Charge") (property "Sheetname" "Power_Charge")
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/e257cddb-a9e9-4642-b7b3-1ba1238ca42a") (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/e257cddb-a9e9-4642-b7b3-1ba1238ca42a")
(attr smd) (attr smd)
(fp_text reference "R10" (at -3.3075 0 -270) (layer "B.SilkS") (fp_text reference "R10" (at -2.032 -2.26) (layer "B.SilkS")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 74f1efe0-e5ee-4b48-84a5-65a4e3f6ab9a) (tstamp 74f1efe0-e5ee-4b48-84a5-65a4e3f6ab9a)
) )
(fp_text value "3.72K" (at 0 -1.65 -270) (layer "B.Fab") (fp_text value "3.72K" (at 0 -1.65) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 83594019-58db-4ff3-9c15-428167f7859d) (tstamp 83594019-58db-4ff3-9c15-428167f7859d)
) )
(fp_text user "${REFERENCE}" (at 0 0 -270) (layer "B.Fab") (fp_text user "${REFERENCE}" (at 0 0) (layer "B.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror)) (effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror))
(tstamp e3f79ab4-eccc-4d0e-8e2d-c3fba7a36ea7) (tstamp e3f79ab4-eccc-4d0e-8e2d-c3fba7a36ea7)
) )
@ -1140,9 +1117,9 @@
(fp_line (start -1 0.625) (end 1 0.625) (layer "B.Fab") (width 0.1) (tstamp 8eb83cba-8f05-4b44-b614-00e7c1c88fee)) (fp_line (start -1 0.625) (end 1 0.625) (layer "B.Fab") (width 0.1) (tstamp 8eb83cba-8f05-4b44-b614-00e7c1c88fee))
(fp_line (start 1 -0.625) (end -1 -0.625) (layer "B.Fab") (width 0.1) (tstamp af60f5ef-cd89-422b-b157-61ea8bdc9c6b)) (fp_line (start 1 -0.625) (end -1 -0.625) (layer "B.Fab") (width 0.1) (tstamp af60f5ef-cd89-422b-b157-61ea8bdc9c6b))
(fp_line (start -1 -0.625) (end -1 0.625) (layer "B.Fab") (width 0.1) (tstamp eb04ddd8-4e72-4427-a0f0-627a909bf10e)) (fp_line (start -1 -0.625) (end -1 0.625) (layer "B.Fab") (width 0.1) (tstamp eb04ddd8-4e72-4427-a0f0-627a909bf10e))
(pad "1" smd roundrect (at -0.9125 0 270) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902) (pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902)
(net 22 "Net-(R10-Pad1)") (pintype "passive") (tstamp 24b2ac9c-4848-41fa-bf5e-5a32eec75bec)) (net 22 "Net-(R10-Pad1)") (pintype "passive") (tstamp 24b2ac9c-4848-41fa-bf5e-5a32eec75bec))
(pad "2" smd roundrect (at 0.9125 0 270) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902) (pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902)
(net 10 "+5V") (pintype "passive") (tstamp 7e886bfe-0710-461f-806d-3caf0192d33a)) (net 10 "+5V") (pintype "passive") (tstamp 7e886bfe-0710-461f-806d-3caf0192d33a))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.step" (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.step"
(offset (xyz 0 0 0)) (offset (xyz 0 0 0))
@ -1859,7 +1836,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp a806835f-f872-410b-b185-6593ede2bb7f) (tstamp a806835f-f872-410b-b185-6593ede2bb7f)
) )
(fp_text value "R" (at 0 -1.65 90) (layer "B.Fab") (fp_text value "1.5K" (at 0 -1.65 90) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp bb35530d-56a4-4fe5-a903-6c8ca59d0b7d) (tstamp bb35530d-56a4-4fe5-a903-6c8ca59d0b7d)
) )
@ -1998,7 +1975,7 @@
(property "Sheetname" "Power_Charge") (property "Sheetname" "Power_Charge")
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/0c20669d-295e-45e5-a8a7-340d59f9a6b1") (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/0c20669d-295e-45e5-a8a7-340d59f9a6b1")
(attr smd) (attr smd)
(fp_text reference "R21" (at 3.81 0) (layer "B.SilkS") (fp_text reference "R21" (at 4.445 0 90) (layer "B.SilkS")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 9aaf1f23-f659-440f-a426-d37327b7ba71) (tstamp 9aaf1f23-f659-440f-a426-d37327b7ba71)
) )
@ -2268,22 +2245,22 @@
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu") (footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu")
(tedit 5F68FEEE) (tstamp 72b90fd1-feaf-495b-8a5f-a91110b04002) (tedit 5F68FEEE) (tstamp 72b90fd1-feaf-495b-8a5f-a91110b04002)
(at 179.705 89.6675 90) (at 180.2365 84.328 180)
(descr "Resistor SMD 0805 (2012 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") (descr "Resistor SMD 0805 (2012 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") (tags "resistor")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
(property "Sheetname" "Power_Charge") (property "Sheetname" "Power_Charge")
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/f13b9b51-766a-4b76-a09c-958c9da8f460") (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/f13b9b51-766a-4b76-a09c-958c9da8f460")
(attr smd) (attr smd)
(fp_text reference "R11" (at -3.81 0 90) (layer "B.SilkS") (fp_text reference "R11" (at -4.6755 6.096) (layer "B.SilkS")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 4e983dfb-5205-4d58-a63a-e270399cce3d) (tstamp 4e983dfb-5205-4d58-a63a-e270399cce3d)
) )
(fp_text value "1.28K" (at 0 -1.65 90) (layer "B.Fab") (fp_text value "1.28K" (at 0 -1.65) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 70627baa-e9a8-4014-b59f-340995e349fa) (tstamp 70627baa-e9a8-4014-b59f-340995e349fa)
) )
(fp_text user "${REFERENCE}" (at 0 0 90) (layer "B.Fab") (fp_text user "${REFERENCE}" (at 0 0) (layer "B.Fab")
(effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror)) (effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror))
(tstamp 1d8f4714-bc60-43b7-92ac-167c766e8e47) (tstamp 1d8f4714-bc60-43b7-92ac-167c766e8e47)
) )
@ -2297,9 +2274,9 @@
(fp_line (start 1 -0.625) (end -1 -0.625) (layer "B.Fab") (width 0.1) (tstamp ce8a845f-a0e8-498e-aca1-3bd171741789)) (fp_line (start 1 -0.625) (end -1 -0.625) (layer "B.Fab") (width 0.1) (tstamp ce8a845f-a0e8-498e-aca1-3bd171741789))
(fp_line (start 1 0.625) (end 1 -0.625) (layer "B.Fab") (width 0.1) (tstamp def9ae6f-81a5-42c0-94cf-a861524b5f57)) (fp_line (start 1 0.625) (end 1 -0.625) (layer "B.Fab") (width 0.1) (tstamp def9ae6f-81a5-42c0-94cf-a861524b5f57))
(fp_line (start -1 -0.625) (end -1 0.625) (layer "B.Fab") (width 0.1) (tstamp e706fd41-2a08-4b26-8a00-da38ba4c2ba0)) (fp_line (start -1 -0.625) (end -1 0.625) (layer "B.Fab") (width 0.1) (tstamp e706fd41-2a08-4b26-8a00-da38ba4c2ba0))
(pad "1" smd roundrect (at -0.9125 0 90) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902) (pad "1" smd roundrect (at -0.9125 0 180) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902)
(net 2 "GND") (pintype "passive") (tstamp 9c950c8e-abe2-45ae-9043-910b9a2ee6e8)) (net 2 "GND") (pintype "passive") (tstamp 9c950c8e-abe2-45ae-9043-910b9a2ee6e8))
(pad "2" smd roundrect (at 0.9125 0 90) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902) (pad "2" smd roundrect (at 0.9125 0 180) (size 1.025 1.4) (layers "B.Cu" "B.Paste" "B.Mask") (roundrect_rratio 0.243902)
(net 22 "Net-(R10-Pad1)") (pintype "passive") (tstamp 1bc67df4-3cf5-403b-ba6e-7ad753cbdd71)) (net 22 "Net-(R10-Pad1)") (pintype "passive") (tstamp 1bc67df4-3cf5-403b-ba6e-7ad753cbdd71))
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.step" (model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_0805_2012Metric.step"
(offset (xyz 0 0 0)) (offset (xyz 0 0 0))
@ -2310,7 +2287,7 @@
(footprint "Capacitor_SMD:C_0805_2012Metric" (layer "B.Cu") (footprint "Capacitor_SMD:C_0805_2012Metric" (layer "B.Cu")
(tedit 5F68FEEE) (tstamp 7451b65f-cd9e-4ffb-9c3b-ee43eef3547b) (tedit 5F68FEEE) (tstamp 7451b65f-cd9e-4ffb-9c3b-ee43eef3547b)
(at 182.245 85.8575 -90) (at 184.912 84.328 -90)
(descr "Capacitor SMD 0805 (2012 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, https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator") (descr "Capacitor SMD 0805 (2012 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, https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator")
(tags "capacitor") (tags "capacitor")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
@ -2447,7 +2424,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 2ff1bdf5-de3e-4f24-99f8-d692168d33bf) (tstamp 2ff1bdf5-de3e-4f24-99f8-d692168d33bf)
) )
(fp_text value "C" (at 0 -1.68) (layer "B.Fab") (fp_text value "1µF" (at 0 -1.68) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp c59f95cc-e411-4610-ab12-fc143788d696) (tstamp c59f95cc-e411-4610-ab12-fc143788d696)
) )
@ -2701,7 +2678,7 @@
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu") (footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu")
(tedit 5F68FEEE) (tstamp 826ef567-a4b9-474d-a46e-307ec3493325) (tedit 5F68FEEE) (tstamp 826ef567-a4b9-474d-a46e-307ec3493325)
(at 180.34 121.285) (at 180.34 120.396)
(descr "Resistor SMD 0805 (2012 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") (descr "Resistor SMD 0805 (2012 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") (tags "resistor")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
@ -2953,7 +2930,7 @@
(footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu") (footprint "Resistor_SMD:R_0805_2012Metric" (layer "B.Cu")
(tedit 5F68FEEE) (tstamp 9a62d7f7-95b1-4575-89f5-323759df0f54) (tedit 5F68FEEE) (tstamp 9a62d7f7-95b1-4575-89f5-323759df0f54)
(at 182.245 89.6675 90) (at 184.912 88.392 90)
(descr "Resistor SMD 0805 (2012 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") (descr "Resistor SMD 0805 (2012 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") (tags "resistor")
(property "Sheetfile" "power_charge.kicad_sch") (property "Sheetfile" "power_charge.kicad_sch")
@ -3132,7 +3109,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp c05b3ba7-1cd3-4c0b-82f5-c0f721245b51) (tstamp c05b3ba7-1cd3-4c0b-82f5-c0f721245b51)
) )
(fp_text value "C" (at 0 -1.68) (layer "B.Fab") (fp_text value "470nF" (at 0 -1.68) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 881da071-2be8-4585-b98e-a373be33f33f) (tstamp 881da071-2be8-4585-b98e-a373be33f33f)
) )
@ -3174,7 +3151,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp a425b3d0-485c-4b74-a1f4-e3f988e6d57c) (tstamp a425b3d0-485c-4b74-a1f4-e3f988e6d57c)
) )
(fp_text value "R" (at 0 -1.65 90) (layer "B.Fab") (fp_text value "1.5K" (at 0 -1.65 90) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 8a779069-9dc9-4a3a-b013-3fa4bf5ce08d) (tstamp 8a779069-9dc9-4a3a-b013-3fa4bf5ce08d)
) )
@ -3258,7 +3235,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp fad97996-37a3-4251-8742-2db8d43d0ef5) (tstamp fad97996-37a3-4251-8742-2db8d43d0ef5)
) )
(fp_text value "C" (at 0 -1.68 90) (layer "B.Fab") (fp_text value "470nF" (at 0 -1.68 90) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 2d5829b8-f1d7-499a-b556-f9d891818177) (tstamp 2d5829b8-f1d7-499a-b556-f9d891818177)
) )
@ -3300,7 +3277,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 2e750eb5-552e-4ee7-bb4e-7b9deee0e86a) (tstamp 2e750eb5-552e-4ee7-bb4e-7b9deee0e86a)
) )
(fp_text value "C" (at 0 -1.68) (layer "B.Fab") (fp_text value "1µF" (at 0 -1.68) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp f8a86d38-4d3f-490f-866c-69244daa55d4) (tstamp f8a86d38-4d3f-490f-866c-69244daa55d4)
) )
@ -3622,7 +3599,7 @@
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp e5f696e6-3ce9-48c2-a15c-17b0c7963603) (tstamp e5f696e6-3ce9-48c2-a15c-17b0c7963603)
) )
(fp_text value "R" (at 0 -1.65 90) (layer "B.Fab") (fp_text value "1.5K" (at 0 -1.65 90) (layer "B.Fab")
(effects (font (size 1 1) (thickness 0.15)) (justify mirror)) (effects (font (size 1 1) (thickness 0.15)) (justify mirror))
(tstamp 3fc168eb-e76d-4ca2-a950-2dd4df28466b) (tstamp 3fc168eb-e76d-4ca2-a950-2dd4df28466b)
) )
@ -3974,6 +3951,8 @@
) )
) )
(gr_line (start 183.388 81.788) (end 182.372 82.804) (layer "B.SilkS") (width 0.15) (tstamp 9863aa2e-bed0-449c-8073-650f9492748a))
(gr_line (start 183.388 79.248) (end 183.388 81.788) (layer "B.SilkS") (width 0.15) (tstamp f491033d-6198-477f-ac56-2baa2301d63b))
(gr_line (start 113.03 83.185) (end 110.49 83.185) (layer "Cmts.User") (width 0.15) (tstamp 346ce7d9-a865-4fae-9eb0-8b3c49e58504)) (gr_line (start 113.03 83.185) (end 110.49 83.185) (layer "Cmts.User") (width 0.15) (tstamp 346ce7d9-a865-4fae-9eb0-8b3c49e58504))
(gr_line (start 118.11 73.66) (end 114.935 73.66) (layer "Cmts.User") (width 0.15) (tstamp 43a7e4ad-5a5b-41b9-8a40-5566f4660e93)) (gr_line (start 118.11 73.66) (end 114.935 73.66) (layer "Cmts.User") (width 0.15) (tstamp 43a7e4ad-5a5b-41b9-8a40-5566f4660e93))
(gr_line (start 113.03 129.54) (end 110.49 129.54) (layer "Cmts.User") (width 0.15) (tstamp 9e5c0250-2a31-4228-aa5f-9ded0ad1f7a1)) (gr_line (start 113.03 129.54) (end 110.49 129.54) (layer "Cmts.User") (width 0.15) (tstamp 9e5c0250-2a31-4228-aa5f-9ded0ad1f7a1))
@ -4036,48 +4015,49 @@
(style (thickness 0.1) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0.5) keep_text_aligned) (style (thickness 0.1) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0.5) keep_text_aligned)
) )
(segment (start 174.277 126.652) (end 180.5 126.652) (width 0.7) (layer "F.Cu") (net 1) (tstamp 0bfcfa04-c244-45cb-b603-1ac8deb5b03e))
(segment (start 126.606699 100.644511) (end 125.095 99.132812) (width 0.7) (layer "F.Cu") (net 1) (tstamp 133487fb-b206-4a67-b769-e37fbeea8350)) (segment (start 126.606699 100.644511) (end 125.095 99.132812) (width 0.7) (layer "F.Cu") (net 1) (tstamp 133487fb-b206-4a67-b769-e37fbeea8350))
(segment (start 136.24427 96.52) (end 132.119759 100.644511) (width 0.7) (layer "F.Cu") (net 1) (tstamp 4290b966-0d70-4b16-a7e5-2cf85e5c4075)) (segment (start 136.24427 96.52) (end 132.119759 100.644511) (width 0.7) (layer "F.Cu") (net 1) (tstamp 4290b966-0d70-4b16-a7e5-2cf85e5c4075))
(segment (start 179.705 126.365) (end 173.99 126.365) (width 0.7) (layer "F.Cu") (net 1) (tstamp 48316769-a6b0-44f7-a2d5-ca06c063056d))
(segment (start 153.035 96.52) (end 136.24427 96.52) (width 0.7) (layer "F.Cu") (net 1) (tstamp 57f7d4d4-c399-40bf-97df-525e6216a008)) (segment (start 153.035 96.52) (end 136.24427 96.52) (width 0.7) (layer "F.Cu") (net 1) (tstamp 57f7d4d4-c399-40bf-97df-525e6216a008))
(segment (start 132.119759 100.644511) (end 126.606699 100.644511) (width 0.7) (layer "F.Cu") (net 1) (tstamp 5af20d81-5d63-434e-b8d5-d3099229ff99)) (segment (start 132.119759 100.644511) (end 126.606699 100.644511) (width 0.7) (layer "F.Cu") (net 1) (tstamp 5af20d81-5d63-434e-b8d5-d3099229ff99))
(segment (start 173.355 116.84) (end 172.085 115.57) (width 0.7) (layer "F.Cu") (net 1) (tstamp 94111802-3c46-41c2-a4ba-aafe3d54e9e5)) (segment (start 180.5 126.652) (end 180.5 131.85) (width 1) (layer "F.Cu") (net 1) (tstamp 689239dd-dfda-4121-b51b-a59fef98809b))
(segment (start 180.5 124.25) (end 180.5 126.652) (width 1) (layer "F.Cu") (net 1) (tstamp 73e922fe-30f6-4e8b-b941-3300f775b21f))
(segment (start 125.095 99.132812) (end 125.095 97.79) (width 0.7) (layer "F.Cu") (net 1) (tstamp 9924b73f-bdd6-4565-8b88-7db78ef34900)) (segment (start 125.095 99.132812) (end 125.095 97.79) (width 0.7) (layer "F.Cu") (net 1) (tstamp 9924b73f-bdd6-4565-8b88-7db78ef34900))
(segment (start 173.99 126.365) (end 173.355 125.73) (width 0.7) (layer "F.Cu") (net 1) (tstamp 9e0e1617-c30a-4b21-a2fe-fd537f5fc0ef)) (segment (start 173.355 125.73) (end 174.277 126.652) (width 0.7) (layer "F.Cu") (net 1) (tstamp 9a66acd8-f90c-4e50-995c-3f294f60156e))
(segment (start 180.975 131.5) (end 180.975 127.635) (width 0.7) (layer "F.Cu") (net 1) (tstamp cba1671a-4eb0-475c-bd89-8bf2793dd60b)) (segment (start 171.704 115.57) (end 173.355 117.221) (width 0.7) (layer "F.Cu") (net 1) (tstamp dd19d1e8-e465-4746-9b48-0ee35ba95039))
(segment (start 173.355 125.73) (end 173.355 116.84) (width 0.7) (layer "F.Cu") (net 1) (tstamp e3796846-cf8a-43f7-bfb4-7ea16f887ded)) (segment (start 173.355 117.221) (end 173.355 125.73) (width 0.7) (layer "F.Cu") (net 1) (tstamp ef3e7770-c429-4ece-a84f-fa717eb0f222))
(segment (start 180.975 127.635) (end 179.705 126.365) (width 0.7) (layer "F.Cu") (net 1) (tstamp ffd55aaa-774f-4c65-8959-d366621b12e6)) (via (at 171.704 115.57) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 28de81ac-651e-476f-adb2-1736aa9a393e))
(via (at 172.085 115.57) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 1) (tstamp 28de81ac-651e-476f-adb2-1736aa9a393e))
(via (at 153.035 96.52) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp 7dee032a-8d22-494f-a92a-c480a63c6099)) (via (at 153.035 96.52) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp 7dee032a-8d22-494f-a92a-c480a63c6099))
(via (at 125.095 97.79) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp 8d860135-7d9a-4818-b341-6b5635003484)) (via (at 125.095 97.79) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 1) (tstamp 8d860135-7d9a-4818-b341-6b5635003484))
(segment (start 127.635 97.79) (end 117.475 97.79) (width 0.4) (layer "B.Cu") (net 1) (tstamp 04aa600d-df1b-407c-98af-8c1da4d06dee)) (segment (start 127.635 97.79) (end 117.475 97.79) (width 0.4) (layer "B.Cu") (net 1) (tstamp 04aa600d-df1b-407c-98af-8c1da4d06dee))
(segment (start 171.704 115.57) (end 172.399511 114.874489) (width 0.7) (layer "B.Cu") (net 1) (tstamp 074364f6-7bc6-4e0c-a622-4e6a90b37446))
(segment (start 173.7125 115.2125) (end 173.7125 115.57) (width 0.25) (layer "B.Cu") (net 1) (tstamp 0d644f67-1c7f-4ffb-8105-ca769379ce10)) (segment (start 173.7125 115.2125) (end 173.7125 115.57) (width 0.25) (layer "B.Cu") (net 1) (tstamp 0d644f67-1c7f-4ffb-8105-ca769379ce10))
(segment (start 172.085 115.57) (end 172.399511 115.255489) (width 0.7) (layer "B.Cu") (net 1) (tstamp 12719adc-f48f-421d-ab2c-1cb755f0f063)) (segment (start 172.399511 114.874489) (end 172.399511 103.819511) (width 0.7) (layer "B.Cu") (net 1) (tstamp 1388f6fe-a027-4c20-94c5-6a856bd08f48))
(segment (start 172.399511 103.819511) (end 170.815 102.235) (width 0.7) (layer "B.Cu") (net 1) (tstamp 1d3ca643-a6ff-4e19-a0ed-558bc0e06ac1))
(segment (start 170.815 102.235) (end 166.37 102.235) (width 0.7) (layer "B.Cu") (net 1) (tstamp 30b3e50d-c0c0-4842-820c-5fb8b8d6015c))
(segment (start 180.975 131.5) (end 170.5125 131.5) (width 0.4) (layer "B.Cu") (net 1) (tstamp 31d5c73b-2d26-4dda-8592-2bd5fcaa388a))
(segment (start 184.725 131.5) (end 184.785 131.44) (width 0.4) (layer "B.Cu") (net 1) (tstamp 3281cb24-d30f-4846-a0b8-e3546beb1588)) (segment (start 184.725 131.5) (end 184.785 131.44) (width 0.4) (layer "B.Cu") (net 1) (tstamp 3281cb24-d30f-4846-a0b8-e3546beb1588))
(segment (start 170.8625 131.85) (end 170.4575 131.445) (width 1) (layer "B.Cu") (net 1) (tstamp 36dad21e-ae94-4dfa-9314-411e624af0b8))
(segment (start 130.285 103.8925) (end 130.5325 104.14) (width 0.4) (layer "B.Cu") (net 1) (tstamp 38e8abfd-08d6-41f5-b9ce-7ef1ee162df0)) (segment (start 130.285 103.8925) (end 130.5325 104.14) (width 0.4) (layer "B.Cu") (net 1) (tstamp 38e8abfd-08d6-41f5-b9ce-7ef1ee162df0))
(segment (start 166.37 97.155) (end 165.735 96.52) (width 0.7) (layer "B.Cu") (net 1) (tstamp 44f87893-f6be-4728-bd11-925b01620ce5)) (segment (start 180.5 131.85) (end 170.8625 131.85) (width 1) (layer "B.Cu") (net 1) (tstamp 3bf024d2-5f3c-427e-aeac-c83a0ae63773))
(segment (start 180.5 131.85) (end 184.375 131.85) (width 1) (layer "B.Cu") (net 1) (tstamp 47448a30-18e2-4a79-83eb-4188d4a2c30f))
(segment (start 172.399511 103.819511) (end 170.815 102.235) (width 0.7) (layer "B.Cu") (net 1) (tstamp 476a43eb-e997-4952-82fb-92021cf7a830))
(segment (start 128.585 101.915) (end 128.27 101.6) (width 0.4) (layer "B.Cu") (net 1) (tstamp 56ea503a-4b11-4a28-8dad-2ab0d3484cbf)) (segment (start 128.585 101.915) (end 128.27 101.6) (width 0.4) (layer "B.Cu") (net 1) (tstamp 56ea503a-4b11-4a28-8dad-2ab0d3484cbf))
(segment (start 130.285 101.915) (end 128.585 101.915) (width 0.4) (layer "B.Cu") (net 1) (tstamp 58694800-7145-4ef3-8d7f-0422b10c63cd)) (segment (start 130.285 101.915) (end 128.585 101.915) (width 0.4) (layer "B.Cu") (net 1) (tstamp 58694800-7145-4ef3-8d7f-0422b10c63cd))
(segment (start 180.975 131.5) (end 184.725 131.5) (width 0.4) (layer "B.Cu") (net 1) (tstamp 598a6473-5027-45d5-9a1e-accd9ffe5acd))
(segment (start 128.27 101.6) (end 128.27 98.425) (width 0.4) (layer "B.Cu") (net 1) (tstamp 6a20e272-fa98-4c3c-b82e-e0393fedc11b)) (segment (start 128.27 101.6) (end 128.27 98.425) (width 0.4) (layer "B.Cu") (net 1) (tstamp 6a20e272-fa98-4c3c-b82e-e0393fedc11b))
(segment (start 171.704 115.57) (end 173.7125 115.57) (width 0.7) (layer "B.Cu") (net 1) (tstamp 7605d740-a2de-4de9-9b12-9a06e0b70d87))
(segment (start 174.625 114.3) (end 176.784 114.3) (width 0.4) (layer "B.Cu") (net 1) (tstamp 80a1fc7a-43e0-4169-9844-b42f9d82ded8)) (segment (start 174.625 114.3) (end 176.784 114.3) (width 0.4) (layer "B.Cu") (net 1) (tstamp 80a1fc7a-43e0-4169-9844-b42f9d82ded8))
(segment (start 170.5125 131.5) (end 170.4575 131.445) (width 0.4) (layer "B.Cu") (net 1) (tstamp 81ba2728-bd9e-4a34-b347-942be39f834f)) (segment (start 170.5125 131.5) (end 170.4575 131.445) (width 0.4) (layer "B.Cu") (net 1) (tstamp 81ba2728-bd9e-4a34-b347-942be39f834f))
(segment (start 166.37 102.235) (end 166.37 97.155) (width 0.7) (layer "B.Cu") (net 1) (tstamp 8a8c9f20-c5af-4b86-b499-453628a61b2b)) (segment (start 184.375 131.85) (end 184.785 131.44) (width 1) (layer "B.Cu") (net 1) (tstamp 8a1cf93c-e369-4af0-815a-bf5aa57a9b02))
(segment (start 173.7125 115.2125) (end 174.625 114.3) (width 0.4) (layer "B.Cu") (net 1) (tstamp 949c986e-815d-4bdf-96e1-f3acbfde3a52)) (segment (start 173.7125 115.2125) (end 174.625 114.3) (width 0.4) (layer "B.Cu") (net 1) (tstamp 949c986e-815d-4bdf-96e1-f3acbfde3a52))
(segment (start 172.085 115.57) (end 173.7125 115.57) (width 0.7) (layer "B.Cu") (net 1) (tstamp 99fd7e34-7705-42d5-baba-d7e00a51a596)) (segment (start 170.815 102.235) (end 166.37 102.235) (width 0.7) (layer "B.Cu") (net 1) (tstamp abed7485-55e0-4248-a231-6c8c18df2a5e))
(segment (start 116.9725 98.2925) (end 116.9725 100.625) (width 0.4) (layer "B.Cu") (net 1) (tstamp ae173e35-bb6a-4ec1-bb8b-065bc12aebe3)) (segment (start 116.9725 98.2925) (end 116.9725 100.625) (width 0.4) (layer "B.Cu") (net 1) (tstamp ae173e35-bb6a-4ec1-bb8b-065bc12aebe3))
(segment (start 130.285 101.915) (end 130.285 103.8925) (width 0.4) (layer "B.Cu") (net 1) (tstamp b49adaf0-1392-4c21-872f-ce344a47a2d4)) (segment (start 130.285 101.915) (end 130.285 103.8925) (width 0.4) (layer "B.Cu") (net 1) (tstamp b49adaf0-1392-4c21-872f-ce344a47a2d4))
(segment (start 172.399511 103.830009) (end 172.399511 103.819511) (width 0.7) (layer "B.Cu") (net 1) (tstamp bf24c4dd-fa5e-4f8d-b128-b68f9b8e4241))
(segment (start 165.735 96.52) (end 153.035 96.52) (width 0.7) (layer "B.Cu") (net 1) (tstamp c8048082-f656-4360-97bf-62bd1ade23e3))
(segment (start 177.308216 114.685) (end 177.238608 114.754608) (width 0.25) (layer "B.Cu") (net 1) (tstamp c88edce0-cbd0-42a4-aca9-7b9e052979e1)) (segment (start 177.308216 114.685) (end 177.238608 114.754608) (width 0.25) (layer "B.Cu") (net 1) (tstamp c88edce0-cbd0-42a4-aca9-7b9e052979e1))
(segment (start 176.784 114.3) (end 177.238608 114.754608) (width 0.4) (layer "B.Cu") (net 1) (tstamp ca4e7f07-0b82-41ec-af91-43a33669a612)) (segment (start 176.784 114.3) (end 177.238608 114.754608) (width 0.4) (layer "B.Cu") (net 1) (tstamp ca4e7f07-0b82-41ec-af91-43a33669a612))
(segment (start 178.8668 114.685) (end 177.308216 114.685) (width 0.25) (layer "B.Cu") (net 1) (tstamp ce0551ea-3dac-46e6-b25a-2a9c69cc61b8)) (segment (start 178.8668 114.685) (end 177.308216 114.685) (width 0.25) (layer "B.Cu") (net 1) (tstamp ce0551ea-3dac-46e6-b25a-2a9c69cc61b8))
(segment (start 166.37 102.235) (end 166.37 97.155) (width 0.7) (layer "B.Cu") (net 1) (tstamp cecbe92d-0ed9-453c-9141-0badc2b2aaf9))
(segment (start 117.475 97.79) (end 116.9725 98.2925) (width 0.4) (layer "B.Cu") (net 1) (tstamp d7718cfa-4c56-4f13-9d16-d50e9798b33a)) (segment (start 117.475 97.79) (end 116.9725 98.2925) (width 0.4) (layer "B.Cu") (net 1) (tstamp d7718cfa-4c56-4f13-9d16-d50e9798b33a))
(segment (start 165.735 96.52) (end 153.035 96.52) (width 0.7) (layer "B.Cu") (net 1) (tstamp e1997fb1-eb7f-4ba9-ba45-7728c56405b4))
(segment (start 128.27 98.425) (end 127.635 97.79) (width 0.4) (layer "B.Cu") (net 1) (tstamp e5d960ff-e9ef-4cb1-a0db-e4d5ea2df78f)) (segment (start 128.27 98.425) (end 127.635 97.79) (width 0.4) (layer "B.Cu") (net 1) (tstamp e5d960ff-e9ef-4cb1-a0db-e4d5ea2df78f))
(segment (start 172.399511 115.255489) (end 172.399511 103.830009) (width 0.7) (layer "B.Cu") (net 1) (tstamp f00612dd-3020-4aaf-81b2-26e9d735afa1)) (segment (start 166.37 97.155) (end 165.735 96.52) (width 0.7) (layer "B.Cu") (net 1) (tstamp fce7c007-258d-4e2f-9250-ca9902effa66))
(segment (start 118.11 118.745) (end 117.475 118.11) (width 0.4) (layer "F.Cu") (net 2) (tstamp 024bbd7d-c2ec-42a5-a371-fa9368013593)) (segment (start 118.11 118.745) (end 117.475 118.11) (width 0.4) (layer "F.Cu") (net 2) (tstamp 024bbd7d-c2ec-42a5-a371-fa9368013593))
(segment (start 165.1 100.584) (end 173.99 100.584) (width 0.4) (layer "F.Cu") (net 2) (tstamp 0c2542d0-5d10-48ba-ba51-65885a201db1)) (segment (start 165.1 100.584) (end 173.99 100.584) (width 0.4) (layer "F.Cu") (net 2) (tstamp 0c2542d0-5d10-48ba-ba51-65885a201db1))
(segment (start 190.06 108.78) (end 189.865 108.585) (width 0.4) (layer "F.Cu") (net 2) (tstamp 11690d85-9d37-4d38-80e2-d057a2a3a699)) (segment (start 190.06 108.78) (end 189.865 108.585) (width 0.4) (layer "F.Cu") (net 2) (tstamp 11690d85-9d37-4d38-80e2-d057a2a3a699))
@ -4086,7 +4066,6 @@
(segment (start 191.835 103.28) (end 191.835 101.71) (width 0.7) (layer "F.Cu") (net 2) (tstamp 1ac07757-843f-439f-8554-9ba3e6f9cf3c)) (segment (start 191.835 103.28) (end 191.835 101.71) (width 0.7) (layer "F.Cu") (net 2) (tstamp 1ac07757-843f-439f-8554-9ba3e6f9cf3c))
(segment (start 191.835 108.78) (end 190.06 108.78) (width 0.4) (layer "F.Cu") (net 2) (tstamp 1e80b230-6fab-45c9-8ae3-866d4b11f7f8)) (segment (start 191.835 108.78) (end 190.06 108.78) (width 0.4) (layer "F.Cu") (net 2) (tstamp 1e80b230-6fab-45c9-8ae3-866d4b11f7f8))
(segment (start 118.745 75.565) (end 127.635 75.565) (width 0.4) (layer "F.Cu") (net 2) (tstamp 2087b114-875a-4ac1-b0aa-0c78bf9cf747)) (segment (start 118.745 75.565) (end 127.635 75.565) (width 0.4) (layer "F.Cu") (net 2) (tstamp 2087b114-875a-4ac1-b0aa-0c78bf9cf747))
(segment (start 191.835 81.345) (end 191.835 101.71) (width 1) (layer "F.Cu") (net 2) (tstamp 267f2bd5-73ec-4204-984e-7cfc7b216d49))
(segment (start 118.33437 77.275216) (end 118.33437 75.97563) (width 0.4) (layer "F.Cu") (net 2) (tstamp 26ab927b-7e3f-4b2a-b960-ae6d4060e2d6)) (segment (start 118.33437 77.275216) (end 118.33437 75.97563) (width 0.4) (layer "F.Cu") (net 2) (tstamp 26ab927b-7e3f-4b2a-b960-ae6d4060e2d6))
(segment (start 137.435 116.8) (end 137.435 118.47) (width 0.4) (layer "F.Cu") (net 2) (tstamp 26d7e5d4-740f-4a34-8e95-80858abd8fc5)) (segment (start 137.435 116.8) (end 137.435 118.47) (width 0.4) (layer "F.Cu") (net 2) (tstamp 26d7e5d4-740f-4a34-8e95-80858abd8fc5))
(segment (start 137.16 118.745) (end 118.11 118.745) (width 0.4) (layer "F.Cu") (net 2) (tstamp 2853e715-a1a4-4a67-b4fc-ea4c64c98372)) (segment (start 137.16 118.745) (end 118.11 118.745) (width 0.4) (layer "F.Cu") (net 2) (tstamp 2853e715-a1a4-4a67-b4fc-ea4c64c98372))
@ -4096,7 +4075,6 @@
(segment (start 162.515 104.775) (end 163.83 104.775) (width 0.4) (layer "F.Cu") (net 2) (tstamp 4318b33f-f3e1-4a08-a692-7db8c52536bc)) (segment (start 162.515 104.775) (end 163.83 104.775) (width 0.4) (layer "F.Cu") (net 2) (tstamp 4318b33f-f3e1-4a08-a692-7db8c52536bc))
(segment (start 114.588101 130.64375) (end 114.588101 117.821899) (width 0.4) (layer "F.Cu") (net 2) (tstamp 46f77276-d3c0-45d6-bc28-cc820bcba37b)) (segment (start 114.588101 130.64375) (end 114.588101 117.821899) (width 0.4) (layer "F.Cu") (net 2) (tstamp 46f77276-d3c0-45d6-bc28-cc820bcba37b))
(segment (start 163.614022 108.585) (end 162.515 108.585) (width 0.4) (layer "F.Cu") (net 2) (tstamp 6c108e72-7ce5-4689-b5ca-eee43739a8a5)) (segment (start 163.614022 108.585) (end 162.515 108.585) (width 0.4) (layer "F.Cu") (net 2) (tstamp 6c108e72-7ce5-4689-b5ca-eee43739a8a5))
(segment (start 180.975 79.51) (end 190 79.51) (width 1) (layer "F.Cu") (net 2) (tstamp 6d85a685-4088-457f-aca9-c2d9dda55126))
(segment (start 114.588101 117.821899) (end 115.57 116.84) (width 0.4) (layer "F.Cu") (net 2) (tstamp 71715a2d-35a9-4cd5-99a6-a93310c77c7d)) (segment (start 114.588101 117.821899) (end 115.57 116.84) (width 0.4) (layer "F.Cu") (net 2) (tstamp 71715a2d-35a9-4cd5-99a6-a93310c77c7d))
(segment (start 189.865 103.505) (end 190.09 103.28) (width 0.4) (layer "F.Cu") (net 2) (tstamp 7397f6eb-8f7c-4c03-99e4-72058d21f712)) (segment (start 189.865 103.505) (end 190.09 103.28) (width 0.4) (layer "F.Cu") (net 2) (tstamp 7397f6eb-8f7c-4c03-99e4-72058d21f712))
(segment (start 118.33437 75.97563) (end 118.745 75.565) (width 0.4) (layer "F.Cu") (net 2) (tstamp 75f1ca38-257e-40a0-bf06-ad855c88a89e)) (segment (start 118.33437 75.97563) (end 118.745 75.565) (width 0.4) (layer "F.Cu") (net 2) (tstamp 75f1ca38-257e-40a0-bf06-ad855c88a89e))
@ -4107,9 +4085,9 @@
(segment (start 127.635 75.565) (end 128.46 76.39) (width 0.4) (layer "F.Cu") (net 2) (tstamp 8d527ad8-4050-4fb7-844f-7dbe85e602be)) (segment (start 127.635 75.565) (end 128.46 76.39) (width 0.4) (layer "F.Cu") (net 2) (tstamp 8d527ad8-4050-4fb7-844f-7dbe85e602be))
(segment (start 115.57 81.572081) (end 115.950919 81.953) (width 0.4) (layer "F.Cu") (net 2) (tstamp 8f794d04-2a0b-4623-8242-fab6fa074f22)) (segment (start 115.57 81.572081) (end 115.950919 81.953) (width 0.4) (layer "F.Cu") (net 2) (tstamp 8f794d04-2a0b-4623-8242-fab6fa074f22))
(segment (start 117.475 118.11) (end 117.475 116.84) (width 0.4) (layer "F.Cu") (net 2) (tstamp 9bbb4792-ee1e-4ce0-b342-cdd6f6bc08fa)) (segment (start 117.475 118.11) (end 117.475 116.84) (width 0.4) (layer "F.Cu") (net 2) (tstamp 9bbb4792-ee1e-4ce0-b342-cdd6f6bc08fa))
(segment (start 180.5 80.15) (end 180.5 87.75) (width 1) (layer "F.Cu") (net 2) (tstamp a43c2f27-f62d-4932-828f-54a6212fb77f))
(segment (start 118.33437 77.275216) (end 115.57 80.039586) (width 0.4) (layer "F.Cu") (net 2) (tstamp a601cb65-1d53-40ae-abc9-93e7b3ed71f6)) (segment (start 118.33437 77.275216) (end 115.57 80.039586) (width 0.4) (layer "F.Cu") (net 2) (tstamp a601cb65-1d53-40ae-abc9-93e7b3ed71f6))
(segment (start 112.776 97.536) (end 115.824 94.488) (width 0.4) (layer "F.Cu") (net 2) (tstamp a839384c-9721-4cbe-baa9-d99326b5895b)) (segment (start 112.776 97.536) (end 115.824 94.488) (width 0.4) (layer "F.Cu") (net 2) (tstamp a839384c-9721-4cbe-baa9-d99326b5895b))
(segment (start 190 79.51) (end 191.835 81.345) (width 1) (layer "F.Cu") (net 2) (tstamp b08c09f0-7446-462a-a4c6-ad920141a661))
(segment (start 149.86 104.775) (end 149.86 100.33) (width 0.3) (layer "F.Cu") (net 2) (tstamp b2de7372-8f98-47cd-9791-a9d6300292fc)) (segment (start 149.86 104.775) (end 149.86 100.33) (width 0.3) (layer "F.Cu") (net 2) (tstamp b2de7372-8f98-47cd-9791-a9d6300292fc))
(segment (start 115.647101 132.54875) (end 115.647101 133.31275) (width 0.4) (layer "F.Cu") (net 2) (tstamp b6be7333-d7b9-4e8e-8ab7-2a0129838b43)) (segment (start 115.647101 132.54875) (end 115.647101 133.31275) (width 0.4) (layer "F.Cu") (net 2) (tstamp b6be7333-d7b9-4e8e-8ab7-2a0129838b43))
(segment (start 164.465 105.41) (end 164.465 101.219) (width 0.4) (layer "F.Cu") (net 2) (tstamp b9b74068-5213-454e-9819-7f09c4922793)) (segment (start 164.465 105.41) (end 164.465 101.219) (width 0.4) (layer "F.Cu") (net 2) (tstamp b9b74068-5213-454e-9819-7f09c4922793))
@ -4135,37 +4113,43 @@
(via (at 112.776 99.06) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp dc02f39b-e162-4e82-8c26-f5307a32e24d)) (via (at 112.776 99.06) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 2) (tstamp dc02f39b-e162-4e82-8c26-f5307a32e24d))
(segment (start 148.59 121.92) (end 147.955 122.555) (width 0.25) (layer "B.Cu") (net 2) (tstamp 00241f90-c284-4dcb-bfcf-d67ed1950790)) (segment (start 148.59 121.92) (end 147.955 122.555) (width 0.25) (layer "B.Cu") (net 2) (tstamp 00241f90-c284-4dcb-bfcf-d67ed1950790))
(segment (start 152.745 108.8675) (end 152.745 105.7) (width 0.3) (layer "B.Cu") (net 2) (tstamp 0205e2c9-3cd8-4b62-b96d-8da004a5ae83)) (segment (start 152.745 108.8675) (end 152.745 105.7) (width 0.3) (layer "B.Cu") (net 2) (tstamp 0205e2c9-3cd8-4b62-b96d-8da004a5ae83))
(segment (start 191.135 129.54) (end 191.835 128.84) (width 0.7) (layer "B.Cu") (net 2) (tstamp 02a29f0a-bb41-4310-8385-4aa96d8bbbd7)) (segment (start 191.135 129.54) (end 191.835 128.84) (width 1) (layer "B.Cu") (net 2) (tstamp 02a29f0a-bb41-4310-8385-4aa96d8bbbd7))
(segment (start 150.84 114.3) (end 150.84 113.756) (width 0.3) (layer "B.Cu") (net 2) (tstamp 03019b54-55d6-4ce2-aeda-527ed6b7f57a)) (segment (start 150.84 114.3) (end 150.84 113.756) (width 0.3) (layer "B.Cu") (net 2) (tstamp 03019b54-55d6-4ce2-aeda-527ed6b7f57a))
(segment (start 173.99 100.965) (end 173.99 101.6) (width 0.4) (layer "B.Cu") (net 2) (tstamp 04b1273d-a225-4317-a5f7-29435bfd2853)) (segment (start 173.99 100.965) (end 173.99 101.6) (width 0.4) (layer "B.Cu") (net 2) (tstamp 04b1273d-a225-4317-a5f7-29435bfd2853))
(segment (start 180.09 115.185) (end 180.34 114.935) (width 0.25) (layer "B.Cu") (net 2) (tstamp 092baa3c-9fe6-44ca-b6aa-43a379452ed8)) (segment (start 180.09 115.185) (end 180.34 114.935) (width 0.25) (layer "B.Cu") (net 2) (tstamp 092baa3c-9fe6-44ca-b6aa-43a379452ed8))
(segment (start 181.2525 119.6575) (end 181.2525 120.396) (width 0.4) (layer "B.Cu") (net 2) (tstamp 0ab31a59-4c89-448e-b519-2f01052e6e4c))
(segment (start 184.912 89.3045) (end 182.0545 89.3045) (width 0.4) (layer "B.Cu") (net 2) (tstamp 0b9f31c2-e359-4298-a324-8b87d95aba9d))
(segment (start 164.465 115.57) (end 163.83 115.57) (width 0.4) (layer "B.Cu") (net 2) (tstamp 13f46a76-f8c9-4626-9cff-5c3dd087a8e3)) (segment (start 164.465 115.57) (end 163.83 115.57) (width 0.4) (layer "B.Cu") (net 2) (tstamp 13f46a76-f8c9-4626-9cff-5c3dd087a8e3))
(segment (start 170.4575 127.2305) (end 170.735 127.508) (width 0.7) (layer "B.Cu") (net 2) (tstamp 1587ec0f-136f-4beb-af7d-57d832f8995c))
(segment (start 191.835 120.715) (end 191.835 115) (width 1) (layer "B.Cu") (net 2) (tstamp 15f440dc-166e-44d7-8324-5bdd43d84906))
(segment (start 114.96 102.575) (end 116.9725 102.575) (width 0.4) (layer "B.Cu") (net 2) (tstamp 16fdcb6a-decf-4d16-b35c-279b1215248a)) (segment (start 114.96 102.575) (end 116.9725 102.575) (width 0.4) (layer "B.Cu") (net 2) (tstamp 16fdcb6a-decf-4d16-b35c-279b1215248a))
(segment (start 191.455 114.62) (end 191.835 115) (width 0.4) (layer "B.Cu") (net 2) (tstamp 17328799-09e0-4232-912a-e35bc82ff782)) (segment (start 191.455 114.62) (end 191.835 115) (width 0.4) (layer "B.Cu") (net 2) (tstamp 17328799-09e0-4232-912a-e35bc82ff782))
(segment (start 191.835 110.35) (end 189.09 110.35) (width 0.7) (layer "B.Cu") (net 2) (tstamp 1733eed9-1996-4fd2-8eb7-4b1cf32aaab4)) (segment (start 191.835 110.35) (end 189.09 110.35) (width 0.7) (layer "B.Cu") (net 2) (tstamp 1733eed9-1996-4fd2-8eb7-4b1cf32aaab4))
(segment (start 188.595 109.855) (end 188.595 109.22) (width 0.7) (layer "B.Cu") (net 2) (tstamp 1bb15462-ed75-4aaf-84b0-10c73c6addac)) (segment (start 188.595 109.855) (end 188.595 109.22) (width 0.7) (layer "B.Cu") (net 2) (tstamp 1bb15462-ed75-4aaf-84b0-10c73c6addac))
(segment (start 184.404 127.508) (end 184.785 127.889) (width 1) (layer "B.Cu") (net 2) (tstamp 1bd96324-3f44-4e51-93a8-15caa67f7b30))
(segment (start 112.776 101.534) (end 113.792 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1c837961-8ae9-467d-80a2-6aadaa0be92e)) (segment (start 112.776 101.534) (end 113.792 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1c837961-8ae9-467d-80a2-6aadaa0be92e))
(segment (start 178.21 90.58) (end 177.8 90.17) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1d7d0d92-1ee7-40bf-989f-c4aaad7a94fb))
(segment (start 112.776 99.06) (end 112.776 101.534) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1d7e3e62-b8d1-415b-b7fa-72ceb40a1839)) (segment (start 112.776 99.06) (end 112.776 101.534) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1d7e3e62-b8d1-415b-b7fa-72ceb40a1839))
(segment (start 137.435 118.47) (end 137.435 116.8) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1e63b3ac-cfdb-4a00-b50f-a95c72e74795)) (segment (start 137.435 118.47) (end 137.435 116.8) (width 0.4) (layer "B.Cu") (net 2) (tstamp 1e63b3ac-cfdb-4a00-b50f-a95c72e74795))
(segment (start 114.935 107.315) (end 113.98 106.36) (width 0.4) (layer "B.Cu") (net 2) (tstamp 21de474e-049d-4944-93fe-97d8dd13627a)) (segment (start 114.935 107.315) (end 113.98 106.36) (width 0.4) (layer "B.Cu") (net 2) (tstamp 21de474e-049d-4944-93fe-97d8dd13627a))
(segment (start 177.485 98.74) (end 178.435 98.74) (width 0.4) (layer "B.Cu") (net 2) (tstamp 220d4b8a-1c31-4239-9aeb-45ec3b3ac1fa)) (segment (start 177.485 98.74) (end 178.435 98.74) (width 0.4) (layer "B.Cu") (net 2) (tstamp 220d4b8a-1c31-4239-9aeb-45ec3b3ac1fa))
(segment (start 180.59 118.995) (end 181.2525 119.6575) (width 0.4) (layer "B.Cu") (net 2) (tstamp 263e3000-6644-4ae8-898e-ee6c451b06e5))
(segment (start 151.384 110.236) (end 152.214361 110.236) (width 0.3) (layer "B.Cu") (net 2) (tstamp 26458b16-9b55-43f8-901c-5c08d68c84f7)) (segment (start 151.384 110.236) (end 152.214361 110.236) (width 0.3) (layer "B.Cu") (net 2) (tstamp 26458b16-9b55-43f8-901c-5c08d68c84f7))
(segment (start 152.745 105.7) (end 153.35 105.095) (width 0.3) (layer "B.Cu") (net 2) (tstamp 27cd1751-17d9-4e0d-ad54-a90e93fcbbc6)) (segment (start 152.745 105.7) (end 153.35 105.095) (width 0.3) (layer "B.Cu") (net 2) (tstamp 27cd1751-17d9-4e0d-ad54-a90e93fcbbc6))
(segment (start 184.785 127.889) (end 184.785 129.54) (width 1) (layer "B.Cu") (net 2) (tstamp 28552995-dd86-4865-9486-c54a0792097d))
(segment (start 149.484 100.071) (end 149.484 94.996) (width 0.4) (layer "B.Cu") (net 2) (tstamp 31132fbe-5e88-4170-878a-97db471dc386)) (segment (start 149.484 100.071) (end 149.484 94.996) (width 0.4) (layer "B.Cu") (net 2) (tstamp 31132fbe-5e88-4170-878a-97db471dc386))
(segment (start 180.09 116.4082) (end 180.59 116.4082) (width 0.25) (layer "B.Cu") (net 2) (tstamp 32c969c2-4c70-4c94-9093-1bac3aee4e30)) (segment (start 180.09 116.4082) (end 180.59 116.4082) (width 0.25) (layer "B.Cu") (net 2) (tstamp 32c969c2-4c70-4c94-9093-1bac3aee4e30))
(segment (start 128.46 119.19) (end 128.905 118.745) (width 0.4) (layer "B.Cu") (net 2) (tstamp 385ee728-3dcb-4c76-8e33-dd3dc4de11ff)) (segment (start 128.46 119.19) (end 128.905 118.745) (width 0.4) (layer "B.Cu") (net 2) (tstamp 385ee728-3dcb-4c76-8e33-dd3dc4de11ff))
(segment (start 148.245 117.1925) (end 148.245 118.526428) (width 0.3) (layer "B.Cu") (net 2) (tstamp 38d8e26f-9a7c-4293-b9db-cded0d173e14)) (segment (start 148.245 117.1925) (end 148.245 118.526428) (width 0.3) (layer "B.Cu") (net 2) (tstamp 38d8e26f-9a7c-4293-b9db-cded0d173e14))
(segment (start 148.245 114.59) (end 148.245 113.193) (width 0.3) (layer "B.Cu") (net 2) (tstamp 38f03b2e-70bb-4b23-ac36-e82dc7dacc40)) (segment (start 148.245 114.59) (end 148.245 113.193) (width 0.3) (layer "B.Cu") (net 2) (tstamp 38f03b2e-70bb-4b23-ac36-e82dc7dacc40))
(segment (start 170.4575 125.73) (end 170.4575 127.2305) (width 1) (layer "B.Cu") (net 2) (tstamp 3c4a0243-fe92-4052-ab90-33427b13c766))
(segment (start 176.85 102.235) (end 176.85 108.27) (width 0.7) (layer "B.Cu") (net 2) (tstamp 3dbd8243-65f6-4e5f-8b42-ede673e6e6d6)) (segment (start 176.85 102.235) (end 176.85 108.27) (width 0.7) (layer "B.Cu") (net 2) (tstamp 3dbd8243-65f6-4e5f-8b42-ede673e6e6d6))
(segment (start 170.4575 125.73) (end 170.4575 128.905) (width 0.7) (layer "B.Cu") (net 2) (tstamp 3f988bb3-3ca0-4ccb-a0a4-9aca7b7f8bf9))
(segment (start 141.605 112.71) (end 138.75 112.71) (width 0.4) (layer "B.Cu") (net 2) (tstamp 40b55cbb-2c7e-431c-9c5d-1d45f88b9f74)) (segment (start 141.605 112.71) (end 138.75 112.71) (width 0.4) (layer "B.Cu") (net 2) (tstamp 40b55cbb-2c7e-431c-9c5d-1d45f88b9f74))
(segment (start 184.15 125.73) (end 184.785 126.365) (width 0.7) (layer "B.Cu") (net 2) (tstamp 43183627-bf29-4557-9d82-ababd063e8a2)) (segment (start 177.673 87.503) (end 177.92 87.75) (width 0.4) (layer "B.Cu") (net 2) (tstamp 4615560b-8f78-47c2-9da4-c9eb7bab532e))
(segment (start 113.792 102.55) (end 114.935 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 47db8b56-d57e-453c-ab9e-12ffd46147fa)) (segment (start 113.792 102.55) (end 114.935 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 47db8b56-d57e-453c-ab9e-12ffd46147fa))
(segment (start 191.835 128.84) (end 191.835 115) (width 0.7) (layer "B.Cu") (net 2) (tstamp 49388231-c1a9-4c9f-b470-77c5e9fb7911)) (segment (start 177.39 90.58) (end 177.8 90.17) (width 0.4) (layer "B.Cu") (net 2) (tstamp 487ada8f-0abd-4bd9-8ea8-b506bcaf3ac5))
(segment (start 147.332 112.28) (end 146.3325 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp 4b3577de-3744-43ce-9b41-bb6da30b1043)) (segment (start 147.332 112.28) (end 146.3325 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp 4b3577de-3744-43ce-9b41-bb6da30b1043))
(segment (start 177.8 87.63) (end 177.2975 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp 4e8aea05-d6f7-4b00-9ddb-06bf35cd0037))
(segment (start 175.2975 90.58) (end 174.305 91.5725) (width 0.4) (layer "B.Cu") (net 2) (tstamp 504f7cde-9f1f-465b-8dff-1aaf59787c9d)) (segment (start 175.2975 90.58) (end 174.305 91.5725) (width 0.4) (layer "B.Cu") (net 2) (tstamp 504f7cde-9f1f-465b-8dff-1aaf59787c9d))
(segment (start 181.149 87.101) (end 180.5 87.75) (width 0.4) (layer "B.Cu") (net 2) (tstamp 5391514b-4b72-4f2b-a215-4f59cbaa390b))
(segment (start 178.435 108.9425) (end 177.5225 108.9425) (width 0.7) (layer "B.Cu") (net 2) (tstamp 592eb391-ad7d-4550-bcfd-b3667c2085f8)) (segment (start 178.435 108.9425) (end 177.5225 108.9425) (width 0.7) (layer "B.Cu") (net 2) (tstamp 592eb391-ad7d-4550-bcfd-b3667c2085f8))
(segment (start 163.195 114.935) (end 163.195 112.395) (width 0.4) (layer "B.Cu") (net 2) (tstamp 59eeb84c-c244-4e6b-bb92-a2f0172314eb)) (segment (start 163.195 114.935) (end 163.195 112.395) (width 0.4) (layer "B.Cu") (net 2) (tstamp 59eeb84c-c244-4e6b-bb92-a2f0172314eb))
(segment (start 168.7775 87.1275) (end 168.4625 87.4425) (width 0.4) (layer "B.Cu") (net 2) (tstamp 61116e09-9190-4fad-ba42-a82523d6ead1)) (segment (start 168.7775 87.1275) (end 168.4625 87.4425) (width 0.4) (layer "B.Cu") (net 2) (tstamp 61116e09-9190-4fad-ba42-a82523d6ead1))
@ -4173,20 +4157,22 @@
(segment (start 176.85 102.235) (end 176.85 99.375) (width 0.4) (layer "B.Cu") (net 2) (tstamp 624a1de9-1d5f-4b5e-8f4f-05e7dd6b58ef)) (segment (start 176.85 102.235) (end 176.85 99.375) (width 0.4) (layer "B.Cu") (net 2) (tstamp 624a1de9-1d5f-4b5e-8f4f-05e7dd6b58ef))
(segment (start 177.5225 108.9425) (end 176.85 108.27) (width 0.7) (layer "B.Cu") (net 2) (tstamp 632a35cc-672e-484f-ab55-d5cac22afc12)) (segment (start 177.5225 108.9425) (end 176.85 108.27) (width 0.7) (layer "B.Cu") (net 2) (tstamp 632a35cc-672e-484f-ab55-d5cac22afc12))
(segment (start 147.945 100.33) (end 149.225 100.33) (width 0.4) (layer "B.Cu") (net 2) (tstamp 641772c0-7f61-4441-99f5-7cfcc2d17da7)) (segment (start 147.945 100.33) (end 149.225 100.33) (width 0.4) (layer "B.Cu") (net 2) (tstamp 641772c0-7f61-4441-99f5-7cfcc2d17da7))
(segment (start 177.92 87.75) (end 180.5 87.75) (width 0.4) (layer "B.Cu") (net 2) (tstamp 6b0194f2-64e2-42f0-a770-eee3265df00c))
(segment (start 113.98 103.505) (end 114.935 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 6e233a56-ac9b-4635-8c2a-062e32976d8e)) (segment (start 113.98 103.505) (end 114.935 102.55) (width 0.4) (layer "B.Cu") (net 2) (tstamp 6e233a56-ac9b-4635-8c2a-062e32976d8e))
(segment (start 177.673 87.503) (end 177.2975 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp 6e44b2f5-b875-4322-9d93-fabf6c096b10))
(segment (start 142.035 112.28) (end 141.605 112.71) (width 0.3) (layer "B.Cu") (net 2) (tstamp 6eb14f11-9103-4767-ba14-ce21de659be7)) (segment (start 142.035 112.28) (end 141.605 112.71) (width 0.3) (layer "B.Cu") (net 2) (tstamp 6eb14f11-9103-4767-ba14-ce21de659be7))
(segment (start 153.683922 115.28) (end 152.183433 113.779511) (width 0.3) (layer "B.Cu") (net 2) (tstamp 6fdd7a53-8fb3-4cc6-8049-b2bfeefb6b0b)) (segment (start 153.683922 115.28) (end 152.183433 113.779511) (width 0.3) (layer "B.Cu") (net 2) (tstamp 6fdd7a53-8fb3-4cc6-8049-b2bfeefb6b0b))
(segment (start 148.245 118.526428) (end 146.121428 120.65) (width 0.3) (layer "B.Cu") (net 2) (tstamp 70abd6bf-f9e9-42c5-83af-20cdadf937ed)) (segment (start 148.245 118.526428) (end 146.121428 120.65) (width 0.3) (layer "B.Cu") (net 2) (tstamp 70abd6bf-f9e9-42c5-83af-20cdadf937ed))
(segment (start 178.21 90.58) (end 175.2975 90.58) (width 0.4) (layer "B.Cu") (net 2) (tstamp 711632fa-2566-4d92-b873-f58890414b30)) (segment (start 181.2525 120.396) (end 191.516 120.396) (width 1) (layer "B.Cu") (net 2) (tstamp 71dba224-b67c-4773-9486-c9190785ea62))
(segment (start 137.435 114.025) (end 137.435 116.8) (width 0.4) (layer "B.Cu") (net 2) (tstamp 71f3e724-8017-42ec-96ce-aabd37a46b94)) (segment (start 137.435 114.025) (end 137.435 116.8) (width 0.4) (layer "B.Cu") (net 2) (tstamp 71f3e724-8017-42ec-96ce-aabd37a46b94))
(segment (start 149.743 100.33) (end 149.484 100.071) (width 0.3) (layer "B.Cu") (net 2) (tstamp 76a62804-b2e7-4e8a-a65f-c1028ef59ac6)) (segment (start 149.743 100.33) (end 149.484 100.071) (width 0.3) (layer "B.Cu") (net 2) (tstamp 76a62804-b2e7-4e8a-a65f-c1028ef59ac6))
(segment (start 181.2525 119.6575) (end 181.2525 121.285) (width 0.4) (layer "B.Cu") (net 2) (tstamp 77543dfc-5abe-417e-bf39-3a03b8f53fd3))
(segment (start 148.245 117.1925) (end 148.245 114.59) (width 0.3) (layer "B.Cu") (net 2) (tstamp 78b6268b-8e33-42be-86ba-61938bee17af)) (segment (start 148.245 117.1925) (end 148.245 114.59) (width 0.3) (layer "B.Cu") (net 2) (tstamp 78b6268b-8e33-42be-86ba-61938bee17af))
(segment (start 188.595 109.22) (end 188.595 106.995) (width 0.7) (layer "B.Cu") (net 2) (tstamp 7bb76dd2-a4a7-47de-9d55-4254d66414ee)) (segment (start 188.595 109.22) (end 188.595 106.995) (width 0.7) (layer "B.Cu") (net 2) (tstamp 7bb76dd2-a4a7-47de-9d55-4254d66414ee))
(segment (start 174.625 102.235) (end 176.85 102.235) (width 0.4) (layer "B.Cu") (net 2) (tstamp 80046395-04cd-42ec-aeba-fd3e40705f04)) (segment (start 174.625 102.235) (end 176.85 102.235) (width 0.4) (layer "B.Cu") (net 2) (tstamp 80046395-04cd-42ec-aeba-fd3e40705f04))
(segment (start 191.835 128.84) (end 191.835 120.715) (width 1) (layer "B.Cu") (net 2) (tstamp 80d5b2e7-1b0c-45b0-9d80-851022d7750b))
(segment (start 151.77 122.555) (end 151.135 121.92) (width 0.25) (layer "B.Cu") (net 2) (tstamp 82501a57-5583-4a45-ad60-df114c9dbbf4)) (segment (start 151.77 122.555) (end 151.135 121.92) (width 0.25) (layer "B.Cu") (net 2) (tstamp 82501a57-5583-4a45-ad60-df114c9dbbf4))
(segment (start 177.2975 87.1275) (end 175.93 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp 833bd51e-0ff3-4ec5-b8ae-8246afbd1dbf)) (segment (start 177.2975 87.1275) (end 175.93 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp 833bd51e-0ff3-4ec5-b8ae-8246afbd1dbf))
(segment (start 184.785 114.62) (end 191.455 114.62) (width 0.7) (layer "B.Cu") (net 2) (tstamp 8636141c-f207-42b7-8bf7-4120f81c8804)) (segment (start 184.785 114.62) (end 191.455 114.62) (width 1) (layer "B.Cu") (net 2) (tstamp 8636141c-f207-42b7-8bf7-4120f81c8804))
(segment (start 188.3175 108.9425) (end 188.595 109.22) (width 0.4) (layer "B.Cu") (net 2) (tstamp 87e687ce-5d0d-4cda-bde9-f94d37e23688)) (segment (start 188.3175 108.9425) (end 188.595 109.22) (width 0.4) (layer "B.Cu") (net 2) (tstamp 87e687ce-5d0d-4cda-bde9-f94d37e23688))
(segment (start 128.46 124.92) (end 128.46 119.19) (width 0.4) (layer "B.Cu") (net 2) (tstamp 8c1b2fae-025a-4994-b10e-646aaa5f56a0)) (segment (start 128.46 124.92) (end 128.46 119.19) (width 0.4) (layer "B.Cu") (net 2) (tstamp 8c1b2fae-025a-4994-b10e-646aaa5f56a0))
(segment (start 114.935 102.55) (end 114.96 102.575) (width 0.4) (layer "B.Cu") (net 2) (tstamp 8d187903-89f6-4187-b31b-3660729faff9)) (segment (start 114.935 102.55) (end 114.96 102.575) (width 0.4) (layer "B.Cu") (net 2) (tstamp 8d187903-89f6-4187-b31b-3660729faff9))
@ -4197,16 +4183,17 @@
(segment (start 117.475 107.315) (end 114.935 107.315) (width 0.4) (layer "B.Cu") (net 2) (tstamp 95706bc6-2b19-4ab0-82e9-b8fac1539b6d)) (segment (start 117.475 107.315) (end 114.935 107.315) (width 0.4) (layer "B.Cu") (net 2) (tstamp 95706bc6-2b19-4ab0-82e9-b8fac1539b6d))
(segment (start 159.385 113.665) (end 159.385 113.03) (width 0.3) (layer "B.Cu") (net 2) (tstamp 962ecf90-d054-4ff2-861d-42456ca22c59)) (segment (start 159.385 113.665) (end 159.385 113.03) (width 0.3) (layer "B.Cu") (net 2) (tstamp 962ecf90-d054-4ff2-861d-42456ca22c59))
(segment (start 195.635 101.7) (end 191.845 101.7) (width 0.7) (layer "B.Cu") (net 2) (tstamp 96e3d332-ed3a-4a18-9583-f20a7d8cc6f5)) (segment (start 195.635 101.7) (end 191.845 101.7) (width 0.7) (layer "B.Cu") (net 2) (tstamp 96e3d332-ed3a-4a18-9583-f20a7d8cc6f5))
(segment (start 180.975 125.73) (end 184.15 125.73) (width 0.7) (layer "B.Cu") (net 2) (tstamp 97adfa3d-2ff8-44eb-beb4-1bc0a47522d8)) (segment (start 191.835 115) (end 191.835 110.35) (width 1) (layer "B.Cu") (net 2) (tstamp 993d78e5-750e-4b87-914e-b00f157d21b6))
(segment (start 191.835 115) (end 191.835 110.35) (width 0.7) (layer "B.Cu") (net 2) (tstamp 993d78e5-750e-4b87-914e-b00f157d21b6))
(segment (start 173.99 99.06) (end 173.99 100.965) (width 0.4) (layer "B.Cu") (net 2) (tstamp 99de77e1-77be-4d16-bf5c-5386096edef9)) (segment (start 173.99 99.06) (end 173.99 100.965) (width 0.4) (layer "B.Cu") (net 2) (tstamp 99de77e1-77be-4d16-bf5c-5386096edef9))
(segment (start 195.635 110.35) (end 191.835 110.35) (width 0.7) (layer "B.Cu") (net 2) (tstamp 9a755711-d195-4de5-b8eb-cdaad8859631)) (segment (start 195.635 110.35) (end 191.835 110.35) (width 0.7) (layer "B.Cu") (net 2) (tstamp 9a755711-d195-4de5-b8eb-cdaad8859631))
(segment (start 176.85 99.375) (end 177.485 98.74) (width 0.4) (layer "B.Cu") (net 2) (tstamp 9dd7b6ef-1a42-4eb7-bf46-c93e1e4d69b9)) (segment (start 176.85 99.375) (end 177.485 98.74) (width 0.4) (layer "B.Cu") (net 2) (tstamp 9dd7b6ef-1a42-4eb7-bf46-c93e1e4d69b9))
(segment (start 180.59 117.86) (end 180.59 118.995) (width 0.4) (layer "B.Cu") (net 2) (tstamp 9e94394d-3798-4bea-b37f-39a73256c0eb))
(segment (start 148.245 113.193) (end 147.332 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp a0a1f12c-c4d8-44cd-a2b1-892fea3774cc)) (segment (start 148.245 113.193) (end 147.332 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp a0a1f12c-c4d8-44cd-a2b1-892fea3774cc))
(segment (start 180.59 117.86) (end 180.59 118.995) (width 0.4) (layer "B.Cu") (net 2) (tstamp a345e998-56bb-4a32-89b4-a5c229d2ed80))
(segment (start 178.435 108.9425) (end 188.3175 108.9425) (width 0.7) (layer "B.Cu") (net 2) (tstamp a403618d-a571-4fd1-8a1f-8c8cc2c49c64)) (segment (start 178.435 108.9425) (end 188.3175 108.9425) (width 0.7) (layer "B.Cu") (net 2) (tstamp a403618d-a571-4fd1-8a1f-8c8cc2c49c64))
(segment (start 182.0545 89.3045) (end 180.5 87.75) (width 0.4) (layer "B.Cu") (net 2) (tstamp a45b54c9-b2b6-4fe2-a293-38c031497a2f))
(segment (start 151.77 126.34) (end 151.795 126.365) (width 0.35) (layer "B.Cu") (net 2) (tstamp a4a1ba95-fc29-4637-9959-1d4574ba9384)) (segment (start 151.77 126.34) (end 151.795 126.365) (width 0.35) (layer "B.Cu") (net 2) (tstamp a4a1ba95-fc29-4637-9959-1d4574ba9384))
(segment (start 150.55 114.59) (end 150.84 114.3) (width 0.3) (layer "B.Cu") (net 2) (tstamp a4aff44f-e8a8-4458-a406-86345ce6d356)) (segment (start 150.55 114.59) (end 150.84 114.3) (width 0.3) (layer "B.Cu") (net 2) (tstamp a4aff44f-e8a8-4458-a406-86345ce6d356))
(segment (start 170.4575 127.2305) (end 170.4575 128.905) (width 1) (layer "B.Cu") (net 2) (tstamp a5bb8c72-e343-42ca-8374-81b4666cdf9c))
(segment (start 152.183433 113.779511) (end 150.863511 113.779511) (width 0.3) (layer "B.Cu") (net 2) (tstamp ac1e1813-81b2-4433-b3a5-b940f964be78)) (segment (start 152.183433 113.779511) (end 150.863511 113.779511) (width 0.3) (layer "B.Cu") (net 2) (tstamp ac1e1813-81b2-4433-b3a5-b940f964be78))
(segment (start 167.005 87.4425) (end 168.4625 87.4425) (width 0.4) (layer "B.Cu") (net 2) (tstamp acfcb159-6ddf-409f-a87b-db6dfefd0aab)) (segment (start 167.005 87.4425) (end 168.4625 87.4425) (width 0.4) (layer "B.Cu") (net 2) (tstamp acfcb159-6ddf-409f-a87b-db6dfefd0aab))
(segment (start 191.845 101.7) (end 191.835 101.71) (width 0.4) (layer "B.Cu") (net 2) (tstamp aeadd435-b180-447a-81a3-ee02078e774d)) (segment (start 191.845 101.7) (end 191.835 101.71) (width 0.4) (layer "B.Cu") (net 2) (tstamp aeadd435-b180-447a-81a3-ee02078e774d))
@ -4224,32 +4211,30 @@
(segment (start 195.635 110.35) (end 195.635 101.7) (width 0.7) (layer "B.Cu") (net 2) (tstamp c9fef736-2e09-4cbe-9c9c-caa013246466)) (segment (start 195.635 110.35) (end 195.635 101.7) (width 0.7) (layer "B.Cu") (net 2) (tstamp c9fef736-2e09-4cbe-9c9c-caa013246466))
(segment (start 150.84 113.756) (end 150.84 110.78) (width 0.3) (layer "B.Cu") (net 2) (tstamp ca781f31-7dbe-4a8f-b6a1-d53d9cecb877)) (segment (start 150.84 113.756) (end 150.84 110.78) (width 0.3) (layer "B.Cu") (net 2) (tstamp ca781f31-7dbe-4a8f-b6a1-d53d9cecb877))
(segment (start 117.475 114.3) (end 117.475 107.315) (width 0.4) (layer "B.Cu") (net 2) (tstamp cebe88fe-7bbd-4b49-80d4-4f7cf2ab7d96)) (segment (start 117.475 114.3) (end 117.475 107.315) (width 0.4) (layer "B.Cu") (net 2) (tstamp cebe88fe-7bbd-4b49-80d4-4f7cf2ab7d96))
(segment (start 177.8 87.63) (end 177.673 87.503) (width 0.4) (layer "B.Cu") (net 2) (tstamp d09e31ab-d167-4df4-a7ba-a217561c9ab0))
(segment (start 173.99 91.8875) (end 174.305 91.5725) (width 0.4) (layer "B.Cu") (net 2) (tstamp d0abb8b1-3cc2-4ce4-8363-3a7818606fe5)) (segment (start 173.99 91.8875) (end 174.305 91.5725) (width 0.4) (layer "B.Cu") (net 2) (tstamp d0abb8b1-3cc2-4ce4-8363-3a7818606fe5))
(segment (start 173.99 99.06) (end 173.99 91.8875) (width 0.4) (layer "B.Cu") (net 2) (tstamp d7c19c9d-2843-4bce-a669-85953eec44e1)) (segment (start 173.99 99.06) (end 173.99 91.8875) (width 0.4) (layer "B.Cu") (net 2) (tstamp d7c19c9d-2843-4bce-a669-85953eec44e1))
(segment (start 180.09 116.4082) (end 180.09 115.185) (width 0.25) (layer "B.Cu") (net 2) (tstamp d9152c6a-d8f9-4fe3-b40b-bdacf54605e7)) (segment (start 180.09 116.4082) (end 180.09 115.185) (width 0.25) (layer "B.Cu") (net 2) (tstamp d9152c6a-d8f9-4fe3-b40b-bdacf54605e7))
(segment (start 191.516 120.396) (end 191.835 120.715) (width 0.7) (layer "B.Cu") (net 2) (tstamp dc03183e-2605-4b3c-9436-b0e0764dc355))
(segment (start 147.955 122.555) (end 145.415 122.555) (width 0.25) (layer "B.Cu") (net 2) (tstamp dce14c25-a7d4-4c78-8224-6e48ed807bf5)) (segment (start 147.955 122.555) (end 145.415 122.555) (width 0.25) (layer "B.Cu") (net 2) (tstamp dce14c25-a7d4-4c78-8224-6e48ed807bf5))
(segment (start 180.59 118.995) (end 181.2525 119.6575) (width 0.4) (layer "B.Cu") (net 2) (tstamp de5c6934-511c-48ee-8067-1babf3342eef))
(segment (start 181.2525 121.285) (end 181.2525 125.4525) (width 0.7) (layer "B.Cu") (net 2) (tstamp df5e5869-51e8-4036-8b42-4591fbe997c7))
(segment (start 146.121428 120.65) (end 144.78 120.65) (width 0.3) (layer "B.Cu") (net 2) (tstamp e068e3b7-2f03-462e-bfe8-e6cbe42688ee)) (segment (start 146.121428 120.65) (end 144.78 120.65) (width 0.3) (layer "B.Cu") (net 2) (tstamp e068e3b7-2f03-462e-bfe8-e6cbe42688ee))
(segment (start 163.83 115.57) (end 163.195 114.935) (width 0.4) (layer "B.Cu") (net 2) (tstamp e32f3bf0-32af-470d-a0af-689bd60e92d1)) (segment (start 163.83 115.57) (end 163.195 114.935) (width 0.4) (layer "B.Cu") (net 2) (tstamp e32f3bf0-32af-470d-a0af-689bd60e92d1))
(segment (start 152.214361 110.236) (end 152.745 109.705361) (width 0.3) (layer "B.Cu") (net 2) (tstamp e51537b2-cd6c-4e03-a052-ac7edd151ea5)) (segment (start 152.214361 110.236) (end 152.745 109.705361) (width 0.3) (layer "B.Cu") (net 2) (tstamp e51537b2-cd6c-4e03-a052-ac7edd151ea5))
(segment (start 150.84 110.78) (end 151.384 110.236) (width 0.3) (layer "B.Cu") (net 2) (tstamp e5ec8639-c3f6-4fdb-8fd1-61e4f066bbba)) (segment (start 150.84 110.78) (end 151.384 110.236) (width 0.3) (layer "B.Cu") (net 2) (tstamp e5ec8639-c3f6-4fdb-8fd1-61e4f066bbba))
(segment (start 184.785 126.365) (end 184.785 129.54) (width 0.7) (layer "B.Cu") (net 2) (tstamp e73f33f6-3fba-430b-b3e5-af93988ffa0f))
(segment (start 170.78 85.8575) (end 170.78 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp e83d3e44-dee6-4804-9474-dd6124d22b7a)) (segment (start 170.78 85.8575) (end 170.78 87.1275) (width 0.4) (layer "B.Cu") (net 2) (tstamp e83d3e44-dee6-4804-9474-dd6124d22b7a))
(segment (start 137.16 118.745) (end 137.435 118.47) (width 0.4) (layer "B.Cu") (net 2) (tstamp e8970e1b-216f-415d-aec8-89435fd706eb)) (segment (start 137.16 118.745) (end 137.435 118.47) (width 0.4) (layer "B.Cu") (net 2) (tstamp e8970e1b-216f-415d-aec8-89435fd706eb))
(segment (start 184.785 129.54) (end 191.135 129.54) (width 0.7) (layer "B.Cu") (net 2) (tstamp e926cb72-f82f-4607-9941-4c4944efe100)) (segment (start 184.785 129.54) (end 191.135 129.54) (width 1) (layer "B.Cu") (net 2) (tstamp e926cb72-f82f-4607-9941-4c4944efe100))
(segment (start 150.863511 113.779511) (end 150.84 113.756) (width 0.3) (layer "B.Cu") (net 2) (tstamp ea43a177-a1f0-41f0-855e-13328350a5e6)) (segment (start 150.863511 113.779511) (end 150.84 113.756) (width 0.3) (layer "B.Cu") (net 2) (tstamp ea43a177-a1f0-41f0-855e-13328350a5e6))
(segment (start 113.98 106.36) (end 113.98 103.505) (width 0.4) (layer "B.Cu") (net 2) (tstamp ecc2e428-ffdd-44d1-aa87-8e8275d57ccc)) (segment (start 113.98 106.36) (end 113.98 103.505) (width 0.4) (layer "B.Cu") (net 2) (tstamp ecc2e428-ffdd-44d1-aa87-8e8275d57ccc))
(segment (start 146.3325 112.28) (end 142.035 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp ecffc7d2-a626-4388-b897-5e227be6988b)) (segment (start 146.3325 112.28) (end 142.035 112.28) (width 0.3) (layer "B.Cu") (net 2) (tstamp ecffc7d2-a626-4388-b897-5e227be6988b))
(segment (start 148.245 114.59) (end 150.55 114.59) (width 0.3) (layer "B.Cu") (net 2) (tstamp ef17a3c7-3f5b-471f-990f-493ac7a17ea6)) (segment (start 148.245 114.59) (end 150.55 114.59) (width 0.3) (layer "B.Cu") (net 2) (tstamp ef17a3c7-3f5b-471f-990f-493ac7a17ea6))
(segment (start 179.705 90.58) (end 178.21 90.58) (width 0.4) (layer "B.Cu") (net 2) (tstamp ef876f87-d7f3-42ab-b6ec-193688f5b091)) (segment (start 170.735 127.508) (end 184.404 127.508) (width 1) (layer "B.Cu") (net 2) (tstamp f0dbb909-9022-4809-bf75-89e6fba27464))
(segment (start 145.415 122.555) (end 144.78 121.92) (width 0.25) (layer "B.Cu") (net 2) (tstamp f2948af6-a1ad-487f-8055-8ae81deda346)) (segment (start 145.415 122.555) (end 144.78 121.92) (width 0.25) (layer "B.Cu") (net 2) (tstamp f2948af6-a1ad-487f-8055-8ae81deda346))
(segment (start 128.905 118.745) (end 137.16 118.745) (width 0.4) (layer "B.Cu") (net 2) (tstamp f415ac5e-805b-4ea7-a033-f1828bc2fa04)) (segment (start 128.905 118.745) (end 137.16 118.745) (width 0.4) (layer "B.Cu") (net 2) (tstamp f415ac5e-805b-4ea7-a033-f1828bc2fa04))
(segment (start 153.35 105.095) (end 156.21 105.095) (width 0.3) (layer "B.Cu") (net 2) (tstamp f565edd5-58e0-4cdf-91f3-3a1567d91962)) (segment (start 153.35 105.095) (end 156.21 105.095) (width 0.3) (layer "B.Cu") (net 2) (tstamp f565edd5-58e0-4cdf-91f3-3a1567d91962))
(segment (start 170.4575 125.73) (end 180.975 125.73) (width 0.7) (layer "B.Cu") (net 2) (tstamp f925692a-0210-4a90-8101-4fa3c1d3fb23)) (segment (start 181.149 84.328) (end 181.149 87.101) (width 0.4) (layer "B.Cu") (net 2) (tstamp f7ab1256-1094-4b33-9457-efa3b35d703a))
(segment (start 175.2975 90.58) (end 177.39 90.58) (width 0.4) (layer "B.Cu") (net 2) (tstamp f8828874-3d36-4e4d-8ec9-5158d488dc54))
(segment (start 152.745 109.705361) (end 152.745 108.8675) (width 0.3) (layer "B.Cu") (net 2) (tstamp fc556869-79a1-4c2b-a4ff-a745c969a577)) (segment (start 152.745 109.705361) (end 152.745 108.8675) (width 0.3) (layer "B.Cu") (net 2) (tstamp fc556869-79a1-4c2b-a4ff-a745c969a577))
(segment (start 179.705 90.58) (end 182.245 90.58) (width 0.4) (layer "B.Cu") (net 2) (tstamp fd5f2139-e032-4f04-ac1e-3b4e4fd051c4))
(segment (start 181.2525 125.4525) (end 180.975 125.73) (width 0.4) (layer "B.Cu") (net 2) (tstamp fda285d2-5ee4-42fb-b0dc-b4a45b89e88b))
(segment (start 149.86 100.33) (end 149.743 100.33) (width 0.3) (layer "B.Cu") (net 2) (tstamp fea1aff6-04c3-4e39-84f7-2b2eb8acf90d)) (segment (start 149.86 100.33) (end 149.743 100.33) (width 0.3) (layer "B.Cu") (net 2) (tstamp fea1aff6-04c3-4e39-84f7-2b2eb8acf90d))
(segment (start 116.9725 101.925) (end 116.149 101.925) (width 0.3) (layer "B.Cu") (net 3) (tstamp 8610f077-c079-4c4d-aed7-57592560d475)) (segment (start 116.9725 101.925) (end 116.149 101.925) (width 0.3) (layer "B.Cu") (net 3) (tstamp 8610f077-c079-4c4d-aed7-57592560d475))
(segment (start 114.935 100.711) (end 114.935 100.65) (width 0.3) (layer "B.Cu") (net 3) (tstamp c7fd1806-3e81-4d97-bdbc-95da44f9469a)) (segment (start 114.935 100.711) (end 114.935 100.65) (width 0.3) (layer "B.Cu") (net 3) (tstamp c7fd1806-3e81-4d97-bdbc-95da44f9469a))
@ -4325,11 +4310,12 @@
(segment (start 184.785 116.84) (end 184.15 117.475) (width 0.4) (layer "B.Cu") (net 6) (tstamp 40dbedfc-a1bf-463a-a5f5-c2474b556830)) (segment (start 184.785 116.84) (end 184.15 117.475) (width 0.4) (layer "B.Cu") (net 6) (tstamp 40dbedfc-a1bf-463a-a5f5-c2474b556830))
(segment (start 181.090001 116.955001) (end 181.090001 116.4082) (width 0.25) (layer "B.Cu") (net 6) (tstamp 7ece1e0b-fc67-4a02-af2c-a9a7c23e86ef)) (segment (start 181.090001 116.955001) (end 181.090001 116.4082) (width 0.25) (layer "B.Cu") (net 6) (tstamp 7ece1e0b-fc67-4a02-af2c-a9a7c23e86ef))
(segment (start 181.61 117.475) (end 181.090001 116.955001) (width 0.25) (layer "B.Cu") (net 6) (tstamp ce36f808-d425-4416-ba2d-bcc0cdaf42e2)) (segment (start 181.61 117.475) (end 181.090001 116.955001) (width 0.25) (layer "B.Cu") (net 6) (tstamp ce36f808-d425-4416-ba2d-bcc0cdaf42e2))
(segment (start 175.93 84.5875) (end 175.93 84.42) (width 0.4) (layer "B.Cu") (net 7) (tstamp 5c0cfae6-0e3d-4757-b3fb-7c7b8fb63412)) (segment (start 184.338 82.804) (end 184.912 83.378) (width 0.4) (layer "B.Cu") (net 7) (tstamp 0505c29d-4b44-4cbb-999d-2e796af32618))
(segment (start 175.93 84.42) (end 176.53 83.82) (width 0.4) (layer "B.Cu") (net 7) (tstamp 6d393bd2-c1da-4b4f-b18a-7b292644a8ff)) (segment (start 177.546 82.804) (end 184.338 82.804) (width 0.4) (layer "B.Cu") (net 7) (tstamp 22e07ddc-ec91-4e8a-9e5d-3d369803d2ce))
(segment (start 182.245 83.82) (end 182.245 84.9075) (width 0.4) (layer "B.Cu") (net 7) (tstamp 7e948cef-70a9-4a60-9b40-295b6480c061)) (segment (start 175.93 84.5875) (end 175.93 84.42) (width 0.4) (layer "B.Cu") (net 7) (tstamp 29caef97-2443-402f-bb9c-00ed9cf4e7dc))
(segment (start 176.53 83.82) (end 182.245 83.82) (width 0.4) (layer "B.Cu") (net 7) (tstamp 9145c371-3c01-4476-8f97-e4a6e831c9ae)) (segment (start 175.93 84.42) (end 177.546 82.804) (width 0.4) (layer "B.Cu") (net 7) (tstamp b69485b6-dd7e-404b-96c3-dc74e2aa478b))
(segment (start 182.245 86.8075) (end 182.245 88.755) (width 0.4) (layer "B.Cu") (net 8) (tstamp 4e274579-ab29-4c76-9bad-8d00ceff370d)) (segment (start 184.912 85.278) (end 184.912 87.4795) (width 0.4) (layer "B.Cu") (net 8) (tstamp 7e9cf7db-487f-4798-86d3-636255255261))
(segment (start 166.37 120.015) (end 166.37 117.475) (width 0.4) (layer "F.Cu") (net 9) (tstamp 0076fb19-e7a3-47ee-aabc-daa197fe6799))
(segment (start 151.384 116.332) (end 150.368 117.348) (width 0.3) (layer "F.Cu") (net 9) (tstamp 1211d766-105c-47d8-817b-655ce5f77399)) (segment (start 151.384 116.332) (end 150.368 117.348) (width 0.3) (layer "F.Cu") (net 9) (tstamp 1211d766-105c-47d8-817b-655ce5f77399))
(segment (start 151.384251 114.808) (end 151.387793 114.811542) (width 0.3) (layer "F.Cu") (net 9) (tstamp 1a0d2a32-5102-42ca-8289-00d1aa9255d0)) (segment (start 151.384251 114.808) (end 151.387793 114.811542) (width 0.3) (layer "F.Cu") (net 9) (tstamp 1a0d2a32-5102-42ca-8289-00d1aa9255d0))
(segment (start 159.385 103.505) (end 162.515 103.505) (width 0.4) (layer "F.Cu") (net 9) (tstamp 1b25ea49-a51e-43b4-ab47-b562dceaab41)) (segment (start 159.385 103.505) (end 162.515 103.505) (width 0.4) (layer "F.Cu") (net 9) (tstamp 1b25ea49-a51e-43b4-ab47-b562dceaab41))
@ -4339,10 +4325,9 @@
(segment (start 151.13 113.03) (end 151.384 113.284) (width 0.3) (layer "F.Cu") (net 9) (tstamp 72be459b-c445-4a8a-8b36-8f1291920157)) (segment (start 151.13 113.03) (end 151.384 113.284) (width 0.3) (layer "F.Cu") (net 9) (tstamp 72be459b-c445-4a8a-8b36-8f1291920157))
(segment (start 179.705 99.695) (end 180.2255 99.1745) (width 0.4) (layer "F.Cu") (net 9) (tstamp 76c3eded-6fb6-446d-ba82-22a0e627e13c)) (segment (start 179.705 99.695) (end 180.2255 99.1745) (width 0.4) (layer "F.Cu") (net 9) (tstamp 76c3eded-6fb6-446d-ba82-22a0e627e13c))
(segment (start 148.860122 112.764776) (end 150.864776 112.764776) (width 0.3) (layer "F.Cu") (net 9) (tstamp 7b1bd68f-7cf5-4eb8-b638-539d41e373e8)) (segment (start 148.860122 112.764776) (end 150.864776 112.764776) (width 0.3) (layer "F.Cu") (net 9) (tstamp 7b1bd68f-7cf5-4eb8-b638-539d41e373e8))
(segment (start 171.704 120.015) (end 166.37 120.015) (width 0.4) (layer "F.Cu") (net 9) (tstamp 7d5d92e8-523c-4ce7-a6a4-4acf5fe4f777))
(segment (start 151.13 113.03) (end 151.892 112.268) (width 0.3) (layer "F.Cu") (net 9) (tstamp 83634c0a-bb0c-46c7-be78-88d10f83d20d)) (segment (start 151.13 113.03) (end 151.892 112.268) (width 0.3) (layer "F.Cu") (net 9) (tstamp 83634c0a-bb0c-46c7-be78-88d10f83d20d))
(segment (start 172.085 120.015) (end 166.37 120.015) (width 0.4) (layer "F.Cu") (net 9) (tstamp 92e91266-b94d-4ebd-bce3-298a7aba640e))
(segment (start 151.384 114.808) (end 151.384251 114.808) (width 0.3) (layer "F.Cu") (net 9) (tstamp a0c16611-aef1-4eb2-a595-8edb0db908e1)) (segment (start 151.384 114.808) (end 151.384251 114.808) (width 0.3) (layer "F.Cu") (net 9) (tstamp a0c16611-aef1-4eb2-a595-8edb0db908e1))
(segment (start 166.37 120.015) (end 166.37 117.475) (width 0.4) (layer "F.Cu") (net 9) (tstamp ad91cd18-da2f-4623-8f9f-aea0f84ad266))
(segment (start 163.449 99.695) (end 179.705 99.695) (width 0.4) (layer "F.Cu") (net 9) (tstamp adefda7f-6700-499e-a3ff-ce7f2e5f8ff5)) (segment (start 163.449 99.695) (end 179.705 99.695) (width 0.4) (layer "F.Cu") (net 9) (tstamp adefda7f-6700-499e-a3ff-ce7f2e5f8ff5))
(segment (start 151.384 114.808) (end 151.384 116.332) (width 0.3) (layer "F.Cu") (net 9) (tstamp aeb28ba5-a7d5-4823-b0e3-162b231a83ee)) (segment (start 151.384 114.808) (end 151.384 116.332) (width 0.3) (layer "F.Cu") (net 9) (tstamp aeb28ba5-a7d5-4823-b0e3-162b231a83ee))
(segment (start 162.515 100.629) (end 163.449 99.695) (width 0.4) (layer "F.Cu") (net 9) (tstamp d18c1e1a-75c9-4346-a634-ffa883d08a1a)) (segment (start 162.515 100.629) (end 163.449 99.695) (width 0.4) (layer "F.Cu") (net 9) (tstamp d18c1e1a-75c9-4346-a634-ffa883d08a1a))
@ -4355,12 +4340,12 @@
(via (at 180.2255 96.52) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp 6b04f85a-cbaa-410a-941f-e55339fba2a8)) (via (at 180.2255 96.52) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp 6b04f85a-cbaa-410a-941f-e55339fba2a8))
(via (at 148.860122 112.764776) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp a7310de4-f6c2-4add-9d42-dd79396d75fe)) (via (at 148.860122 112.764776) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp a7310de4-f6c2-4add-9d42-dd79396d75fe))
(via (at 151.892 112.268) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp b78e0d25-5247-44f7-a7ef-9c972fa74850)) (via (at 151.892 112.268) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp b78e0d25-5247-44f7-a7ef-9c972fa74850))
(via (at 172.085 120.015) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp c434a37b-2cdc-4cbb-8a98-b5fd5b23290e)) (via (at 171.704 120.015) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 9) (tstamp c434a37b-2cdc-4cbb-8a98-b5fd5b23290e))
(segment (start 141.539 110.744) (end 141.605 110.81) (width 0.4) (layer "B.Cu") (net 9) (tstamp 02430646-8990-4fa5-bf99-1aa40a8ee989)) (segment (start 141.539 110.744) (end 141.605 110.81) (width 0.4) (layer "B.Cu") (net 9) (tstamp 02430646-8990-4fa5-bf99-1aa40a8ee989))
(segment (start 166.37 117.475) (end 167.005 116.84) (width 0.4) (layer "B.Cu") (net 9) (tstamp 04cb4841-dcf0-4f0a-abd8-c88aa4e8bbd4)) (segment (start 166.37 117.475) (end 167.005 116.84) (width 0.4) (layer "B.Cu") (net 9) (tstamp 04cb4841-dcf0-4f0a-abd8-c88aa4e8bbd4))
(segment (start 175.34 120.015) (end 171.704 120.015) (width 0.4) (layer "B.Cu") (net 9) (tstamp 0b00f26a-378c-4480-8949-d4b5dcf906cd))
(segment (start 119.7 110.17) (end 119.375 110.495) (width 0.4) (layer "B.Cu") (net 9) (tstamp 0ddaa3c6-f472-46ea-8285-c2d4b117a2df)) (segment (start 119.7 110.17) (end 119.375 110.495) (width 0.4) (layer "B.Cu") (net 9) (tstamp 0ddaa3c6-f472-46ea-8285-c2d4b117a2df))
(segment (start 162.56 117.475) (end 166.37 117.475) (width 0.4) (layer "B.Cu") (net 9) (tstamp 12352a07-e6a2-40e3-8660-7525af157a3a)) (segment (start 162.56 117.475) (end 166.37 117.475) (width 0.4) (layer "B.Cu") (net 9) (tstamp 12352a07-e6a2-40e3-8660-7525af157a3a))
(segment (start 175.34 120.015) (end 172.085 120.015) (width 0.4) (layer "B.Cu") (net 9) (tstamp 138459f0-70e4-462b-9d18-3d02484a27c3))
(segment (start 143.505 117.607) (end 143.505 118.75) (width 0.4) (layer "B.Cu") (net 9) (tstamp 1679fc24-9c93-4c84-8ca9-26b4cc110b94)) (segment (start 143.505 117.607) (end 143.505 118.75) (width 0.4) (layer "B.Cu") (net 9) (tstamp 1679fc24-9c93-4c84-8ca9-26b4cc110b94))
(segment (start 159.07 106.995) (end 159.385 106.68) (width 0.4) (layer "B.Cu") (net 9) (tstamp 16f9e6e6-0002-4c32-8fdf-6916a85659d1)) (segment (start 159.07 106.995) (end 159.385 106.68) (width 0.4) (layer "B.Cu") (net 9) (tstamp 16f9e6e6-0002-4c32-8fdf-6916a85659d1))
(segment (start 159.385 115.565) (end 161.92 115.565) (width 0.3) (layer "B.Cu") (net 9) (tstamp 1942075a-61e0-4eca-a000-e5935b92646c)) (segment (start 159.385 115.565) (end 161.92 115.565) (width 0.3) (layer "B.Cu") (net 9) (tstamp 1942075a-61e0-4eca-a000-e5935b92646c))
@ -4423,19 +4408,18 @@
(segment (start 133.985 111.76) (end 134.493 111.252) (width 0.4) (layer "B.Cu") (net 9) (tstamp fffb6507-eae0-4393-af0c-4088352ac188)) (segment (start 133.985 111.76) (end 134.493 111.252) (width 0.4) (layer "B.Cu") (net 9) (tstamp fffb6507-eae0-4393-af0c-4088352ac188))
(segment (start 164.56 78.01) (end 164.465 78.105) (width 0.4) (layer "F.Cu") (net 10) (tstamp 54b86133-84c0-4e7f-ba1e-7da6e5a8115b)) (segment (start 164.56 78.01) (end 164.465 78.105) (width 0.4) (layer "F.Cu") (net 10) (tstamp 54b86133-84c0-4e7f-ba1e-7da6e5a8115b))
(segment (start 164.56 78.01) (end 167.64 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp 650b0cb1-307f-4442-be19-c06147a64be2)) (segment (start 164.56 78.01) (end 167.64 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp 650b0cb1-307f-4442-be19-c06147a64be2))
(segment (start 177.07 78.01) (end 167.64 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp 664839bb-eed3-4934-8a82-e1b80972db37)) (segment (start 175.26 78.232) (end 175.038 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp 9323d24a-5cf2-4242-92f4-259e82c2e3d0))
(segment (start 177.8 86.36) (end 177.8 78.74) (width 0.4) (layer "F.Cu") (net 10) (tstamp 746ef519-218e-4c72-9868-c5d8ae1057db)) (segment (start 175.038 78.01) (end 167.64 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp edc852f9-107a-4265-839c-66457268b1d6))
(segment (start 177.8 78.74) (end 177.07 78.01) (width 0.4) (layer "F.Cu") (net 10) (tstamp e50a5380-129a-488f-bddb-f527e29e0b62))
(via (at 164.465 78.105) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 10) (tstamp 39b70cab-f892-451c-bd7b-6b3ac9c2c720)) (via (at 164.465 78.105) (size 0.9) (drill 0.4) (layers "F.Cu" "B.Cu") (net 10) (tstamp 39b70cab-f892-451c-bd7b-6b3ac9c2c720))
(via (at 177.8 86.36) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 10) (tstamp 9d053103-eab4-4e38-bb21-6ed76599018a)) (via (at 175.26 78.232) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 10) (tstamp 9d053103-eab4-4e38-bb21-6ed76599018a))
(segment (start 179.705 86.77) (end 178.21 86.77) (width 0.4) (layer "B.Cu") (net 10) (tstamp 23fd5efd-2931-476d-92a4-4579409e4e92))
(segment (start 151.384 99.949) (end 151.384 94.996) (width 0.4) (layer "B.Cu") (net 10) (tstamp 27278145-c7e8-4330-a268-71c970648546)) (segment (start 151.384 99.949) (end 151.384 94.996) (width 0.4) (layer "B.Cu") (net 10) (tstamp 27278145-c7e8-4330-a268-71c970648546))
(segment (start 151.765 100.33) (end 151.384 99.949) (width 0.4) (layer "B.Cu") (net 10) (tstamp 280dbd85-4bd4-4afb-adba-0b90a8e2b2e8)) (segment (start 151.765 100.33) (end 151.384 99.949) (width 0.4) (layer "B.Cu") (net 10) (tstamp 280dbd85-4bd4-4afb-adba-0b90a8e2b2e8))
(segment (start 151.384 94.996) (end 151.765 94.615) (width 0.4) (layer "B.Cu") (net 10) (tstamp 6d091743-4e99-4103-9ab2-fde95e4208a8)) (segment (start 151.384 94.996) (end 151.765 94.615) (width 0.4) (layer "B.Cu") (net 10) (tstamp 6d091743-4e99-4103-9ab2-fde95e4208a8))
(segment (start 178.21 86.77) (end 177.8 86.36) (width 0.4) (layer "B.Cu") (net 10) (tstamp 89f615b2-d505-499f-81fa-0840a6958dfb)) (segment (start 175.26 78.232) (end 175.6645 78.6365) (width 0.4) (layer "B.Cu") (net 10) (tstamp 788af3f1-9c5b-4a01-9ffa-6956272698f1))
(segment (start 164.465 93.345) (end 164.465 85.09) (width 0.4) (layer "B.Cu") (net 10) (tstamp 974ea494-a482-4bde-9974-0bccaad29f78)) (segment (start 164.465 93.345) (end 164.465 85.09) (width 0.4) (layer "B.Cu") (net 10) (tstamp 974ea494-a482-4bde-9974-0bccaad29f78))
(segment (start 153.045 100.33) (end 151.765 100.33) (width 0.4) (layer "B.Cu") (net 10) (tstamp ab55a115-9bfd-4d82-942a-c7abf8fa752d)) (segment (start 153.045 100.33) (end 151.765 100.33) (width 0.4) (layer "B.Cu") (net 10) (tstamp ab55a115-9bfd-4d82-942a-c7abf8fa752d))
(segment (start 164.465 78.105) (end 164.465 85.09) (width 0.4) (layer "B.Cu") (net 10) (tstamp b0cb52b0-d92c-4989-9f19-dd5ef21ff87c)) (segment (start 164.465 78.105) (end 164.465 85.09) (width 0.4) (layer "B.Cu") (net 10) (tstamp b0cb52b0-d92c-4989-9f19-dd5ef21ff87c))
(segment (start 175.6645 78.6365) (end 175.6645 81) (width 0.4) (layer "B.Cu") (net 10) (tstamp c15e5aca-e113-4a1b-9416-933290026840))
(segment (start 164.9175 85.5425) (end 167.005 85.5425) (width 0.4) (layer "B.Cu") (net 10) (tstamp d142a806-1dd3-4c29-bdde-a3b5b75818a1)) (segment (start 164.9175 85.5425) (end 167.005 85.5425) (width 0.4) (layer "B.Cu") (net 10) (tstamp d142a806-1dd3-4c29-bdde-a3b5b75818a1))
(segment (start 163.195 94.615) (end 164.465 93.345) (width 0.4) (layer "B.Cu") (net 10) (tstamp d2b97039-0b4b-4731-8842-29d168778b93)) (segment (start 163.195 94.615) (end 164.465 93.345) (width 0.4) (layer "B.Cu") (net 10) (tstamp d2b97039-0b4b-4731-8842-29d168778b93))
(segment (start 151.765 94.615) (end 163.195 94.615) (width 0.4) (layer "B.Cu") (net 10) (tstamp e23b72ae-c1b7-4348-891b-ee4d6845ace0)) (segment (start 151.765 94.615) (end 163.195 94.615) (width 0.4) (layer "B.Cu") (net 10) (tstamp e23b72ae-c1b7-4348-891b-ee4d6845ace0))
@ -4537,26 +4521,24 @@
(segment (start 177.684999 114.184999) (end 176.53 113.03) (width 0.25) (layer "B.Cu") (net 20) (tstamp 05b2d86a-7b3f-40cf-8173-d4eecd76f834)) (segment (start 177.684999 114.184999) (end 176.53 113.03) (width 0.25) (layer "B.Cu") (net 20) (tstamp 05b2d86a-7b3f-40cf-8173-d4eecd76f834))
(segment (start 178.8668 114.184999) (end 177.684999 114.184999) (width 0.25) (layer "B.Cu") (net 20) (tstamp 1456fd39-a9e8-4255-a0e8-d43c003f2333)) (segment (start 178.8668 114.184999) (end 177.684999 114.184999) (width 0.25) (layer "B.Cu") (net 20) (tstamp 1456fd39-a9e8-4255-a0e8-d43c003f2333))
(segment (start 176.53 113.03) (end 175.5375 113.03) (width 0.25) (layer "B.Cu") (net 20) (tstamp e57b5131-fdfe-43c8-a137-209eee9a2719)) (segment (start 176.53 113.03) (end 175.5375 113.03) (width 0.25) (layer "B.Cu") (net 20) (tstamp e57b5131-fdfe-43c8-a137-209eee9a2719))
(segment (start 176.919614 118.11) (end 174.625 115.815386) (width 0.25) (layer "F.Cu") (net 21) (tstamp 28165a02-1049-4e96-8839-69367ef40889)) (segment (start 176.665614 117.856) (end 174.625 115.815386) (width 0.25) (layer "F.Cu") (net 21) (tstamp 2631c080-8be0-4e46-a8d6-c2b7d59e7224))
(segment (start 179.07 118.11) (end 176.919614 118.11) (width 0.25) (layer "F.Cu") (net 21) (tstamp 461d5c5f-6c6a-4be5-9008-a273b55063ef)) (segment (start 178.308 117.856) (end 176.665614 117.856) (width 0.25) (layer "F.Cu") (net 21) (tstamp 5618cab4-d6b5-41b9-94ea-5f66316ebc21))
(segment (start 174.625 115.815386) (end 174.625 111.125) (width 0.25) (layer "F.Cu") (net 21) (tstamp f505aee7-7efa-46a0-a049-06b15d76af86)) (segment (start 174.625 115.815386) (end 174.625 111.125) (width 0.25) (layer "F.Cu") (net 21) (tstamp 6c4f82a4-8e4f-4a80-8998-e9d4c04cd1d9))
(via (at 179.07 118.11) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 21) (tstamp 42788a19-9cae-402a-8a4d-05e76741c495)) (via (at 178.308 117.856) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 21) (tstamp 42788a19-9cae-402a-8a4d-05e76741c495))
(via (at 174.625 111.125) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 21) (tstamp 55671476-0957-49a3-b6b8-7f3062286aea)) (via (at 174.625 111.125) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 21) (tstamp 55671476-0957-49a3-b6b8-7f3062286aea))
(segment (start 179.4275 121.285) (end 179.589999 121.122501) (width 0.25) (layer "B.Cu") (net 21) (tstamp 0749d529-46ae-4e97-b5d3-f45cc0a638b5)) (segment (start 178.308 117.856) (end 179.589999 116.574001) (width 0.25) (layer "B.Cu") (net 21) (tstamp 20e639c8-bf30-4ea4-9a89-5e3f78af707a))
(segment (start 179.589999 121.122501) (end 179.589999 116.4082) (width 0.25) (layer "B.Cu") (net 21) (tstamp 26928487-c5f4-4370-bcf4-c67416586112)) (segment (start 179.589999 120.233501) (end 179.589999 116.4082) (width 0.25) (layer "B.Cu") (net 21) (tstamp 2566efed-58fd-49f9-a60e-92efbd56f95b))
(segment (start 179.589999 117.590001) (end 179.07 118.11) (width 0.25) (layer "B.Cu") (net 21) (tstamp 283a4484-caf3-4ced-b06c-485cd6f67217))
(segment (start 174.625 111.125) (end 173.99 111.125) (width 0.25) (layer "B.Cu") (net 21) (tstamp 3be29a18-5ff0-4640-bedb-3d7f0b4ff41c)) (segment (start 174.625 111.125) (end 173.99 111.125) (width 0.25) (layer "B.Cu") (net 21) (tstamp 3be29a18-5ff0-4640-bedb-3d7f0b4ff41c))
(segment (start 173.99 111.125) (end 173.7125 111.4025) (width 0.25) (layer "B.Cu") (net 21) (tstamp 61b4cf53-2265-4805-9e44-012db20e81fc)) (segment (start 173.99 111.125) (end 173.7125 111.4025) (width 0.25) (layer "B.Cu") (net 21) (tstamp 61b4cf53-2265-4805-9e44-012db20e81fc))
(segment (start 173.7125 111.4025) (end 173.7125 113.03) (width 0.25) (layer "B.Cu") (net 21) (tstamp 6f22f327-d561-4867-9db2-2a16551482be)) (segment (start 173.7125 111.4025) (end 173.7125 113.03) (width 0.25) (layer "B.Cu") (net 21) (tstamp 6f22f327-d561-4867-9db2-2a16551482be))
(segment (start 179.589999 116.4082) (end 179.589999 117.590001) (width 0.25) (layer "B.Cu") (net 21) (tstamp bea5aea2-6785-4676-9a95-c3802b203986)) (segment (start 179.589999 116.574001) (end 179.589999 116.4082) (width 0.25) (layer "B.Cu") (net 21) (tstamp 82b3458b-bb95-40a8-9ea1-bbdbcfb58595))
(segment (start 180.83 84.945) (end 180.975 85.09) (width 0.4) (layer "B.Cu") (net 22) (tstamp 00798427-24aa-41c7-9329-0de9c2e1a5f2)) (segment (start 179.4275 120.396) (end 179.589999 120.233501) (width 0.25) (layer "B.Cu") (net 21) (tstamp c8508011-6dbe-4da6-aecf-ee9ddde48e7a))
(segment (start 180.975 88.265) (end 180.485 88.755) (width 0.4) (layer "B.Cu") (net 22) (tstamp 15916b84-c7c5-4751-949c-3d2bc321ddc0)) (segment (start 177.0325 85.8575) (end 178.562 84.328) (width 0.4) (layer "B.Cu") (net 22) (tstamp 094ed148-9486-465a-a16e-705f002c877d))
(segment (start 177.0325 85.8575) (end 177.945 84.945) (width 0.4) (layer "B.Cu") (net 22) (tstamp 54da14d1-2074-4aae-b325-d9da358788fb)) (segment (start 174.2495 85.8575) (end 173.8395 85.4475) (width 0.4) (layer "B.Cu") (net 22) (tstamp 176205c8-8bde-4330-9fc5-54d8c3259800))
(segment (start 177.945 84.945) (end 179.705 84.945) (width 0.4) (layer "B.Cu") (net 22) (tstamp 9c1450b3-8b58-4fa0-b019-02a61c7dfc35)) (segment (start 178.562 84.328) (end 179.324 84.328) (width 0.4) (layer "B.Cu") (net 22) (tstamp 2351fa52-7095-405d-ad80-94104887cd39))
(segment (start 179.705 84.945) (end 180.83 84.945) (width 0.4) (layer "B.Cu") (net 22) (tstamp a03ded52-2015-4452-839c-c1dd0a57b945)) (segment (start 173.8395 85.4475) (end 173.8395 81) (width 0.4) (layer "B.Cu") (net 22) (tstamp 944db0a2-db2a-4828-b86e-659905520db2))
(segment (start 175.93 85.8575) (end 177.0325 85.8575) (width 0.4) (layer "B.Cu") (net 22) (tstamp bb1df4cd-9e09-415f-baba-9b42c5306117)) (segment (start 175.93 85.8575) (end 177.0325 85.8575) (width 0.4) (layer "B.Cu") (net 22) (tstamp ee6d1f0b-0cb1-4e1d-b918-4b389db4be61))
(segment (start 180.975 85.09) (end 180.975 88.265) (width 0.4) (layer "B.Cu") (net 22) (tstamp db5d4432-9c41-4fd6-9d87-d1b76ea4d796)) (segment (start 175.93 85.8575) (end 174.2495 85.8575) (width 0.4) (layer "B.Cu") (net 22) (tstamp efd0de46-58e3-4b45-989e-484472b30c7d))
(segment (start 180.485 88.755) (end 179.705 88.755) (width 0.4) (layer "B.Cu") (net 22) (tstamp f39369b2-2cab-4342-9c45-c052d47cfae8))
(segment (start 180.59 113.4618) (end 180.59 111.1525) (width 0.25) (layer "B.Cu") (net 23) (tstamp 40bedfb1-0ff0-4c93-b087-decc56505096)) (segment (start 180.59 113.4618) (end 180.59 111.1525) (width 0.25) (layer "B.Cu") (net 23) (tstamp 40bedfb1-0ff0-4c93-b087-decc56505096))
(segment (start 180.59 111.1525) (end 180.975 110.7675) (width 0.25) (layer "B.Cu") (net 23) (tstamp 9c72da3c-ba54-4f7f-bc26-9d4405211753)) (segment (start 180.59 111.1525) (end 180.975 110.7675) (width 0.25) (layer "B.Cu") (net 23) (tstamp 9c72da3c-ba54-4f7f-bc26-9d4405211753))
(segment (start 179.589999 112.914999) (end 178.435 111.76) (width 0.25) (layer "B.Cu") (net 24) (tstamp 2538c388-6c2b-4bb5-b2cf-5339a2f54c88)) (segment (start 179.589999 112.914999) (end 178.435 111.76) (width 0.25) (layer "B.Cu") (net 24) (tstamp 2538c388-6c2b-4bb5-b2cf-5339a2f54c88))
@ -4829,9 +4811,11 @@
(segment (start 135.255 110.1325) (end 132.6425 110.1325) (width 0.4) (layer "B.Cu") (net 70) (tstamp 78c7ee23-fb63-411b-a65e-ce91cbc9b985)) (segment (start 135.255 110.1325) (end 132.6425 110.1325) (width 0.4) (layer "B.Cu") (net 70) (tstamp 78c7ee23-fb63-411b-a65e-ce91cbc9b985))
(segment (start 132.3575 112.395) (end 132.3575 110.4175) (width 0.4) (layer "B.Cu") (net 70) (tstamp a3e86fac-f607-42ba-aba9-4980bc7c474a)) (segment (start 132.3575 112.395) (end 132.3575 110.4175) (width 0.4) (layer "B.Cu") (net 70) (tstamp a3e86fac-f607-42ba-aba9-4980bc7c474a))
(segment (start 132.3575 110.4175) (end 132.605 110.17) (width 0.4) (layer "B.Cu") (net 70) (tstamp ed74e1c9-30ed-47d8-a746-cd79cbbc86c9)) (segment (start 132.3575 110.4175) (end 132.605 110.17) (width 0.4) (layer "B.Cu") (net 70) (tstamp ed74e1c9-30ed-47d8-a746-cd79cbbc86c9))
(segment (start 180.975 124.46) (end 176.53 124.46) (width 0.25) (layer "F.Cu") (net 71) (tstamp 072ef33f-db87-489a-8246-42331ccbceb8)) (segment (start 176.53 124.46) (end 176.53 121.158) (width 0.25) (layer "F.Cu") (net 71) (tstamp 086035ce-c983-4e82-b38c-5c1aacf50204))
(segment (start 182.88 122.555) (end 180.975 124.46) (width 0.25) (layer "F.Cu") (net 71) (tstamp 20389248-f981-49f9-b4a5-c65f05577bf8)) (segment (start 182.372 120.904) (end 182.88 120.396) (width 0.25) (layer "F.Cu") (net 71) (tstamp 20ddc3d5-57c9-443a-bfd2-72d163a78612))
(segment (start 182.88 116.205) (end 182.88 122.555) (width 0.25) (layer "F.Cu") (net 71) (tstamp d88b0fac-44c6-447c-a631-b188df84dd49)) (segment (start 182.88 120.396) (end 182.88 116.205) (width 0.25) (layer "F.Cu") (net 71) (tstamp 5bce5e35-2839-4647-924c-b1c3345691fa))
(segment (start 176.53 121.158) (end 176.784 120.904) (width 0.25) (layer "F.Cu") (net 71) (tstamp 6c42c123-237c-4c58-acbb-41a4e9628dd0))
(segment (start 176.784 120.904) (end 182.372 120.904) (width 0.25) (layer "F.Cu") (net 71) (tstamp e1a77299-fec6-4bf6-b7dc-c75e9a77a77d))
(via (at 182.88 116.205) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 71) (tstamp 289f26cc-2650-4797-b959-3d3b531f6cc7)) (via (at 182.88 116.205) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 71) (tstamp 289f26cc-2650-4797-b959-3d3b531f6cc7))
(via (at 176.53 124.46) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 71) (tstamp f45edb0b-cbfb-4bed-9d02-985a20212326)) (via (at 176.53 124.46) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 71) (tstamp f45edb0b-cbfb-4bed-9d02-985a20212326))
(segment (start 153.67 128.27) (end 153.67 124.46) (width 0.25) (layer "B.Cu") (net 71) (tstamp 0066099f-f4ec-4df6-b5ed-6dee2f527c39)) (segment (start 153.67 128.27) (end 153.67 124.46) (width 0.25) (layer "B.Cu") (net 71) (tstamp 0066099f-f4ec-4df6-b5ed-6dee2f527c39))
@ -4877,28 +4861,28 @@
(segment (start 120.65 99.695) (end 120.015 99.06) (width 0.25) (layer "B.Cu") (net 73) (tstamp bbe94fed-4e1a-40d9-9a84-46bcb6d84294)) (segment (start 120.65 99.695) (end 120.015 99.06) (width 0.25) (layer "B.Cu") (net 73) (tstamp bbe94fed-4e1a-40d9-9a84-46bcb6d84294))
(segment (start 119.2475 100.625) (end 120.7125 100.625) (width 0.3) (layer "B.Cu") (net 73) (tstamp c0860fe4-2942-431c-8abc-fdf0c4e106a9)) (segment (start 119.2475 100.625) (end 120.7125 100.625) (width 0.3) (layer "B.Cu") (net 73) (tstamp c0860fe4-2942-431c-8abc-fdf0c4e106a9))
(segment (start 120.7125 100.625) (end 121.6425 99.695) (width 0.3) (layer "B.Cu") (net 73) (tstamp c3313216-4277-4662-b39d-3b79b2547ded)) (segment (start 120.7125 100.625) (end 121.6425 99.695) (width 0.3) (layer "B.Cu") (net 73) (tstamp c3313216-4277-4662-b39d-3b79b2547ded))
(segment (start 169.545 118.745) (end 172.085 118.745) (width 0.25) (layer "F.Cu") (net 74) (tstamp 245487bb-ff24-4b43-8d41-23f483f78455)) (segment (start 178.816 118.872) (end 181.61 118.872) (width 0.25) (layer "F.Cu") (net 74) (tstamp 1cfb3127-bf39-43a8-b980-9748b3a4fa5c))
(segment (start 169.545 118.745) (end 171.704 118.745) (width 0.25) (layer "F.Cu") (net 74) (tstamp 2885253b-7521-454b-8a40-f881eec3c0c3))
(segment (start 152.2905 120.015) (end 151.0205 118.745) (width 0.25) (layer "F.Cu") (net 74) (tstamp 4de28b29-d7db-4bff-ae67-44787e4e81b1)) (segment (start 152.2905 120.015) (end 151.0205 118.745) (width 0.25) (layer "F.Cu") (net 74) (tstamp 4de28b29-d7db-4bff-ae67-44787e4e81b1))
(segment (start 179.07 119.38) (end 181.61 119.38) (width 0.25) (layer "F.Cu") (net 74) (tstamp 70ba55e8-8fda-4057-92ae-a603d0a4d71b)) (segment (start 181.61 116.205) (end 182.88 114.935) (width 0.25) (layer "F.Cu") (net 74) (tstamp 5911900a-3ccd-42b8-9134-bddf77c0b6d7))
(segment (start 181.61 118.872) (end 181.61 116.205) (width 0.25) (layer "F.Cu") (net 74) (tstamp 80755d2b-87d8-4f45-a33b-a365cb750de8))
(segment (start 156.21 120.015) (end 152.2905 120.015) (width 0.25) (layer "F.Cu") (net 74) (tstamp 974171af-2789-44e6-b405-9a8a6229a559)) (segment (start 156.21 120.015) (end 152.2905 120.015) (width 0.25) (layer "F.Cu") (net 74) (tstamp 974171af-2789-44e6-b405-9a8a6229a559))
(segment (start 181.61 116.205) (end 181.61 119.38) (width 0.25) (layer "F.Cu") (net 74) (tstamp cdb5278e-28a5-43d3-8389-c0e69024b661)) (via (at 171.704 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 51311af9-5642-4c2d-9669-320825b614c9))
(segment (start 178.435 120.015) (end 179.07 119.38) (width 0.25) (layer "F.Cu") (net 74) (tstamp d544a6c3-ef2e-4085-83ad-e78b313a15e1))
(segment (start 182.88 114.935) (end 181.61 116.205) (width 0.25) (layer "F.Cu") (net 74) (tstamp ef9c1b1e-a30b-4405-a2f2-9e2ca4cc821b))
(via (at 172.085 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 51311af9-5642-4c2d-9669-320825b614c9))
(via (at 156.21 120.015) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 59f90838-1580-4671-af81-ff28409c86e3)) (via (at 156.21 120.015) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 59f90838-1580-4671-af81-ff28409c86e3))
(via (at 151.0205 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 8c831053-e933-42d6-9798-132fa61951a8)) (via (at 151.0205 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 8c831053-e933-42d6-9798-132fa61951a8))
(via (at 169.545 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 9ed3461a-759d-4129-b2e9-d4e8c76d6d94)) (via (at 169.545 118.745) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp 9ed3461a-759d-4129-b2e9-d4e8c76d6d94))
(via (at 182.88 114.935) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp ac11c7cc-ce7b-4be4-91e1-1c528bd518a7)) (via (at 182.88 114.935) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp ac11c7cc-ce7b-4be4-91e1-1c528bd518a7))
(via (at 178.435 120.015) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp afaca1ac-e887-41fc-a6fc-89e1e77fca53)) (via (at 178.816 118.872) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 74) (tstamp afaca1ac-e887-41fc-a6fc-89e1e77fca53))
(segment (start 175.895 118.745) (end 177.165 120.015) (width 0.25) (layer "B.Cu") (net 74) (tstamp 1dc52aa6-47e9-49d6-a53b-33605a33dd88))
(segment (start 177.165 120.015) (end 178.308 118.872) (width 0.25) (layer "B.Cu") (net 74) (tstamp 234b1742-7736-4ebd-8443-c9a35d232ac2))
(segment (start 182.63 115.185) (end 182.88 114.935) (width 0.25) (layer "B.Cu") (net 74) (tstamp 4a784936-066c-4713-8879-230906a2389a)) (segment (start 182.63 115.185) (end 182.88 114.935) (width 0.25) (layer "B.Cu") (net 74) (tstamp 4a784936-066c-4713-8879-230906a2389a))
(segment (start 171.704 118.745) (end 175.895 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp 538ef342-886e-4535-ac0c-4d89f7ba0a16))
(segment (start 150.745 118.4695) (end 151.0205 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp 6c04f4a2-c27f-4206-9722-171637bb5b0e)) (segment (start 150.745 118.4695) (end 151.0205 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp 6c04f4a2-c27f-4206-9722-171637bb5b0e))
(segment (start 169.545 118.745) (end 157.48 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp 75a8cb9b-74da-4f79-889e-3ce90ba8b67b)) (segment (start 169.545 118.745) (end 157.48 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp 75a8cb9b-74da-4f79-889e-3ce90ba8b67b))
(segment (start 157.48 118.745) (end 156.21 120.015) (width 0.25) (layer "B.Cu") (net 74) (tstamp 75ecd1e8-7b3a-47ea-a86c-9c58676c78f7)) (segment (start 157.48 118.745) (end 156.21 120.015) (width 0.25) (layer "B.Cu") (net 74) (tstamp 75ecd1e8-7b3a-47ea-a86c-9c58676c78f7))
(segment (start 178.308 118.872) (end 178.816 118.872) (width 0.25) (layer "B.Cu") (net 74) (tstamp 843eebd2-b43a-4bd1-841e-75d443bd35d3))
(segment (start 150.745 117.1925) (end 150.745 118.4695) (width 0.25) (layer "B.Cu") (net 74) (tstamp a2612e95-91e4-4f01-a183-c4d1e33b914d)) (segment (start 150.745 117.1925) (end 150.745 118.4695) (width 0.25) (layer "B.Cu") (net 74) (tstamp a2612e95-91e4-4f01-a183-c4d1e33b914d))
(segment (start 172.085 118.745) (end 175.895 118.745) (width 0.25) (layer "B.Cu") (net 74) (tstamp ae10449c-c716-42aa-a5ea-4b414793c9e7))
(segment (start 181.8132 115.185) (end 182.63 115.185) (width 0.25) (layer "B.Cu") (net 74) (tstamp cbc0b586-2098-4a9b-87aa-a0953023016e)) (segment (start 181.8132 115.185) (end 182.63 115.185) (width 0.25) (layer "B.Cu") (net 74) (tstamp cbc0b586-2098-4a9b-87aa-a0953023016e))
(segment (start 175.895 118.745) (end 177.165 120.015) (width 0.25) (layer "B.Cu") (net 74) (tstamp dfdd3c11-8925-413b-a0bc-9fc9d25dfe0a))
(segment (start 177.165 120.015) (end 178.435 120.015) (width 0.25) (layer "B.Cu") (net 74) (tstamp e1377927-3b5b-4bcf-ac91-0bdcd71cc214))
(segment (start 162.56 108.585) (end 162.56 99.06) (width 0.25) (layer "B.Cu") (net 75) (tstamp 0961e9ec-af21-4e98-a9ce-b2d4e3f94a97)) (segment (start 162.56 108.585) (end 162.56 99.06) (width 0.25) (layer "B.Cu") (net 75) (tstamp 0961e9ec-af21-4e98-a9ce-b2d4e3f94a97))
(segment (start 161.83 98.33) (end 153.045 98.33) (width 0.25) (layer "B.Cu") (net 75) (tstamp 353c62f4-4e4c-499f-b18f-ff452e53a2f0)) (segment (start 161.83 98.33) (end 153.045 98.33) (width 0.25) (layer "B.Cu") (net 75) (tstamp 353c62f4-4e4c-499f-b18f-ff452e53a2f0))
(segment (start 158.865 112.28) (end 162.56 108.585) (width 0.25) (layer "B.Cu") (net 75) (tstamp be3383c8-2529-4744-ba4b-355f8a8229c1)) (segment (start 158.865 112.28) (end 162.56 108.585) (width 0.25) (layer "B.Cu") (net 75) (tstamp be3383c8-2529-4744-ba4b-355f8a8229c1))
@ -5036,28 +5020,30 @@
(segment (start 159.7375 117.1925) (end 160.02 117.475) (width 0.25) (layer "B.Cu") (net 89) (tstamp 6f48b2a7-4a67-40f9-9d18-164829a6ee41)) (segment (start 159.7375 117.1925) (end 160.02 117.475) (width 0.25) (layer "B.Cu") (net 89) (tstamp 6f48b2a7-4a67-40f9-9d18-164829a6ee41))
(segment (start 167.005 112.395) (end 165.1 112.395) (width 0.25) (layer "B.Cu") (net 89) (tstamp e5716691-bc9b-485f-8f29-47519eeb1112)) (segment (start 167.005 112.395) (end 165.1 112.395) (width 0.25) (layer "B.Cu") (net 89) (tstamp e5716691-bc9b-485f-8f29-47519eeb1112))
(segment (start 170.18 105.41) (end 170.18 111.76) (width 0.25) (layer "B.Cu") (net 89) (tstamp fd2229c3-d159-4eb5-874f-bf87821e93db)) (segment (start 170.18 105.41) (end 170.18 111.76) (width 0.25) (layer "B.Cu") (net 89) (tstamp fd2229c3-d159-4eb5-874f-bf87821e93db))
(segment (start 147.955 130.81) (end 168.91 130.81) (width 0.25) (layer "F.Cu") (net 90) (tstamp 0703d627-05fa-4f27-800b-23b2a05de5aa)) (segment (start 169.545 131.445) (end 168.91 130.81) (width 0.25) (layer "F.Cu") (net 90) (tstamp 0f5e2e06-de38-4b71-8398-7ce180b8accd))
(segment (start 170.18 137.16) (end 185.42 137.16) (width 0.25) (layer "F.Cu") (net 90) (tstamp 39f3ad43-23fe-4284-9572-a40048d945b6)) (segment (start 173.99 91.186) (end 174.752 91.948) (width 0.25) (layer "F.Cu") (net 90) (tstamp 2348ae97-f227-4754-89a6-6c88d512b117))
(segment (start 147.32 130.175) (end 147.955 130.81) (width 0.25) (layer "F.Cu") (net 90) (tstamp 65c421b4-867b-414c-88ed-74176fc0bb61)) (segment (start 170.18 137.16) (end 169.545 136.525) (width 0.25) (layer "F.Cu") (net 90) (tstamp 24f89568-4210-4927-8662-f1ea6ade72cc))
(segment (start 186.69 89.535) (end 185.42 88.265) (width 0.25) (layer "F.Cu") (net 90) (tstamp 7271f5e5-2c09-40fa-bfc4-a9358779817a)) (segment (start 186.69 135.89) (end 185.42 137.16) (width 0.25) (layer "F.Cu") (net 90) (tstamp 79e357e9-fb4c-4439-8912-c138f73339fe))
(segment (start 186.69 135.89) (end 186.69 113.665) (width 0.25) (layer "F.Cu") (net 90) (tstamp 793d7cb2-40ea-4f0f-9ad2-21eaa9d09b0b)) (segment (start 173.99 88.265) (end 173.99 91.186) (width 0.25) (layer "F.Cu") (net 90) (tstamp 86762451-fb80-4b5b-ba9d-1e277e931901))
(segment (start 169.545 136.525) (end 170.18 137.16) (width 0.25) (layer "F.Cu") (net 90) (tstamp 8afe669a-447f-4d54-8ae4-ebd56d3804bf)) (segment (start 185.42 137.16) (end 170.18 137.16) (width 0.25) (layer "F.Cu") (net 90) (tstamp 94e7ab7c-8d71-4cdd-9c13-5e247bafd74c))
(segment (start 185.42 88.265) (end 173.99 88.265) (width 0.25) (layer "F.Cu") (net 90) (tstamp 8d59ce0d-0e5f-444d-a012-9e16d8512c78)) (segment (start 186.69 110.49) (end 186.69 92.71) (width 0.25) (layer "F.Cu") (net 90) (tstamp 972822e4-6858-409a-a45c-fd0a76865cce))
(segment (start 186.69 110.49) (end 186.69 89.535) (width 0.25) (layer "F.Cu") (net 90) (tstamp c6eecd9a-1479-433f-bf35-6f8340a2c7aa)) (segment (start 168.91 130.81) (end 147.955 130.81) (width 0.25) (layer "F.Cu") (net 90) (tstamp aaa11b1e-3b76-47e4-ba74-987d5b87bf1a))
(segment (start 169.545 131.445) (end 169.545 136.525) (width 0.25) (layer "F.Cu") (net 90) (tstamp d220d854-6b47-450f-b5cb-8f7c4410f420)) (segment (start 186.69 113.284) (end 186.69 135.89) (width 0.25) (layer "F.Cu") (net 90) (tstamp c9420070-9d3e-4e2b-a93b-d82591897566))
(segment (start 147.32 121.8305) (end 147.32 130.175) (width 0.25) (layer "F.Cu") (net 90) (tstamp dc309cf5-1fa9-42c8-bc75-657d7827bbb5)) (segment (start 147.955 130.81) (end 147.32 130.175) (width 0.25) (layer "F.Cu") (net 90) (tstamp cc225290-fb47-4d19-90b8-aa331ad3a7da))
(segment (start 185.42 137.16) (end 186.69 135.89) (width 0.25) (layer "F.Cu") (net 90) (tstamp fd89ad02-d1aa-4d4c-99eb-9b37ee2ca48f)) (segment (start 185.928 91.948) (end 186.69 92.71) (width 0.25) (layer "F.Cu") (net 90) (tstamp e893f9a3-3ae2-4618-b034-2fb1ff12fb02))
(segment (start 168.91 130.81) (end 169.545 131.445) (width 0.25) (layer "F.Cu") (net 90) (tstamp ff791f99-3134-4b61-84db-ed228463c7dc)) (segment (start 169.545 136.525) (end 169.545 131.445) (width 0.25) (layer "F.Cu") (net 90) (tstamp eb07085e-43a9-4233-9cb5-d20c84637941))
(segment (start 147.32 130.175) (end 147.32 121.8305) (width 0.25) (layer "F.Cu") (net 90) (tstamp f75cc1ca-a1cb-46d1-ac7e-074261842ff0))
(segment (start 174.752 91.948) (end 185.928 91.948) (width 0.25) (layer "F.Cu") (net 90) (tstamp ffd6493d-8dc5-49ec-8712-48138e71442f))
(via (at 173.99 88.265) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 398f0e0e-772b-4367-a2ae-31ef846576f4)) (via (at 173.99 88.265) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 398f0e0e-772b-4367-a2ae-31ef846576f4))
(via (at 186.69 110.49) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 85e62aa7-a045-42be-844a-45ac99c3a5ba)) (via (at 186.69 110.49) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 85e62aa7-a045-42be-844a-45ac99c3a5ba))
(via (at 186.69 113.665) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 9335ab5e-2df4-407e-ba02-a081cb205b33)) (via (at 186.69 113.284) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp 9335ab5e-2df4-407e-ba02-a081cb205b33))
(via (at 147.32 121.8305) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp dab72854-c90a-4b72-9600-6db1b4283eb7)) (via (at 147.32 121.8305) (size 0.8) (drill 0.3) (layers "F.Cu" "B.Cu") (net 90) (tstamp dab72854-c90a-4b72-9600-6db1b4283eb7))
(segment (start 186.69 113.665) (end 186.69 110.49) (width 0.25) (layer "B.Cu") (net 90) (tstamp 309139cc-9507-46e9-9907-7c5c8616b531))
(segment (start 147.512007 121.8305) (end 147.32 121.8305) (width 0.25) (layer "B.Cu") (net 90) (tstamp 5ec80bfb-18df-452a-8703-43353cca417b)) (segment (start 147.512007 121.8305) (end 147.32 121.8305) (width 0.25) (layer "B.Cu") (net 90) (tstamp 5ec80bfb-18df-452a-8703-43353cca417b))
(segment (start 149.245 117.1925) (end 149.245 120.097507) (width 0.25) (layer "B.Cu") (net 90) (tstamp 6a7aadec-91c0-487c-9203-b88bae8f4be5)) (segment (start 149.245 117.1925) (end 149.245 120.097507) (width 0.25) (layer "B.Cu") (net 90) (tstamp 6a7aadec-91c0-487c-9203-b88bae8f4be5))
(segment (start 175.7975 88.265) (end 175.93 88.3975) (width 0.25) (layer "B.Cu") (net 90) (tstamp 72b47705-060b-4ddb-af86-17ceb73409c9)) (segment (start 175.7975 88.265) (end 175.93 88.3975) (width 0.25) (layer "B.Cu") (net 90) (tstamp 72b47705-060b-4ddb-af86-17ceb73409c9))
(segment (start 173.99 88.265) (end 175.7975 88.265) (width 0.25) (layer "B.Cu") (net 90) (tstamp 88acb055-aa09-4d3a-95e9-8bd15e364d90)) (segment (start 173.99 88.265) (end 175.7975 88.265) (width 0.25) (layer "B.Cu") (net 90) (tstamp 88acb055-aa09-4d3a-95e9-8bd15e364d90))
(segment (start 149.245 120.097507) (end 147.512007 121.8305) (width 0.25) (layer "B.Cu") (net 90) (tstamp 9a762953-fdeb-4039-a0bb-b75a63810ada)) (segment (start 149.245 120.097507) (end 147.512007 121.8305) (width 0.25) (layer "B.Cu") (net 90) (tstamp 9a762953-fdeb-4039-a0bb-b75a63810ada))
(segment (start 186.69 113.284) (end 186.69 110.49) (width 0.25) (layer "B.Cu") (net 90) (tstamp ddb4abea-0e97-4813-9861-df4c51cbb9d8))
(segment (start 169.545 92.075) (end 170.18 92.71) (width 0.4) (layer "F.Cu") (net 92) (tstamp 04343739-ea14-448b-addc-91e47542334c)) (segment (start 169.545 92.075) (end 170.18 92.71) (width 0.4) (layer "F.Cu") (net 92) (tstamp 04343739-ea14-448b-addc-91e47542334c))
(segment (start 154.305 95.25) (end 154.94 95.885) (width 0.4) (layer "F.Cu") (net 92) (tstamp 108b4e10-da35-490e-b655-19b1a97445a9)) (segment (start 154.305 95.25) (end 154.94 95.885) (width 0.4) (layer "F.Cu") (net 92) (tstamp 108b4e10-da35-490e-b655-19b1a97445a9))
(segment (start 153.67 93.345) (end 154.305 93.98) (width 0.4) (layer "F.Cu") (net 92) (tstamp 21d75aed-cf26-49b3-9de1-f8f2aa5441af)) (segment (start 153.67 93.345) (end 154.305 93.98) (width 0.4) (layer "F.Cu") (net 92) (tstamp 21d75aed-cf26-49b3-9de1-f8f2aa5441af))

View file

@ -1,6 +1,6 @@
{ {
"board": { "board": {
"active_layer": 0, "active_layer": 44,
"active_layer_preset": "", "active_layer_preset": "",
"auto_track_width": true, "auto_track_width": true,
"hidden_nets": [], "hidden_nets": [],
@ -62,7 +62,7 @@
35, 35,
36 36
], ],
"visible_layers": "ffcfdff_ffffffff", "visible_layers": "ffcffff_ffffffff",
"zone_display_mode": 0 "zone_display_mode": 0
}, },
"meta": { "meta": {

View file

@ -472,7 +472,7 @@
(reference "#PWR0109") (unit 1) (value "+2V5") (footprint "") (reference "#PWR0109") (unit 1) (value "+2V5") (footprint "")
) )
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/053dd8a9-6683-412e-b95b-646ea38b2cad" (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/053dd8a9-6683-412e-b95b-646ea38b2cad"
(reference "BT1") (unit 1) (value "Li-ION") (footprint "Battery:BatteryHolder_Keystone_2460_1xAA") (reference "BT1") (unit 1) (value "Li-ION") (footprint "INSA:Battery-14500")
) )
(path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/bd71a09f-c787-4676-9eaf-0b8a418617b8" (path "/3615d78e-1dd3-4b20-9017-3539b8f88e06/bd71a09f-c787-4676-9eaf-0b8a418617b8"
(reference "C1") (unit 1) (value "10nF") (footprint "Capacitor_SMD:C_0805_2012Metric") (reference "C1") (unit 1) (value "10nF") (footprint "Capacitor_SMD:C_0805_2012Metric")

View file

@ -2287,7 +2287,7 @@
(property "Value" "Li-ION" (id 1) (at 174.371 153.3402 0) (property "Value" "Li-ION" (id 1) (at 174.371 153.3402 0)
(effects (font (size 1.27 1.27)) (justify left)) (effects (font (size 1.27 1.27)) (justify left))
) )
(property "Footprint" "Battery:BatteryHolder_Keystone_2460_1xAA" (id 2) (at 171.45 152.146 90) (property "Footprint" "INSA:Battery-14500" (id 2) (at 171.45 152.146 90)
(effects (font (size 1.27 1.27)) hide) (effects (font (size 1.27 1.27)) hide)
) )
(property "Datasheet" "~" (id 3) (at 171.45 152.146 90) (property "Datasheet" "~" (id 3) (at 171.45 152.146 90)

View file

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
class GlobVar:
port = 5544 # default server port
timeout=1.0 # default waiting time for an answer. May be increased for debugging purpose
address = "localhost" # default server address. Use this with 'nc -l <port>' for testing on your machine
getBatteryLevelPeriod=2 # periodic delay for requesting battery level. If value is 0 or below, not battery check is done
# do not modify value below this line
connectedToPi = False
connectedToDumber = False
dumberStarted = False
batteryLevel = -1
currentMovement="STOP"
last_answer = -1
#message = []
exceptionmsg= ""

View file

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/log_dialog.ui'
#
# Created by: PyQt5 UI code generator 5.14.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(510, 336)
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout.setObjectName("verticalLayout")
self.plainTextEdit = QtWidgets.QPlainTextEdit(Dialog)
self.plainTextEdit.setReadOnly(True)
self.plainTextEdit.setPlainText("")
self.plainTextEdit.setObjectName("plainTextEdit")
self.verticalLayout.addWidget(self.plainTextEdit)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.pushButton_clearLog = QtWidgets.QPushButton(Dialog)
self.pushButton_clearLog.setObjectName("pushButton_clearLog")
self.horizontalLayout.addWidget(self.pushButton_clearLog)
self.pushButton_closeLog = QtWidgets.QPushButton(Dialog)
self.pushButton_closeLog.setObjectName("pushButton_closeLog")
self.horizontalLayout.addWidget(self.pushButton_closeLog)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Messages Log"))
self.pushButton_clearLog.setText(_translate("Dialog", "Clear log"))
self.pushButton_closeLog.setText(_translate("Dialog", "Close"))

View file

@ -0,0 +1,221 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/main_window.ui'
#
# Created by: PyQt5 UI code generator 5.14.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(928, 629)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.checkBox_enableCamera = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_enableCamera.setObjectName("checkBox_enableCamera")
self.verticalLayout_4.addWidget(self.checkBox_enableCamera)
self.graphicsView_Image = QtWidgets.QGraphicsView(self.centralwidget)
self.graphicsView_Image.setObjectName("graphicsView_Image")
self.verticalLayout_4.addWidget(self.graphicsView_Image)
self.pushButton_confirmArena = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_confirmArena.setObjectName("pushButton_confirmArena")
self.verticalLayout_4.addWidget(self.pushButton_confirmArena)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.checkBox_enableFPS = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_enableFPS.setObjectName("checkBox_enableFPS")
self.horizontalLayout_3.addWidget(self.checkBox_enableFPS)
self.checkBox_enablePosition = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_enablePosition.setObjectName("checkBox_enablePosition")
self.horizontalLayout_3.addWidget(self.checkBox_enablePosition)
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
self.horizontalLayout_6.addLayout(self.verticalLayout_4)
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.groupBox_connection = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_connection.setAlignment(QtCore.Qt.AlignCenter)
self.groupBox_connection.setFlat(False)
self.groupBox_connection.setCheckable(False)
self.groupBox_connection.setObjectName("groupBox_connection")
self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox_connection)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.groupBox_connection)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label)
self.lineEdit_address = QtWidgets.QLineEdit(self.groupBox_connection)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit_address.sizePolicy().hasHeightForWidth())
self.lineEdit_address.setSizePolicy(sizePolicy)
self.lineEdit_address.setMaximumSize(QtCore.QSize(300, 16777215))
self.lineEdit_address.setObjectName("lineEdit_address")
self.horizontalLayout.addWidget(self.lineEdit_address)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtWidgets.QLabel(self.groupBox_connection)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)
self.lineEdit_port = QtWidgets.QLineEdit(self.groupBox_connection)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit_port.sizePolicy().hasHeightForWidth())
self.lineEdit_port.setSizePolicy(sizePolicy)
self.lineEdit_port.setMaximumSize(QtCore.QSize(300, 16777215))
self.lineEdit_port.setObjectName("lineEdit_port")
self.horizontalLayout_2.addWidget(self.lineEdit_port)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.label_3 = QtWidgets.QLabel(self.groupBox_connection)
self.label_3.setObjectName("label_3")
self.horizontalLayout_4.addWidget(self.label_3)
self.label_connectionStatus = QtWidgets.QLabel(self.groupBox_connection)
self.label_connectionStatus.setObjectName("label_connectionStatus")
self.horizontalLayout_4.addWidget(self.label_connectionStatus)
self.verticalLayout.addLayout(self.horizontalLayout_4)
self.line = QtWidgets.QFrame(self.groupBox_connection)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.verticalLayout.addWidget(self.line)
self.verticalLayout_6.addWidget(self.groupBox_connection)
self.groupBox_activation = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_activation.setAlignment(QtCore.Qt.AlignCenter)
self.groupBox_activation.setObjectName("groupBox_activation")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox_activation)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.checkBox_watchdog = QtWidgets.QCheckBox(self.groupBox_activation)
self.checkBox_watchdog.setObjectName("checkBox_watchdog")
self.verticalLayout_2.addWidget(self.checkBox_watchdog)
self.pushButton_start = QtWidgets.QPushButton(self.groupBox_activation)
self.pushButton_start.setObjectName("pushButton_start")
self.verticalLayout_2.addWidget(self.pushButton_start)
self.line_2 = QtWidgets.QFrame(self.groupBox_activation)
self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_2.setObjectName("line_2")
self.verticalLayout_2.addWidget(self.line_2)
self.verticalLayout_6.addWidget(self.groupBox_activation)
self.groupBox_mouvments = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_mouvments.setAlignment(QtCore.Qt.AlignCenter)
self.groupBox_mouvments.setObjectName("groupBox_mouvments")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.groupBox_mouvments)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.pushButton_up = QtWidgets.QPushButton(self.groupBox_mouvments)
self.pushButton_up.setObjectName("pushButton_up")
self.gridLayout.addWidget(self.pushButton_up, 0, 1, 1, 1)
self.pushButton_left = QtWidgets.QPushButton(self.groupBox_mouvments)
self.pushButton_left.setObjectName("pushButton_left")
self.gridLayout.addWidget(self.pushButton_left, 1, 0, 1, 1)
self.pushButton_stop = QtWidgets.QPushButton(self.groupBox_mouvments)
self.pushButton_stop.setObjectName("pushButton_stop")
self.gridLayout.addWidget(self.pushButton_stop, 1, 1, 1, 1)
self.pushButton_right = QtWidgets.QPushButton(self.groupBox_mouvments)
self.pushButton_right.setObjectName("pushButton_right")
self.gridLayout.addWidget(self.pushButton_right, 1, 2, 1, 1)
self.pushButton_down = QtWidgets.QPushButton(self.groupBox_mouvments)
self.pushButton_down.setObjectName("pushButton_down")
self.gridLayout.addWidget(self.pushButton_down, 2, 1, 1, 1)
self.verticalLayout_3.addLayout(self.gridLayout)
self.line_3 = QtWidgets.QFrame(self.groupBox_mouvments)
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line_3.setObjectName("line_3")
self.verticalLayout_3.addWidget(self.line_3)
self.verticalLayout_6.addWidget(self.groupBox_mouvments)
self.groupBox_AnswerandBattery = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_AnswerandBattery.setObjectName("groupBox_AnswerandBattery")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_AnswerandBattery)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.checkBox_getBattery = QtWidgets.QCheckBox(self.groupBox_AnswerandBattery)
self.checkBox_getBattery.setObjectName("checkBox_getBattery")
self.verticalLayout_5.addWidget(self.checkBox_getBattery)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.label_4 = QtWidgets.QLabel(self.groupBox_AnswerandBattery)
self.label_4.setObjectName("label_4")
self.horizontalLayout_5.addWidget(self.label_4)
self.label_lastAnswer = QtWidgets.QLabel(self.groupBox_AnswerandBattery)
self.label_lastAnswer.setObjectName("label_lastAnswer")
self.horizontalLayout_5.addWidget(self.label_lastAnswer)
self.verticalLayout_5.addLayout(self.horizontalLayout_5)
self.verticalLayout_6.addWidget(self.groupBox_AnswerandBattery)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem)
self.horizontalLayout_6.addLayout(self.verticalLayout_6)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 928, 22))
self.menubar.setObjectName("menubar")
self.menu_Quitter = QtWidgets.QMenu(self.menubar)
self.menu_Quitter.setObjectName("menu_Quitter")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.action_Quitter = QtWidgets.QAction(MainWindow)
self.action_Quitter.setObjectName("action_Quitter")
self.action_OpenMessageLog = QtWidgets.QAction(MainWindow)
self.action_OpenMessageLog.setObjectName("action_OpenMessageLog")
self.menu_Quitter.addAction(self.action_OpenMessageLog)
self.menu_Quitter.addSeparator()
self.menu_Quitter.addAction(self.action_Quitter)
self.menubar.addAction(self.menu_Quitter.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Robot Monitor"))
self.checkBox_enableCamera.setText(_translate("MainWindow", "Enable Ca&mera"))
self.pushButton_confirmArena.setText(_translate("MainWindow", "Co&nfirme arena border..."))
self.checkBox_enableFPS.setText(_translate("MainWindow", "Enable &FPS"))
self.checkBox_enablePosition.setText(_translate("MainWindow", "Enable Pos&ition"))
self.groupBox_connection.setTitle(_translate("MainWindow", "Connection"))
self.label.setText(_translate("MainWindow", "Address:"))
self.label_2.setText(_translate("MainWindow", "Port:"))
self.label_3.setText(_translate("MainWindow", "Status:"))
self.label_connectionStatus.setText(_translate("MainWindow", "Not connected"))
self.groupBox_activation.setTitle(_translate("MainWindow", "Robot Activation"))
self.checkBox_watchdog.setText(_translate("MainWindow", "Start with &watchdog"))
self.pushButton_start.setText(_translate("MainWindow", "Start r&obot"))
self.groupBox_mouvments.setTitle(_translate("MainWindow", "Mouvments"))
self.pushButton_up.setText(_translate("MainWindow", "&Up"))
self.pushButton_left.setText(_translate("MainWindow", "&Left"))
self.pushButton_stop.setText(_translate("MainWindow", "&Stop"))
self.pushButton_right.setText(_translate("MainWindow", "&Right"))
self.pushButton_down.setText(_translate("MainWindow", "&Down"))
self.groupBox_AnswerandBattery.setTitle(_translate("MainWindow", "Others"))
self.checkBox_getBattery.setText(_translate("MainWindow", "Get &Battery"))
self.label_4.setText(_translate("MainWindow", "Last answer:"))
self.label_lastAnswer.setText(_translate("MainWindow", "None"))
self.menu_Quitter.setTitle(_translate("MainWindow", "M&enu"))
self.action_Quitter.setText(_translate("MainWindow", "&Quitter"))
self.action_OpenMessageLog.setText(_translate("MainWindow", "O&pen message log..."))

View file

@ -0,0 +1,296 @@
#!/usr/bin/env python3
from email.message import Message
import os
import time
import sys
from PyQt5 import (QtCore, QtWidgets)
from main_window import Ui_MainWindow
from log_dialog import Ui_Dialog
from network import *
from globvar import GlobVar
class Window(QtWidgets.QMainWindow, Ui_MainWindow):
_msg_dialog= None
_batteryTimer=None
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.DisableUIWidgets("Network")
self.lineEdit_address.setText(GlobVar.address)
self.lineEdit_port.setText(str(GlobVar.port))
self._msg_dialog=QtWidgets.QDialog()
self._msg_dialog.ui= Ui_Dialog()
self._msg_dialog.ui.setupUi(self._msg_dialog)
self.networkThread = Network()
self.connectSignalSlots()
# Start network thread and wait for event indicating monitor is connected to a target
self.networkThread.start()
# Create battery timer
self._batteryTimer = QtCore.QTimer()
self._batteryTimer.timeout.connect(self.OnBatteryTimeout)
def connectSignalSlots(self):
# Buttons
self.pushButton_start.pressed.connect(self.OnButtonPress_Start)
self.pushButton_confirmArena.pressed.connect(self.OnButtonPress_ConfirmArena)
self.pushButton_up.pressed.connect(self.OnButtonPress_Up)
self.pushButton_down.pressed.connect(self.OnButtonPress_Down)
self.pushButton_stop.pressed.connect(self.OnButtonPress_Stop)
self.pushButton_left.pressed.connect(self.OnButtonPress_Left)
self.pushButton_right.pressed.connect(self.OnButtonPress_Right)
# Checkbox
self.checkBox_enableCamera.stateChanged.connect(self.OnCheckBoxChanged_EnableCamera)
self.checkBox_enableFPS.stateChanged.connect(self.OnCheckBoxChanged_EnableFPS)
self.checkBox_enablePosition.stateChanged.connect(self.OnCheckBoxChanged_EnablePosition)
self.checkBox_getBattery.stateChanged.connect(self.OnCheckBoxChanged_GetBattery)
# LineEdit
self.lineEdit_address.textChanged.connect(self.OnLineEditChange_Address)
self.lineEdit_port.textChanged.connect(self.OnLineEditChange_Port)
# Menu
self.action_OpenMessageLog.triggered.connect(self.OnMenu_OpenMessageLog)
self.action_Quitter.triggered.connect(self.OnMenu_Quitter)
# Message Dialog
self._msg_dialog.ui.pushButton_clearLog.pressed.connect(self.OnButtonPress_ClearLog)
self._msg_dialog.ui.pushButton_closeLog.pressed.connect(self.OnButtonPress_CloseLog)
# Network signals
self.networkThread.receptionEvent.connect(self.OnReceptionEvent)
self.networkThread.connectionEvent.connect(self.OnConnectionEvent)
self.networkThread.logEvent.connect(self.OnLogEvent)
self.networkThread.answerEvent.connect(self.OnAnswerEvent)
def EnableUIWidgets(self, area):
if area == "Network":
self.groupBox_activation.setDisabled(False)
self.graphicsView_Image.setDisabled(False)
self.pushButton_confirmArena.setDisabled(False)
self.checkBox_enableCamera.setDisabled(False)
self.checkBox_enableFPS.setDisabled(False)
self.checkBox_enablePosition.setDisabled(False)
else:
self.groupBox_mouvments.setDisabled(False)
self.groupBox_AnswerandBattery.setDisabled(False)
def DisableUIWidgets(self, area):
if area == "Network":
self.groupBox_activation.setDisabled(True)
self.graphicsView_Image.setDisabled(True)
self.pushButton_confirmArena.setDisabled(True)
self.checkBox_enableCamera.setDisabled(True)
self.checkBox_enableFPS.setDisabled(True)
self.checkBox_enablePosition.setDisabled(True)
self.groupBox_AnswerandBattery.setDisabled(True)
self.groupBox_mouvments.setDisabled(True)
else:
self.groupBox_mouvments.setDisabled(True)
self.groupBox_AnswerandBattery.setDisabled(True)
@QtCore.pyqtSlot(str)
def OnLineEditChange_Address(self, text):
if self.networkThread.checkAddressIsValid(text):
GlobVar.address = text
@QtCore.pyqtSlot(str)
def OnLineEditChange_Port(self, text):
GlobVar.port = int(text)
@QtCore.pyqtSlot()
def OnButtonPress_Start (self):
if self.pushButton_start.text() == "Start r&obot":
if self.networkThread.robotOpenCom() == NetworkAnswers.ACK:
# com opened successfully, start robot
if self.checkBox_watchdog.isChecked():
# start with watchdog
if self.networkThread.robotStartWithWatchdog() == NetworkAnswers.ACK:
self.pushButton_start.setText("Reset r&obot")
self.EnableUIWidgets("Robot")
else:
# start without watchdog
if self.networkThread.robotStartWithoutWatchdog() == NetworkAnswers.ACK:
self.pushButton_start.setText("Reset r&obot")
self.EnableUIWidgets("Robot")
else:
if self.networkThread.robotCloseCom() != NetworkAnswers.ACK:
msg= QtWidgets.QMessageBox
msg.warning(self,'Invalid answer', 'Server answer was not acknowledged. Maybe robot is still running', msg.Ok)
self.pushButton_start.setText("Start r&obot")
self.DisableUIWidgets("Robot")
@QtCore.pyqtSlot()
def OnButtonPress_ConfirmArena(self):
msg= QtWidgets.QMessageBox
ret = msg.question(self, '', 'Arena boundaries are correctly detected ?',msg.Yes| msg.No)
if ret == msg.Yes:
print ("Answer is YES")
else:
print ("Answer is NO")
@QtCore.pyqtSlot()
def OnButtonPress_Up(self):
self.networkThread.robotGoForward()
@QtCore.pyqtSlot()
def OnButtonPress_Down(self):
self.networkThread.robotGoBackward()
@QtCore.pyqtSlot()
def OnButtonPress_Stop(self):
self.networkThread.robotStop()
@QtCore.pyqtSlot()
def OnButtonPress_Left(self):
self.networkThread.robotGoLeft()
@QtCore.pyqtSlot()
def OnButtonPress_Right(self):
self.networkThread.robotGoRight()
@QtCore.pyqtSlot(int)
def OnCheckBoxChanged_EnableCamera(self, state):
msg= QtWidgets.QMessageBox
msg.information(self, 'Feature not ready', 'Feature not yet available', msg.Ok)
self.checkBox_enableCamera.setChecked(False)
@QtCore.pyqtSlot(int)
def OnCheckBoxChanged_EnableFPS(self, state):
msg= QtWidgets.QMessageBox
msg.information(self, 'Feature not ready', 'Feature not yet available', msg.Ok)
self.checkBox_enableFPS.setChecked(False)
@QtCore.pyqtSlot(int)
def OnCheckBoxChanged_EnablePosition(self, state):
msg= QtWidgets.QMessageBox
msg.information(self, 'Feature not ready', 'Feature not yet available', msg.Ok)
self.checkBox_enablePosition.setChecked(False)
@QtCore.pyqtSlot(int)
def OnCheckBoxChanged_GetBattery(self, state):
if state !=0:
self._batteryTimer.start(5000)
else:
self._batteryTimer.stop()
@QtCore.pyqtSlot()
def OnMenu_OpenMessageLog(self):
self._msg_dialog.show()
@QtCore.pyqtSlot()
def OnMenu_Quitter(self):
self._msg_dialog.hide()
self.close()
def closeEvent(self, event):
self._msg_dialog.hide()
event.accept()
@QtCore.pyqtSlot()
def OnButtonPress_ClearLog(self):
plainTextEdit=self._msg_dialog.ui.plainTextEdit
plainTextEdit.document().clear()
@QtCore.pyqtSlot()
def OnButtonPress_CloseLog(self):
self._msg_dialog.hide()
# Callback used to decode non answer message from server (mainly battery level and log message)
@QtCore.pyqtSlot(str)
def OnReceptionEvent(self, s) -> None:
if Network.ROBOT_BATTERY_LEVEL in s:
str_split = s.split(':')
try:
batteryLevel = int(str_split[1])
except:
batteryLevel = -1
if batteryLevel == 0:
self.checkBox_getBattery.setText ("Get battery (0 = empty)")
elif batteryLevel == 1:
self.checkBox_getBattery.setText ("Get battery (1 = low)")
elif batteryLevel == 2:
self.checkBox_getBattery.setText ("Get battery (2 = full)")
else:
self.checkBox_getBattery.setText ("Get battery (invalid value)")
# Callback for battery timeout
@QtCore.pyqtSlot()
def OnBatteryTimeout(self) -> None:
# Send a request for battery level. Answer will be done in OnReceptionEvent callback
self.networkThread.robotGetBattery()
# Callback for connection/deconnection event from network manager
@QtCore.pyqtSlot(int)
def OnConnectionEvent(self, event) -> None:
if event == NetworkEvents.EVENT_CONNECTED:
GlobVar.connectedToPi = True
print ("Connected to server")
self.label_connectionStatus.setText("Connected")
self.EnableUIWidgets("Network")
elif event == NetworkEvents.EVENT_CONNECTION_LOST:
GlobVar.connectedToPi = False
print ("Disconnected from server")
self.label_connectionStatus.setText("Not connected")
self.pushButton_start.setText("Start r&obot")
self.DisableUIWidgets("Network")
# Callback for answer event from network manager
@QtCore.pyqtSlot(int)
def OnAnswerEvent(self, ans) -> None:
if ans == NetworkAnswers.ACK:
self.label_lastAnswer.setText("Acknowledged (AACK)")
elif ans == NetworkAnswers.NACK:
self.label_lastAnswer.setText("Not acknowledged (ANAK)")
elif ans == NetworkAnswers.COM_ERROR:
self.label_lastAnswer.setText("Command error (ACER)")
elif ans == NetworkAnswers.TIMEOUT_ERROR:
self.label_lastAnswer.setText("Timeout - no answer")
elif ans == NetworkAnswers.CMD_REJECTED:
self.label_lastAnswer.setText("Command rejected (ACRJ)")
else:
self.label_lastAnswer.setText("Unknown answer")
# Callback for log event from network manager
@QtCore.pyqtSlot(str)
def OnLogEvent(self, txt) -> None:
self._msg_dialog.ui.plainTextEdit.textCursor().insertText(txt)
try:
if len(sys.argv)>=2:
GlobVar.address = sys.argv[1]
else:
print ("No target address specified: using localhost:5544")
print ("Usage: monitor-python.py address [port]")
#exit (-1) # Comment this line for connecting to localhost
if len(sys.argv)>=3:
GlobVar.port = int(sys.argv[2])
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.show()
app.exec_()
except KeyboardInterrupt: # exception when pressing CTRL-C
print ("Bye bye")

View file

@ -0,0 +1,340 @@
# -*- coding: utf-8 -*-
import socket
import time
import sys
from PyQt5 import QtCore
from globvar import GlobVar
import ipaddress
import threading
# Network event from socket.
# Event are 'Connected to server' or 'disconnected from server'
class NetworkEvents():
EVENT_CONNECTED=1
EVENT_CONNECTION_LOST=0
UNKNOWN_EVENT=-1
class NetworkAnswers():
# Decoded answers
ACK = 1
NACK =2
COM_ERROR =3
TIMEOUT_ERROR=4
CMD_REJECTED=5
UNKNOWN=-1
# Network managment class
# Contain a thread for conenction to server and data reception
# Contains functions for sending message to server
# Contains functions for answer decoding
class Network(QtCore.QThread):
i=0
reconnectionDelay =0
waitForAnswer=False
receivedAnswer = ""
receiveFlag = None
receptionEvent = QtCore.pyqtSignal(str)
connectionEvent= QtCore.pyqtSignal(int)
answerEvent= QtCore.pyqtSignal(int)
logEvent = QtCore.pyqtSignal(str)
# List of possible answers from server
ANSWER_ACK = "AACK"
ANSWER_NACK = "ANAK"
ANSWER_COM_ERROR = "ACER"
ANSWER_TIMEOUT = "ATIM"
ANSWER_CMD_REJECTED = "ACRJ"
# List of possible messages from server
MESSAGE = "MSSG"
ROBOT_BATTERY_LEVEL = "RBLV"
ROBOT_CURRENT_STATE = "RCST"
# List of accepted command by server
CAMERA_OPEN = "COPN"
CAMERA_CLOSE = "CCLS"
CAMERA_IMAGE = "CIMG"
CAMERA_ARENA_ASK = "CASA"
CAMERA_ARENA_INFIRM = "CAIN"
CAMERA_ARENA_CONFIRM = "CACO"
CAMERA_POSITION_COMPUTE = "CPCO"
CAMERA_POSITION_STOP = "CPST"
CAMERA_POSITION = "CPOS"
ROBOT_COM_OPEN = "ROPN"
ROBOT_COM_CLOSE = "RCLS"
ROBOT_PING = "RPIN"
ROBOT_RESET = "RRST"
ROBOT_START_WITHOUT_WD = "RSOW"
ROBOT_START_WITH_WD = "RSWW"
ROBOT_RELOAD_WD = "RLDW"
ROBOT_MOVE = "RMOV"
ROBOT_TURN = "RTRN"
ROBOT_GO_FORWARD = "RGFW"
ROBOT_GO_BACKWARD = "RGBW"
ROBOT_GO_LEFT = "RGLF"
ROBOT_GO_RIGHT = "RGRI"
ROBOT_STOP = "RSTP"
ROBOT_POWEROFF = "RPOF"
ROBOT_GET_BATTERY = "RGBT"
ROBOT_GET_STATE = "RGST"
SEPARATOR_CHAR = ':'
def __init__(self):
super(Network, self).__init__()
self.i =0
self.receiveFlag = threading.Event()
def run(self):
print ("Network thread started" )
self.i =0
while True:
self.i = self.i+1
try:
self.__connect()
self.connectionEvent.emit(NetworkEvents.EVENT_CONNECTED)
self.__read()
except (RuntimeError, TimeoutError, socket.gaierror, ConnectionResetError, ConnectionRefusedError) as e:
print ("exception in network thread: " + str(e))
if e.__class__ == RuntimeError or \
e.__class__== ConnectionResetError or \
e.__class__ == ConnectionRefusedError:
self.connectionEvent.emit(NetworkEvents.EVENT_CONNECTION_LOST)
except Exception as e:
print ("unknown exception in network thread: " + str(e))
time.sleep(2.0)
# Private method for connecting to server
def __connect(self) -> None:
#self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
self.sock.connect((GlobVar.address, GlobVar.port))
except ConnectionRefusedError:
raise RuntimeError("Unable to connect to " + GlobVar.address + ":" + str(GlobVar.port))
# In UDP, no way to know if server is running (connect is always successfull).
# So, send a single line feed to ping the server
self.sock.send(str.encode("\n"))
self.waitForAnswer=False
# Private method for receiving data from server.
# Data received are sent to callback __receiveHandler for decoding
def __read(self) -> None:
chunks = []
bytes_recd = 0
last_char=0
while True:
while last_char != 0x0A:
chunk = self.sock.recv(2048)
#print ("Chunk =" + str(chunk))
if chunk == b'':
raise RuntimeError("Connection lost with " + GlobVar.address + ":" + str(GlobVar.port))
chunks.append(chunk)
bytes_recd = bytes_recd + len(chunk)
last_char=chunk[-1]
self.__receiveHandler(b''.join(chunks).decode("utf-8"))
chunks = []
bytes_recd =0
last_char=0
# private callback for reception and decoding of data.
# If no answer is wait, send data to caller callback
def __receiveHandler(self, data: str) -> None:
# traitement a faire lors de la reception de donnée
self.logEvent.emit("< " + data)
if self.waitForAnswer:
self.receivedAnswer = data
self.waitForAnswer=False
self.receiveFlag.set()
else:
# si pas de donnée prevue en reception, alors envoie au callback
self.receptionEvent.emit(data)
def checkAddressIsValid(self, address: str) -> bool:
try:
if address == "localhost":
return True
ip=ipaddress.ip_address(address)
return True
except ValueError as e:
return False
# Private method for sending raw data to server
def __write(self, msg: str) -> None:
totalsent = 0
if msg[-1] != '\n':
msg = msg + '\n'
MSGLEN = len(msg)
msgbytes = bytes(msg,'UTF-8')
self.logEvent.emit ("> " + msg)
while totalsent < MSGLEN:
sent = self.sock.send(msgbytes[totalsent:])
if sent == 0:
GlobVar.connectedToPi=False
raise RuntimeError("Unable to send data to " + GlobVar.address + ":" + str(GlobVar.port))
totalsent = totalsent + sent
# Private method for sending command to server
def __sendCommand(self,cmd, waitans: bool) -> str:
if waitans == True:
self.waitForAnswer = True
else:
self.waitForAnswer = False
self.__write(cmd)
if waitans:
ans = self.ANSWER_TIMEOUT
try:
self.receiveFlag.wait(timeout=GlobVar.timeout) # Max waiting time = GlobVar.timeout
if self.receiveFlag.is_set():
ans=self.receivedAnswer
self.receivedAnswer=""
else:
ans=self.ANSWER_TIMEOUT
self.receiveFlag.clear()
except TimeoutError:
ans=self.ANSWER_TIMEOUT
except Exception as e:
GlobVar.exceptionmsg = str(e)
self.waitForAnswer=False
return ans
else:
return self.ANSWER_ACK
# Private method for decoding answer from server
def __decodeAnswer(self, ans: str) -> int:
if self.ANSWER_ACK in ans:
return NetworkAnswers.ACK
elif self.ANSWER_NACK in ans:
return NetworkAnswers.NACK
elif self.ANSWER_COM_ERROR in ans:
return NetworkAnswers.COM_ERROR
elif self.ANSWER_TIMEOUT in ans:
return NetworkAnswers.TIMEOUT_ERROR
elif self.ANSWER_CMD_REJECTED in ans:
return NetworkAnswers.CMD_REJECTED
else:
return NetworkAnswers.UNKNOWN
# Send OpenCom command to server
def robotOpenCom(self) -> int:
ans = self.__sendCommand(self.ROBOT_COM_OPEN, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send CloseCom command to server
def robotCloseCom(self) -> int:
ans = self.__sendCommand(self.ROBOT_COM_CLOSE, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send StartWithWatchdog command to server
def robotStartWithWatchdog(self) -> int:
ans = self.__sendCommand(self.ROBOT_START_WITH_WD, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send StartWithoutWatchdog command to server
def robotStartWithoutWatchdog(self) -> int:
ans = self.__sendCommand(self.ROBOT_START_WITHOUT_WD, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send Reset command to server
def robotReset(self) -> int:
ans = self.__sendCommand(self.ROBOT_RESET, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send Stop command to server
def robotStop(self) -> int:
ans = self.__sendCommand(self.ROBOT_STOP, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send GoLeft command to server
def robotGoLeft(self) -> int:
ans = self.__sendCommand(self.ROBOT_GO_LEFT, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send GoRight command to server
def robotGoRight(self) -> int:
ans = self.__sendCommand(self.ROBOT_GO_RIGHT, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send GoForward command to server
def robotGoForward(self) -> int:
ans = self.__sendCommand(self.ROBOT_GO_FORWARD, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send GoBackward command to server
def robotGoBackward(self) -> int:
ans = self.__sendCommand(self.ROBOT_GO_BACKWARD, True)
decodedAns = self.__decodeAnswer(ans)
self.answerEvent.emit(decodedAns)
return decodedAns
# Send GetBattery command to server
def robotGetBattery(self) -> None:
ans = self.__sendCommand(self.ROBOT_GET_BATTERY,False)
# Function for decoding battery level
def batterylevelToStr(batlvl: int) -> str:
switcher = {
2: "Full",
1: "Mid",
0: "Empty",
}
return switcher.get(batlvl, "Unknown")
# Function for display human readable answer
def answertoStr(ans: int) -> str:
switcher = {
Network.ACK: "Acknowledged",
Network.NACK: "Not acknowledged",
Network.TIMEOUT_ERROR: "No answer (timeout)",
Network.CMD_REJECTED: "Command rejected",
Network.COM_ERROR: "Communication error (invalid command)"
}
return switcher.get(ans, "Unknown answer")

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>510</width>
<height>336</height>
</rect>
</property>
<property name="windowTitle">
<string>Messages Log</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPlainTextEdit" name="plainTextEdit">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="plainText">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_clearLog">
<property name="text">
<string>Clear log</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_closeLog">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>928</width>
<height>629</height>
</rect>
</property>
<property name="windowTitle">
<string>Robot Monitor</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="checkBox_enableCamera">
<property name="text">
<string>Enable Ca&amp;mera</string>
</property>
</widget>
</item>
<item>
<widget class="QGraphicsView" name="graphicsView_Image"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_confirmArena">
<property name="text">
<string>Co&amp;nfirme arena border...</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QCheckBox" name="checkBox_enableFPS">
<property name="text">
<string>Enable &amp;FPS</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_enablePosition">
<property name="text">
<string>Enable Pos&amp;ition</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QGroupBox" name="groupBox_connection">
<property name="title">
<string>Connection</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="flat">
<bool>false</bool>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Address:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_address">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Port:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_port">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Status:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_connectionStatus">
<property name="text">
<string>Not connected</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_activation">
<property name="title">
<string>Robot Activation</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="checkBox_watchdog">
<property name="text">
<string>Start with &amp;watchdog</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_start">
<property name="text">
<string>Start r&amp;obot</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_mouvments">
<property name="title">
<string>Mouvments</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_up">
<property name="text">
<string>&amp;Up</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pushButton_left">
<property name="text">
<string>&amp;Left</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_stop">
<property name="text">
<string>&amp;Stop</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButton_right">
<property name="text">
<string>&amp;Right</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pushButton_down">
<property name="text">
<string>&amp;Down</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_AnswerandBattery">
<property name="title">
<string>Others</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="checkBox_getBattery">
<property name="text">
<string>Get &amp;Battery</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Last answer:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_lastAnswer">
<property name="text">
<string>None</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>928</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menu_Quitter">
<property name="title">
<string>M&amp;enu</string>
</property>
<addaction name="action_OpenMessageLog"/>
<addaction name="separator"/>
<addaction name="action_Quitter"/>
</widget>
<addaction name="menu_Quitter"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="action_Quitter">
<property name="text">
<string>&amp;Quitter</string>
</property>
</action>
<action name="action_OpenMessageLog">
<property name="text">
<string>O&amp;pen message log...</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>