diff --git a/F0-nolib/CANbus_stepper/CANbus_stepper.tgz b/F0-nolib/CANbus_stepper/CANbus_stepper.tgz new file mode 100644 index 0000000..7273438 Binary files /dev/null and b/F0-nolib/CANbus_stepper/CANbus_stepper.tgz differ diff --git a/F0-nolib/CANbus_stepper/src.tgz b/F0-nolib/CANbus_stepper/src.tgz new file mode 100644 index 0000000..8bce3b5 Binary files /dev/null and b/F0-nolib/CANbus_stepper/src.tgz differ diff --git a/F0-nolib/CANbus_stepper/src/usart.c b/F0-nolib/CANbus_stepper/src/usart.c index f9a1f1e..b014264 100644 --- a/F0-nolib/CANbus_stepper/src/usart.c +++ b/F0-nolib/CANbus_stepper/src/usart.c @@ -244,7 +244,6 @@ void dma1_channel4_5_isr(){ DMA1->IFCR |= DMA_IFCR_CTCIF4; // clear TC flag DMA1_Channel4->CCR &= ~DMA_CCR_EN; txrdy = 1; - RS485_RX(); // switch to Rx } } // USART1 diff --git a/F0-nolib/Socket_fans/Readme.md b/F0-nolib/Socket_fans/Readme.md new file mode 100644 index 0000000..8d597e0 --- /dev/null +++ b/F0-nolib/Socket_fans/Readme.md @@ -0,0 +1,5 @@ +# PWM fan control + +Control of 2 4-pin & 1 2-pin 12V fans according to 4 thermal sensors. +Turn on/off two ~220V channels (normally opened). +Buzzer signal. diff --git a/F0-nolib/Socket_fans/kicad/Readme.md b/F0-nolib/Socket_fans/kicad/Readme.md new file mode 100644 index 0000000..24aec0e --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/Readme.md @@ -0,0 +1,3 @@ +# FAN controller for electronics box + + diff --git a/F0-nolib/Socket_fans/kicad/acs712.lib b/F0-nolib/Socket_fans/kicad/acs712.lib new file mode 100644 index 0000000..825ed8b --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/acs712.lib @@ -0,0 +1,22 @@ +EESchema-LIBRARY Version 2.3 Date: Sun 04 May 2014 09:27:50 PM MSK +#encoding utf-8 +# +# ACS712 +# +DEF ACS712 U 0 40 Y Y 1 F N +F0 "U" 0 300 60 H V C CNN +F1 "ACS712" 0 -350 60 H V C CNN +DRAW +S -450 250 450 -300 0 1 0 N +X IP+ 1 -550 150 300 R 50 50 1 1 I +X IP+ 2 -550 50 300 R 50 50 1 1 I +X IP- 3 -550 -100 300 R 50 50 1 1 I +X IP- 4 -550 -200 300 R 50 50 1 1 I +X GND 5 550 -200 300 L 50 50 1 1 I +X FILTER 6 550 -100 300 L 50 50 1 1 I +X VIOUT 7 550 50 300 L 50 50 1 1 I +X Vcc 8 550 150 300 L 50 50 1 1 I +ENDDRAW +ENDDEF +# +#End Library diff --git a/F0-nolib/Socket_fans/kicad/elements.lib b/F0-nolib/Socket_fans/kicad/elements.lib new file mode 100644 index 0000000..9ada38f --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/elements.lib @@ -0,0 +1,190 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +# +# 74HC4051 +# +DEF 74HC4051 U 0 10 Y Y 1 F N +F0 "U" 0 0 50 H V C CNN +F1 "74HC4051" 0 -150 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + SO16 + TSSOP16 + SSOP16 + DHVQFN16 +$ENDFPLIST +DRAW +S -400 450 400 -450 0 1 0 N +X Y4 1 700 -50 300 L 50 50 1 1 B +X Y6 2 700 -250 300 L 50 50 1 1 B +X Z 3 0 -750 300 U 50 50 1 1 B +X Y7 4 700 -350 300 L 50 50 1 1 B +X Y5 5 700 -150 300 L 50 50 1 1 B +X ~E 6 -700 -350 300 R 50 50 1 1 I I +X VEE 7 -700 0 300 R 50 50 1 1 W +X GND 8 -700 -200 300 R 50 50 1 1 W +X S2 9 -700 150 300 R 50 50 1 1 I +X S1 10 -700 250 300 R 50 50 1 1 I +X S0 11 -700 350 300 R 50 50 1 1 I +X Y3 12 700 50 300 L 50 50 1 1 B +X Y0 13 700 350 300 L 50 50 1 1 B +X Y1 14 700 250 300 L 50 50 1 1 B +X Y2 15 700 150 300 L 50 50 1 1 B +X VCC 16 -700 -100 300 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +# D_Schottky_x2_ACom_AKK +# +DEF D_Schottky_x2_ACom_AKK D 0 30 Y N 1 F N +F0 "D" 50 -100 50 H V C CNN +F1 "D_Schottky_x2_ACom_AKK" 0 100 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +DRAW +P 2 0 1 0 -140 0 150 0 N +P 2 0 1 0 0 0 0 -100 N +P 3 0 1 8 -150 50 -150 -50 -150 -50 N +P 3 0 1 8 150 50 150 -50 150 -50 N +P 4 0 1 8 -150 50 -170 50 -170 40 -170 40 N +P 4 0 1 8 150 -50 170 -50 170 -40 170 -40 N +P 4 0 1 8 150 50 130 50 130 40 130 40 N +P 5 0 1 8 -130 -40 -130 -50 -150 -50 -150 -50 -150 -50 N +P 6 0 1 8 -50 -50 -150 0 -50 50 -50 -50 -50 -50 -50 -50 N +P 6 0 1 8 50 50 150 0 50 -50 50 50 50 50 50 50 N +X A 1 0 -200 100 U 50 50 0 1 P +X K 2 -300 0 150 R 50 50 0 1 P +X K 3 300 0 150 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# LM1117-ADJ +# +DEF LM1117-ADJ U 0 30 Y Y 1 F N +F0 "U" 100 -250 50 H V C CNN +F1 "LM1117-ADJ" 0 250 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +ALIAS LM1117-1.8 LM1117-2.5 LM1117-3.3 LM1117-5.0 +$FPLIST + SOT-223* + TO-263* + TO-252* +$ENDFPLIST +DRAW +S -200 -200 200 200 0 1 10 f +X GND/ADJ 1 0 -300 100 U 50 50 1 1 W +X VO 2 300 0 100 L 50 50 1 1 w +X VI 3 -300 0 100 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +# PESD1CAN +# +DEF PESD1CAN D 0 30 Y N 1 F N +F0 "D" 0 -350 50 H V C CNN +F1 "PESD1CAN" 50 150 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + SOT23 +$ENDFPLIST +DRAW +S -200 100 300 -300 0 1 0 N +P 2 0 1 0 -140 -200 150 -200 N +P 2 0 1 0 -140 0 150 0 N +P 3 0 1 8 -150 -150 -150 -250 -150 -250 N +P 3 0 1 8 -150 50 -150 -50 -150 -50 N +P 3 0 1 8 150 -150 150 -250 150 -250 N +P 3 0 1 8 150 50 150 -50 150 -50 N +P 4 0 1 8 -150 -150 -170 -150 -170 -160 -170 -160 N +P 4 0 1 8 -150 50 -170 50 -170 40 -170 40 N +P 4 0 1 8 150 -250 170 -250 170 -240 170 -240 N +P 4 0 1 8 150 -150 130 -150 130 -160 130 -160 N +P 4 0 1 8 150 -50 170 -50 170 -40 170 -40 N +P 4 0 1 0 150 0 250 0 250 -200 150 -200 N +P 4 0 1 8 150 50 130 50 130 40 130 40 N +P 5 0 1 8 -130 -240 -130 -250 -150 -250 -150 -250 -150 -250 N +P 5 0 1 8 -130 -40 -130 -50 -150 -50 -150 -50 -150 -50 N +P 6 0 1 8 -50 -250 -150 -200 -50 -150 -50 -250 -50 -250 -50 -250 N +P 6 0 1 8 -50 -50 -150 0 -50 50 -50 -50 -50 -50 -50 -50 N +P 6 0 1 8 50 -150 150 -200 50 -250 50 -150 50 -150 50 -150 N +P 6 0 1 8 50 50 150 0 50 -50 50 50 50 50 50 50 N +X K 1 -300 0 150 R 50 50 0 1 P +X K 2 -300 -200 150 R 50 50 0 1 P +X O 3 400 -100 150 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# TPS2051 +# +DEF TPS2051 U 0 40 Y Y 1 F N +F0 "U" 0 -300 60 H V C CNN +F1 "TPS2051" 0 300 60 H V C CNN +F2 "" 0 0 60 H I C CNN +F3 "" 0 0 60 H I C CNN +DRAW +S -250 250 250 -250 0 1 0 N +X GND 1 -450 150 200 R 50 50 1 1 W +X IN 2 -450 50 200 R 50 50 1 1 W +X IN 3 -450 -50 200 R 50 50 1 1 P +X EN 4 -450 -150 200 R 50 50 1 1 I +X ~OC 5 450 -150 200 L 50 50 1 1 O +X OUT 6 450 -50 200 L 50 50 1 1 P +X OUT 7 450 50 200 L 50 50 1 1 P +X OUT 8 450 150 200 L 50 50 1 1 w +ENDDRAW +ENDDEF +# +# USB6B1 +# +DEF USB6B1 D 0 30 Y N 1 F N +F0 "D" 0 -450 50 H V C CNN +F1 "USB6B1" 0 400 50 H V C CNN +F2 "" 200 -100 50 V V C CNN +F3 "" 200 -100 50 V V C CNN +$FPLIST + SO8 +$ENDFPLIST +DRAW +C -150 -300 7 0 1 0 N +C -150 100 7 0 1 0 N +C -150 300 7 0 1 0 N +C 0 -300 7 0 1 0 N +C 0 -100 7 0 1 0 N +C 0 300 7 0 1 0 N +C 200 -300 7 0 1 0 N +C 200 300 7 0 1 0 N +S -300 -100 300 -100 0 1 0 N +S -300 300 300 300 0 1 0 N +S -200 -150 -100 -150 0 1 0 N +S -200 250 -100 250 0 1 0 N +S -150 300 -150 -300 0 1 0 N +S -50 -150 50 -150 0 1 0 N +S -50 250 50 250 0 1 0 N +S 0 300 0 -300 0 1 0 N +S 200 300 200 -300 0 1 0 N +S 300 -300 -300 -300 0 1 0 N +S 300 100 -300 100 0 1 0 N +P 3 0 1 8 150 50 250 50 250 50 N +P 4 0 1 8 150 50 150 30 160 30 160 30 N +P 4 0 1 8 250 50 250 70 240 70 240 70 N +P 5 0 1 0 -250 350 300 350 300 -350 -250 -350 -250 350 N +P 6 0 1 8 -200 -250 -150 -150 -100 -250 -200 -250 -200 -250 -200 -250 N +P 6 0 1 8 -200 150 -150 250 -100 150 -200 150 -200 150 -200 150 N +P 6 0 1 8 -50 -250 0 -150 50 -250 -50 -250 -50 -250 -50 -250 N +P 6 0 1 8 -50 150 0 250 50 150 -50 150 -50 150 -50 150 N +P 6 0 1 8 150 -50 200 50 250 -50 150 -50 150 -50 150 -50 N +X VCC 1 -500 300 200 R 50 50 1 1 P +X I/O1 2 -500 100 200 R 50 50 1 1 P +X I/O2 3 -500 -100 200 R 50 50 1 1 P +X GND 4 -500 -300 200 R 50 50 1 1 P +X GND 5 500 -300 200 L 50 50 1 1 P +X I/O2 6 500 -100 200 L 50 50 1 1 P +X I/O1 7 500 100 200 L 50 50 1 1 P +X VCC 8 500 300 200 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +#End Library diff --git a/F0-nolib/Socket_fans/kicad/fp-info-cache b/F0-nolib/Socket_fans/kicad/fp-info-cache new file mode 100644 index 0000000..380d66f --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/fp-info-cache @@ -0,0 +1,2626 @@ +572890032226253 +Capacitor_THT +CP_Axial_L10.0mm_D4.5mm_P15.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=10*4.5mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 15mm length 10mm diameter 4.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L10.0mm_D6.0mm_P15.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=10*6mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 15mm length 10mm diameter 6mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L11.0mm_D5.0mm_P18.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=18mm, , length*diameter=11*5mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 18mm length 11mm diameter 5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L11.0mm_D6.0mm_P18.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=18mm, , length*diameter=11*6mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 18mm length 11mm diameter 6mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L11.0mm_D8.0mm_P15.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=11*8mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 15mm length 11mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L18.0mm_D6.5mm_P25.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=18*6.5mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 25mm length 18mm diameter 6.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L18.0mm_D8.0mm_P25.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=18*8mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 25mm length 18mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L18.0mm_D10.0mm_P25.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=18*10mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 25mm length 18mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L20.0mm_D10.0mm_P26.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=26mm, , length*diameter=20*10mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 26mm length 20mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L20.0mm_D13.0mm_P26.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=26mm, , length*diameter=20*13mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 26mm length 20mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L21.0mm_D8.0mm_P28.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=28mm, , length*diameter=21*8mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 28mm length 21mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L25.0mm_D10.0mm_P30.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=30mm, , length*diameter=25*10mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 30mm length 25mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L26.5mm_D20.0mm_P33.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=33mm, , length*diameter=26.5*20mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 33mm length 26.5mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L29.0mm_D10.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=29*10mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 29mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L29.0mm_D13.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=29*13mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 29mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L29.0mm_D16.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=29*16mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 29mm diameter 16mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L29.0mm_D20.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=29*20mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 29mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L30.0mm_D10.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=30*10mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 30mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L30.0mm_D12.5mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=30*12.5mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 30mm diameter 12.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L30.0mm_D15.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=30*15mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 30mm diameter 15mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L30.0mm_D18.0mm_P35.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=35mm, , length*diameter=30*18mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 35mm length 30mm diameter 18mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L34.5mm_D20.0mm_P41.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=41mm, , length*diameter=34.5*20mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 41mm length 34.5mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L37.0mm_D13.0mm_P43.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=43mm, , length*diameter=37*13mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 43mm length 37mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L37.0mm_D16.0mm_P43.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=43mm, , length*diameter=37*16mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 43mm length 37mm diameter 16mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L37.0mm_D20.0mm_P43.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=43mm, , length*diameter=37*20mm^2, Electrolytic Capacitor, , http://www.kemet.com/Lists/ProductCatalog/Attachments/424/KEM_AC102.pdf +CP Axial series Axial Horizontal pin pitch 43mm length 37mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L38.0mm_D18.0mm_P44.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=44mm, , length*diameter=38*18mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 44mm length 38mm diameter 18mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L38.0mm_D21.0mm_P44.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=44mm, , length*diameter=38*21mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/28325/021asm.pdf +CP Axial series Axial Horizontal pin pitch 44mm length 38mm diameter 21mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L40.0mm_D16.0mm_P48.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=48mm, , length*diameter=40*16mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 48mm length 40mm diameter 16mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.0mm_D23.0mm_P45.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=45mm, , length*diameter=42*23.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 45mm length 42mm diameter 23.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.0mm_D26.0mm_P45.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=45mm, , length*diameter=42*26mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 45mm length 42mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.0mm_D29.0mm_P45.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=45mm, , length*diameter=42*29.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 45mm length 42mm diameter 29.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.0mm_D32.0mm_P45.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=45mm, , length*diameter=42*32.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 45mm length 42mm diameter 32.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.0mm_D35.0mm_P45.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=45mm, , length*diameter=42*35.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 45mm length 42mm diameter 35.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L42.5mm_D20.0mm_P49.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=49mm, , length*diameter=42.5*20mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 49mm length 42.5mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L46.0mm_D20.0mm_P52.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=52mm, , length*diameter=46*20mm^2, Electrolytic Capacitor +CP Axial series Axial Horizontal pin pitch 52mm length 46mm diameter 20mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L55.0mm_D23.0mm_P60.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=60mm, , length*diameter=55*23.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 60mm length 55mm diameter 23.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L55.0mm_D26.0mm_P60.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=60mm, , length*diameter=55*26mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 60mm length 55mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L55.0mm_D29.0mm_P60.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=60mm, , length*diameter=55*29.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 60mm length 55mm diameter 29.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L55.0mm_D32.0mm_P60.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=60mm, , length*diameter=55*32.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 60mm length 55mm diameter 32.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L55.0mm_D35.0mm_P60.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=60mm, , length*diameter=55*35.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 60mm length 55mm diameter 35.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L67.0mm_D23.0mm_P75.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=75mm, , length*diameter=67*23.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 75mm length 67mm diameter 23.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L67.0mm_D26.0mm_P75.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=75mm, , length*diameter=67*26mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 75mm length 67mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L67.0mm_D29.0mm_P75.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=75mm, , length*diameter=67*29.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 75mm length 67mm diameter 29.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L67.0mm_D32.0mm_P75.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=75mm, , length*diameter=67*32.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 75mm length 67mm diameter 32.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L67.0mm_D35.0mm_P75.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=75mm, , length*diameter=67*35.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 75mm length 67mm diameter 35.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L80.0mm_D23.0mm_P85.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=85mm, , length*diameter=80*23.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 85mm length 80mm diameter 23.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L80.0mm_D26.0mm_P85.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=85mm, , length*diameter=80*26mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 85mm length 80mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L80.0mm_D29.0mm_P85.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=85mm, , length*diameter=80*29.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 85mm length 80mm diameter 29.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L80.0mm_D32.0mm_P85.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=85mm, , length*diameter=80*32.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 85mm length 80mm diameter 32.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L80.0mm_D35.0mm_P85.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=85mm, , length*diameter=80*35.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 85mm length 80mm diameter 35.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L93.0mm_D23.0mm_P100.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=100mm, , length*diameter=93*23.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 100mm length 93mm diameter 23.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L93.0mm_D26.0mm_P100.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=100mm, , length*diameter=93*26mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 100mm length 93mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L93.0mm_D29.0mm_P100.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=100mm, , length*diameter=93*29.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 100mm length 93mm diameter 29.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L93.0mm_D32.0mm_P100.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=100mm, , length*diameter=93*32.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 100mm length 93mm diameter 32.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Axial_L93.0mm_D35.0mm_P100.00mm_Horizontal +CP, Axial series, Axial, Horizontal, pin pitch=100mm, , length*diameter=93*35.0mm^2, Electrolytic Capacitor, , http://www.vishay.com/docs/42037/53d.pdf +CP Axial series Axial Horizontal pin pitch 100mm length 93mm diameter 35.0mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D4.0mm_P1.50mm +CP, Radial series, Radial, pin pitch=1.50mm, , diameter=4mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 1.50mm diameter 4mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D4.0mm_P2.00mm +CP, Radial series, Radial, pin pitch=2.00mm, , diameter=4mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.00mm diameter 4mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D5.0mm_P2.00mm +CP, Radial series, Radial, pin pitch=2.00mm, , diameter=5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.00mm diameter 5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D5.0mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D6.3mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=6.3mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 6.3mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D7.5mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=7.5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 7.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D8.0mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=8mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D8.0mm_P3.50mm +CP, Radial series, Radial, pin pitch=3.50mm, , diameter=8mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 3.50mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D8.0mm_P3.80mm +CP, Radial series, Radial, pin pitch=3.80mm, , diameter=8mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 3.80mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D8.0mm_P5.00mm +CP, Radial series, Radial, pin pitch=5.00mm, , diameter=8mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm diameter 8mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D10.0mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D10.0mm_P2.50mm_P5.00mm +CP, Radial series, Radial, pin pitch=2.50mm 5.00mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm 5.00mm diameter 10mm Electrolytic Capacitor +0 +4 +2 +Capacitor_THT +CP_Radial_D10.0mm_P3.50mm +CP, Radial series, Radial, pin pitch=3.50mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 3.50mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D10.0mm_P3.80mm +CP, Radial series, Radial, pin pitch=3.80mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 3.80mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D10.0mm_P5.00mm +CP, Radial series, Radial, pin pitch=5.00mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D10.0mm_P5.00mm_P7.50mm +CP, Radial series, Radial, pin pitch=5.00mm 7.50mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm 7.50mm diameter 10mm Electrolytic Capacitor +0 +4 +2 +Capacitor_THT +CP_Radial_D10.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=10mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 10mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D12.5mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=12.5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 12.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D12.5mm_P5.00mm +CP, Radial series, Radial, pin pitch=5.00mm, , diameter=12.5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm diameter 12.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D12.5mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=12.5mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 12.5mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D13.0mm_P2.50mm +CP, Radial series, Radial, pin pitch=2.50mm, , diameter=13mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 2.50mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D13.0mm_P5.00mm +CP, Radial series, Radial, pin pitch=5.00mm, , diameter=13mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D13.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=13mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 13mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D14.0mm_P5.00mm +CP, Radial series, Radial, pin pitch=5.00mm, , diameter=14mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 5.00mm diameter 14mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D14.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=14mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 14mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D16.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=16mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 16mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D17.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=17mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 17mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D18.0mm_P7.50mm +CP, Radial series, Radial, pin pitch=7.50mm, , diameter=18mm, Electrolytic Capacitor +CP Radial series Radial pin pitch 7.50mm diameter 18mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D22.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=22mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 22mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D22.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=22mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 22mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D24.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=24mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 24mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D24.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=24mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 24mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D25.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=25mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 25mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D25.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=25mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 25mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D26.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=26mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 26mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D26.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=26mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 26mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D30.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=30mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 30mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D30.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=30mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 30mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D35.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=35mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 35mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D35.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=35mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 35mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_D40.0mm_P10.00mm_3pin_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=40mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 40mm Electrolytic Capacitor +0 +3 +2 +Capacitor_THT +CP_Radial_D40.0mm_P10.00mm_SnapIn +CP, Radial series, Radial, pin pitch=10.00mm, , diameter=40mm, Electrolytic Capacitor, , http://www.vishay.com/docs/28342/058059pll-si.pdf +CP Radial series Radial pin pitch 10.00mm diameter 40mm Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D4.5mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=4.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 4.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D4.5mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=4.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 4.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D5.0mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=5.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 5.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D5.0mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=5.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 5.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D5.5mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=5.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 5.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D5.5mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=5.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 5.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D6.0mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=6.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 6.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D6.0mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=6.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 6.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D7.0mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=7.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 7.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D7.0mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=7.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 7.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D8.0mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=8.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 8.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D8.0mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=8.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 8.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D9.0mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=9.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 9.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D9.0mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=9.0mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 9.0mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D10.5mm_P2.50mm +CP, Radial_Tantal series, Radial, pin pitch=2.50mm, , diameter=10.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 2.50mm diameter 10.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +CP_Radial_Tantal_D10.5mm_P5.00mm +CP, Radial_Tantal series, Radial, pin pitch=5.00mm, , diameter=10.5mm, Tantal Electrolytic Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/TANTAL-TB-Serie%23.pdf +CP Radial_Tantal series Radial pin pitch 5.00mm diameter 10.5mm Tantal Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Axial_L3.8mm_D2.6mm_P7.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=7.5mm, , length*diameter=3.8*2.6mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 7.5mm length 3.8mm diameter 2.6mm +0 +2 +2 +Capacitor_THT +C_Axial_L3.8mm_D2.6mm_P10.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=10mm, , length*diameter=3.8*2.6mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 10mm length 3.8mm diameter 2.6mm +0 +2 +2 +Capacitor_THT +C_Axial_L3.8mm_D2.6mm_P12.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=12.5mm, , length*diameter=3.8*2.6mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 12.5mm length 3.8mm diameter 2.6mm +0 +2 +2 +Capacitor_THT +C_Axial_L3.8mm_D2.6mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=3.8*2.6mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 15mm length 3.8mm diameter 2.6mm +0 +2 +2 +Capacitor_THT +C_Axial_L5.1mm_D3.1mm_P7.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=7.5mm, , length*diameter=5.1*3.1mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 7.5mm length 5.1mm diameter 3.1mm +0 +2 +2 +Capacitor_THT +C_Axial_L5.1mm_D3.1mm_P10.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=10mm, , length*diameter=5.1*3.1mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 10mm length 5.1mm diameter 3.1mm +0 +2 +2 +Capacitor_THT +C_Axial_L5.1mm_D3.1mm_P12.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=12.5mm, , length*diameter=5.1*3.1mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 12.5mm length 5.1mm diameter 3.1mm +0 +2 +2 +Capacitor_THT +C_Axial_L5.1mm_D3.1mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=5.1*3.1mm^2, http://www.vishay.com/docs/45231/arseries.pdf +C Axial series Axial Horizontal pin pitch 15mm length 5.1mm diameter 3.1mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D6.5mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=12*6.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 15mm length 12mm diameter 6.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D6.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=12*6.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 12mm diameter 6.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D7.5mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=12*7.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 15mm length 12mm diameter 7.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D7.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=12*7.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 12mm diameter 7.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D8.5mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=12*8.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 15mm length 12mm diameter 8.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D8.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=12*8.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 12mm diameter 8.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D9.5mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=12*9.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 15mm length 12mm diameter 9.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D9.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=12*9.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 12mm diameter 9.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D10.5mm_P15.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=15mm, , length*diameter=12*10.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 15mm length 12mm diameter 10.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L12.0mm_D10.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=12*10.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 12mm diameter 10.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L17.0mm_D6.5mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=17*6.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 17mm diameter 6.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L17.0mm_D6.5mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=17*6.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 17mm diameter 6.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L17.0mm_D7.0mm_P20.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=20mm, , length*diameter=17*7.0mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 20mm length 17mm diameter 7.0mm +0 +2 +2 +Capacitor_THT +C_Axial_L17.0mm_D7.0mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=17*7.0mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 17mm diameter 7.0mm +0 +2 +2 +Capacitor_THT +C_Axial_L19.0mm_D7.5mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=19*7.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 19mm diameter 7.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L19.0mm_D8.0mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=19*8.0mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 19mm diameter 8.0mm +0 +2 +2 +Capacitor_THT +C_Axial_L19.0mm_D9.0mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=19*9mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 19mm diameter 9mm +0 +2 +2 +Capacitor_THT +C_Axial_L19.0mm_D9.5mm_P25.00mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=25mm, , length*diameter=19*9.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 25mm length 19mm diameter 9.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L22.0mm_D9.5mm_P27.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=27.5mm, , length*diameter=22*9.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 27.5mm length 22mm diameter 9.5mm +0 +2 +2 +Capacitor_THT +C_Axial_L22.0mm_D10.5mm_P27.50mm_Horizontal +C, Axial series, Axial, Horizontal, pin pitch=27.5mm, , length*diameter=22*10.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B300/STYROFLEX.pdf +C Axial series Axial Horizontal pin pitch 27.5mm length 22mm diameter 10.5mm +0 +2 +2 +Capacitor_THT +C_Disc_D3.0mm_W1.6mm_P2.50mm +C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=3.0*1.6mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 2.50mm diameter 3.0mm width 1.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D3.0mm_W2.0mm_P2.50mm +C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=3*2mm^2, Capacitor +C Disc series Radial pin pitch 2.50mm diameter 3mm width 2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D3.4mm_W2.1mm_P2.50mm +C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=3.4*2.1mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 2.50mm diameter 3.4mm width 2.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D3.8mm_W2.6mm_P2.50mm +C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=3.8*2.6mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 2.50mm diameter 3.8mm width 2.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D4.3mm_W1.9mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=4.3*1.9mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 5.00mm diameter 4.3mm width 1.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D4.7mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=4.7*2.5mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 5.00mm diameter 4.7mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D5.0mm_W2.5mm_P2.50mm +C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=5*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 2.50mm diameter 5mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D5.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=5*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 5mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D5.1mm_W3.2mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=5.1*3.2mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf +C Disc series Radial pin pitch 5.00mm diameter 5.1mm width 3.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D6.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=6*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 6mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D6.0mm_W4.4mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=6*4.4mm^2, Capacitor +C Disc series Radial pin pitch 5.00mm diameter 6mm width 4.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=7*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 7mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.5mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=7.5*2.5mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 7.5mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.5mm_W4.4mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=7.5*4.4mm^2, Capacitor +C Disc series Radial pin pitch 5.00mm diameter 7.5mm width 4.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.5mm_W5.0mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=7.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 7.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.5mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=7.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 7.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D7.5mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=7.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 7.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D8.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=8*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 8mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D8.0mm_W5.0mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=8*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 8mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D8.0mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=8*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 8mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D8.0mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=8*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 8mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D9.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=9*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 9mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D9.0mm_W5.0mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=9*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 9mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D9.0mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=9*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 9mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D9.0mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=9*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 9mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D10.0mm_W2.5mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=10*2.5mm^2, Capacitor, http://cdn-reichelt.de/documents/datenblatt/B300/DS_KERKO_TC.pdf +C Disc series Radial pin pitch 5.00mm diameter 10mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D10.5mm_W5.0mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=10.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 10.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D10.5mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=10.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 10.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D10.5mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=10.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 10.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D11.0mm_W5.0mm_P5.00mm +C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=11*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 5.00mm diameter 11mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D11.0mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=11*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 11mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D11.0mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=11*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 11mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D12.0mm_W4.4mm_P7.75mm +C, Disc series, Radial, pin pitch=7.75mm, , diameter*width=12*4.4mm^2, Capacitor +C Disc series Radial pin pitch 7.75mm diameter 12mm width 4.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D12.5mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=12.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 12.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D12.5mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=12.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 12.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D14.5mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=14.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 14.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D14.5mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=14.5*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 14.5mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D16.0mm_W5.0mm_P7.50mm +C, Disc series, Radial, pin pitch=7.50mm, , diameter*width=16.0*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 7.50mm diameter 16.0mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Disc_D16.0mm_W5.0mm_P10.00mm +C, Disc series, Radial, pin pitch=10.00mm, , diameter*width=16.0*5.0mm^2, Capacitor, http://www.vishay.com/docs/28535/vy2series.pdf +C Disc series Radial pin pitch 10.00mm diameter 16.0mm width 5.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D4.0mm_H5.0mm_P1.50mm +C, Radial series, Radial, pin pitch=1.50mm, diameter=4mm, height=5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 1.50mm diameter 4mm height 5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D4.0mm_H7.0mm_P1.50mm +C, Radial series, Radial, pin pitch=1.50mm, diameter=4mm, height=7mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 1.50mm diameter 4mm height 7mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D5.0mm_H5.0mm_P2.00mm +C, Radial series, Radial, pin pitch=2.00mm, diameter=5mm, height=5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.00mm diameter 5mm height 5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D5.0mm_H7.0mm_P2.00mm +C, Radial series, Radial, pin pitch=2.00mm, diameter=5mm, height=7mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.00mm diameter 5mm height 7mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D5.0mm_H11.0mm_P2.00mm +C, Radial series, Radial, pin pitch=2.00mm, diameter=5mm, height=11mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.00mm diameter 5mm height 11mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D6.3mm_H5.0mm_P2.50mm +C, Radial series, Radial, pin pitch=2.50mm, diameter=6.3mm, height=5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.50mm diameter 6.3mm height 5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D6.3mm_H7.0mm_P2.50mm +C, Radial series, Radial, pin pitch=2.50mm, diameter=6.3mm, height=7mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.50mm diameter 6.3mm height 7mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D6.3mm_H11.0mm_P2.50mm +C, Radial series, Radial, pin pitch=2.50mm, diameter=6.3mm, height=11mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 2.50mm diameter 6.3mm height 11mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D8.0mm_H7.0mm_P3.50mm +C, Radial series, Radial, pin pitch=3.50mm, diameter=8mm, height=7mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 3.50mm diameter 8mm height 7mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D8.0mm_H11.5mm_P3.50mm +C, Radial series, Radial, pin pitch=3.50mm, diameter=8mm, height=11.5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 3.50mm diameter 8mm height 11.5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D10.0mm_H12.5mm_P5.00mm +C, Radial series, Radial, pin pitch=5.00mm, diameter=10mm, height=12.5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 5.00mm diameter 10mm height 12.5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D10.0mm_H16.0mm_P5.00mm +C, Radial series, Radial, pin pitch=5.00mm, diameter=10mm, height=16mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 5.00mm diameter 10mm height 16mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D10.0mm_H20.0mm_P5.00mm +C, Radial series, Radial, pin pitch=5.00mm, diameter=10mm, height=20mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 5.00mm diameter 10mm height 20mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D12.5mm_H20.0mm_P5.00mm +C, Radial series, Radial, pin pitch=5.00mm, diameter=12.5mm, height=20mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 5.00mm diameter 12.5mm height 20mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D12.5mm_H25.0mm_P5.00mm +C, Radial series, Radial, pin pitch=5.00mm, diameter=12.5mm, height=25mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 5.00mm diameter 12.5mm height 25mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D16.0mm_H25.0mm_P7.50mm +C, Radial series, Radial, pin pitch=7.50mm, diameter=16mm, height=25mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 7.50mm diameter 16mm height 25mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D16.0mm_H31.5mm_P7.50mm +C, Radial series, Radial, pin pitch=7.50mm, diameter=16mm, height=31.5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 7.50mm diameter 16mm height 31.5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Radial_D18.0mm_H35.5mm_P7.50mm +C, Radial series, Radial, pin pitch=7.50mm, diameter=18mm, height=35.5mm, Non-Polar Electrolytic Capacitor +C Radial series Radial pin pitch 7.50mm diameter 18mm height 35.5mm Non-Polar Electrolytic Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.0mm_W2.5mm_P2.50mm +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4*2.5mm^2, Capacitor +C Rect series Radial pin pitch 2.50mm length 4mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.6mm_W2.0mm_P2.50mm_MKS02_FKP02 +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4.6*2mm^2, Capacitor, http://www.wima.de/DE/WIMA_MKS_02.pdf +C Rect series Radial pin pitch 2.50mm length 4.6mm width 2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.6mm_W3.0mm_P2.50mm_MKS02_FKP02 +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4.6*3.0mm^2, Capacitor, http://www.wima.de/DE/WIMA_MKS_02.pdf +C Rect series Radial pin pitch 2.50mm length 4.6mm width 3.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.6mm_W3.8mm_P2.50mm_MKS02_FKP02 +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4.6*3.8mm^2, Capacitor, http://www.wima.de/DE/WIMA_MKS_02.pdf +C Rect series Radial pin pitch 2.50mm length 4.6mm width 3.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.6mm_W4.6mm_P2.50mm_MKS02_FKP02 +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4.6*4.6mm^2, Capacitor, http://www.wima.de/DE/WIMA_MKS_02.pdf +C Rect series Radial pin pitch 2.50mm length 4.6mm width 4.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L4.6mm_W5.5mm_P2.50mm_MKS02_FKP02 +C, Rect series, Radial, pin pitch=2.50mm, , length*width=4.6*5.5mm^2, Capacitor, http://www.wima.de/DE/WIMA_MKS_02.pdf +C Rect series Radial pin pitch 2.50mm length 4.6mm width 5.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W2.0mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*2mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W2.5mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*2.5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W3.5mm_P2.50mm_P5.00mm +C, Rect series, Radial, pin pitch=2.50mm 5.00mm, , length*width=7*3.5mm^2, Capacitor +C Rect series Radial pin pitch 2.50mm 5.00mm length 7mm width 3.5mm Capacitor +0 +4 +2 +Capacitor_THT +C_Rect_L7.0mm_W3.5mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*3.5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 3.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W4.5mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*4.5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 4.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W6.0mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*6mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.0mm_W6.5mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7*6.5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7mm width 6.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W2.5mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*2.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W3.0mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*3.0mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 3.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W3.5mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*3.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 3.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W4.5mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*4.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 4.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W5.5mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*5.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 5.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W7.2mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*7.2mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 7.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W8.5mm_P5.00mm_FKP2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*8.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 8.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.2mm_W11.0mm_P5.00mm_FKS2_FKP2_MKS2_MKP2 +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.2*11mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_2.pdf +C Rect series Radial pin pitch 5.00mm length 7.2mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L7.5mm_W6.5mm_P5.00mm +C, Rect series, Radial, pin pitch=5.00mm, , length*width=7.5*6.5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm length 7.5mm width 6.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W2.5mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*2.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W2.6mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*2.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 2.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W2.7mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*2.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 2.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.2mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.3mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.4mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.4mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.6mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.8mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W3.9mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*3.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 3.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W4.0mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*4.0mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 4.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W4.2mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*4.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 4.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W4.9mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*4.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 4.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W5.1mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*5.1mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 5.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W5.7mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*5.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 5.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W6.4mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*6.4mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 6.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W6.7mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*6.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 6.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W7.7mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*7.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 7.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W8.5mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*8.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 8.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W9.5mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*9.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 9.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L9.0mm_W9.8mm_P7.50mm_MKT +C, Rect series, Radial, pin pitch=7.50mm, , length*width=9*9.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 7.50mm length 9mm width 9.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W2.5mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10*2.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10mm width 2.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W3.0mm_P7.50mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10*3mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 7.50mm length 10mm width 3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W3.0mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10*3.0mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10mm width 3.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W4.0mm_P7.50mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10*4mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 7.50mm length 10mm width 4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W4.0mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10*4.0mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10mm width 4.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.0mm_W5.0mm_P5.00mm_P7.50mm +C, Rect series, Radial, pin pitch=5.00mm 7.50mm, , length*width=10*5mm^2, Capacitor +C Rect series Radial pin pitch 5.00mm 7.50mm length 10mm width 5mm Capacitor +0 +4 +2 +Capacitor_THT +C_Rect_L10.3mm_W4.5mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10.3*4.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10.3mm width 4.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.3mm_W5.0mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10.3*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10.3mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.3mm_W5.7mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10.3*5.7mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10.3mm width 5.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L10.3mm_W7.2mm_P7.50mm_MKS4 +C, Rect series, Radial, pin pitch=7.50mm, , length*width=10.3*7.2mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 7.50mm length 10.3mm width 7.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W2.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*2.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 2.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W3.4mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*3.4mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 3.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W3.5mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*3.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 3.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W4.2mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*4.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 4.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W4.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*4.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 4.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W5.1mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*5.1mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 5.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W5.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*5.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 5.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W6.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*6.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 6.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W6.4mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*6.4mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 6.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W7.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*7.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 7.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.0mm_W8.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.0*8.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.0mm width 8.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W2.0mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W2.6mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*2.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 2.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W2.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*2.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 2.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W3.2mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*3.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 3.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W3.5mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*3.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 3.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W3.6mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*3.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 3.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W4.0mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*4.0mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 4.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W4.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*4.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 4.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W4.5mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*4.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 4.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W5.0mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W5.1mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*5.1mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 5.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W5.2mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*5.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 5.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W5.6mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*5.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 5.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W6.4mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*6.4mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 6.4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W6.6mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*6.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 6.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W6.9mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*6.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 6.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W7.3mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*7.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 7.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W7.5mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*7.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 7.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W7.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*7.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 7.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W8.0mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*8.0mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 8.0mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W8.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*8.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 8.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W9.5mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*9.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 9.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L11.5mm_W9.8mm_P10.00mm_MKT +C, Rect series, Radial, pin pitch=10.00mm, , length*width=11.5*9.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 10.00mm length 11.5mm width 9.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.0mm_W3.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13*3mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13mm width 3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.0mm_W4.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13*4mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13mm width 4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.0mm_W5.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.0mm_W6.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13*6mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.0mm_W6.5mm_P7.50mm_P10.00mm +C, Rect series, Radial, pin pitch=7.50mm 10.00mm, , length*width=13*6.5mm^2, Capacitor +C Rect series Radial pin pitch 7.50mm 10.00mm length 13mm width 6.5mm Capacitor +0 +4 +2 +Capacitor_THT +C_Rect_L13.0mm_W8.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13*8mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13mm width 8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.5mm_W4.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13.5*4mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13.5mm width 4mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L13.5mm_W5.0mm_P10.00mm_FKS3_FKP3_MKS4 +C, Rect series, Radial, pin pitch=10.00mm, , length*width=13.5*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 10.00mm length 13.5mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W4.7mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*4.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 4.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W4.9mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*4.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 4.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W5.0mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W6.0mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W7.0mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W7.3mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*7.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 7.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W8.7mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*8.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 8.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W8.9mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*8.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 8.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W9.0mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W9.2mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*9.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 9.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W10.7mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*10.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 10.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W10.9mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*10.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 10.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W11.2mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*11.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 11.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W11.8mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*11.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 11.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W13.5mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*13.5mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 13.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W13.7mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*13.7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 13.7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L16.5mm_W13.9mm_P15.00mm_MKT +C, Rect series, Radial, pin pitch=15.00mm, , length*width=16.5*13.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 15.00mm length 16.5mm width 13.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W5.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W6.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*6mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W7.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*7mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W8.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*8mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W9.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*9mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L18.0mm_W11.0mm_P15.00mm_FKS3_FKP3 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=18*11mm^2, Capacitor, http://www.wima.com/EN/WIMA_FKS_3.pdf +C Rect series Radial pin pitch 15.00mm length 18mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W5.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W6.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*6mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W7.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*7mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W8.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*8mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W9.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*9mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L19.0mm_W11.0mm_P15.00mm_MKS4 +C, Rect series, Radial, pin pitch=15.00mm, , length*width=19*11mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 15.00mm length 19mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W7.0mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*7mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W8.3mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*8.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 8.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W8.6mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*8.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 8.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W10.1mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*10.1mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 10.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W10.3mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*10.3mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 10.3mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W10.9mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*10.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 10.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W12.2mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*12.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 12.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W12.6mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*12.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 12.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L24.0mm_W12.8mm_P22.50mm_MKT +C, Rect series, Radial, pin pitch=22.50mm, , length*width=24*12.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 22.50mm length 24mm width 12.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W5.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W6.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*6mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W7.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*7mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 7mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W8.5mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*8.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 8.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W10.5mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*10.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 10.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L26.5mm_W11.5mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=26.5*11.5mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 26.5mm width 11.5mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L27.0mm_W9.0mm_P22.00mm +C, Rect series, Radial, pin pitch=22.00mm, , length*width=27*9mm^2, Capacitor +C Rect series Radial pin pitch 22.00mm length 27mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L27.0mm_W9.0mm_P23.00mm +C, Rect series, Radial, pin pitch=23.00mm, , length*width=27*9mm^2, Capacitor +C Rect series Radial pin pitch 23.00mm length 27mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L27.0mm_W11.0mm_P22.00mm +C, Rect series, Radial, pin pitch=22.00mm, , length*width=27*11mm^2, Capacitor +C Rect series Radial pin pitch 22.00mm length 27mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L28.0mm_W8.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=28*8mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 28mm width 8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L28.0mm_W10.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=28*10mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 28mm width 10mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L28.0mm_W12.0mm_P22.50mm_MKS4 +C, Rect series, Radial, pin pitch=22.50mm, , length*width=28*12mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 22.50mm length 28mm width 12mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W7.6mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*7.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 7.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W7.8mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*7.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 7.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W7.9mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*7.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 7.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W9.1mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*9.1mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 9.1mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W9.6mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*9.6mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 9.6mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W11.0mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*11mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W11.9mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*11.9mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 11.9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W12.2mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*12.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 12.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W13.0mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*13mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 13mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W13.8mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*13.8mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 13.8mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W14.2mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*14.2mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 14.2mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L29.0mm_W16.0mm_P27.50mm_MKT +C, Rect series, Radial, pin pitch=27.50mm, , length*width=29*16mm^2, Capacitor, https://en.tdk.eu/inf/20/20/db/fc_2009/MKT_B32560_564.pdf +C Rect series Radial pin pitch 27.50mm length 29mm width 16mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W9.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*9mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W11.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*11mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W13.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*13mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 13mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W15.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*15mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 15mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W17.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*17mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 17mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L31.5mm_W20.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=31.5*20mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 31.5mm width 20mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L32.0mm_W15.0mm_P27.00mm +C, Rect series, Radial, pin pitch=27.00mm, , length*width=32*15mm^2, Capacitor +C Rect series Radial pin pitch 27.00mm length 32mm width 15mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L33.0mm_W13.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=33*13mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 33mm width 13mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L33.0mm_W15.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=33*15mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 33mm width 15mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L33.0mm_W20.0mm_P27.50mm_MKS4 +C, Rect series, Radial, pin pitch=27.50mm, , length*width=33*20mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 27.50mm length 33mm width 20mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W9.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*9mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 9mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W11.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*11mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 11mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W13.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*13mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 13mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W15.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*15mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 15mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W17.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*17mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 17mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W19.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*19mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 19mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W20.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*20mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 20mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W24.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*24mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 24mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W31.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*31mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 31mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W35.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*35mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 35mm Capacitor +0 +2 +2 +Capacitor_THT +C_Rect_L41.5mm_W40.0mm_P37.50mm_MKS4 +C, Rect series, Radial, pin pitch=37.50mm, , length*width=41.5*40mm^2, Capacitor, http://www.wima.com/EN/WIMA_MKS_4.pdf +C Rect series Radial pin pitch 37.50mm length 41.5mm width 40mm Capacitor +0 +2 +2 diff --git a/F0-nolib/Socket_fans/kicad/fp-lib-table b/F0-nolib/Socket_fans/kicad/fp-lib-table new file mode 100644 index 0000000..7ecc416 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/fp-lib-table @@ -0,0 +1,6 @@ +(fp_lib_table + (lib (name TestPoint)(type KiCad)(uri ${KISYSMOD}/TestPoint.pretty)(options "")(descr "")) + (lib (name Fuse)(type KiCad)(uri ${KISYSMOD}/Fuse.pretty)(options "")(descr "")) + (lib (name MyFootprints)(type KiCad)(uri /home/eddy/Docs/SAO/ELECTRONICS/STM32/F0-srcs/CANbus_stepper/my_footprints.pretty)(options "")(descr "")) + (lib (name Connector_Dsub)(type KiCad)(uri /usr/share/kicad/kicad-footprints/Connector_Dsub.pretty)(options "")(descr "")) +) diff --git a/F0-nolib/Socket_fans/kicad/my_footprints.pretty/Hole_3mm.kicad_mod b/F0-nolib/Socket_fans/kicad/my_footprints.pretty/Hole_3mm.kicad_mod new file mode 100644 index 0000000..4776c5d --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/my_footprints.pretty/Hole_3mm.kicad_mod @@ -0,0 +1,9 @@ +(module Hole_3mm (layer F.Cu) (tedit 5913F6E4) + (fp_text reference REF** (at 0 3.81) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Hole_3mm (at 0 -7.62) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 thru_hole circle (at 0 0) (size 5 5) (drill 3) (layers *.Cu *.Mask)) +) diff --git a/F0-nolib/Socket_fans/kicad/my_footprints.pretty/TH_via.kicad_mod b/F0-nolib/Socket_fans/kicad/my_footprints.pretty/TH_via.kicad_mod new file mode 100644 index 0000000..e458a27 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/my_footprints.pretty/TH_via.kicad_mod @@ -0,0 +1,10 @@ +(module TH_via (layer F.Cu) (tedit 5A5E619A) + (fp_text reference REF** (at 0 0.5) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value TH_via (at 0 -0.5) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 thru_hole circle (at 0 0) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask) + (zone_connect 1)) +) diff --git a/F0-nolib/Socket_fans/kicad/stm32-rescue.lib b/F0-nolib/Socket_fans/kicad/stm32-rescue.lib new file mode 100644 index 0000000..163107a --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32-rescue.lib @@ -0,0 +1,307 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# +12V-Chiller_control-rescue +# +DEF +12V-Chiller_control-rescue #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "+12V-Chiller_control-rescue" 0 140 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 0 1 0 -30 50 0 100 N +P 2 0 1 0 0 0 0 100 N +P 2 0 1 0 0 100 30 50 N +X +12V 1 0 0 0 U 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# +3.3V-Chiller_control-rescue +# +DEF +3.3V-Chiller_control-rescue #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "+3.3V-Chiller_control-rescue" 0 140 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 0 1 0 -30 50 0 100 N +P 2 0 1 0 0 0 0 100 N +P 2 0 1 0 0 100 30 50 N +X +3V3 1 0 0 0 U 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# C-Chiller_control-rescue +# +DEF C-Chiller_control-rescue C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "C-Chiller_control-rescue" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + C_* +$ENDFPLIST +DRAW +P 2 0 1 20 -80 -30 80 -30 N +P 2 0 1 20 -80 30 80 30 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# CP-Chiller_control-rescue +# +DEF CP-Chiller_control-rescue C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "CP-Chiller_control-rescue" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + CP_* +$ENDFPLIST +DRAW +S -90 20 -90 40 0 1 0 N +S -90 20 90 20 0 1 0 N +S 90 -20 -90 -40 0 1 0 F +S 90 40 -90 40 0 1 0 N +S 90 40 90 20 0 1 0 N +P 2 0 1 0 -70 90 -30 90 N +P 2 0 1 0 -50 110 -50 70 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Conn_01x02-Chiller_control-rescue +# +DEF Conn_01x02-Chiller_control-rescue J 0 40 Y N 1 F N +F0 "J" 0 100 50 H V C CNN +F1 "Conn_01x02-Chiller_control-rescue" 0 -200 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_??x*mm* + Connector*:*1x??x*mm* + Pin?Header?Straight?1X* + Pin?Header?Angled?1X* + Socket?Strip?Straight?1X* + Socket?Strip?Angled?1X* +$ENDFPLIST +DRAW +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 50 50 -150 1 1 10 f +X Pin_1 1 -200 0 150 R 50 50 1 1 P +X Pin_2 2 -200 -100 150 R 50 50 1 1 P +ENDDRAW +ENDDEF +# +# D-Chiller_control-rescue +# +DEF D-Chiller_control-rescue D 0 40 N N 1 F N +F0 "D" 0 100 50 H V C CNN +F1 "D-Chiller_control-rescue" 0 -100 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + TO-???* + *SingleDiode + *_Diode_* + *SingleDiode* + D_* +$ENDFPLIST +DRAW +P 2 0 1 8 -50 50 -50 -50 N +P 2 0 1 0 50 0 -50 0 N +P 4 0 1 8 50 50 50 -50 -50 0 50 50 N +X K 1 -150 0 100 R 50 50 1 1 P +X A 2 150 0 100 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# G5LE-1-socket-rescue +# +DEF G5LE-1-socket-rescue K 0 40 Y Y 1 F N +F0 "K" 450 150 50 H V L CNN +F1 "G5LE-1-socket-rescue" 450 50 50 H V L CNN +F2 "Relay_THT:Relay_SPDT_OMRON-G5LE-1" 450 -50 50 H I L CNN +F3 "" 0 -400 50 H I C CNN +$FPLIST + Relay*SPDT*Omron*G5LE?1* +$ENDFPLIST +DRAW +S -400 200 400 -200 0 1 10 f +S -325 75 -75 -75 0 1 10 N +P 2 0 0 0 100 150 100 200 N +P 2 0 0 0 300 150 300 200 N +P 4 0 0 0 300 150 300 100 275 125 300 150 N +P 2 0 1 10 -300 -75 -100 75 N +P 2 0 1 0 -200 -200 -200 -75 N +P 2 0 1 0 -200 200 -200 75 N +P 2 0 1 10 -75 0 -50 0 N +P 2 0 1 10 -25 0 0 0 N +P 2 0 1 10 25 0 50 0 N +P 2 0 1 10 25 0 50 0 N +P 2 0 1 10 75 0 100 0 N +P 2 0 1 10 125 0 150 0 N +P 2 0 1 20 200 -100 125 150 N +P 2 0 1 0 200 -100 200 -200 N +P 3 0 1 0 100 100 125 125 100 150 F +X ~ 1 200 -300 100 U 50 50 1 1 P +X ~ 2 -200 -300 100 U 50 50 1 1 P +X ~ 3 300 300 100 D 50 50 1 1 P +X ~ 4 100 300 100 D 50 50 1 1 P +X ~ 5 -200 300 100 D 50 50 1 1 P +ENDDRAW +ENDDEF +# +# GND-Chiller_control-rescue +# +DEF GND-Chiller_control-rescue #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "GND-Chiller_control-rescue" 0 -150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N +X GND 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# GND-socket-rescue +# +DEF GND-socket-rescue #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "GND-socket-rescue" 0 -150 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N +X GND 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# L-Chiller_control-rescue +# +DEF L-Chiller_control-rescue L 0 40 N N 1 F N +F0 "L" -50 0 50 V V C CNN +F1 "L-Chiller_control-rescue" 75 0 50 V V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Choke_* + *Coil* + Inductor_* + L_* +$ENDFPLIST +DRAW +A 0 -75 25 -899 899 0 1 0 N 0 -100 0 -50 +A 0 -25 25 -899 899 0 1 0 N 0 -50 0 0 +A 0 25 25 -899 899 0 1 0 N 0 0 0 50 +A 0 75 25 -899 899 0 1 0 N 0 50 0 100 +X 1 1 0 150 50 D 50 50 1 1 P +X 2 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Q_NMOS_GSD-Chiller_control-rescue +# +DEF Q_NMOS_GSD-Chiller_control-rescue Q 0 0 Y N 1 F N +F0 "Q" 200 50 50 H V L CNN +F1 "Q_NMOS_GSD-Chiller_control-rescue" 200 -50 50 H V L CNN +F2 "" 200 100 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +C 65 0 111 0 1 10 N +C 100 -70 11 0 1 0 F +C 100 70 11 0 1 0 F +P 2 0 1 0 2 0 10 0 N +P 2 0 1 0 30 -70 100 -70 N +P 2 0 1 10 30 -50 30 -90 N +P 2 0 1 0 30 0 100 0 N +P 2 0 1 10 30 20 30 -20 N +P 2 0 1 0 30 70 100 70 N +P 2 0 1 10 30 90 30 50 N +P 2 0 1 0 100 -70 100 -100 N +P 2 0 1 0 100 -70 100 0 N +P 2 0 1 0 100 100 100 70 N +P 3 0 1 10 10 75 10 -75 10 -75 N +P 4 0 1 0 40 0 80 15 80 -15 40 0 F +P 4 0 1 0 100 -70 130 -70 130 70 100 70 N +P 4 0 1 0 110 20 115 15 145 15 150 10 N +P 4 0 1 0 130 15 115 -10 145 -10 130 15 N +X G 1 -200 0 200 R 50 50 1 1 I +X S 2 100 -200 100 U 50 50 1 1 P +X D 3 100 200 100 D 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Q_NMOS_GSD-socket-rescue +# +DEF Q_NMOS_GSD-socket-rescue Q 0 0 Y N 1 F N +F0 "Q" 200 50 50 H V L CNN +F1 "Q_NMOS_GSD-socket-rescue" 200 -50 50 H V L CNN +F2 "" 200 100 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +C 65 0 111 0 1 10 N +C 100 -70 11 0 1 0 F +C 100 70 11 0 1 0 F +P 2 0 1 0 2 0 10 0 N +P 2 0 1 0 30 -70 100 -70 N +P 2 0 1 10 30 -50 30 -90 N +P 2 0 1 0 30 0 100 0 N +P 2 0 1 10 30 20 30 -20 N +P 2 0 1 0 30 70 100 70 N +P 2 0 1 10 30 90 30 50 N +P 2 0 1 0 100 -70 100 -100 N +P 2 0 1 0 100 -70 100 0 N +P 2 0 1 0 100 100 100 70 N +P 3 0 1 10 10 75 10 -75 10 -75 N +P 4 0 1 0 40 0 80 15 80 -15 40 0 F +P 4 0 1 0 100 -70 130 -70 130 70 100 70 N +P 4 0 1 0 110 20 115 15 145 15 150 10 N +P 4 0 1 0 130 15 115 -10 145 -10 130 15 N +X G 1 -200 0 200 R 50 50 1 1 I +X S 2 100 -200 100 U 50 50 1 1 P +X D 3 100 200 100 D 50 50 1 1 P +ENDDRAW +ENDDEF +# +# R-Chiller_control-rescue +# +DEF R-Chiller_control-rescue R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "R-Chiller_control-rescue" 0 0 50 V V C CNN +F2 "" -70 0 50 V I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + R_* + R_* +$ENDFPLIST +DRAW +S -40 -100 40 100 0 1 10 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# R-socket-rescue +# +DEF R-socket-rescue R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "R-socket-rescue" 0 0 50 V V C CNN +F2 "" -70 0 50 V I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + R_* + R_* +$ENDFPLIST +DRAW +S -40 -100 40 100 0 1 10 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +#End Library diff --git a/F0-nolib/Socket_fans/kicad/stm32.csv b/F0-nolib/Socket_fans/kicad/stm32.csv new file mode 100644 index 0000000..c8f0f39 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32.csv @@ -0,0 +1,122 @@ +"Source:","/home/eddy/Yandex.Disk/Projects/stm32samples/F0-nolib/CANbus_stepper/kicad/stm32.sch" +"Date:","÷Ô 10 ÍÁÒ 2020 09:31:14" +"Tool:","Eeschema 5.1.4" +"Generator:","/usr/local/share/kicad/plugins/bom_csv_grouped_by_value.py" +"Component Count:","66" + +"Individual Components:" + +"Item","Qty","Reference(s)","Value","LibPart","Footprint","Datasheet" +"","","C1","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C2","100uF","Device:CP","Capacitor_THT:CP_Radial_D8.0mm_P3.50mm","~" +"","","C3","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C4","47uF, 10V","Device:CP","Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder","~" +"","","C5","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C6","47uF, 10V","Device:CP","Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder","~" +"","","C7","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C8","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C9","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C10","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C11","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","C12","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","D1","MBRS130L","Device:D_Schottky","Diode_SMD:D_SMB_Handsoldering","" +"","","D2","MBRS130L","Device:D_Schottky","Diode_SMD:D_SMB_Handsoldering","" +"","","D3","PESD3V3L4UG","Power_Protection:PESD3V3L4UG","TO_SOT_Packages_SMD:SOT-363_SC-70-6_Handsoldering","https://assets.nexperia.com/documents/data-sheet/PESDXL4UF_G_W.pdf" +"","","D4","PESD1CAN","elements:PESD1CAN","TO_SOT_Packages_SMD:SOT-23_Handsoldering","" +"","","D5","MM3Z7V5","Device:D_Zener","Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder","~" +"","","D6","USB6B1","Power_Protection:USB6B1","Package_SO:SOIC-8_3.9x4.9mm_P1.27mm","" +"","","D7","MM3Z3V9","Device:D_Zener","Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder","" +"","","D8","MM3Z3V9","Device:D_Zener","Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder","" +"","","F1","1A","Device:Fuse","MyFootprints:FuseHolder","~" +"","","J1","A","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J2","B","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J3","Conn_01x08_Female","Connector:Conn_01x08_Female","Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical","~" +"","","J4","Conn_01x08_Female","Connector:Conn_01x08_Female","Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical","~" +"","","J5","+/-","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J6","CONN_02X03","Switch:SW_DIP_x04","Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm","" +"","","J7","0/1","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J8","2/3","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J9","DB9_Female","Connector:DB9_Female","Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm","" +"","","J10","12v","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J11","DB9_Male","Connector:DB9_Male","Connector_Dsub:DSUB-9_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm","" +"","","J12","RS-485","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"","","J13","Conn_01x06","Connector_Generic:Conn_01x06","Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical","~" +"","","P1","USB_A","Connector:USB_B","Connectors_USB:USB_B_OST_USB-B1HSxx_Horizontal","" +"","","P2","Hole","Connector_Generic:Conn_01x01","MountingHole:MountingHole_3.2mm_M3","" +"","","P3","Hole","Connector_Generic:Conn_01x01","MountingHole:MountingHole_3.2mm_M3","" +"","","P4","Hole","Connector_Generic:Conn_01x01","MountingHole:MountingHole_3.2mm_M3","" +"","","P5","Hole","Connector_Generic:Conn_01x01","MountingHole:MountingHole_3.2mm_M3","" +"","","Q1","SI2305","Device:Q_PMOS_GSD","TO_SOT_Packages_SMD:SOT-23_Handsoldering","~" +"","","Q2","AO3407","Device:Q_PMOS_GSD","TO_SOT_Packages_SMD:SOT-23_Handsoldering","" +"","","R1","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R2","10k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R3","120","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R4","15k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R5","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R6","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R7","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R8","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R9","120","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R10","10k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","R11","22","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R12","22","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R13","220k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R14","56k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R15","47k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R16","47k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R17","47k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"","","R18","22","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"","","SW1","SW_DIP_x01","Switch:SW_DIP_x01","Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile","~" +"","","U1","ISO1050DUB","Interface_CAN_LIN:ISO1050DUB","Package_SO:SOP-8_6.62x9.15mm_P2.54mm","http://www.ti.com/lit/ds/symlink/iso1050.pdf" +"","","U2","LM1117-5.0","Regulator_Linear:LM1117-3.3","TO_SOT_Packages_SMD:SOT-223-3_TabPin2","" +"","","U3","LM1117-3.3","Regulator_Linear:LM1117-3.3","TO_SOT_Packages_SMD:SOT-223-3_TabPin2","" +"","","U4","MCP2551-I/SN","Interface_CAN_LIN:MCP2551-I-SN","Package_SO:SOIC-8_3.9x4.9mm_P1.27mm","" +"","","U5","STM32F072CBTx","MCU_ST_STM32F0:STM32F072CBTx","Package_QFP:LQFP-48_7x7mm_P0.5mm","http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00090510.pdf" +"","","U6","MAX3485","Interface_UART:MAX3485","Package_SO:SO-8_3.9x4.9mm_P1.27mm","https://datasheets.maximintegrated.com/en/ds/MAX3483-MAX3491.pdf" + + + +"Collated Components:" + +"Item","Qty","Reference(s)","Value","LibPart","Footprint","Datasheet" +"1","9","C1, C3, C5, C7, C8, C9, C10, C11, C12","0.1","Device:C","Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"2","1","C2","100uF","Device:CP","Capacitor_THT:CP_Radial_D8.0mm_P3.50mm","~" +"3","2","C4, C6","47uF, 10V","Device:CP","Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder","~" +"4","2","D1, D2","MBRS130L","Device:D_Schottky","Diode_SMD:D_SMB_Handsoldering","" +"5","1","D3","PESD3V3L4UG","Power_Protection:PESD3V3L4UG","TO_SOT_Packages_SMD:SOT-363_SC-70-6_Handsoldering","https://assets.nexperia.com/documents/data-sheet/PESDXL4UF_G_W.pdf" +"6","1","D4","PESD1CAN","elements:PESD1CAN","TO_SOT_Packages_SMD:SOT-23_Handsoldering","" +"7","1","D5","MM3Z7V5","Device:D_Zener","Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder","~" +"8","1","D6","USB6B1","Power_Protection:USB6B1","Package_SO:SOIC-8_3.9x4.9mm_P1.27mm","" +"9","2","D7, D8","MM3Z3V9","Device:D_Zener","Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder","" +"10","1","F1","1A","Device:Fuse","MyFootprints:FuseHolder","~" +"11","1","J1","A","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"12","1","J2","B","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"13","2","J3, J4","Conn_01x08_Female","Connector:Conn_01x08_Female","Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical","~" +"14","1","J5","+/-","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"15","1","J6","CONN_02X03","Switch:SW_DIP_x04","Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm","" +"16","1","J7","0/1","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"17","1","J8","2/3","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"18","1","J9","DB9_Female","Connector:DB9_Female","Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm","" +"19","1","J10","12v","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"20","1","J11","DB9_Male","Connector:DB9_Male","Connector_Dsub:DSUB-9_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm","" +"21","1","J12","RS-485","Connector:Screw_Terminal_01x02","TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal","" +"22","1","J13","Conn_01x06","Connector_Generic:Conn_01x06","Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical","~" +"23","1","P1","USB_A","Connector:USB_B","Connectors_USB:USB_B_OST_USB-B1HSxx_Horizontal","" +"24","4","P2, P3, P4, P5","Hole","Connector_Generic:Conn_01x01","MountingHole:MountingHole_3.2mm_M3","" +"25","1","Q1","SI2305","Device:Q_PMOS_GSD","TO_SOT_Packages_SMD:SOT-23_Handsoldering","~" +"26","1","Q2","AO3407","Device:Q_PMOS_GSD","TO_SOT_Packages_SMD:SOT-23_Handsoldering","" +"27","5","R1, R5, R6, R7, R8","330","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"28","2","R2, R10","10k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"29","2","R3, R9","120","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"30","1","R4","15k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"31","3","R11, R12, R18","22","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","~" +"32","1","R13","220k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"33","1","R14","56k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"34","3","R15, R16, R17","47k","Device:R","Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","" +"35","1","SW1","SW_DIP_x01","Switch:SW_DIP_x01","Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile","~" +"36","1","U1","ISO1050DUB","Interface_CAN_LIN:ISO1050DUB","Package_SO:SOP-8_6.62x9.15mm_P2.54mm","http://www.ti.com/lit/ds/symlink/iso1050.pdf" +"37","1","U2","LM1117-5.0","Regulator_Linear:LM1117-3.3","TO_SOT_Packages_SMD:SOT-223-3_TabPin2","" +"38","1","U3","LM1117-3.3","Regulator_Linear:LM1117-3.3","TO_SOT_Packages_SMD:SOT-223-3_TabPin2","" +"39","1","U4","MCP2551-I/SN","Interface_CAN_LIN:MCP2551-I-SN","Package_SO:SOIC-8_3.9x4.9mm_P1.27mm","" +"40","1","U5","STM32F072CBTx","MCU_ST_STM32F0:STM32F072CBTx","Package_QFP:LQFP-48_7x7mm_P0.5mm","http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00090510.pdf" +"41","1","U6","MAX3485","Interface_UART:MAX3485","Package_SO:SO-8_3.9x4.9mm_P1.27mm","https://datasheets.maximintegrated.com/en/ds/MAX3483-MAX3491.pdf" diff --git a/F0-nolib/Socket_fans/kicad/stm32.kicad_pcb b/F0-nolib/Socket_fans/kicad/stm32.kicad_pcb new file mode 100644 index 0000000..8c03dc5 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32.kicad_pcb @@ -0,0 +1,6122 @@ +(kicad_pcb (version 20171130) (host pcbnew 5.1.4) + + (general + (thickness 2.5) + (drawings 41) + (tracks 758) + (zones 0) + (modules 67) + (nets 62) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.2) + (user_trace_width 0.2) + (user_trace_width 0.3) + (user_trace_width 0.5) + (user_trace_width 1) + (user_trace_width 2) + (trace_clearance 0.2) + (zone_clearance 0.5) + (zone_45_only yes) + (trace_min 0.2) + (via_size 1) + (via_drill 0.6) + (via_min_size 0.8) + (via_min_drill 0.5) + (user_via 1 0.6) + (user_via 1.5 0.8) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (edge_width 0.15) + (segment_width 0.2) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 1.5 1.5) + (pad_drill 0.8) + (pad_to_mask_clearance 0.2) + (aux_axis_origin 80.5 62.5) + (grid_origin 80.5 62.5) + (visible_elements FFFFFF7F) + (pcbplotparams + (layerselection 0x010f0_ffffffff) + (usegerberextensions false) + (usegerberattributes false) + (usegerberadvancedattributes false) + (creategerberjobfile false) + (excludeedgelayer false) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue false) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 0) + (scaleselection 1) + (outputdirectory "gerbers/")) + ) + + (net 0 "") + (net 1 /12Vin) + (net 2 GND) + (net 3 +3V3) + (net 4 +5V) + (net 5 /NRST) + (net 6 /BOOT0) + (net 7 /CAN_Tx) + (net 8 /CAN_Rx) + (net 9 /5Vusb) + (net 10 /brdaddr0) + (net 11 /brdaddr1) + (net 12 /brdaddr2) + (net 13 "Net-(D4-Pad1)") + (net 14 "Net-(D4-Pad2)") + (net 15 /AIN0) + (net 16 /AIN1) + (net 17 "Net-(F1-Pad1)") + (net 18 "Net-(F1-Pad2)") + (net 19 /brdaddr3) + (net 20 /SWDIO) + (net 21 /SWCLK) + (net 22 /ESW0) + (net 23 /ESW1) + (net 24 /ESW2) + (net 25 "Net-(D5-Pad2)") + (net 26 "Net-(D6-Pad2)") + (net 27 "Net-(D6-Pad3)") + (net 28 "Net-(D6-Pad6)") + (net 29 "Net-(D6-Pad7)") + (net 30 "Net-(J1-Pad2)") + (net 31 "Net-(J1-Pad1)") + (net 32 "Net-(J2-Pad1)") + (net 33 "Net-(J2-Pad2)") + (net 34 /~FAULT) + (net 35 /DIR) + (net 36 /STEP) + (net 37 /~SLEEP) + (net 38 /MISO) + (net 39 /~CS) + (net 40 /SCK) + (net 41 /MOSI) + (net 42 /~EN) + (net 43 "Net-(J5-Pad1)") + (net 44 "Net-(J7-Pad2)") + (net 45 "Net-(J7-Pad1)") + (net 46 "Net-(J8-Pad1)") + (net 47 "Net-(J8-Pad2)") + (net 48 "Net-(J12-Pad1)") + (net 49 "Net-(J12-Pad2)") + (net 50 "Net-(J13-Pad6)") + (net 51 "Net-(Q1-Pad1)") + (net 52 /VIO_on) + (net 53 "Net-(R4-Pad1)") + (net 54 /ESW3) + (net 55 "Net-(R9-Pad1)") + (net 56 "Net-(R11-Pad2)") + (net 57 "Net-(R12-Pad2)") + (net 58 /Tx|Rx) + (net 59 /Tx) + (net 60 /Rx) + (net 61 /5Vin) + + (net_class Default "This is the default net class." + (clearance 0.2) + (trace_width 0.2) + (via_dia 1) + (via_drill 0.6) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net +3V3) + (add_net +5V) + (add_net /5Vin) + (add_net /5Vusb) + (add_net /AIN0) + (add_net /AIN1) + (add_net /BOOT0) + (add_net /CAN_Rx) + (add_net /CAN_Tx) + (add_net /DIR) + (add_net /ESW0) + (add_net /ESW1) + (add_net /ESW2) + (add_net /ESW3) + (add_net /MISO) + (add_net /MOSI) + (add_net /NRST) + (add_net /Rx) + (add_net /SCK) + (add_net /STEP) + (add_net /SWCLK) + (add_net /SWDIO) + (add_net /Tx) + (add_net /Tx|Rx) + (add_net /VIO_on) + (add_net /brdaddr0) + (add_net /brdaddr1) + (add_net /brdaddr2) + (add_net /brdaddr3) + (add_net /~CS) + (add_net /~EN) + (add_net /~FAULT) + (add_net /~SLEEP) + (add_net GND) + (add_net "Net-(D4-Pad1)") + (add_net "Net-(D4-Pad2)") + (add_net "Net-(D5-Pad2)") + (add_net "Net-(D6-Pad2)") + (add_net "Net-(D6-Pad3)") + (add_net "Net-(D6-Pad6)") + (add_net "Net-(D6-Pad7)") + (add_net "Net-(F1-Pad1)") + (add_net "Net-(F1-Pad2)") + (add_net "Net-(J1-Pad1)") + (add_net "Net-(J1-Pad2)") + (add_net "Net-(J12-Pad1)") + (add_net "Net-(J12-Pad2)") + (add_net "Net-(J13-Pad6)") + (add_net "Net-(J2-Pad1)") + (add_net "Net-(J2-Pad2)") + (add_net "Net-(J5-Pad1)") + (add_net "Net-(J7-Pad1)") + (add_net "Net-(J7-Pad2)") + (add_net "Net-(J8-Pad1)") + (add_net "Net-(J8-Pad2)") + (add_net "Net-(Q1-Pad1)") + (add_net "Net-(R11-Pad2)") + (add_net "Net-(R12-Pad2)") + (add_net "Net-(R4-Pad1)") + (add_net "Net-(R9-Pad1)") + ) + + (net_class 0.5 "" + (clearance 0.3) + (trace_width 0.5) + (via_dia 1) + (via_drill 0.6) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net /12Vin) + ) + + (net_class 1 "" + (clearance 0.5) + (trace_width 1) + (via_dia 1.5) + (via_drill 0.8) + (uvia_dia 0.3) + (uvia_drill 0.1) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332E64) + (at 156.5 111.5) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EF14D3F) + (fp_text reference J12 (at 9.344 -3.5975) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value RS-485 (at 2.5 -5.66) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 49 "Net-(J12-Pad2)")) + (pad 1 thru_hole rect (at 0 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 48 "Net-(J12-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332E04) + (at 129.8556 67.6156 180) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5A5B6143) + (fp_text reference J10 (at 2.2968 -5.892) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 12v (at 2.5 -5.66) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0 180) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 1 thru_hole rect (at 0 0 180) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 17 "Net-(F1-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332C7A) + (at 87.8468 99.314 270) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EC824A0) + (fp_text reference J1 (at 9.033 0.1078 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value A (at 2.5 -5.66 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0 270) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 30 "Net-(J1-Pad2)")) + (pad 1 thru_hole rect (at 0 0 270) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 31 "Net-(J1-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E37F5A3) + (at 87.8468 88.2396 270) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EC858A1) + (fp_text reference J2 (at -4.0226 -0.0192 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value B (at 2.5 -5.66 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0 270) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 33 "Net-(J2-Pad2)")) + (pad 1 thru_hole rect (at 0 0 270) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 32 "Net-(J2-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332D06) + (at 167.7797 81.6229 90) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EE198F1) + (fp_text reference J5 (at 8.8359 0.2868 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value +/- (at 2.5 -5.66 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0 90) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 1 thru_hole rect (at 0 0 90) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 43 "Net-(J5-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332D78) + (at 120.523 111.5) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EE169C8) + (fp_text reference J7 (at -3.955 1.6095) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0/1 (at 2.5 -5.66) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 44 "Net-(J7-Pad2)")) + (pad 1 thru_hole rect (at 0 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 45 "Net-(J7-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal (layer B.Cu) (tedit 5B294EE5) (tstamp 5E332DA4) + (at 131.6355 111.5) + (descr "Terminal Block Phoenix MKDS-1,5-2, 2 pins, pitch 5mm, size 10x9.8mm^2, drill diamater 1.3mm, pad diameter 2.6mm, see http://www.farnell.com/datasheets/100425.pdf, script-generated using https://github.com/pointhi/kicad-footprint-generator/scripts/TerminalBlock_Phoenix") + (tags "THT Terminal Block Phoenix MKDS-1,5-2 pitch 5mm size 10x9.8mm^2 drill 1.3mm pad 2.6mm") + (path /5EE19375) + (fp_text reference J8 (at 8.9355 1.4825) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 2/3 (at 2.5 -5.66) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.5 -3.2) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 8 5.71) (end -3 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8 -5.1) (end 8 5.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 -5.1) (end 8 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3 5.71) (end -3 -5.1) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.8 -4.9) (end -2.3 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.8 -4.16) (end -2.8 -4.9) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.773 -1.023) (end 3.726 -1.069) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.07 1.275) (end 6.035 1.239) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.966 -1.239) (end 3.931 -1.274) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.275 1.069) (end 6.228 1.023) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.955 1.138) (end 3.863 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 6.138 0.955) (end 4.046 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 0.955 1.138) (end -1.138 -0.955) (layer B.Fab) (width 0.1)) + (fp_line (start 1.138 0.955) (end -0.955 -1.138) (layer B.Fab) (width 0.1)) + (fp_line (start 7.56 5.261) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end -2.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 -4.66) (end 7.56 -4.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 5.261) (end 7.56 5.261) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.56 2.301) (end 7.56 2.301) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 2.3) (end 7.5 2.3) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -2.6) (end 7.56 -2.6) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -2.6) (end 7.5 -2.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.56 -4.1) (end 7.56 -4.1) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.5 -4.1) (end 7.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -4.1) (end -2.5 5.2) (layer B.Fab) (width 0.1)) + (fp_line (start -2 -4.6) (end -2.5 -4.1) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 -4.6) (end -2 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start 7.5 5.2) (end 7.5 -4.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 5.2) (end 7.5 5.2) (layer B.Fab) (width 0.1)) + (fp_circle (center 5 0) (end 6.68 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 5 0) (end 6.5 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 0 0) (end 1.5 0) (layer B.Fab) (width 0.1)) + (fp_arc (start 0 0) (end -0.684 -1.535) (angle 25) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end -1.535 0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0.684 1.535) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 1.535 -0.684) (angle 48) (layer B.SilkS) (width 0.12)) + (fp_arc (start 0 0) (end 0 -1.68) (angle 24) (layer B.SilkS) (width 0.12)) + (pad 2 thru_hole circle (at 5 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 47 "Net-(J8-Pad2)")) + (pad 1 thru_hole rect (at 0 0) (size 2.6 2.6) (drill 1.3) (layers *.Cu *.Mask) + (net 46 "Net-(J8-Pad1)")) + (model /home/eddy/kicad/3D/conn_screw/mors_2p.wrl + (offset (xyz 2.5 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E38E0D6) + (at 103.9381 75.0697) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /596772D4) + (attr smd) + (fp_text reference C1 (at -0.0267 -1.7018) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0.1 (at 0 -1.43) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 1 smd roundrect (at -0.875 0) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 1 /12Vin)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBE) (tstamp 5E3A5D19) + (at 125.0516 93.0308 270) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /58C42D39) + (attr smd) + (fp_text reference C7 (at 0 1.7526 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 0.1 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBE) (tstamp 5E38868B) + (at 137.922 98.1062 90) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /590935EA) + (attr smd) + (fp_text reference C8 (at -0.014 1.7272 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 0.1 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBE) (tstamp 5E37E74E) + (at 138.9774 87.7824 180) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /59093675) + (attr smd) + (fp_text reference C9 (at -0.0114 1.524) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 0.1 (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Diode_SMD:D_SMB_Handsoldering (layer F.Cu) (tedit 590B3D55) (tstamp 5E39D9C3) + (at 162.6286 98.4504) + (descr "Diode SMB (DO-214AA) Handsoldering") + (tags "Diode SMB (DO-214AA) Handsoldering") + (path /5A545B43) + (attr smd) + (fp_text reference D2 (at 0 3.0386) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MBRS130L (at 0 3) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -4.6 -2.15) (end 2.7 -2.15) (layer F.SilkS) (width 0.12)) + (fp_line (start -4.6 2.15) (end 2.7 2.15) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.64944 0.00102) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end 0.50118 0.75032) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.75032) (end 0.50118 -0.79908) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 -0.79908) (end -0.64944 0.80112) (layer F.Fab) (width 0.1)) + (fp_line (start 0.50118 0.00102) (end 1.4994 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -0.64944 0.00102) (end -1.55114 0.00102) (layer F.Fab) (width 0.1)) + (fp_line (start -4.7 2.25) (end -4.7 -2.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start 4.7 2.25) (end -4.7 2.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start 4.7 -2.25) (end 4.7 2.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -4.7 -2.25) (end 4.7 -2.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -2) (end -2.3 -2) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 -2) (end 2.3 2) (layer F.Fab) (width 0.1)) + (fp_line (start -2.3 2) (end -2.3 -2) (layer F.Fab) (width 0.1)) + (fp_line (start 2.3 2) (end -2.3 2) (layer F.Fab) (width 0.1)) + (fp_line (start -4.6 -2.15) (end -4.6 2.15) (layer F.SilkS) (width 0.12)) + (fp_text user %R (at 0 -3) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 2 smd rect (at 2.7 0) (size 3.5 2.3) (layers F.Cu F.Paste F.Mask) + (net 9 /5Vusb)) + (pad 1 smd rect (at -2.7 0) (size 3.5 2.3) (layers F.Cu F.Paste F.Mask) + (net 4 +5V)) + (model ${KISYS3DMOD}/Diode_SMD.3dshapes/D_SMB.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_SMD:SOT-23_Handsoldering (layer F.Cu) (tedit 5A0AB76C) (tstamp 5E32E630) + (at 158.6484 74.7508 270) + (descr "SOT-23, Handsoldering") + (tags SOT-23) + (path /58C46522) + (attr smd) + (fp_text reference D4 (at 0.2808 -2.794 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value PESD1CAN (at 0 2.5 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.5 0.5) (thickness 0.075))) + ) + (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.7 -1.75) (end 2.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.7 -1.75) (end 2.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.7 1.75) (end -2.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.7 1.75) (end -2.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.76 -1.58) (end -2.4 -1.58) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.7 -0.95) (end -0.7 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) + (pad 1 smd rect (at -1.5 -0.95 270) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(D4-Pad1)")) + (pad 2 smd rect (at -1.5 0.95 270) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(D4-Pad2)")) + (pad 3 smd rect (at 1.5 0 270) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder (layer F.Cu) (tedit 5B4B45C8) (tstamp 5E32E643) + (at 104.2924 77.8854 90) + (descr "Diode SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator") + (tags "diode handsolder") + (path /5ED78D2C) + (attr smd) + (fp_text reference D5 (at -2.7342 0 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MM3Z7V5 (at 0 1.65 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 1 -0.6) (end -0.7 -0.6) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.6) (end -1 -0.3) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.3) (end -1 0.6) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.6) (end 1 0.6) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.6) (end 1 -0.6) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.96) (end -1.86 -0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.86 -0.96) (end -1.86 0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.86 0.96) (end 1 0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.85 0.95) (end -1.85 -0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.85 -0.95) (end 1.85 -0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.85 -0.95) (end 1.85 0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.85 0.95) (end -1.85 0.95) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.5 0.5) (thickness 0.08))) + ) + (pad 1 smd roundrect (at -1.025 0 90) (size 1.15 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.217391) + (net 1 /12Vin)) + (pad 2 smd roundrect (at 1.025 0 90) (size 1.15 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.217391) + (net 25 "Net-(D5-Pad2)")) + (model ${KISYS3DMOD}/Diode_SMD.3dshapes/D_0805_2012Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module MyFootprints:FuseHolder (layer B.Cu) (tedit 5E318B39) (tstamp 5E3804BD) + (at 122.8948 77.95) + (path /5E75E7CE) + (fp_text reference F1 (at -0.7208 -0.1244) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 1A (at -0.1 0.1) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -9.9 -3.4) (end -9.9 3.4) (layer B.SilkS) (width 0.15)) + (fp_line (start 9.9 -3.4) (end -9.9 -3.4) (layer B.SilkS) (width 0.15)) + (fp_line (start 9.9 3.4) (end 9.9 -3.4) (layer B.SilkS) (width 0.15)) + (fp_line (start -9.9 3.4) (end 9.9 3.4) (layer B.SilkS) (width 0.15)) + (pad 1 thru_hole oval (at 6.95 1.75) (size 4 2.5) (drill oval 1.7 0.6) (layers *.Cu *.Mask) + (net 17 "Net-(F1-Pad1)")) + (pad 1 thru_hole oval (at 6.95 -1.75) (size 4 2.5) (drill oval 1.7 0.6) (layers *.Cu *.Mask) + (net 17 "Net-(F1-Pad1)")) + (pad 2 thru_hole oval (at -6.95 -1.75) (size 4 2.5) (drill oval 1.7 0.6) (layers *.Cu *.Mask) + (net 18 "Net-(F1-Pad2)")) + (pad 2 thru_hole oval (at -6.95 1.75) (size 4 2.5) (drill oval 1.7 0.6) (layers *.Cu *.Mask) + (net 18 "Net-(F1-Pad2)")) + (model /home/eddy/kicad/3D/misc_comp/fuse_smf.wrl + (at (xyz 0 0 0)) + (scale (xyz 2 1.3 1.4)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connectors_USB:USB_B_OST_USB-B1HSxx_Horizontal (layer B.Cu) (tedit 5AFE01FF) (tstamp 5E32E766) + (at 165.4302 94.5896) + (descr "USB B receptacle, Horizontal, through-hole, http://www.on-shore.com/wp-content/uploads/2015/09/usb-b1hsxx.pdf") + (tags "USB-B receptacle horizontal through-hole") + (path /58C433D0) + (fp_text reference P1 (at -2.8882 -1.6096) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value USB_A (at 6.76 -10.27) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.49 4.8) (end 15.01 4.8) (layer B.Fab) (width 0.1)) + (fp_line (start 15.01 4.8) (end 15.01 -7.3) (layer B.Fab) (width 0.1)) + (fp_line (start 15.01 -7.3) (end -1.49 -7.3) (layer B.Fab) (width 0.1)) + (fp_line (start -1.49 -7.3) (end -1.49 3.8) (layer B.Fab) (width 0.1)) + (fp_line (start -1.49 3.8) (end -0.49 4.8) (layer B.Fab) (width 0.1)) + (fp_line (start 2.66 4.91) (end -1.6 4.91) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.6 4.91) (end -1.6 -7.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.6 -7.41) (end 2.66 -7.41) (layer B.SilkS) (width 0.12)) + (fp_line (start 6.76 4.91) (end 15.12 4.91) (layer B.SilkS) (width 0.12)) + (fp_line (start 15.12 4.91) (end 15.12 -7.41) (layer B.SilkS) (width 0.12)) + (fp_line (start 15.12 -7.41) (end 6.76 -7.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.82 0) (end -2.32 0.5) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.32 0.5) (end -2.32 -0.5) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.32 -0.5) (end -1.82 0) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.99 7.02) (end -1.99 -9.52) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.99 -9.52) (end 15.51 -9.52) (layer B.CrtYd) (width 0.05)) + (fp_line (start 15.51 -9.52) (end 15.51 7.02) (layer B.CrtYd) (width 0.05)) + (fp_line (start 15.51 7.02) (end -1.99 7.02) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 6.76 -1.25) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 0.92) (layers *.Cu *.Mask) + (net 9 /5Vusb)) + (pad 2 thru_hole circle (at 0 -2.5) (size 1.7 1.7) (drill 0.92) (layers *.Cu *.Mask) + (net 26 "Net-(D6-Pad2)")) + (pad 3 thru_hole circle (at 2 -2.5) (size 1.7 1.7) (drill 0.92) (layers *.Cu *.Mask) + (net 27 "Net-(D6-Pad3)")) + (pad 4 thru_hole circle (at 2 0) (size 1.7 1.7) (drill 0.92) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 5 thru_hole circle (at 4.71 4.77) (size 3.5 3.5) (drill 2.33) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 5 thru_hole circle (at 4.71 -7.27) (size 3.5 3.5) (drill 2.33) (layers *.Cu *.Mask) + (net 2 GND)) + (model /home/eddy/kicad/3D/conn_pc/usb_B.wrl + (offset (xyz 7 -1.25 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 -90)) + ) + ) + + (module MountingHole:MountingHole_3.2mm_M3 locked (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E32E76E) + (at 85 67) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (path /59143415) + (attr virtual) + (fp_text reference P2 (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Hole (at 0 4.2) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15)) + (fp_text user %R (at 0.3 0) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module MountingHole:MountingHole_3.2mm_M3 locked (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E32E776) + (at 85 113) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (path /5914456D) + (attr virtual) + (fp_text reference P3 (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Hole (at 0 4.2) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05)) + (pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module MountingHole:MountingHole_3.2mm_M3 locked (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E333556) + (at 169.8752 67) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (path /591446F3) + (attr virtual) + (fp_text reference P4 (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Hole (at 0 4.2) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15)) + (fp_text user %R (at 0.3 0) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module MountingHole:MountingHole_3.2mm_M3 locked (layer F.Cu) (tedit 56D1B4CB) (tstamp 5E32E786) + (at 170 113) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (path /591446F9) + (attr virtual) + (fp_text reference P5 (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Hole (at 0 4.2) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15)) + (fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05)) + (pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module TO_SOT_Packages_SMD:SOT-23_Handsoldering (layer B.Cu) (tedit 5A0AB76C) (tstamp 5E32E79B) + (at 128.721 99.9675 180) + (descr "SOT-23, Handsoldering") + (tags SOT-23) + (path /5EC31929) + (attr smd) + (fp_text reference Q1 (at 0.0245 -2.5375) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value SI2305 (at 0 -2.5 180) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 0.76 -1.58) (end -0.7 -1.58) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.7 -1.52) (end 0.7 -1.52) (layer B.Fab) (width 0.1)) + (fp_line (start 0.7 1.52) (end 0.7 -1.52) (layer B.Fab) (width 0.1)) + (fp_line (start -0.7 0.95) (end -0.15 1.52) (layer B.Fab) (width 0.1)) + (fp_line (start -0.15 1.52) (end 0.7 1.52) (layer B.Fab) (width 0.1)) + (fp_line (start -0.7 0.95) (end -0.7 -1.5) (layer B.Fab) (width 0.1)) + (fp_line (start 0.76 1.58) (end -2.4 1.58) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.7 -1.75) (end -2.7 1.75) (layer B.CrtYd) (width 0.05)) + (fp_line (start 2.7 -1.75) (end -2.7 -1.75) (layer B.CrtYd) (width 0.05)) + (fp_line (start 2.7 1.75) (end 2.7 -1.75) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.7 1.75) (end 2.7 1.75) (layer B.CrtYd) (width 0.05)) + (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer B.SilkS) (width 0.12)) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 0.5 0.5) (thickness 0.075)) (justify mirror)) + ) + (pad 3 smd rect (at 1.5 0 180) (size 1.9 0.8) (layers B.Cu B.Paste B.Mask) + (net 34 /~FAULT)) + (pad 2 smd rect (at -1.5 -0.95 180) (size 1.9 0.8) (layers B.Cu B.Paste B.Mask) + (net 3 +3V3)) + (pad 1 smd rect (at -1.5 0.95 180) (size 1.9 0.8) (layers B.Cu B.Paste B.Mask) + (net 51 "Net-(Q1-Pad1)")) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E32E7AC) + (at 131.124 97.3615) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EC494D9) + (attr smd) + (fp_text reference R1 (at 0.0114 -1.7018) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 330 (at 0 -1.43) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 52 /VIO_on)) + (pad 1 smd roundrect (at -0.875 0) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 51 "Net-(Q1-Pad1)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E39AA29) + (at 133.7135 98.2365 90) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EC437C2) + (attr smd) + (fp_text reference R2 (at 0.0114 1.778 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 10k (at 0 -1.43 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 270) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 52 /VIO_on)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E3A1742) + (at 161.6964 80.5802 90) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EE26C91) + (attr smd) + (fp_text reference R3 (at 1.1257 -1.6309 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 120 (at 0 -1.43 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 43 "Net-(J5-Pad1)")) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 4 +5V)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E38135C) + (at 135.0772 77.611 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /58C47F04) + (attr smd) + (fp_text reference R4 (at 2.5514 0.1016 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 15k (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 53 "Net-(R4-Pad1)")) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E396D57) + (at 120.523 107.1245 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EDE6BD3) + (attr smd) + (fp_text reference R5 (at -0.0475 1.796 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 330 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 45 "Net-(J7-Pad1)")) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 22 /ESW0)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E32E801) + (at 125.5395 107.1245 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EDEA80B) + (attr smd) + (fp_text reference R6 (at 0.016 1.669 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 330 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 23 /ESW1)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 44 "Net-(J7-Pad2)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E32E812) + (at 131.6355 107.1245 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EDEBC69) + (attr smd) + (fp_text reference R7 (at 0.016 1.7325 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 330 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 46 "Net-(J8-Pad1)")) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 24 /ESW2)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E32E823) + (at 136.5885 107.1245 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EDEBC73) + (attr smd) + (fp_text reference R8 (at 0.016 1.669 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 330 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 54 /ESW3)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 47 "Net-(J8-Pad2)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E387EF2) + (at 106.9454 72.4916) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /58C488C6) + (attr smd) + (fp_text reference R9 (at 2.7826 0.1016) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 120 (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 14 "Net-(D4-Pad2)")) + (pad 1 smd roundrect (at -0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 55 "Net-(R9-Pad1)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E32E845) + (at 102.1588 76.0082 90) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5ED7FE5E) + (attr smd) + (fp_text reference R10 (at 2.399 0.0508 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 10k (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 25 "Net-(D5-Pad2)")) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile (layer B.Cu) (tedit 5A4E1404) (tstamp 5E32E87E) + (at 90.4494 76.1111) + (descr "1x-dip-switch SPST , Slide, row spacing 7.62 mm (300 mils), body size 6.7x4.1mm (see e.g. https://www.ctscorp.com/wp-content/uploads/209-210.pdf), LowProfile") + (tags "DIP Switch SPST Slide 7.62mm 300mil LowProfile") + (path /5E68DF72) + (fp_text reference SW1 (at -2.7104 1.9464) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value SW_DIP_x01 (at 3.81 -3.11) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 1.46 2.05) (end 7.16 2.05) (layer B.Fab) (width 0.1)) + (fp_line (start 7.16 2.05) (end 7.16 -2.05) (layer B.Fab) (width 0.1)) + (fp_line (start 7.16 -2.05) (end 0.46 -2.05) (layer B.Fab) (width 0.1)) + (fp_line (start 0.46 -2.05) (end 0.46 1.05) (layer B.Fab) (width 0.1)) + (fp_line (start 0.46 1.05) (end 1.46 2.05) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.635) (end 2 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.635) (end 5.62 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 5.62 -0.635) (end 5.62 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 5.62 0.635) (end 2 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.535) (end 3.206667 0.535) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.435) (end 3.206667 0.435) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.335) (end 3.206667 0.335) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.235) (end 3.206667 0.235) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.135) (end 3.206667 0.135) (layer B.Fab) (width 0.1)) + (fp_line (start 2 0.035) (end 3.206667 0.035) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.065) (end 3.206667 -0.065) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.165) (end 3.206667 -0.165) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.265) (end 3.206667 -0.265) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.365) (end 3.206667 -0.365) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.465) (end 3.206667 -0.465) (layer B.Fab) (width 0.1)) + (fp_line (start 2 -0.565) (end 3.206667 -0.565) (layer B.Fab) (width 0.1)) + (fp_line (start 3.206667 0.635) (end 3.206667 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 0.4 2.11) (end 7.221 2.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.4 -2.11) (end 7.221 -2.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.4 2.11) (end 0.4 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.4 -1.04) (end 0.4 -2.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.221 2.11) (end 7.221 0.99) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.221 -0.99) (end 7.221 -2.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.16 2.35) (end 1.543 2.35) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.16 2.35) (end 0.16 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.635) (end 2 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.635) (end 5.62 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.62 -0.635) (end 5.62 0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.62 0.635) (end 2 0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.515) (end 3.206667 0.515) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.395) (end 3.206667 0.395) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.275) (end 3.206667 0.275) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.155) (end 3.206667 0.155) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 0.035) (end 3.206667 0.035) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.085) (end 3.206667 -0.085) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.205) (end 3.206667 -0.205) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.325) (end 3.206667 -0.325) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.445) (end 3.206667 -0.445) (layer B.SilkS) (width 0.12)) + (fp_line (start 2 -0.565) (end 3.206667 -0.565) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.206667 0.635) (end 3.206667 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.1 2.4) (end -1.1 -2.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.1 -2.4) (end 8.7 -2.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8.7 -2.4) (end 8.7 2.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8.7 2.4) (end -1.1 2.4) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 6.39 0 -90) (layer B.Fab) + (effects (font (size 0.6 0.6) (thickness 0.09)) (justify mirror)) + ) + (fp_text user on (at 4.485 1.3425) (layer B.Fab) + (effects (font (size 0.6 0.6) (thickness 0.09)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 13 "Net-(D4-Pad1)")) + (pad 2 thru_hole oval (at 7.62 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 55 "Net-(R9-Pad1)")) + (model ${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 90)) + ) + ) + + (module Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical (layer F.Cu) (tedit 59FED5CC) (tstamp 5E3A7717) + (at 157.9753 79.9973) + (descr "Through hole straight pin header, 1x01, 2.54mm pitch, single row") + (tags "Through hole pin header THT 1x01 2.54mm single row") + (path /5E5DD8CB) + (fp_text reference TP1 (at 3.5507 -1.0508) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value TestPoint (at 0 2.33) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 -1.27) (end 1.27 1.27) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end -1.27 1.27) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 1.27) (end -1.27 -0.635) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start -1.33 1.33) (end 1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.27) (end -1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.33 1.27) (end 1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.8 -1.8) (end -1.8 1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end 1.8 1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.8 1.8) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 3.2512 -0.2667 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 4 +5V)) + (model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x01_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical (layer F.Cu) (tedit 59FED5CC) (tstamp 5E38C555) + (at 154.1272 98.1456) + (descr "Through hole straight pin header, 1x01, 2.54mm pitch, single row") + (tags "Through hole pin header THT 1x01 2.54mm single row") + (path /5E672E87) + (fp_text reference TP2 (at 0 2.667) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value TestPoint (at 0 2.33) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.8 1.8) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end 1.8 1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.8 -1.8) (end -1.8 1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.33 1.27) (end 1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.27) (end -1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.33) (end 1.33 1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 1.27) (end -1.27 -0.635) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end -1.27 1.27) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 -1.27) (end 1.27 1.27) (layer F.Fab) (width 0.1)) + (fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1)) + (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 3 +3V3)) + (model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x01_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_SMD:SOT-223-3_TabPin2 (layer B.Cu) (tedit 5A02FF57) (tstamp 5E38E13E) + (at 106.2478 79.8322) + (descr "module CMS SOT223 4 pins") + (tags "CMS SOT") + (path /5A5866DE) + (attr smd) + (fp_text reference U2 (at 0 4.5) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value LM1117-5.0 (at 0 -4.5) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 1.85 3.35) (end 1.85 -3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -1.85 -3.35) (end 1.85 -3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -4.1 3.41) (end 1.91 3.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.85 3.35) (end 1.85 3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -1.85 -3.41) (end 1.91 -3.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.85 2.35) (end -1.85 -3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -1.85 2.35) (end -0.85 3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -4.4 3.6) (end -4.4 -3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.4 -3.6) (end 4.4 -3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.4 -3.6) (end 4.4 3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.4 3.6) (end -4.4 3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.91 3.41) (end 1.91 2.15) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.91 -3.41) (end 1.91 -2.15) (layer B.SilkS) (width 0.12)) + (fp_text user %R (at 0 0 -90) (layer B.Fab) + (effects (font (size 0.8 0.8) (thickness 0.12)) (justify mirror)) + ) + (pad 1 smd rect (at -3.15 2.3) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 2 GND)) + (pad 3 smd rect (at -3.15 -2.3) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 1 /12Vin)) + (pad 2 smd rect (at -3.15 0) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 61 /5Vin)) + (pad 2 smd rect (at 3.15 0) (size 2 3.8) (layers B.Cu B.Paste B.Mask) + (net 61 /5Vin)) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-223.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_SMD:SOT-223-3_TabPin2 (layer B.Cu) (tedit 5A02FF57) (tstamp 5E32E8F3) + (at 156.7938 92.1372 180) + (descr "module CMS SOT223 4 pins") + (tags "CMS SOT") + (path /58C431FC) + (attr smd) + (fp_text reference U3 (at -0.3507 -4.4623) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value LM1117-3.3 (at 0 -4.5) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0 270) (layer B.Fab) + (effects (font (size 0.8 0.8) (thickness 0.12)) (justify mirror)) + ) + (fp_line (start 1.91 -3.41) (end 1.91 -2.15) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.91 3.41) (end 1.91 2.15) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.4 3.6) (end -4.4 3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.4 -3.6) (end 4.4 3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.4 -3.6) (end 4.4 -3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.4 3.6) (end -4.4 -3.6) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.85 2.35) (end -0.85 3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -1.85 2.35) (end -1.85 -3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -1.85 -3.41) (end 1.91 -3.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.85 3.35) (end 1.85 3.35) (layer B.Fab) (width 0.1)) + (fp_line (start -4.1 3.41) (end 1.91 3.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.85 -3.35) (end 1.85 -3.35) (layer B.Fab) (width 0.1)) + (fp_line (start 1.85 3.35) (end 1.85 -3.35) (layer B.Fab) (width 0.1)) + (pad 2 smd rect (at 3.15 0 180) (size 2 3.8) (layers B.Cu B.Paste B.Mask) + (net 3 +3V3)) + (pad 2 smd rect (at -3.15 0 180) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 3 +3V3)) + (pad 3 smd rect (at -3.15 -2.3 180) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 4 +5V)) + (pad 1 smd rect (at -3.15 2.3 180) (size 2 1.5) (layers B.Cu B.Paste B.Mask) + (net 2 GND)) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-223.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Package_SO:SOIC-8_3.9x4.9mm_P1.27mm (layer F.Cu) (tedit 5A02F2D3) (tstamp 5E32E910) + (at 138.8364 78.1304 90) + (descr "8-Lead Plastic Small Outline (SN) - Narrow, 3.90 mm Body [SOIC] (see Microchip Packaging Specification http://ww1.microchip.com/downloads/en/PackagingSpec/00000049BQ.pdf)") + (tags "SOIC 1.27") + (path /58C43297) + (attr smd) + (fp_text reference U4 (at -0.0508 3.7592 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MCP2551-I/SN (at 0 3.5 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.95 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 2.45) (end -1.95 -1.45) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 -1.45) (end -0.95 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -3.73 -2.7) (end -3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.73 -2.7) (end 3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.73 -2.7) (end 3.73 -2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.73 2.7) (end 3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.075 -2.575) (end -2.075 -2.525) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 -2.575) (end 2.075 -2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 2.575) (end 2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end -2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.575) (end 2.075 -2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end 2.075 2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.525) (end -3.475 -2.525) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -2.7 -1.905 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 7 /CAN_Tx)) + (pad 2 smd rect (at -2.7 -0.635 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 3 smd rect (at -2.7 0.635 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 4 +5V)) + (pad 4 smd rect (at -2.7 1.905 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 8 /CAN_Rx)) + (pad 5 smd rect (at 2.7 1.905 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 6 smd rect (at 2.7 0.635 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(D4-Pad2)")) + (pad 7 smd rect (at 2.7 -0.635 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(D4-Pad1)")) + (pad 8 smd rect (at 2.7 -1.905 90) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 53 "Net-(R4-Pad1)")) + (model ${KISYS3DMOD}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Package_QFP:LQFP-48_7x7mm_P0.5mm (layer F.Cu) (tedit 5C18330E) (tstamp 5E37E3DE) + (at 133.35 92.329) + (descr "LQFP, 48 Pin (https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2358-16.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "LQFP QFP") + (path /5E89EA8D) + (attr smd) + (fp_text reference U5 (at 0 0.0254) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value STM32F072CBTx (at 0 5.85) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 3.16 3.61) (end 3.61 3.61) (layer F.SilkS) (width 0.12)) + (fp_line (start 3.61 3.61) (end 3.61 3.16) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.16 3.61) (end -3.61 3.61) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.61 3.61) (end -3.61 3.16) (layer F.SilkS) (width 0.12)) + (fp_line (start 3.16 -3.61) (end 3.61 -3.61) (layer F.SilkS) (width 0.12)) + (fp_line (start 3.61 -3.61) (end 3.61 -3.16) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.16 -3.61) (end -3.61 -3.61) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.61 -3.61) (end -3.61 -3.16) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.61 -3.16) (end -4.9 -3.16) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.1)) + (fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.1)) + (fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.1)) + (fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.1)) + (fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.1)) + (fp_line (start 0 -5.15) (end -3.15 -5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.15 -5.15) (end -3.15 -3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.15 -3.75) (end -3.75 -3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 -3.75) (end -3.75 -3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 -3.15) (end -5.15 -3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.15 -3.15) (end -5.15 0) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0 -5.15) (end 3.15 -5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.15 -5.15) (end 3.15 -3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.15 -3.75) (end 3.75 -3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.75 -3.75) (end 3.75 -3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.75 -3.15) (end 5.15 -3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 5.15 -3.15) (end 5.15 0) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0 5.15) (end -3.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.15 5.15) (end -3.15 3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.15 3.75) (end -3.75 3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 3.75) (end -3.75 3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 3.15) (end -5.15 3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.15 3.15) (end -5.15 0) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0 5.15) (end 3.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.15 5.15) (end 3.15 3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.15 3.75) (end 3.75 3.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.75 3.75) (end 3.75 3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.75 3.15) (end 5.15 3.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 5.15 3.15) (end 5.15 0) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 smd roundrect (at -4.1625 -2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 2 smd roundrect (at -4.1625 -2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 42 /~EN)) + (pad 3 smd roundrect (at -4.1625 -1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 39 /~CS)) + (pad 4 smd roundrect (at -4.1625 -1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 37 /~SLEEP)) + (pad 5 smd roundrect (at -4.1625 -0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 52 /VIO_on)) + (pad 6 smd roundrect (at -4.1625 -0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 34 /~FAULT)) + (pad 7 smd roundrect (at -4.1625 0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 5 /NRST)) + (pad 8 smd roundrect (at -4.1625 0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 9 smd roundrect (at -4.1625 1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 10 smd roundrect (at -4.1625 1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 15 /AIN0)) + (pad 11 smd roundrect (at -4.1625 2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 16 /AIN1)) + (pad 12 smd roundrect (at -4.1625 2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 13 smd roundrect (at -2.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 36 /STEP)) + (pad 14 smd roundrect (at -2.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 35 /DIR)) + (pad 15 smd roundrect (at -1.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 40 /SCK)) + (pad 16 smd roundrect (at -1.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 38 /MISO)) + (pad 17 smd roundrect (at -0.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 41 /MOSI)) + (pad 18 smd roundrect (at -0.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 22 /ESW0)) + (pad 19 smd roundrect (at 0.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 23 /ESW1)) + (pad 20 smd roundrect (at 0.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 24 /ESW2)) + (pad 21 smd roundrect (at 1.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 54 /ESW3)) + (pad 22 smd roundrect (at 1.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 23 smd roundrect (at 2.25 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 24 smd roundrect (at 2.75 4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 25 smd roundrect (at 4.1625 2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 10 /brdaddr0)) + (pad 26 smd roundrect (at 4.1625 2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 11 /brdaddr1)) + (pad 27 smd roundrect (at 4.1625 1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 12 /brdaddr2)) + (pad 28 smd roundrect (at 4.1625 1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 19 /brdaddr3)) + (pad 29 smd roundrect (at 4.1625 0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 58 /Tx|Rx)) + (pad 30 smd roundrect (at 4.1625 0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 59 /Tx)) + (pad 31 smd roundrect (at 4.1625 -0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 60 /Rx)) + (pad 32 smd roundrect (at 4.1625 -0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 56 "Net-(R11-Pad2)")) + (pad 33 smd roundrect (at 4.1625 -1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 57 "Net-(R12-Pad2)")) + (pad 34 smd roundrect (at 4.1625 -1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 20 /SWDIO)) + (pad 35 smd roundrect (at 4.1625 -2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 36 smd roundrect (at 4.1625 -2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 37 smd roundrect (at 2.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 21 /SWCLK)) + (pad 38 smd roundrect (at 2.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 39 smd roundrect (at 1.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 40 smd roundrect (at 1.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 41 smd roundrect (at 0.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 42 smd roundrect (at 0.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 43 smd roundrect (at -0.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) + (pad 44 smd roundrect (at -0.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 6 /BOOT0)) + (pad 45 smd roundrect (at -1.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 8 /CAN_Rx)) + (pad 46 smd roundrect (at -1.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 7 /CAN_Tx)) + (pad 47 smd roundrect (at -2.25 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 48 smd roundrect (at -2.75 -4.1625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (model ${KISYS3DMOD}/Package_QFP.3dshapes/LQFP-48_7x7mm_P0.5mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_THT:CP_Radial_D8.0mm_P3.50mm (layer B.Cu) (tedit 5AE50EF0) (tstamp 5E332B11) + (at 101.2952 90.5764) + (descr "CP, Radial series, Radial, pin pitch=3.50mm, , diameter=8mm, Electrolytic Capacitor") + (tags "CP Radial series Radial pin pitch 3.50mm diameter 8mm Electrolytic Capacitor") + (path /5EC67CA1) + (fp_text reference C2 (at 1.75 5.25) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 100uF (at 1.75 -5.25) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_circle (center 1.75 0) (end 5.75 0) (layer B.Fab) (width 0.1)) + (fp_circle (center 1.75 0) (end 5.87 0) (layer B.SilkS) (width 0.12)) + (fp_circle (center 1.75 0) (end 6 0) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.676759 1.7475) (end -0.876759 1.7475) (layer B.Fab) (width 0.1)) + (fp_line (start -1.276759 2.1475) (end -1.276759 1.3475) (layer B.Fab) (width 0.1)) + (fp_line (start 1.75 4.08) (end 1.75 -4.08) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.79 4.08) (end 1.79 -4.08) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.83 4.08) (end 1.83 -4.08) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.87 4.079) (end 1.87 -4.079) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.91 4.077) (end 1.91 -4.077) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.95 4.076) (end 1.95 -4.076) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.99 4.074) (end 1.99 -4.074) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.03 4.071) (end 2.03 -4.071) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.07 4.068) (end 2.07 -4.068) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.11 4.065) (end 2.11 -4.065) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.15 4.061) (end 2.15 -4.061) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.19 4.057) (end 2.19 -4.057) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.23 4.052) (end 2.23 -4.052) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.27 4.048) (end 2.27 -4.048) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.31 4.042) (end 2.31 -4.042) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.35 4.037) (end 2.35 -4.037) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.39 4.03) (end 2.39 -4.03) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.43 4.024) (end 2.43 -4.024) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.471 4.017) (end 2.471 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.471 -1.04) (end 2.471 -4.017) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.511 4.01) (end 2.511 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.511 -1.04) (end 2.511 -4.01) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.551 4.002) (end 2.551 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.551 -1.04) (end 2.551 -4.002) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.591 3.994) (end 2.591 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.591 -1.04) (end 2.591 -3.994) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.631 3.985) (end 2.631 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.631 -1.04) (end 2.631 -3.985) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.671 3.976) (end 2.671 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.671 -1.04) (end 2.671 -3.976) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.711 3.967) (end 2.711 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.711 -1.04) (end 2.711 -3.967) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.751 3.957) (end 2.751 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.751 -1.04) (end 2.751 -3.957) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.791 3.947) (end 2.791 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.791 -1.04) (end 2.791 -3.947) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.831 3.936) (end 2.831 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.831 -1.04) (end 2.831 -3.936) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.871 3.925) (end 2.871 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.871 -1.04) (end 2.871 -3.925) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.911 3.914) (end 2.911 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.911 -1.04) (end 2.911 -3.914) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.951 3.902) (end 2.951 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.951 -1.04) (end 2.951 -3.902) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.991 3.889) (end 2.991 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.991 -1.04) (end 2.991 -3.889) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.031 3.877) (end 3.031 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.031 -1.04) (end 3.031 -3.877) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.071 3.863) (end 3.071 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.071 -1.04) (end 3.071 -3.863) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.111 3.85) (end 3.111 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.111 -1.04) (end 3.111 -3.85) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.151 3.835) (end 3.151 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.151 -1.04) (end 3.151 -3.835) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.191 3.821) (end 3.191 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.191 -1.04) (end 3.191 -3.821) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.231 3.805) (end 3.231 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.231 -1.04) (end 3.231 -3.805) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.271 3.79) (end 3.271 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.271 -1.04) (end 3.271 -3.79) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.311 3.774) (end 3.311 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.311 -1.04) (end 3.311 -3.774) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.351 3.757) (end 3.351 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.351 -1.04) (end 3.351 -3.757) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.391 3.74) (end 3.391 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.391 -1.04) (end 3.391 -3.74) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.431 3.722) (end 3.431 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.431 -1.04) (end 3.431 -3.722) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.471 3.704) (end 3.471 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.471 -1.04) (end 3.471 -3.704) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.511 3.686) (end 3.511 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.511 -1.04) (end 3.511 -3.686) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.551 3.666) (end 3.551 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.551 -1.04) (end 3.551 -3.666) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.591 3.647) (end 3.591 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.591 -1.04) (end 3.591 -3.647) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.631 3.627) (end 3.631 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.631 -1.04) (end 3.631 -3.627) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.671 3.606) (end 3.671 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.671 -1.04) (end 3.671 -3.606) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.711 3.584) (end 3.711 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.711 -1.04) (end 3.711 -3.584) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.751 3.562) (end 3.751 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.751 -1.04) (end 3.751 -3.562) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.791 3.54) (end 3.791 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.791 -1.04) (end 3.791 -3.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.831 3.517) (end 3.831 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.831 -1.04) (end 3.831 -3.517) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.871 3.493) (end 3.871 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.871 -1.04) (end 3.871 -3.493) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.911 3.469) (end 3.911 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.911 -1.04) (end 3.911 -3.469) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.951 3.444) (end 3.951 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.951 -1.04) (end 3.951 -3.444) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.991 3.418) (end 3.991 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.991 -1.04) (end 3.991 -3.418) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.031 3.392) (end 4.031 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.031 -1.04) (end 4.031 -3.392) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.071 3.365) (end 4.071 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.071 -1.04) (end 4.071 -3.365) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.111 3.338) (end 4.111 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.111 -1.04) (end 4.111 -3.338) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.151 3.309) (end 4.151 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.151 -1.04) (end 4.151 -3.309) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.191 3.28) (end 4.191 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.191 -1.04) (end 4.191 -3.28) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.231 3.25) (end 4.231 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.231 -1.04) (end 4.231 -3.25) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.271 3.22) (end 4.271 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.271 -1.04) (end 4.271 -3.22) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.311 3.189) (end 4.311 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.311 -1.04) (end 4.311 -3.189) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.351 3.156) (end 4.351 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.351 -1.04) (end 4.351 -3.156) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.391 3.124) (end 4.391 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.391 -1.04) (end 4.391 -3.124) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.431 3.09) (end 4.431 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.431 -1.04) (end 4.431 -3.09) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.471 3.055) (end 4.471 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.471 -1.04) (end 4.471 -3.055) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.511 3.019) (end 4.511 1.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.511 -1.04) (end 4.511 -3.019) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.551 2.983) (end 4.551 -2.983) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.591 2.945) (end 4.591 -2.945) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.631 2.907) (end 4.631 -2.907) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.671 2.867) (end 4.671 -2.867) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.711 2.826) (end 4.711 -2.826) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.751 2.784) (end 4.751 -2.784) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.791 2.741) (end 4.791 -2.741) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.831 2.697) (end 4.831 -2.697) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.871 2.651) (end 4.871 -2.651) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.911 2.604) (end 4.911 -2.604) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.951 2.556) (end 4.951 -2.556) (layer B.SilkS) (width 0.12)) + (fp_line (start 4.991 2.505) (end 4.991 -2.505) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.031 2.454) (end 5.031 -2.454) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.071 2.4) (end 5.071 -2.4) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.111 2.345) (end 5.111 -2.345) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.151 2.287) (end 5.151 -2.287) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.191 2.228) (end 5.191 -2.228) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.231 2.166) (end 5.231 -2.166) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.271 2.102) (end 5.271 -2.102) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.311 2.034) (end 5.311 -2.034) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.351 1.964) (end 5.351 -1.964) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.391 1.89) (end 5.391 -1.89) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.431 1.813) (end 5.431 -1.813) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.471 1.731) (end 5.471 -1.731) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.511 1.645) (end 5.511 -1.645) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.551 1.552) (end 5.551 -1.552) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.591 1.453) (end 5.591 -1.453) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.631 1.346) (end 5.631 -1.346) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.671 1.229) (end 5.671 -1.229) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.711 1.098) (end 5.711 -1.098) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.751 0.948) (end 5.751 -0.948) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.791 0.768) (end 5.791 -0.768) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.831 0.533) (end 5.831 -0.533) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.659698 2.315) (end -1.859698 2.315) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.259698 2.715) (end -2.259698 1.915) (layer B.SilkS) (width 0.12)) + (fp_text user %R (at 1.75 0) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 1 /12Vin)) + (pad 2 thru_hole circle (at 3.5 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_THT.3dshapes/CP_Radial_D8.0mm_P3.50mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E38E109) + (at 100.5332 80.9625 270) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /5A586F5C) + (attr smd) + (fp_text reference C3 (at 0.0254 1.7272 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0.1 (at 0 -1.43 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 61 /5Vin)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E332BC9) + (at 119.0752 90.3251 270) + (descr "Tantalum Capacitor SMD Kemet-C (6032-28 Metric), IPC_7351 nominal, (Body size from: http://www.kemet.com/Lists/ProductCatalog/Attachments/253/KEM_TC101_STD.pdf), generated with kicad-footprint-generator") + (tags "capacitor tantalum") + (path /5E5E1875) + (attr smd) + (fp_text reference C4 (at 4.8487 0.0254 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value "47uF, 10V" (at 0 -2.55 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 3.92 -1.85) (end -3.92 -1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start 3.92 1.85) (end 3.92 -1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.92 1.85) (end 3.92 1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.92 -1.85) (end -3.92 1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.935 -1.71) (end 3 -1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.935 1.71) (end -3.935 -1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start 3 1.71) (end -3.935 1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start 3 -1.6) (end 3 1.6) (layer B.Fab) (width 0.1)) + (fp_line (start -3 -1.6) (end 3 -1.6) (layer B.Fab) (width 0.1)) + (fp_line (start -3 0.8) (end -3 -1.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.2 1.6) (end -3 0.8) (layer B.Fab) (width 0.1)) + (fp_line (start 3 1.6) (end -2.2 1.6) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 2.55 0 270) (size 2.25 2.35) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.111111) + (net 2 GND)) + (pad 1 smd roundrect (at -2.55 0 270) (size 2.25 2.35) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.111111) + (net 4 +5V)) + (model ${KISYS3DMOD}/Capacitor_Tantalum_SMD.3dshapes/CP_EIA-6032-28_Kemet-C.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E332BDB) + (at 135.1788 92.6833 270) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /5E7836BE) + (attr smd) + (fp_text reference C5 (at 2.5006 0 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0.1 (at 0 -1.43 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E332BEB) + (at 137.9347 93.0302 270) + (descr "Tantalum Capacitor SMD Kemet-C (6032-28 Metric), IPC_7351 nominal, (Body size from: http://www.kemet.com/Lists/ProductCatalog/Attachments/253/KEM_TC101_STD.pdf), generated with kicad-footprint-generator") + (tags "capacitor tantalum") + (path /5E794E88) + (attr smd) + (fp_text reference C6 (at -4.8287 0.0254 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value "47uF, 10V" (at 0 -2.55 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 3 1.6) (end -2.2 1.6) (layer B.Fab) (width 0.1)) + (fp_line (start -2.2 1.6) (end -3 0.8) (layer B.Fab) (width 0.1)) + (fp_line (start -3 0.8) (end -3 -1.6) (layer B.Fab) (width 0.1)) + (fp_line (start -3 -1.6) (end 3 -1.6) (layer B.Fab) (width 0.1)) + (fp_line (start 3 -1.6) (end 3 1.6) (layer B.Fab) (width 0.1)) + (fp_line (start 3 1.71) (end -3.935 1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.935 1.71) (end -3.935 -1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.935 -1.71) (end 3 -1.71) (layer B.SilkS) (width 0.12)) + (fp_line (start -3.92 -1.85) (end -3.92 1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.92 1.85) (end 3.92 1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start 3.92 1.85) (end 3.92 -1.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start 3.92 -1.85) (end -3.92 -1.85) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 smd roundrect (at -2.55 0 270) (size 2.25 2.35) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.111111) + (net 3 +3V3)) + (pad 2 smd roundrect (at 2.55 0 270) (size 2.25 2.35) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.111111) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_Tantalum_SMD.3dshapes/CP_EIA-6032-28_Kemet-C.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBE) (tstamp 5E332C0D) + (at 128.8288 86.8794 270) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /590A8102) + (attr smd) + (fp_text reference C10 (at -0.0114 2.286 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 0.1 (at 0 1.43 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Diode_SMD:D_SMB_Handsoldering (layer B.Cu) (tedit 590B3D55) (tstamp 5E38CE5A) + (at 121.76 83.7692 180) + (descr "Diode SMB (DO-214AA) Handsoldering") + (tags "Diode SMB (DO-214AA) Handsoldering") + (path /5E615086) + (attr smd) + (fp_text reference D1 (at 5.827 -0.0033) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value MBRS130L (at 0 -3) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 3) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -4.6 2.15) (end -4.6 -2.15) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.3 -2) (end -2.3 -2) (layer B.Fab) (width 0.1)) + (fp_line (start -2.3 -2) (end -2.3 2) (layer B.Fab) (width 0.1)) + (fp_line (start 2.3 2) (end 2.3 -2) (layer B.Fab) (width 0.1)) + (fp_line (start 2.3 2) (end -2.3 2) (layer B.Fab) (width 0.1)) + (fp_line (start -4.7 2.25) (end 4.7 2.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.7 2.25) (end 4.7 -2.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.7 -2.25) (end -4.7 -2.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start -4.7 -2.25) (end -4.7 2.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.64944 -0.00102) (end -1.55114 -0.00102) (layer B.Fab) (width 0.1)) + (fp_line (start 0.50118 -0.00102) (end 1.4994 -0.00102) (layer B.Fab) (width 0.1)) + (fp_line (start -0.64944 0.79908) (end -0.64944 -0.80112) (layer B.Fab) (width 0.1)) + (fp_line (start 0.50118 -0.75032) (end 0.50118 0.79908) (layer B.Fab) (width 0.1)) + (fp_line (start -0.64944 -0.00102) (end 0.50118 -0.75032) (layer B.Fab) (width 0.1)) + (fp_line (start -0.64944 -0.00102) (end 0.50118 0.79908) (layer B.Fab) (width 0.1)) + (fp_line (start -4.6 -2.15) (end 2.7 -2.15) (layer B.SilkS) (width 0.12)) + (fp_line (start -4.6 2.15) (end 2.7 2.15) (layer B.SilkS) (width 0.12)) + (pad 1 smd rect (at -2.7 0 180) (size 3.5 2.3) (layers B.Cu B.Paste B.Mask) + (net 4 +5V)) + (pad 2 smd rect (at 2.7 0 180) (size 3.5 2.3) (layers B.Cu B.Paste B.Mask) + (net 61 /5Vin)) + (model ${KISYS3DMOD}/Diode_SMD.3dshapes/D_SMB.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Package_SO:SOIC-8_3.9x4.9mm_P1.27mm (layer F.Cu) (tedit 5A02F2D3) (tstamp 5E332C39) + (at 153.3728 91.8718 180) + (descr "8-Lead Plastic Small Outline (SN) - Narrow, 3.90 mm Body [SOIC] (see Microchip Packaging Specification http://ww1.microchip.com/downloads/en/PackagingSpec/00000049BQ.pdf)") + (tags "SOIC 1.27") + (path /59098D4D) + (attr smd) + (fp_text reference D6 (at 0 -3.5) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value USB6B1 (at 0 3.5) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.95 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 2.45) (end -1.95 -1.45) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 -1.45) (end -0.95 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -3.73 -2.7) (end -3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.73 -2.7) (end 3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.73 -2.7) (end 3.73 -2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.73 2.7) (end 3.73 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.075 -2.575) (end -2.075 -2.525) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 -2.575) (end 2.075 -2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 2.575) (end 2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end -2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.575) (end 2.075 -2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end 2.075 2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.525) (end -3.475 -2.525) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -2.7 -1.905 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 9 /5Vusb)) + (pad 2 smd rect (at -2.7 -0.635 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 26 "Net-(D6-Pad2)")) + (pad 3 smd rect (at -2.7 0.635 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 27 "Net-(D6-Pad3)")) + (pad 4 smd rect (at -2.7 1.905 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 5 smd rect (at 2.7 1.905 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 6 smd rect (at 2.7 0.635 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 28 "Net-(D6-Pad6)")) + (pad 7 smd rect (at 2.7 -0.635 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(D6-Pad7)")) + (pad 8 smd rect (at 2.7 -1.905 180) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 9 /5Vusb)) + (model ${KISYS3DMOD}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder (layer F.Cu) (tedit 5B4B45C8) (tstamp 5E332C55) + (at 114.291 82.8421) + (descr "Diode SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator") + (tags "diode handsolder") + (path /59684468) + (attr smd) + (fp_text reference D7 (at 2.9808 0.0254) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MM3Z3V9 (at 0 1.65) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.5 0.5) (thickness 0.08))) + ) + (fp_line (start 1.85 0.95) (end -1.85 0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.85 -0.95) (end 1.85 0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.85 -0.95) (end 1.85 -0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.85 0.95) (end -1.85 -0.95) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.86 0.96) (end 1 0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.86 -0.96) (end -1.86 0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 -0.96) (end -1.86 -0.96) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 0.6) (end 1 -0.6) (layer F.Fab) (width 0.1)) + (fp_line (start -1 0.6) (end 1 0.6) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.3) (end -1 0.6) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.6) (end -1 -0.3) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.6) (end -0.7 -0.6) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 1.025 0) (size 1.15 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.217391) + (net 2 GND)) + (pad 1 smd roundrect (at -1.025 0) (size 1.15 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.217391) + (net 15 /AIN0)) + (model ${KISYS3DMOD}/Diode_SMD.3dshapes/D_0805_2012Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder (layer B.Cu) (tedit 5B4B45C8) (tstamp 5E332C79) + (at 123.4403 89.2175 180) + (descr "Diode SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: https://docs.google.com/spreadsheets/d/1BsfQQcO9C6DZCsRaXUlFlo91Tg2WpOkGARC1WS5S8t0/edit?usp=sharing), generated with kicad-footprint-generator") + (tags "diode handsolder") + (path /5E7D7999) + (attr smd) + (fp_text reference D8 (at -1.3827 -1.667) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value MM3Z3V9 (at 0 -1.65) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 1 0.6) (end -0.7 0.6) (layer B.Fab) (width 0.1)) + (fp_line (start -0.7 0.6) (end -1 0.3) (layer B.Fab) (width 0.1)) + (fp_line (start -1 0.3) (end -1 -0.6) (layer B.Fab) (width 0.1)) + (fp_line (start -1 -0.6) (end 1 -0.6) (layer B.Fab) (width 0.1)) + (fp_line (start 1 -0.6) (end 1 0.6) (layer B.Fab) (width 0.1)) + (fp_line (start 1 0.96) (end -1.86 0.96) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.86 0.96) (end -1.86 -0.96) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.86 -0.96) (end 1 -0.96) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.85 -0.95) (end -1.85 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.85 0.95) (end 1.85 0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.85 0.95) (end 1.85 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.85 -0.95) (end -1.85 -0.95) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0) (layer B.Fab) + (effects (font (size 0.5 0.5) (thickness 0.08)) (justify mirror)) + ) + (pad 1 smd roundrect (at -1.025 0 180) (size 1.15 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.217391) + (net 16 /AIN1)) + (pad 2 smd roundrect (at 1.025 0 180) (size 1.15 1.4) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.217391) + (net 2 GND)) + (model ${KISYS3DMOD}/Diode_SMD.3dshapes/D_0805_2012Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical (layer B.Cu) (tedit 5A19A420) (tstamp 5E380D50) + (at 96.72 105.7356) + (descr "Through hole straight socket strip, 1x08, 2.54mm pitch, single row (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 1x08 2.54mm single row") + (path /5EBB1080) + (fp_text reference J3 (at -2.5675 -19.6136) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x08_Female (at 0 -20.55) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -1.27 1.27) (end 0.635 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 0.635 1.27) (end 1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 0.635) (end 1.27 -19.05) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -19.05) (end -1.27 -19.05) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -19.05) (end -1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -19.11) (end 1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 1.33) (end 1.33 0) (layer B.SilkS) (width 0.12)) + (fp_line (start 0 1.33) (end 1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.8 1.8) (end 1.75 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 1.8) (end 1.75 -19.55) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 -19.55) (end -1.8 -19.55) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -19.55) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 2 thru_hole oval (at 0 -2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 34 /~FAULT)) + (pad 3 thru_hole oval (at 0 -5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 30 "Net-(J1-Pad2)")) + (pad 4 thru_hole oval (at 0 -7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 31 "Net-(J1-Pad1)")) + (pad 5 thru_hole oval (at 0 -10.16) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 32 "Net-(J2-Pad1)")) + (pad 6 thru_hole oval (at 0 -12.7) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 33 "Net-(J2-Pad2)")) + (pad 7 thru_hole oval (at 0 -15.24) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 8 thru_hole oval (at 0 -17.78) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 1 /12Vin)) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x08_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical (layer B.Cu) (tedit 5A19A420) (tstamp 5E37F870) + (at 109.22 87.9556 180) + (descr "Through hole straight socket strip, 1x08, 2.54mm pitch, single row (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 1x08 2.54mm single row") + (path /5EC1943E) + (fp_text reference J4 (at -2.776 0.1826) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value Conn_01x08_Female (at 0 -20.55) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 -8.89 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -1.8 -19.55) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 -19.55) (end -1.8 -19.55) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.75 1.8) (end 1.75 -19.55) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end 1.75 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 0 1.33) (end 1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 1.33) (end 1.33 0) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.27) (end 1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -19.11) (end 1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -19.11) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.33 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 -19.05) (end -1.27 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -19.05) (end -1.27 -19.05) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 0.635) (end 1.27 -19.05) (layer B.Fab) (width 0.1)) + (fp_line (start 0.635 1.27) (end 1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 1.27) (end 0.635 1.27) (layer B.Fab) (width 0.1)) + (pad 8 thru_hole oval (at 0 -17.78 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 35 /DIR)) + (pad 7 thru_hole oval (at 0 -15.24 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 36 /STEP)) + (pad 6 thru_hole oval (at 0 -12.7 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 37 /~SLEEP)) + (pad 5 thru_hole oval (at 0 -10.16 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 38 /MISO)) + (pad 4 thru_hole oval (at 0 -7.62 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 39 /~CS)) + (pad 3 thru_hole oval (at 0 -5.08 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 40 /SCK)) + (pad 2 thru_hole oval (at 0 -2.54 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 41 /MOSI)) + (pad 1 thru_hole rect (at 0 0 180) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 42 /~EN)) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x08_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm (layer B.Cu) (tedit 59FEDEE2) (tstamp 5E332DD8) + (at 110.5916 69.889062) + (descr "9-pin D-Sub connector, horizontal/angled (90 deg), THT-mount, female, pitch 2.77x2.84mm, pin-PCB-offset 4.9399999999999995mm, distance of mounting holes 25mm, distance of mounting holes to PCB edge 7.4799999999999995mm, see https://disti-assets.s3.amazonaws.com/tonar/files/datasheets/16730.pdf") + (tags "9-pin D-Sub connector horizontal angled 90deg THT female pitch 2.77x2.84mm pin-PCB-offset 4.9399999999999995mm mounting-holes-distance 25mm mounting-hole-offset 25mm") + (path /5A5935B2) + (fp_text reference J9 (at 1.2065 4.151938) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value DB9_Female (at -5.54 -15.85) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_arc (start -18.04 -0.3) (end -19.64 -0.3) (angle -180) (layer B.Fab) (width 0.1)) + (fp_arc (start 6.96 -0.3) (end 5.36 -0.3) (angle -180) (layer B.Fab) (width 0.1)) + (fp_line (start -20.965 2.7) (end -20.965 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start -20.965 -7.78) (end 9.885 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start 9.885 -7.78) (end 9.885 2.7) (layer B.Fab) (width 0.1)) + (fp_line (start 9.885 2.7) (end -20.965 2.7) (layer B.Fab) (width 0.1)) + (fp_line (start -20.965 -7.78) (end -20.965 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -20.965 -8.18) (end 9.885 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 9.885 -8.18) (end 9.885 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start 9.885 -7.78) (end -20.965 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start -13.69 -8.18) (end -13.69 -14.35) (layer B.Fab) (width 0.1)) + (fp_line (start -13.69 -14.35) (end 2.61 -14.35) (layer B.Fab) (width 0.1)) + (fp_line (start 2.61 -14.35) (end 2.61 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 2.61 -8.18) (end -13.69 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -20.54 -8.18) (end -20.54 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start -20.54 -13.18) (end -15.54 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start -15.54 -13.18) (end -15.54 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -15.54 -8.18) (end -20.54 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 4.46 -8.18) (end 4.46 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start 4.46 -13.18) (end 9.46 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start 9.46 -13.18) (end 9.46 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 9.46 -8.18) (end 4.46 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -19.64 -7.78) (end -19.64 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start -16.44 -7.78) (end -16.44 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start 5.36 -7.78) (end 5.36 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start 8.56 -7.78) (end 8.56 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start -21.025 -7.72) (end -21.025 2.76) (layer B.SilkS) (width 0.12)) + (fp_line (start -21.025 2.76) (end 9.945 2.76) (layer B.SilkS) (width 0.12)) + (fp_line (start 9.945 2.76) (end 9.945 -7.72) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.25 3.654338) (end 0.25 3.654338) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.25 3.654338) (end 0 3.221325) (layer B.SilkS) (width 0.12)) + (fp_line (start 0 3.221325) (end -0.25 3.654338) (layer B.SilkS) (width 0.12)) + (fp_line (start -21.5 3.25) (end -21.5 -14.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -21.5 -14.85) (end 10.4 -14.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start 10.4 -14.85) (end 10.4 3.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 10.4 3.25) (end -21.5 3.25) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at -5.54 -11.265) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at -2.77 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 14 "Net-(D4-Pad2)")) + (pad 3 thru_hole circle (at -5.54 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 4 thru_hole circle (at -8.31 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 5 thru_hole circle (at -11.08 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 6 thru_hole circle (at -1.385 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 7 thru_hole circle (at -4.155 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 13 "Net-(D4-Pad1)")) + (pad 8 thru_hole circle (at -6.925 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 9 thru_hole circle (at -9.695 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 18 "Net-(F1-Pad2)")) + (pad 0 thru_hole circle (at -18.04 -0.3) (size 4 4) (drill 3.2) (layers *.Cu *.Mask)) + (pad 0 thru_hole circle (at 6.96 -0.3) (size 4 4) (drill 3.2) (layers *.Cu *.Mask)) + (model ${KISYS3DMOD}/Connector_Dsub.3dshapes/DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_Dsub:DSUB-9_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm (layer B.Cu) (tedit 59FEDEE2) (tstamp 5E332E38) + (at 144.1196 69.889062) + (descr "9-pin D-Sub connector, horizontal/angled (90 deg), THT-mount, male, pitch 2.77x2.84mm, pin-PCB-offset 4.9399999999999995mm, distance of mounting holes 25mm, distance of mounting holes to PCB edge 7.4799999999999995mm, see https://disti-assets.s3.amazonaws.com/tonar/files/datasheets/16730.pdf") + (tags "9-pin D-Sub connector horizontal angled 90deg THT male pitch 2.77x2.84mm pin-PCB-offset 4.9399999999999995mm mounting-holes-distance 25mm mounting-hole-offset 25mm") + (path /5A59367B) + (fp_text reference J11 (at 1.5748 3.783638) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value DB9_Male (at 5.54 -15.68) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_arc (start -6.96 -0.3) (end -8.56 -0.3) (angle -180) (layer B.Fab) (width 0.1)) + (fp_arc (start 18.04 -0.3) (end 16.44 -0.3) (angle -180) (layer B.Fab) (width 0.1)) + (fp_line (start -9.885 2.7) (end -9.885 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start -9.885 -7.78) (end 20.965 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start 20.965 -7.78) (end 20.965 2.7) (layer B.Fab) (width 0.1)) + (fp_line (start 20.965 2.7) (end -9.885 2.7) (layer B.Fab) (width 0.1)) + (fp_line (start -9.885 -7.78) (end -9.885 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -9.885 -8.18) (end 20.965 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 20.965 -8.18) (end 20.965 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start 20.965 -7.78) (end -9.885 -7.78) (layer B.Fab) (width 0.1)) + (fp_line (start -2.61 -8.18) (end -2.61 -14.18) (layer B.Fab) (width 0.1)) + (fp_line (start -2.61 -14.18) (end 13.69 -14.18) (layer B.Fab) (width 0.1)) + (fp_line (start 13.69 -14.18) (end 13.69 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 13.69 -8.18) (end -2.61 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -9.46 -8.18) (end -9.46 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start -9.46 -13.18) (end -4.46 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start -4.46 -13.18) (end -4.46 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -4.46 -8.18) (end -9.46 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 15.54 -8.18) (end 15.54 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start 15.54 -13.18) (end 20.54 -13.18) (layer B.Fab) (width 0.1)) + (fp_line (start 20.54 -13.18) (end 20.54 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start 20.54 -8.18) (end 15.54 -8.18) (layer B.Fab) (width 0.1)) + (fp_line (start -8.56 -7.78) (end -8.56 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start -5.36 -7.78) (end -5.36 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start 16.44 -7.78) (end 16.44 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start 19.64 -7.78) (end 19.64 -0.3) (layer B.Fab) (width 0.1)) + (fp_line (start -9.945 -7.72) (end -9.945 2.76) (layer B.SilkS) (width 0.12)) + (fp_line (start -9.945 2.76) (end 21.025 2.76) (layer B.SilkS) (width 0.12)) + (fp_line (start 21.025 2.76) (end 21.025 -7.72) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.25 3.654338) (end 0.25 3.654338) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.25 3.654338) (end 0 3.221325) (layer B.SilkS) (width 0.12)) + (fp_line (start 0 3.221325) (end -0.25 3.654338) (layer B.SilkS) (width 0.12)) + (fp_line (start -10.4 3.25) (end -10.4 -14.7) (layer B.CrtYd) (width 0.05)) + (fp_line (start -10.4 -14.7) (end 21.5 -14.7) (layer B.CrtYd) (width 0.05)) + (fp_line (start 21.5 -14.7) (end 21.5 3.25) (layer B.CrtYd) (width 0.05)) + (fp_line (start 21.5 3.25) (end -10.4 3.25) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 5.54 -11.18) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at 2.77 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 14 "Net-(D4-Pad2)")) + (pad 3 thru_hole circle (at 5.54 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 4 thru_hole circle (at 8.31 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 5 thru_hole circle (at 11.08 0) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 6 thru_hole circle (at 1.385 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 7 thru_hole circle (at 4.155 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 13 "Net-(D4-Pad1)")) + (pad 8 thru_hole circle (at 6.925 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask)) + (pad 9 thru_hole circle (at 9.695 -2.84) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask) + (net 17 "Net-(F1-Pad1)")) + (pad 0 thru_hole circle (at -6.96 -0.3) (size 4 4) (drill 3.2) (layers *.Cu *.Mask)) + (pad 0 thru_hole circle (at 18.04 -0.3) (size 4 4) (drill 3.2) (layers *.Cu *.Mask)) + (model ${KISYS3DMOD}/Connector_Dsub.3dshapes/DSUB-9_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical (layer F.Cu) (tedit 5A19A430) (tstamp 5E332E7E) + (at 145.9484 85.852 90) + (descr "Through hole straight socket strip, 1x06, 2.54mm pitch, single row (from Kicad 4.0.7), script generated") + (tags "Through hole socket strip THT 1x06 2.54mm single row") + (path /5EA0EDCD) + (fp_text reference J13 (at -2.4925 5.9256 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Conn_01x06 (at 0 15.47 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.27 -1.27) (end 0.635 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start 0.635 -1.27) (end 1.27 -0.635) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 -0.635) (end 1.27 13.97) (layer F.Fab) (width 0.1)) + (fp_line (start 1.27 13.97) (end -1.27 13.97) (layer F.Fab) (width 0.1)) + (fp_line (start -1.27 13.97) (end -1.27 -1.27) (layer F.Fab) (width 0.1)) + (fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 1.27) (end -1.33 14.03) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.33 14.03) (end 1.33 14.03) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.33 1.27) (end 1.33 14.03) (layer F.SilkS) (width 0.12)) + (fp_line (start 1.33 -1.33) (end 1.33 0) (layer F.SilkS) (width 0.12)) + (fp_line (start 0 -1.33) (end 1.33 -1.33) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.8 -1.8) (end 1.75 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.75 -1.8) (end 1.75 14.45) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.75 14.45) (end -1.8 14.45) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.8 14.45) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 6.35) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 1 thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 6 /BOOT0)) + (pad 2 thru_hole oval (at 0 2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 5 /NRST)) + (pad 3 thru_hole oval (at 0 5.08 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 4 thru_hole oval (at 0 7.62 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 20 /SWDIO)) + (pad 5 thru_hole oval (at 0 10.16 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 21 /SWCLK)) + (pad 6 thru_hole oval (at 0 12.7 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 50 "Net-(J13-Pad6)")) + (model ${KISYS3DMOD}/Connector_PinSocket_2.54mm.3dshapes/PinSocket_1x06_P2.54mm_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_SMD:SOT-23_Handsoldering (layer F.Cu) (tedit 5A0AB76C) (tstamp 5E380473) + (at 108.458 77.8764) + (descr "SOT-23, Handsoldering") + (tags SOT-23) + (path /5910E2F2) + (attr smd) + (fp_text reference Q2 (at 0 -2.5) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value AO3407 (at 0 2.5) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.5 0.5) (thickness 0.075))) + ) + (fp_line (start 0.76 1.58) (end 0.76 0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.76 -1.58) (end 0.76 -0.65) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.7 -1.75) (end 2.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.7 -1.75) (end 2.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.7 1.75) (end -2.7 1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.7 1.75) (end -2.7 -1.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.76 -1.58) (end -2.4 -1.58) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.7 -0.95) (end -0.7 1.5) (layer F.Fab) (width 0.1)) + (fp_line (start -0.15 -1.52) (end 0.7 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 -0.95) (end -0.15 -1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.7 -1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start -0.7 1.52) (end 0.7 1.52) (layer F.Fab) (width 0.1)) + (fp_line (start 0.76 1.58) (end -0.7 1.58) (layer F.SilkS) (width 0.12)) + (pad 1 smd rect (at -1.5 -0.95) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 25 "Net-(D5-Pad2)")) + (pad 2 smd rect (at -1.5 0.95) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 1 /12Vin)) + (pad 3 smd rect (at 1.5 0) (size 1.9 0.8) (layers F.Cu F.Paste F.Mask) + (net 18 "Net-(F1-Pad2)")) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E332EA4) + (at 147.1054 92.6338 180) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5968E385) + (attr smd) + (fp_text reference R11 (at 0 -1.524) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 22 (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 29 "Net-(D6-Pad7)")) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 56 "Net-(R11-Pad2)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E37EA0D) + (at 147.1054 91.059 180) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5968E83B) + (attr smd) + (fp_text reference R12 (at 0 1.5748) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 22 (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 57 "Net-(R12-Pad2)")) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 28 "Net-(D6-Pad6)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E38D2B3) + (at 107.8103 81.0387) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /590A6DD4) + (attr smd) + (fp_text reference R13 (at -0.0688 1.5273) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 220k (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (pad 1 smd roundrect (at -0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 1 /12Vin)) + (pad 2 smd roundrect (at 0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 15 /AIN0)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E332ED7) + (at 114.2632 84.7598) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /590A6DDA) + (attr smd) + (fp_text reference R14 (at -0.0013 1.524) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 56k (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 1 smd roundrect (at -0.875 0) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 15 /AIN0)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E332EE8) + (at 127.2995 89.4875 270) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /590A6F68) + (attr smd) + (fp_text reference R15 (at 0.0401 -2.3569 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 47k (at 0 -1.43 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (pad 1 smd roundrect (at -0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 4 +5V)) + (pad 2 smd roundrect (at 0.875 0 270) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 16 /AIN1)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E3A5CC0) + (at 123.585 87.2617 180) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /590A6F6E) + (attr smd) + (fp_text reference R16 (at -3.0795 0.3777) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 47k (at 0 -1.43) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 16 /AIN1)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBD) (tstamp 5E3A546B) + (at 132.588 84.0854 90) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /590D30C8) + (attr smd) + (fp_text reference R17 (at 0.0589 2.268 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 47k (at 0 -1.43 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 90) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 6 /BOOT0)) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer F.Cu) (tedit 5B301BBD) (tstamp 5E38954D) + (at 143.0668 89.0778 180) + (descr "Resistor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "resistor handsolder") + (path /5EA6930E) + (attr smd) + (fp_text reference R18 (at 0.3696 1.6002) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 22 (at 0 1.43) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06))) + ) + (fp_line (start 1.65 0.73) (end -1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end 1.65 0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end 1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end -1.65 -0.73) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 50 "Net-(J13-Pad6)")) + (model ${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Package_SO:SO-8_3.9x4.9mm_P1.27mm (layer F.Cu) (tedit 5C509AD1) (tstamp 5E399D36) + (at 146.8956 109.998 270) + (descr "SO, 8 Pin (https://www.nxp.com/docs/en/data-sheet/PCF8523.pdf), generated with kicad-footprint-generator ipc_gullwing_generator.py") + (tags "SO SO") + (path /5EEED659) + (attr smd) + (fp_text reference U6 (at 0.125 -3.706 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MAX3485 (at 0 3.4 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 0 2.56) (end 1.95 2.56) (layer F.SilkS) (width 0.12)) + (fp_line (start 0 2.56) (end -1.95 2.56) (layer F.SilkS) (width 0.12)) + (fp_line (start 0 -2.56) (end 1.95 -2.56) (layer F.SilkS) (width 0.12)) + (fp_line (start 0 -2.56) (end -3.45 -2.56) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.975 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 2.45) (end -1.95 -1.475) (layer F.Fab) (width 0.1)) + (fp_line (start -1.95 -1.475) (end -0.975 -2.45) (layer F.Fab) (width 0.1)) + (fp_line (start -3.7 -2.7) (end -3.7 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.7 2.7) (end 3.7 2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.7 2.7) (end 3.7 -2.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.7 -2.7) (end -3.7 -2.7) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 0.98 0.98) (thickness 0.15))) + ) + (pad 1 smd roundrect (at -2.575 -1.905 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 60 /Rx)) + (pad 2 smd roundrect (at -2.575 -0.635 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 58 /Tx|Rx)) + (pad 3 smd roundrect (at -2.575 0.635 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 58 /Tx|Rx)) + (pad 4 smd roundrect (at -2.575 1.905 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 59 /Tx)) + (pad 5 smd roundrect (at 2.575 1.905 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 6 smd roundrect (at 2.575 0.635 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 49 "Net-(J12-Pad2)")) + (pad 7 smd roundrect (at 2.575 -0.635 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 48 "Net-(J12-Pad1)")) + (pad 8 smd roundrect (at 2.575 -1.905 270) (size 1.75 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25) + (net 3 +3V3)) + (model ${KISYS3DMOD}/Package_SO.3dshapes/SOIC-8_3.9x4.9mm_P1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_SMD:SOT-363_SC-70-6_Handsoldering (layer F.Cu) (tedit 5A02FF57) (tstamp 5E396989) + (at 128.4005 103.393) + (descr "SOT-363, SC-70-6, Handsoldering") + (tags "SOT-363 SC-70-6 Handsoldering") + (path /5E7F6928) + (attr smd) + (fp_text reference D3 (at 0 -2) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value PESD3V3L4UG (at 0 2 180) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.5 0.5) (thickness 0.075))) + ) + (fp_line (start -2.4 1.4) (end 2.4 1.4) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.7 -1.16) (end -1.2 -1.16) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.7 1.16) (end 0.7 1.16) (layer F.SilkS) (width 0.12)) + (fp_line (start 2.4 1.4) (end 2.4 -1.4) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1.4) (end -2.4 1.4) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1.4) (end 2.4 -1.4) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.675 -1.1) (end -0.175 -1.1) (layer F.Fab) (width 0.1)) + (fp_line (start -0.675 -0.6) (end -0.675 1.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.675 -1.1) (end 0.675 1.1) (layer F.Fab) (width 0.1)) + (fp_line (start 0.675 1.1) (end -0.675 1.1) (layer F.Fab) (width 0.1)) + (fp_line (start -0.175 -1.1) (end -0.675 -0.6) (layer F.Fab) (width 0.1)) + (pad 1 smd rect (at -1.33 -0.65) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask) + (net 22 /ESW0)) + (pad 2 smd rect (at -1.33 0) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 3 smd rect (at -1.33 0.65) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask) + (net 23 /ESW1)) + (pad 4 smd rect (at 1.33 0.65) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask) + (net 24 /ESW2)) + (pad 5 smd rect (at 1.33 0) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 6 smd rect (at 1.33 -0.65) (size 1.5 0.4) (layers F.Cu F.Paste F.Mask) + (net 54 /ESW3)) + (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-363_SC-70-6.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E39CC96) + (at 122.3465 91.964 90) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /5E42F960) + (attr smd) + (fp_text reference C11 (at -0.5715 2.0955 -180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0.1 (at 0 -1.43 -90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 0 -90) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (pad 2 smd roundrect (at 0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (pad 1 smd roundrect (at -0.875 0 90) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 15 /AIN0)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder (layer B.Cu) (tedit 5B301BBE) (tstamp 5E3817E2) + (at 126.379 96.647 180) + (descr "Capacitor SMD 0603 (1608 Metric), square (rectangular) end terminal, IPC_7351 nominal with elongated pad for handsoldering. (Body size source: http://www.tortai-tech.com/upload/download/2011102023233369053.pdf), generated with kicad-footprint-generator") + (tags "capacitor handsolder") + (path /5E417130) + (attr smd) + (fp_text reference C12 (at -0.0013 -1.4732) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value 0.1 (at 0 -1.43 180) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.8 -0.4) (end -0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.8 0.4) (end 0.8 0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 0.4) (end 0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start 0.8 -0.4) (end -0.8 -0.4) (layer B.Fab) (width 0.1)) + (fp_line (start -0.171267 0.51) (end 0.171267 0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.171267 -0.51) (end 0.171267 -0.51) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.65 -0.73) (end -1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.65 0.73) (end 1.65 0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 0.73) (end 1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.65 -0.73) (end -1.65 -0.73) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 180) (layer B.Fab) + (effects (font (size 0.4 0.4) (thickness 0.06)) (justify mirror)) + ) + (pad 1 smd roundrect (at -0.875 0 180) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 16 /AIN1)) + (pad 2 smd roundrect (at 0.875 0 180) (size 1.05 0.95) (layers B.Cu B.Paste B.Mask) (roundrect_rratio 0.25) + (net 2 GND)) + (model ${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Button_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm (layer B.Cu) (tedit 5A4E1404) (tstamp 5E38E9D4) + (at 150.3934 97.7011 180) + (descr "4x-dip-switch SPST , Slide, row spacing 7.62 mm (300 mils), body size 9.78x12.34mm (see e.g. https://www.ctscorp.com/wp-content/uploads/206-208.pdf)") + (tags "DIP Switch SPST Slide 7.62mm 300mil") + (path /5A50A198) + (fp_text reference J6 (at -2.1791 -6.0104 180) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value CONN_02X03 (at 3.81 -11.04 180) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -0.08 2.36) (end 8.7 2.36) (layer B.Fab) (width 0.1)) + (fp_line (start 8.7 2.36) (end 8.7 -9.98) (layer B.Fab) (width 0.1)) + (fp_line (start 8.7 -9.98) (end -1.08 -9.98) (layer B.Fab) (width 0.1)) + (fp_line (start -1.08 -9.98) (end -1.08 1.36) (layer B.Fab) (width 0.1)) + (fp_line (start -1.08 1.36) (end -0.08 2.36) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.635) (end 1.78 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.635) (end 5.84 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -0.635) (end 5.84 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 0.635) (end 1.78 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.535) (end 3.133333 0.535) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.435) (end 3.133333 0.435) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.335) (end 3.133333 0.335) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.235) (end 3.133333 0.235) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.135) (end 3.133333 0.135) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 0.035) (end 3.133333 0.035) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.065) (end 3.133333 -0.065) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.165) (end 3.133333 -0.165) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.265) (end 3.133333 -0.265) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.365) (end 3.133333 -0.365) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.465) (end 3.133333 -0.465) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -0.565) (end 3.133333 -0.565) (layer B.Fab) (width 0.1)) + (fp_line (start 3.133333 0.635) (end 3.133333 -0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -1.905) (end 1.78 -3.175) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -3.175) (end 5.84 -3.175) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -3.175) (end 5.84 -1.905) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -1.905) (end 1.78 -1.905) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.005) (end 3.133333 -2.005) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.105) (end 3.133333 -2.105) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.205) (end 3.133333 -2.205) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.305) (end 3.133333 -2.305) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.405) (end 3.133333 -2.405) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.505) (end 3.133333 -2.505) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.605) (end 3.133333 -2.605) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.705) (end 3.133333 -2.705) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.805) (end 3.133333 -2.805) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -2.905) (end 3.133333 -2.905) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -3.005) (end 3.133333 -3.005) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -3.105) (end 3.133333 -3.105) (layer B.Fab) (width 0.1)) + (fp_line (start 3.133333 -1.905) (end 3.133333 -3.175) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.445) (end 1.78 -5.715) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.715) (end 5.84 -5.715) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -5.715) (end 5.84 -4.445) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -4.445) (end 1.78 -4.445) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.545) (end 3.133333 -4.545) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.645) (end 3.133333 -4.645) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.745) (end 3.133333 -4.745) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.845) (end 3.133333 -4.845) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -4.945) (end 3.133333 -4.945) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.045) (end 3.133333 -5.045) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.145) (end 3.133333 -5.145) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.245) (end 3.133333 -5.245) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.345) (end 3.133333 -5.345) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.445) (end 3.133333 -5.445) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.545) (end 3.133333 -5.545) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -5.645) (end 3.133333 -5.645) (layer B.Fab) (width 0.1)) + (fp_line (start 3.133333 -4.445) (end 3.133333 -5.715) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -6.985) (end 1.78 -8.255) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -8.255) (end 5.84 -8.255) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -8.255) (end 5.84 -6.985) (layer B.Fab) (width 0.1)) + (fp_line (start 5.84 -6.985) (end 1.78 -6.985) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.085) (end 3.133333 -7.085) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.185) (end 3.133333 -7.185) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.285) (end 3.133333 -7.285) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.385) (end 3.133333 -7.385) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.485) (end 3.133333 -7.485) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.585) (end 3.133333 -7.585) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.685) (end 3.133333 -7.685) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.785) (end 3.133333 -7.785) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.885) (end 3.133333 -7.885) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -7.985) (end 3.133333 -7.985) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -8.085) (end 3.133333 -8.085) (layer B.Fab) (width 0.1)) + (fp_line (start 1.78 -8.185) (end 3.133333 -8.185) (layer B.Fab) (width 0.1)) + (fp_line (start 3.133333 -6.985) (end 3.133333 -8.255) (layer B.Fab) (width 0.1)) + (fp_line (start -1.14 2.42) (end 8.76 2.42) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.14 -10.04) (end 8.76 -10.04) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.14 2.42) (end -1.14 -10.04) (layer B.SilkS) (width 0.12)) + (fp_line (start 8.76 2.42) (end 8.76 -10.04) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.38 2.66) (end 0.004 2.66) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.38 2.66) (end -1.38 1.277) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.635) (end 1.78 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.635) (end 5.84 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -0.635) (end 5.84 0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 0.635) (end 1.78 0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.515) (end 3.133333 0.515) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.395) (end 3.133333 0.395) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.275) (end 3.133333 0.275) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.155) (end 3.133333 0.155) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 0.035) (end 3.133333 0.035) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.085) (end 3.133333 -0.085) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.205) (end 3.133333 -0.205) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.325) (end 3.133333 -0.325) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.445) (end 3.133333 -0.445) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -0.565) (end 3.133333 -0.565) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.133333 0.635) (end 3.133333 -0.635) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -1.905) (end 1.78 -3.175) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -3.175) (end 5.84 -3.175) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -3.175) (end 5.84 -1.905) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -1.905) (end 1.78 -1.905) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.025) (end 3.133333 -2.025) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.145) (end 3.133333 -2.145) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.265) (end 3.133333 -2.265) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.385) (end 3.133333 -2.385) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.505) (end 3.133333 -2.505) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.625) (end 3.133333 -2.625) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.745) (end 3.133333 -2.745) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.865) (end 3.133333 -2.865) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -2.985) (end 3.133333 -2.985) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -3.105) (end 3.133333 -3.105) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.133333 -1.905) (end 3.133333 -3.175) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -4.445) (end 1.78 -5.715) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.715) (end 5.84 -5.715) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -5.715) (end 5.84 -4.445) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -4.445) (end 1.78 -4.445) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -4.565) (end 3.133333 -4.565) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -4.685) (end 3.133333 -4.685) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -4.805) (end 3.133333 -4.805) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -4.925) (end 3.133333 -4.925) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.045) (end 3.133333 -5.045) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.165) (end 3.133333 -5.165) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.285) (end 3.133333 -5.285) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.405) (end 3.133333 -5.405) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.525) (end 3.133333 -5.525) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -5.645) (end 3.133333 -5.645) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.133333 -4.445) (end 3.133333 -5.715) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -6.985) (end 1.78 -8.255) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -8.255) (end 5.84 -8.255) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -8.255) (end 5.84 -6.985) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.84 -6.985) (end 1.78 -6.985) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.105) (end 3.133333 -7.105) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.225) (end 3.133333 -7.225) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.345) (end 3.133333 -7.345) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.465) (end 3.133333 -7.465) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.585) (end 3.133333 -7.585) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.705) (end 3.133333 -7.705) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.825) (end 3.133333 -7.825) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -7.945) (end 3.133333 -7.945) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -8.065) (end 3.133333 -8.065) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.78 -8.185) (end 3.133333 -8.185) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.133333 -6.985) (end 3.133333 -8.255) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.35 2.7) (end -1.35 -10.3) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.35 -10.3) (end 8.95 -10.3) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8.95 -10.3) (end 8.95 2.7) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8.95 2.7) (end -1.35 2.7) (layer B.CrtYd) (width 0.05)) + (fp_text user %R (at 7.27 -3.81 90) (layer B.Fab) + (effects (font (size 0.8 0.8) (thickness 0.12)) (justify mirror)) + ) + (fp_text user on (at 5.365 1.4975 180) (layer B.Fab) + (effects (font (size 0.8 0.8) (thickness 0.12)) (justify mirror)) + ) + (pad 1 thru_hole rect (at 0 0 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 5 thru_hole oval (at 7.62 -7.62 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 10 /brdaddr0)) + (pad 2 thru_hole oval (at 0 -2.54 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 6 thru_hole oval (at 7.62 -5.08 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 11 /brdaddr1)) + (pad 3 thru_hole oval (at 0 -5.08 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 7 thru_hole oval (at 7.62 -2.54 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 12 /brdaddr2)) + (pad 4 thru_hole oval (at 0 -7.62 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 8 thru_hole oval (at 7.62 0 180) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) + (net 19 /brdaddr3)) + (model ${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 90)) + ) + ) + + (gr_text "1 <> 0" (at 146.54 108.855) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "3\n2\n1\n0" (at 140.5075 101.5525) (layer B.SilkS) + (effects (font (size 1.5 1.5) (thickness 0.25)) (justify mirror)) + ) + (gr_text ADDR (at 146.667 93.6785) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text Terminator (at 93.708 79.5815) (layer B.SilkS) + (effects (font (size 1.5 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "CAN out" (at 111.5515 64.5955) (layer F.SilkS) + (effects (font (size 3 3) (thickness 0.15))) + ) + (gr_text "CAN in" (at 137.523 64.913) (layer F.SilkS) + (effects (font (size 3 3) (thickness 0.15))) + ) + (gr_text 7 (at 148.2545 65.2305) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text 9 (at 153.8425 65.2305) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text 3 (at 149.715 71.771) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text 2 (at 146.8575 71.7075) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text "CAN pinout:\n2 - CANL\n3 - GND\n7 - CANH\n9 - 9..15V" (at 144.4445 77.4225) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify left)) + ) + (gr_text GND (at 123.045 73.2315) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text +12V (at 131.6175 73.2315) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "CAN\nout" (at 85.2625 73.7395) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.3)) (justify mirror)) + ) + (gr_text "CAN in" (at 148.1275 75.7715) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.3)) (justify mirror)) + ) + (gr_text Vmot (at 96.9465 85.36) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text ~EN (at 109.202 85.4235) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text DIR (at 109.329 108.2835) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text GND (at 96.756 108.347) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "1B\n2B\n\n1A\n2A" (at 94.0255 96.3455) (layer B.SilkS) + (effects (font (size 2 1.5) (thickness 0.375)) (justify mirror)) + ) + (gr_text MOTOR (at 87.739 82.312) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text +4V (at 159.9385 83.201) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text GND (at 159.8115 77.1685) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text "ESW POW" (at 159.0495 74.8825) (layer B.SilkS) + (effects (font (size 1.5 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text ESW (at 128.3155 105.807) (layer B.SilkS) + (effects (font (size 1.5 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "1 0" (at 123.045 105.4895) (layer B.SilkS) (tstamp 5E3A7AB1) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text "3 2" (at 134.221 105.299) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text RS-485 (at 159.0495 103.267) (layer B.SilkS) + (effects (font (size 1.5 1) (thickness 0.15)) (justify mirror)) + ) + (gr_text "A B" (at 158.859 105.2355) (layer B.SilkS) + (effects (font (size 2 2) (thickness 0.15)) (justify mirror)) + ) + (gr_text 3.3V (at 154.0965 102.124) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text 5V (at 161.145 80.7245) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (gr_text "Boot Nrst GND SWDIO SWCLK +3.3V" (at 153.017 83.5185) (layer F.SilkS) + (effects (font (size 0.7 0.6) (thickness 0.125))) + ) + (gr_text C2 (at 103 103.5) (layer B.SilkS) + (effects (font (size 3 3) (thickness 0.15)) (justify mirror)) + ) + (gr_line (start 107 106.5) (end 107 94) (layer B.SilkS) (width 0.15)) + (gr_line (start 99 106.5) (end 107 106.5) (layer B.SilkS) (width 0.15)) + (gr_line (start 99 94) (end 99 106.5) (layer B.SilkS) (width 0.15)) + (gr_line (start 80.5 117.5) (end 174 117.5) (layer Edge.Cuts) (width 0.15) (tstamp 5E39B479)) + (gr_line (start 174 62.5) (end 80.5 62.5) (layer Edge.Cuts) (width 0.15) (tstamp 5E39B478)) + (target plus (at 80.5 62.5) (size 5) (width 0.15) (layer Edge.Cuts)) + (gr_line (start 80.5 117.5) (end 80.5 62.5) (layer Edge.Cuts) (width 0.15) (tstamp 5E399AC3)) + (gr_line (start 174 62.5) (end 174 117.5) (layer Edge.Cuts) (width 0.15) (tstamp 5E3A1698)) + + (segment (start 106.958 81.016) (end 106.9353 81.0387) (width 0.3) (layer F.Cu) (net 1) (status 30)) + (segment (start 106.958 78.8264) (end 106.958 81.016) (width 0.3) (layer F.Cu) (net 1) (status 30)) + (segment (start 106.874 78.9104) (end 106.958 78.8264) (width 0.3) (layer F.Cu) (net 1) (status 30)) + (segment (start 104.2924 78.9104) (end 106.874 78.9104) (width 0.5) (layer F.Cu) (net 1) (status 30)) + (segment (start 103.0631 77.4975) (end 103.0978 77.5322) (width 0.5) (layer B.Cu) (net 1) (tstamp 5E38E0BE) (status 30)) + (segment (start 103.0631 75.0697) (end 103.0631 77.4975) (width 0.5) (layer B.Cu) (net 1) (tstamp 5E38E0C4) (status 30)) + (via (at 100.5078 78.1431) (size 1.5) (drill 0.8) (layers F.Cu B.Cu) (net 1)) + (segment (start 104.2924 78.9104) (end 101.2751 78.9104) (width 0.5) (layer F.Cu) (net 1) (status 10)) + (segment (start 101.2751 78.9104) (end 100.5078 78.1431) (width 0.5) (layer F.Cu) (net 1)) + (segment (start 102.4869 78.1431) (end 103.0978 77.5322) (width 0.3) (layer B.Cu) (net 1) (status 30)) + (segment (start 100.5078 78.1431) (end 102.4869 78.1431) (width 0.3) (layer B.Cu) (net 1) (status 20)) + (segment (start 96.72 87.9556) (end 98.6744 87.9556) (width 2) (layer F.Cu) (net 1) (status 10)) + (segment (start 101.2952 90.5764) (end 98.6744 87.9556) (width 2) (layer F.Cu) (net 1)) + (segment (start 100.5078 86.1222) (end 98.6744 87.9556) (width 0.5) (layer F.Cu) (net 1)) + (segment (start 100.5078 78.1431) (end 100.5078 86.1222) (width 0.5) (layer F.Cu) (net 1)) + (segment (start 129.4038 86.0044) (end 128.8288 86.0044) (width 0.2) (layer F.Cu) (net 2) (status 20)) + (segment (start 129.7754 86.0044) (end 129.4038 86.0044) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 131.1 87.329) (end 129.7754 86.0044) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 131.1 88.1665) (end 131.1 87.329) (width 0.2) (layer F.Cu) (net 2) (status 10)) + (segment (start 139.8524 88.506946) (end 139.8524 88.3574) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 138.280346 90.079) (end 139.8524 88.506946) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 139.8524 88.3574) (end 139.8524 87.7824) (width 0.2) (layer F.Cu) (net 2) (status 20)) + (segment (start 137.5125 90.079) (end 138.280346 90.079) (width 0.2) (layer F.Cu) (net 2) (status 10)) + (segment (start 137.347 98.9812) (end 137.922 98.9812) (width 0.2) (layer F.Cu) (net 2) (status 20)) + (segment (start 137.2522 98.9812) (end 137.347 98.9812) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 135.6 97.329) (end 137.2522 98.9812) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 135.6 96.4915) (end 135.6 97.329) (width 0.2) (layer F.Cu) (net 2) (status 10)) + (segment (start 122.71 88.9228) (end 122.4153 89.2175) (width 0.3) (layer B.Cu) (net 2) (status 30)) + (segment (start 122.71 87.2617) (end 122.71 88.9228) (width 0.3) (layer B.Cu) (net 2) (status 30)) + (segment (start 115.1382 83.0199) (end 115.316 82.8421) (width 0.3) (layer F.Cu) (net 2) (status 30)) + (segment (start 115.1382 84.7598) (end 115.1382 83.0199) (width 0.3) (layer F.Cu) (net 2) (status 30)) + (segment (start 102.8031 81.8375) (end 103.0978 82.1322) (width 0.5) (layer B.Cu) (net 2) (tstamp 5E38E0C1) (status 30)) + (segment (start 100.5332 81.8375) (end 102.8031 81.8375) (width 0.5) (layer B.Cu) (net 2) (tstamp 5E38E0B8) (status 30)) + (segment (start 135.9128 93.5583) (end 135.1788 93.5583) (width 0.3) (layer B.Cu) (net 2) (status 20)) + (segment (start 137.9347 95.5802) (end 135.9128 93.5583) (width 0.3) (layer B.Cu) (net 2) (status 10)) + (segment (start 139.8524 87.7824) (end 139.8524 86.3966) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 139.8524 86.3966) (end 143.048 83.201) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 151.0284 84.2599) (end 151.0284 85.852) (width 0.3) (layer F.Cu) (net 2) (status 20)) + (segment (start 149.9695 83.201) (end 151.0284 84.2599) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 146.096 79.4545) (end 146.096 83.201) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 145.1275 78.486) (end 146.096 79.4545) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 143.048 83.201) (end 146.096 83.201) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 146.096 83.201) (end 149.9695 83.201) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 138.2014 80.8304) (end 138.2014 79.7554) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 135.0772 78.486) (end 138.3015 78.486) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 138.3015 79.6553) (end 138.3015 78.486) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 138.2014 79.7554) (end 138.3015 79.6553) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 138.3015 78.486) (end 145.1275 78.486) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 135.0772 78.486) (end 135.0772 79.756) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 132.013 83.2104) (end 131.3239 83.8995) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 132.588 83.2104) (end 132.013 83.2104) (width 0.3) (layer B.Cu) (net 2) (status 10)) + (via (at 129.1415 84.09) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 2)) + (segment (start 131.3239 83.8995) (end 129.332 83.8995) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 129.332 83.8995) (end 129.1415 84.09) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 129.425744 85.08135) (end 129.75185 85.08135) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 135.0772 79.756) (end 129.75185 85.08135) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 129.1415 84.797106) (end 129.425744 85.08135) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 129.1415 84.09) (end 129.1415 84.797106) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 129.75185 85.08135) (end 128.8288 86.0044) (width 0.3) (layer F.Cu) (net 2) (status 20)) + (segment (start 104.7952 89.44503) (end 105.6465 88.59373) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 104.7952 90.5764) (end 104.7952 89.44503) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 105.6465 88.59373) (end 105.6465 85.8045) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 105.6465 85.8045) (end 106.0275 85.4235) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 106.0275 85.4235) (end 110.663 85.4235) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 110.663 85.4235) (end 112.3775 87.138) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 112.3775 87.138) (end 114.1555 87.138) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 115.1382 86.1553) (end 115.1382 84.7598) (width 0.3) (layer F.Cu) (net 2) (status 20)) + (segment (start 114.1555 87.138) (end 115.1382 86.1553) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 97.569999 91.345599) (end 97.789099 91.345599) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 96.72 90.4956) (end 97.569999 91.345599) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 97.789099 91.345599) (end 99.487 93.0435) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 102.3281 93.0435) (end 104.7952 90.5764) (width 0.3) (layer F.Cu) (net 2) (status 20)) + (segment (start 97.87 105.7356) (end 100.503 103.1026) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 96.72 105.7356) (end 97.87 105.7356) (width 0.3) (layer F.Cu) (net 2) (status 10)) + (segment (start 100.503 93.107) (end 100.5665 93.0435) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 100.503 103.1026) (end 100.503 93.107) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 99.487 93.0435) (end 100.5665 93.0435) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 100.5665 93.0435) (end 102.3281 93.0435) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 170.1402 87.3196) (end 170.1402 89.794473) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 169.9104 94.5896) (end 170.1402 94.3598) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 167.4302 94.5896) (end 169.9104 94.5896) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 170.1402 89.794473) (end 170.1402 94.3598) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 170.1402 94.3598) (end 170.1402 99.3596) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 167.4076 76.2508) (end 167.7797 76.6229) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 158.6484 76.2508) (end 167.4076 76.2508) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 167.7797 76.6229) (end 154.6229 76.6229) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 154.6229 74.852362) (end 149.6596 69.889062) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 154.6229 76.6229) (end 154.6229 74.852362) (width 0.3) (layer B.Cu) (net 2)) + (via (at 125 74.5) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 2)) + (segment (start 124.8556 67.6156) (end 124.8556 74.3556) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 124.8556 74.3556) (end 125 74.5) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 125 74.5) (end 124.5 74) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 105.8828 74) (end 104.8131 75.0697) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 124.5 74) (end 105.8828 74) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 105.0516 74.8312) (end 104.8131 75.0697) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 101.5838 75.1332) (end 93.5 83.217) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 102.1588 75.1332) (end 101.5838 75.1332) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 93.5 83.217) (end 93.5 89) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 94.9956 90.4956) (end 96.72 90.4956) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 93.5 89) (end 94.9956 90.4956) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 103.0978 83.1822) (end 102.28 84) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 103.0978 82.1322) (end 103.0978 83.1822) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 102.28 84) (end 100 84) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 100 84) (end 96 80) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 96 80) (end 96 75) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 98.4484 72.5516) (end 105.0516 72.5516) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 96 75) (end 98.4484 72.5516) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 105.0516 69.889062) (end 105.0516 72.5516) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 105.0516 72.5516) (end 105.0516 74.8312) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 129.1415 84.09) (end 118.09 84.09) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 118.09 84.09) (end 117.5 83.5) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 117.5 83.5) (end 117.5 83) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 117.3421 82.8421) (end 115.316 82.8421) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 117.5 83) (end 117.3421 82.8421) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 125.504 96.647) (end 124.647 96.647) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 119.0752 92.8751) (end 113.5 87.2999) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 113.5 87.2999) (end 112.2999 87.2999) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 107.1322 82.1322) (end 103.0978 82.1322) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 112.2999 87.2999) (end 107.1322 82.1322) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 127.0705 103.393) (end 124.2525 103.393) (width 0.3) (layer F.Cu) (net 2)) + (via (at 123.68 103.9655) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 2)) + (segment (start 124.2525 103.393) (end 123.68 103.9655) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 123.68 104.918) (end 123.045 105.553) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 123.68 103.9655) (end 123.68 104.918) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 125.712 108.22) (end 133.6495 108.22) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 123.045 105.553) (end 125.712 108.22) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 133.6495 108.22) (end 137.9347 103.9348) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 120.220697 94.020597) (end 121.037597 94.020597) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 119.0752 92.8751) (end 120.220697 94.020597) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 121.037597 94.020597) (end 122.0455 95.0285) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 122.4153 91.0202) (end 122.3465 91.089) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 122.4153 89.2175) (end 122.4153 91.0202) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 122.0455 95.0285) (end 122.1725 95.0285) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 123.633 96.489) (end 124.489 96.489) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 122.1725 95.0285) (end 123.633 96.489) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 124.647 96.647) (end 124.489 96.489) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 129.1875 93.079) (end 127.081 93.079) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 126.1578 92.1558) (end 125.0516 92.1558) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 127.081 93.079) (end 126.1578 92.1558) (width 0.2) (layer F.Cu) (net 2)) + (segment (start 124.2896 96.2896) (end 124.489 96.489) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 124.2896 93.0321) (end 124.2896 96.2896) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 122.3465 91.089) (end 124.2896 93.0321) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 125.0516 92.1558) (end 122.6246 92.1558) (width 0.3) (layer F.Cu) (net 2) (tstamp 5E3A5CF6)) + (via (at 122.151642 95.182548) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 2)) + (segment (start 122.6246 92.1558) (end 122.0455 92.7349) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 122.0455 92.7349) (end 122.0455 95.0285) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 149.9695 83.201) (end 149.9695 79.6445) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 153.3632 76.2508) (end 158.6484 76.2508) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 149.9695 79.6445) (end 153.3632 76.2508) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.6728 89.9668) (end 156.0728 89.9668) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 167.665327 87.3196) (end 170.1402 87.3196) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 159.795 87.3196) (end 167.665327 87.3196) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 157.1478 89.9668) (end 159.795 87.3196) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 156.0728 89.9668) (end 157.1478 89.9668) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 159.9438 88.7872) (end 159.3614 88.2048) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 159.9438 89.8372) (end 159.9438 88.7872) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 159.3614 88.2048) (end 151.4168 88.2048) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 151.0284 87.8164) (end 151.0284 85.852) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 151.4168 88.2048) (end 151.0284 87.8164) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 150.3934 97.7011) (end 150.3934 100.2411) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.3934 100.2411) (end 150.3934 102.7811) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.3934 102.7811) (end 150.3934 105.3211) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.3934 106.45247) (end 150.5024 106.56147) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.3934 105.3211) (end 150.3934 106.45247) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.5024 106.56147) (end 150.5024 108.7788) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 150.5024 108.7788) (end 148.9276 110.3536) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 148.9276 110.3536) (end 145.5748 110.3536) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 144.9906 110.9378) (end 144.9906 112.573) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 145.5748 110.3536) (end 144.9906 110.9378) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 144.9906 112.573) (end 140.5456 108.128) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 140.5456 108.128) (end 140.5456 105.8324) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 137.922 103.2088) (end 137.922 98.9812) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 140.5456 105.8324) (end 137.922 103.2088) (width 0.3) (layer F.Cu) (net 2)) + (segment (start 122.972894 103.9655) (end 116.330794 110.6076) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 123.68 103.9655) (end 122.972894 103.9655) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 116.330794 110.6076) (end 89.644 110.6076) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 89.644 110.6076) (end 83.9036 104.8672) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 83.9036 104.8672) (end 83.9036 86.4268) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 90.3304 80) (end 96 80) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 83.9036 86.4268) (end 90.3304 80) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 149.593401 106.121099) (end 149.593401 106.842999) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 150.3934 105.3211) (end 149.593401 106.121099) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 149.593401 106.842999) (end 147.9624 108.474) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 147.9624 108.474) (end 142.5776 108.474) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 142.5776 108.474) (end 137.9347 103.8311) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 137.9347 103.9348) (end 137.9347 103.8311) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 137.9347 103.8311) (end 137.9347 95.5802) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 169.618177 76.6229) (end 171.5844 78.589123) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 167.7797 76.6229) (end 169.618177 76.6229) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 170.1402 80.033323) (end 170.1402 87.3196) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 171.5844 78.589123) (end 170.1402 80.033323) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 103.3478 82.1322) (end 103.0978 82.1322) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 104.7952 83.5796) (end 103.3478 82.1322) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 104.7952 90.5764) (end 104.7952 83.5796) (width 0.3) (layer B.Cu) (net 2)) + (segment (start 128.8288 89.2203) (end 129.1875 89.579) (width 0.2) (layer F.Cu) (net 3) (status 20)) + (segment (start 128.8288 87.7544) (end 128.8288 89.2203) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (segment (start 137.5125 88.3723) (end 138.1024 87.7824) (width 0.2) (layer F.Cu) (net 3) (status 20)) + (segment (start 137.5125 89.579) (end 137.5125 88.3723) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (segment (start 137.1823 96.4915) (end 137.922 97.2312) (width 0.2) (layer F.Cu) (net 3) (status 20)) + (segment (start 136.1 96.4915) (end 137.1823 96.4915) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (via (at 140.6906 90.2208) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 3)) + (segment (start 142.1918 89.0778) (end 141.8336 89.0778) (width 0.3) (layer F.Cu) (net 3) (status 30)) + (segment (start 141.8336 89.0778) (end 140.6906 90.2208) (width 0.3) (layer F.Cu) (net 3) (status 10)) + (segment (start 135.6106 90.2208) (end 135.4328 90.043) (width 0.5) (layer B.Cu) (net 3)) + (segment (start 136.11751 89.35829) (end 135.932799 89.543001) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 137.29179 89.35829) (end 136.11751 89.35829) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 137.5125 89.579) (end 137.29179 89.35829) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (segment (start 130.6 88.1665) (end 130.6 89.5282) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (segment (start 130.5492 89.579) (end 129.1875 89.579) (width 0.2) (layer F.Cu) (net 3) (status 20)) + (segment (start 130.6 89.5282) (end 130.5492 89.579) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 158.6438 92.1372) (end 153.6438 92.1372) (width 0.5) (layer B.Cu) (net 3) (status 20)) + (segment (start 159.9438 92.1372) (end 158.6438 92.1372) (width 0.3) (layer B.Cu) (net 3) (status 10)) + (segment (start 153.6378 92.1312) (end 153.6438 92.1372) (width 0.3) (layer B.Cu) (net 3) (status 30)) + (segment (start 149.6822 92.1312) (end 153.6378 92.1312) (width 0.5) (layer B.Cu) (net 3) (status 20)) + (segment (start 149.6822 92.1312) (end 147.622 92.1312) (width 0.5) (layer B.Cu) (net 3)) + (segment (start 139.7816 92.1312) (end 137.8712 90.2208) (width 0.5) (layer B.Cu) (net 3) (status 20)) + (segment (start 147.622 92.1312) (end 139.7816 92.1312) (width 0.5) (layer B.Cu) (net 3)) + (segment (start 140.6906 90.2208) (end 137.8712 90.2208) (width 0.5) (layer B.Cu) (net 3) (status 20)) + (segment (start 137.8712 90.2208) (end 135.6106 90.2208) (width 0.5) (layer B.Cu) (net 3) (status 10)) + (segment (start 154.1272 92.6206) (end 153.6438 92.1372) (width 0.3) (layer B.Cu) (net 3) (status 30)) + (segment (start 154.1272 98.1456) (end 154.1272 92.6206) (width 0.5) (layer B.Cu) (net 3) (status 30)) + (segment (start 135.1788 90.297) (end 135.4328 90.043) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 135.1788 91.8083) (end 135.1788 90.297) (width 0.3) (layer B.Cu) (net 3) (status 10)) + (segment (start 138.1941 90.2208) (end 137.9347 90.4802) (width 0.3) (layer B.Cu) (net 3) (status 30)) + (segment (start 140.6906 90.2208) (end 138.1941 90.2208) (width 0.3) (layer B.Cu) (net 3) (status 20)) + (via (at 135.4328 90.043) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 3)) + (segment (start 135.932799 89.543001) (end 135.4328 90.043) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 136.32071 96.27079) (end 136.32071 95.17271) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 136.1 96.4915) (end 136.32071 96.27079) (width 0.2) (layer F.Cu) (net 3) (status 10)) + (segment (start 134.6038 91.8083) (end 134.0485 92.3636) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 135.1788 91.8083) (end 134.6038 91.8083) (width 0.3) (layer B.Cu) (net 3) (status 10)) + (segment (start 135.79475 94.64675) (end 135.4328 94.2848) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 131.9075 100.9175) (end 133.7135 99.1115) (width 0.3) (layer B.Cu) (net 3) (status 20)) + (segment (start 130.221 100.9175) (end 131.9075 100.9175) (width 0.3) (layer B.Cu) (net 3) (status 10)) + (segment (start 133.7135 99.1115) (end 134.5035 99.1115) (width 0.3) (layer B.Cu) (net 3) (status 10)) + (segment (start 134.5035 99.1115) (end 135.1105 98.5045) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 135.1105 98.5045) (end 135.1105 96.282) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 134.0485 95.22) (end 134.0485 95.093) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 135.1105 96.282) (end 134.0485 95.22) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 134.0485 92.3636) (end 134.0485 95.093) (width 0.3) (layer B.Cu) (net 3)) + (segment (start 129.1875 93.579) (end 126.2814 93.579) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 125.9546 93.9058) (end 125.0516 93.9058) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 126.2814 93.579) (end 125.9546 93.9058) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 148.8006 112.573) (end 149.2006 112.573) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 154.1272 107.6464) (end 153.5266 108.247) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 149.2006 112.573) (end 153.5266 108.247) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 154.1272 98.1456) (end 154.1272 107.6464) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 134.918 89.5282) (end 135.4328 90.043) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 130.6 89.5282) (end 134.918 89.5282) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 135.4328 94.2848) (end 136.11125 94.96325) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 136.32071 95.17271) (end 136.11125 94.96325) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 135.4328 90.043) (end 135.4328 94.2848) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 136.11125 94.96325) (end 135.79475 94.64675) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 130.6925 93.579) (end 130.6925 93.8965) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 129.1875 93.579) (end 130.6925 93.579) (width 0.2) (layer F.Cu) (net 3)) + (segment (start 131.75925 94.96325) (end 136.11125 94.96325) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 130.6925 93.8965) (end 131.75925 94.96325) (width 0.3) (layer F.Cu) (net 3)) + (segment (start 159.9438 94.4372) (end 161.4438 94.4372) (width 0.5) (layer B.Cu) (net 4) (status 10)) + (segment (start 134.43239 82.23539) (end 133.7818 81.5848) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 133.7818 81.5848) (end 131.7498 81.5848) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 127.9038 82.5754) (end 130.7592 82.5754) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 124.46 83.7692) (end 126.71 83.7692) (width 0.5) (layer B.Cu) (net 4) (status 10)) + (segment (start 131.7498 81.5848) (end 130.7592 82.5754) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 126.71 83.7692) (end 127.363 83.1162) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 127.363 83.1162) (end 127.9038 82.5754) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.02965 82.69605) (end 160.56899 82.23539) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.197328 82.528372) (end 161.02965 82.69605) (width 0.3) (layer B.Cu) (net 4)) + (segment (start 161.197328 81.954272) (end 161.197328 82.528372) (width 0.3) (layer B.Cu) (net 4)) + (segment (start 161.6964 81.4552) (end 161.197328 81.954272) (width 0.3) (layer B.Cu) (net 4) (status 10)) + (segment (start 158.02321 81.19521) (end 158.02321 82.23539) (width 0.3) (layer B.Cu) (net 4)) + (segment (start 157.9753 81.1473) (end 158.02321 81.19521) (width 0.3) (layer B.Cu) (net 4)) + (segment (start 157.9753 79.9973) (end 157.9753 81.1473) (width 0.3) (layer B.Cu) (net 4) (status 10)) + (segment (start 160.56899 82.23539) (end 158.02321 82.23539) (width 0.5) (layer B.Cu) (net 4) (tstamp 5E3A7742)) + (segment (start 124.46 85.4192) (end 124.46 83.7692) (width 0.5) (layer B.Cu) (net 4) (status 20)) + (segment (start 124.0018 85.8774) (end 124.46 85.4192) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 119.7479 85.8774) (end 124.0018 85.8774) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 119.0752 86.5501) (end 119.7479 85.8774) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 119.0752 87.7751) (end 119.0752 86.5501) (width 0.5) (layer B.Cu) (net 4) (status 10)) + (segment (start 139.4714 80.8304) (end 139.4714 79.3582) (width 0.3) (layer F.Cu) (net 4)) + (segment (start 139.4714 79.3582) (end 139.7688 79.0608) (width 0.3) (layer F.Cu) (net 4)) + (segment (start 139.7688 79.0608) (end 141.8156 79.0608) (width 0.3) (layer F.Cu) (net 4)) + (segment (start 141.8156 79.0608) (end 142.95819 80.20339) (width 0.3) (layer F.Cu) (net 4)) + (segment (start 158.02321 82.23539) (end 142.95819 82.23539) (width 0.5) (layer B.Cu) (net 4)) + (via (at 142.95819 82.23539) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 4)) + (segment (start 142.95819 80.20339) (end 142.95819 82.23539) (width 0.3) (layer F.Cu) (net 4)) + (segment (start 142.95819 82.23539) (end 134.43239 82.23539) (width 0.5) (layer B.Cu) (net 4)) + (via (at 162.2372 95.1136) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 4)) + (segment (start 159.9286 98.4504) (end 159.9286 97.4222) (width 0.5) (layer F.Cu) (net 4)) + (segment (start 159.9286 97.4222) (end 162.2372 95.1136) (width 0.5) (layer F.Cu) (net 4)) + (segment (start 161.737201 94.207201) (end 161.7055 94.1755) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.4438 94.4372) (end 161.7055 94.1755) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.737201 94.613601) (end 161.737201 94.207201) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 162.2372 95.1136) (end 161.737201 94.613601) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.87955 94.00145) (end 161.7055 94.1755) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.87955 83.54595) (end 161.87955 94.00145) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 161.87955 83.54595) (end 161.02965 82.69605) (width 0.5) (layer B.Cu) (net 4)) + (segment (start 127.2995 84.3587) (end 126.71 83.7692) (width 0.3) (layer B.Cu) (net 4)) + (segment (start 127.2995 88.6125) (end 127.2995 84.3587) (width 0.3) (layer B.Cu) (net 4)) + (via (at 133.1985 92.458152) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 5)) + (segment (start 131.151151 92.958151) (end 130.772 92.579) (width 0.3) (layer F.Cu) (net 5)) + (segment (start 132.698501 92.958151) (end 131.151151 92.958151) (width 0.3) (layer F.Cu) (net 5)) + (segment (start 133.1985 92.458152) (end 132.698501 92.958151) (width 0.3) (layer F.Cu) (net 5)) + (segment (start 130.772 92.579) (end 129.1875 92.579) (width 0.2) (layer F.Cu) (net 5)) + (segment (start 134.221 89.678) (end 134.221 91.435652) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 134.221 91.435652) (end 133.1985 92.458152) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 148.4884 85.852) (end 148.4884 87.757) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 148.4884 87.757) (end 148.209 88.0364) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 148.209 88.0364) (end 135.8626 88.0364) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 135.8626 88.0364) (end 134.221 89.678) (width 0.3) (layer B.Cu) (net 5)) + (segment (start 133.4796 85.852) (end 132.588 84.9604) (width 0.3) (layer B.Cu) (net 6) (status 20)) + (via (at 132.969 86.4362) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 6)) + (segment (start 133.4796 85.852) (end 133.4796 85.9256) (width 0.3) (layer B.Cu) (net 6)) + (segment (start 133.4796 85.9256) (end 132.969 86.4362) (width 0.3) (layer B.Cu) (net 6)) + (segment (start 132.6 86.8052) (end 132.969 86.4362) (width 0.2) (layer F.Cu) (net 6)) + (segment (start 132.6 88.1665) (end 132.6 86.8052) (width 0.2) (layer F.Cu) (net 6) (status 10)) + (segment (start 145.9484 85.852) (end 133.4796 85.852) (width 0.3) (layer B.Cu) (net 6) (status 10)) + (segment (start 136.9314 80.8304) (end 136.3314 80.8304) (width 0.3) (layer F.Cu) (net 7) (status 10)) + (segment (start 131.6 85.5618) (end 131.6949 85.4669) (width 0.2) (layer F.Cu) (net 7)) + (segment (start 131.6 88.1665) (end 131.6 85.5618) (width 0.2) (layer F.Cu) (net 7) (status 10)) + (segment (start 136.3314 80.8304) (end 131.6949 85.4669) (width 0.3) (layer F.Cu) (net 7)) + (segment (start 131.6949 85.4669) (end 131.550009 85.611791) (width 0.3) (layer F.Cu) (net 7)) + (segment (start 132.1 86.047198) (end 135.025698 83.1215) (width 0.3) (layer F.Cu) (net 8)) + (segment (start 140.7414 82.169) (end 140.7414 80.8304) (width 0.3) (layer F.Cu) (net 8) (status 20)) + (segment (start 132.1 88.1665) (end 132.1 86.047198) (width 0.2) (layer F.Cu) (net 8) (status 10)) + (segment (start 140.5212 82.3892) (end 135.757998 82.3892) (width 0.3) (layer F.Cu) (net 8)) + (segment (start 135.757998 82.3892) (end 135.025698 83.1215) (width 0.3) (layer F.Cu) (net 8)) + (segment (start 140.5212 82.3892) (end 140.7414 82.169) (width 0.3) (layer F.Cu) (net 8)) + (segment (start 164.6174 93.7768) (end 165.4302 94.5896) (width 0.3) (layer F.Cu) (net 9) (status 30)) + (segment (start 156.0728 93.7768) (end 164.6174 93.7768) (width 0.3) (layer F.Cu) (net 9) (status 30)) + (segment (start 151.7478 93.7768) (end 156.0728 93.7768) (width 0.3) (layer F.Cu) (net 9)) + (segment (start 150.6728 93.7768) (end 151.7478 93.7768) (width 0.3) (layer F.Cu) (net 9)) + (segment (start 165.4302 98.3488) (end 165.3286 98.4504) (width 0.5) (layer F.Cu) (net 9)) + (segment (start 165.4302 94.5896) (end 165.4302 98.3488) (width 0.5) (layer F.Cu) (net 9)) + (segment (start 137.73321 95.29971) (end 138.25111 95.29971) (width 0.2) (layer F.Cu) (net 10)) + (segment (start 137.5125 95.079) (end 137.73321 95.29971) (width 0.2) (layer F.Cu) (net 10) (status 10)) + (segment (start 138.25111 95.29971) (end 139.1158 96.1644) (width 0.2) (layer F.Cu) (net 10)) + (segment (start 139.1158 96.1644) (end 139.1158 97.0493) (width 0.2) (layer F.Cu) (net 10)) + (segment (start 141.333 103.8807) (end 142.7734 105.3211) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 141.333 102.505) (end 141.333 103.8807) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 139.9995 97.933) (end 139.9995 99.5205) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 139.1158 97.0493) (end 139.9995 97.933) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 139.9995 99.5205) (end 140.825 100.346) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 140.825 101.997) (end 141.333 102.505) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 140.825 100.346) (end 140.825 101.997) (width 0.3) (layer F.Cu) (net 10)) + (segment (start 137.5125 94.579) (end 138.6099 94.579) (width 0.2) (layer F.Cu) (net 11) (status 10)) + (segment (start 138.6099 94.579) (end 139.7254 95.6945) (width 0.2) (layer F.Cu) (net 11)) + (segment (start 139.7254 96.7064) (end 139.7254 96.8334) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 139.7254 95.6945) (end 139.7254 96.7064) (width 0.2) (layer F.Cu) (net 11)) + (segment (start 139.7254 96.8334) (end 140.6345 97.7425) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 140.6345 97.7425) (end 140.6345 99.2665) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 140.6345 99.2665) (end 141.3754 100.0074) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 141.3754 100.0074) (end 141.3754 101.3831) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 141.3754 101.3831) (end 142.7734 102.7811) (width 0.3) (layer F.Cu) (net 11)) + (segment (start 137.5125 94.079) (end 138.675598 94.079) (width 0.2) (layer F.Cu) (net 12) (status 10)) + (segment (start 138.675598 94.079) (end 140.248549 95.651951) (width 0.2) (layer F.Cu) (net 12)) + (segment (start 141.2484 98.7161) (end 142.7734 100.2411) (width 0.3) (layer F.Cu) (net 12)) + (segment (start 141.2484 97.3404) (end 141.2484 98.7161) (width 0.3) (layer F.Cu) (net 12)) + (segment (start 140.248549 95.651951) (end 140.248549 96.340549) (width 0.3) (layer F.Cu) (net 12)) + (segment (start 140.248549 96.340549) (end 141.2484 97.3404) (width 0.3) (layer F.Cu) (net 12)) + (segment (start 138.2014 75.4304) (end 138.2014 72.65026) (width 0.3) (layer F.Cu) (net 13) (status 10)) + (segment (start 148.2746 65.917692) (end 147.342808 64.9859) (width 0.5) (layer F.Cu) (net 13)) + (segment (start 148.2746 67.049062) (end 148.2746 65.917692) (width 0.5) (layer F.Cu) (net 13) (status 10)) + (segment (start 108.499762 64.9859) (end 106.4366 67.049062) (width 0.5) (layer F.Cu) (net 13) (status 20)) + (segment (start 141.54463 65.10333) (end 141.4272 64.9859) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 141.54463 69.30703) (end 141.54463 65.10333) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 138.2014 72.65026) (end 141.54463 69.30703) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 141.4272 64.9859) (end 108.499762 64.9859) (width 0.5) (layer F.Cu) (net 13)) + (segment (start 147.342808 64.9859) (end 141.4272 64.9859) (width 0.5) (layer F.Cu) (net 13)) + (segment (start 90.4494 76.1111) (end 92.7989 76.1111) (width 0.3) (layer F.Cu) (net 13) (status 10)) + (segment (start 92.7989 76.1111) (end 97.3328 71.5772) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 97.3328 71.5772) (end 97.3328 67.9958) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 100.3427 64.9859) (end 108.499762 64.9859) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 97.3328 67.9958) (end 100.3427 64.9859) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 150.261562 65.0621) (end 148.2746 67.049062) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 159.5984 72.0008) (end 158.9876 71.39) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 159.5984 73.2508) (end 159.5984 72.0008) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 158.9876 68.5636) (end 155.4861 65.0621) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 158.9876 71.39) (end 158.9876 68.5636) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 155.4861 65.0621) (end 150.261562 65.0621) (width 0.3) (layer F.Cu) (net 13)) + (segment (start 150.251338 73.2508) (end 146.8896 69.889062) (width 0.3) (layer F.Cu) (net 14) (status 20)) + (segment (start 157.6984 73.2508) (end 150.251338 73.2508) (width 0.3) (layer F.Cu) (net 14) (status 10)) + (segment (start 146.8896 71.020432) (end 146.2913 71.618732) (width 0.5) (layer B.Cu) (net 14)) + (segment (start 146.8896 69.889062) (end 146.8896 71.020432) (width 0.5) (layer B.Cu) (net 14) (status 10)) + (segment (start 146.2913 71.618732) (end 140.344268 71.618732) (width 0.5) (layer B.Cu) (net 14)) + (segment (start 140.344268 71.618732) (end 139.3317 72.6313) (width 0.5) (layer B.Cu) (net 14)) + (segment (start 139.3317 72.6313) (end 108.7628 72.6313) (width 0.5) (layer B.Cu) (net 14)) + (segment (start 107.8216 71.6901) (end 107.8216 69.889062) (width 0.5) (layer B.Cu) (net 14) (status 20)) + (segment (start 108.7628 72.6313) (end 107.8216 71.6901) (width 0.5) (layer B.Cu) (net 14)) + (segment (start 107.8216 72.4904) (end 107.8204 72.4916) (width 0.3) (layer F.Cu) (net 14) (status 30)) + (segment (start 107.8216 69.889062) (end 107.8216 72.4904) (width 0.3) (layer F.Cu) (net 14) (status 30)) + (segment (start 139.4714 74.3554) (end 139.4714 75.4304) (width 0.3) (layer F.Cu) (net 14)) + (segment (start 140.5097 73.3171) (end 139.4714 74.3554) (width 0.3) (layer F.Cu) (net 14)) + (segment (start 143.461562 73.3171) (end 140.5097 73.3171) (width 0.3) (layer F.Cu) (net 14)) + (segment (start 146.8896 69.889062) (end 143.461562 73.3171) (width 0.3) (layer F.Cu) (net 14)) + (segment (start 113.266 84.6376) (end 113.3882 84.7598) (width 0.3) (layer F.Cu) (net 15) (status 30)) + (segment (start 113.266 82.8421) (end 113.266 84.6376) (width 0.3) (layer F.Cu) (net 15) (status 30)) + (via (at 111.8235 84.6328) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 15)) + (segment (start 113.2612 84.6328) (end 113.3882 84.7598) (width 0.3) (layer F.Cu) (net 15) (status 30)) + (segment (start 111.8235 84.6328) (end 113.2612 84.6328) (width 0.3) (layer F.Cu) (net 15) (status 20)) + (segment (start 111.8235 84.1769) (end 111.8235 84.6328) (width 0.3) (layer F.Cu) (net 15)) + (segment (start 108.6853 81.0387) (end 111.8235 84.1769) (width 0.3) (layer F.Cu) (net 15)) + (segment (start 116.19865 85.85835) (end 114.9731 84.6328) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 117.9957 89.9287) (end 116.19865 88.13165) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 122.3465 92.839) (end 121.7715 92.839) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 114.9731 84.6328) (end 111.8235 84.6328) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 116.19865 88.13165) (end 116.19865 85.85835) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 121.7715 92.839) (end 120.91995 91.98745) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 119.3587 89.9287) (end 117.9957 89.9287) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 120.91995 91.48995) (end 119.3587 89.9287) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 120.91995 91.98745) (end 120.91995 91.48995) (width 0.3) (layer B.Cu) (net 15)) + (via (at 123.0704 94.4024) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 15)) + (segment (start 122.3465 92.839) (end 122.3465 93.6785) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 122.3465 93.6785) (end 123.0704 94.4024) (width 0.3) (layer B.Cu) (net 15)) + (segment (start 123.0704 94.4024) (end 123.8832 95.2152) (width 0.3) (layer F.Cu) (net 15)) + (segment (start 123.8832 95.2152) (end 125.7628 95.2152) (width 0.3) (layer F.Cu) (net 15)) + (segment (start 125.7628 95.2152) (end 126.6772 94.3008) (width 0.3) (layer F.Cu) (net 15)) + (segment (start 126.899 94.079) (end 126.6772 94.3008) (width 0.2) (layer F.Cu) (net 15)) + (segment (start 129.1875 94.079) (end 126.899 94.079) (width 0.2) (layer F.Cu) (net 15)) + (segment (start 127.4572 95.0214) (end 127.254 95.2246) (width 0.3) (layer B.Cu) (net 16)) + (segment (start 129.1875 94.579) (end 127.8996 94.579) (width 0.2) (layer F.Cu) (net 16) (status 10)) + (segment (start 127.254 95.2246) (end 127.254 96.647) (width 0.3) (layer B.Cu) (net 16) (status 20)) + (segment (start 124.4653 87.267) (end 124.46 87.2617) (width 0.3) (layer B.Cu) (net 16) (status 30)) + (segment (start 124.4653 89.2175) (end 124.4653 87.267) (width 0.3) (layer B.Cu) (net 16) (status 30)) + (via (at 127.254 95.2246) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 16)) + (segment (start 127.8996 94.579) (end 127.254 95.2246) (width 0.2) (layer F.Cu) (net 16)) + (segment (start 125.6103 90.3625) (end 124.4653 89.2175) (width 0.3) (layer B.Cu) (net 16)) + (segment (start 127.2995 90.3625) (end 125.6103 90.3625) (width 0.3) (layer B.Cu) (net 16)) + (segment (start 127.254 90.408) (end 127.2995 90.3625) (width 0.3) (layer B.Cu) (net 16)) + (segment (start 127.254 95.2246) (end 127.254 90.408) (width 0.3) (layer B.Cu) (net 16)) + (segment (start 153.8146 65.917692) (end 153.187608 65.2907) (width 0.5) (layer B.Cu) (net 17)) + (segment (start 153.8146 67.049062) (end 153.8146 65.917692) (width 0.5) (layer B.Cu) (net 17) (status 10)) + (segment (start 131.6556 67.6156) (end 129.8556 67.6156) (width 0.5) (layer B.Cu) (net 17) (status 20)) + (segment (start 133.9805 65.2907) (end 131.6556 67.6156) (width 0.5) (layer B.Cu) (net 17)) + (segment (start 153.187608 65.2907) (end 133.9805 65.2907) (width 0.5) (layer B.Cu) (net 17)) + (segment (start 129.8448 76.2) (end 129.8448 79.7) (width 0.5) (layer F.Cu) (net 17) (status 30)) + (segment (start 129.8556 76.1892) (end 129.8448 76.2) (width 0.5) (layer F.Cu) (net 17) (status 30)) + (segment (start 129.8556 67.6156) (end 129.8556 76.1892) (width 0.5) (layer F.Cu) (net 17) (status 30)) + (segment (start 115.9448 76.2) (end 115.9448 79.7) (width 0.5) (layer F.Cu) (net 18) (status 30)) + (segment (start 114.2684 77.8764) (end 115.9448 76.2) (width 0.5) (layer F.Cu) (net 18) (status 20)) + (segment (start 109.958 77.8764) (end 114.2684 77.8764) (width 0.5) (layer F.Cu) (net 18) (status 10)) + (segment (start 111.411603 68.299063) (end 102.042963 68.299063) (width 0.5) (layer F.Cu) (net 18)) + (segment (start 115.9448 76.2) (end 115.9448 72.83226) (width 0.5) (layer F.Cu) (net 18) (status 10)) + (segment (start 115.9448 72.83226) (end 111.411603 68.299063) (width 0.5) (layer F.Cu) (net 18)) + (segment (start 102.042963 68.195425) (end 100.8966 67.049062) (width 0.5) (layer F.Cu) (net 18) (status 20)) + (segment (start 102.042963 68.299063) (end 102.042963 68.195425) (width 0.5) (layer F.Cu) (net 18)) + (segment (start 137.5125 93.579) (end 138.8799 93.579) (width 0.2) (layer F.Cu) (net 19) (status 10)) + (segment (start 141.973401 96.672501) (end 140.7277 95.4268) (width 0.3) (layer F.Cu) (net 19)) + (segment (start 142.7734 97.7011) (end 141.973401 96.901101) (width 0.3) (layer F.Cu) (net 19)) + (segment (start 138.8799 93.579) (end 140.7277 95.4268) (width 0.2) (layer F.Cu) (net 19)) + (segment (start 141.973401 96.901101) (end 141.973401 96.672501) (width 0.3) (layer F.Cu) (net 19)) + (segment (start 137.5125 90.579) (end 138.7322 90.579) (width 0.2) (layer F.Cu) (net 20) (status 10)) + (segment (start 138.7322 90.579) (end 139.6492 89.662) (width 0.2) (layer F.Cu) (net 20)) + (segment (start 139.6492 89.662) (end 139.8778 89.662) (width 0.3) (layer F.Cu) (net 20)) + (segment (start 139.8778 89.662) (end 141.478 88.0618) (width 0.3) (layer F.Cu) (net 20)) + (segment (start 151.3586 88.0618) (end 153.5684 85.852) (width 0.3) (layer F.Cu) (net 20) (status 20)) + (segment (start 141.478 88.0618) (end 151.3586 88.0618) (width 0.3) (layer F.Cu) (net 20)) + (via (at 136.0932 84.8614) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 21)) + (segment (start 136.1 88.1665) (end 136.1 84.8682) (width 0.2) (layer F.Cu) (net 21) (status 10)) + (segment (start 136.1 84.8682) (end 136.0932 84.8614) (width 0.2) (layer F.Cu) (net 21)) + (segment (start 156.1084 84.649919) (end 156.1084 85.852) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 155.66583 84.20735) (end 156.1084 84.649919) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 144.43485 84.20735) (end 155.66583 84.20735) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 143.7902 84.852) (end 144.43485 84.20735) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 136.800306 84.8614) (end 136.809706 84.852) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 136.809706 84.852) (end 143.7902 84.852) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 136.0932 84.8614) (end 136.800306 84.8614) (width 0.3) (layer B.Cu) (net 21)) + (segment (start 120.523 106.2495) (end 120.523 104.902) (width 0.3) (layer F.Cu) (net 22) (status 10)) + (segment (start 120.523 104.902) (end 122.682 102.743) (width 0.3) (layer F.Cu) (net 22)) + (segment (start 124.079 102.743) (end 127.0705 102.743) (width 0.3) (layer F.Cu) (net 22) (status 20)) + (segment (start 124.079 102.743) (end 124.079 101.4095) (width 0.3) (layer F.Cu) (net 22)) + (segment (start 122.682 102.743) (end 124.079 102.743) (width 0.3) (layer F.Cu) (net 22)) + (segment (start 124.079 101.4095) (end 125.095 100.3935) (width 0.3) (layer F.Cu) (net 22)) + (segment (start 125.095 100.3935) (end 130.81 100.3935) (width 0.3) (layer F.Cu) (net 22)) + (segment (start 133.1 97.329) (end 133.1 96.4915) (width 0.2) (layer F.Cu) (net 22) (status 20)) + (segment (start 133.09049 97.33851) (end 133.1 97.329) (width 0.2) (layer F.Cu) (net 22)) + (segment (start 133.09049 98.93851) (end 133.09049 97.33851) (width 0.2) (layer F.Cu) (net 22)) + (segment (start 131.6355 100.3935) (end 133.09049 98.93851) (width 0.2) (layer F.Cu) (net 22)) + (segment (start 130.81 100.3935) (end 131.6355 100.3935) (width 0.2) (layer F.Cu) (net 22)) + (segment (start 126.5205 104.043) (end 127.0705 104.043) (width 0.3) (layer F.Cu) (net 23) (status 30)) + (segment (start 125.5395 105.024) (end 126.5205 104.043) (width 0.3) (layer F.Cu) (net 23) (status 20)) + (segment (start 125.5395 106.2495) (end 125.5395 105.024) (width 0.3) (layer F.Cu) (net 23) (status 10)) + (via (at 125.2675 104.7275) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 23)) + (segment (start 125.5395 105.024) (end 125.5395 104.9995) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 125.5395 104.9995) (end 125.2675 104.7275) (width 0.3) (layer F.Cu) (net 23)) + (via (at 125.222 101.727) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 23)) + (segment (start 125.2675 104.7275) (end 125.2675 101.7725) (width 0.3) (layer B.Cu) (net 23)) + (segment (start 125.2675 101.7725) (end 125.222 101.727) (width 0.3) (layer B.Cu) (net 23)) + (segment (start 125.222 101.727) (end 125.721999 101.227001) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 133.540499 99.124911) (end 133.540499 99.0445) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 133.540499 99.389499) (end 133.540499 99.124911) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 131.702997 101.227001) (end 133.540499 99.389499) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 130.672999 101.227001) (end 131.702997 101.227001) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 125.721999 101.227001) (end 130.672999 101.227001) (width 0.3) (layer F.Cu) (net 23)) + (segment (start 133.540499 97.388501) (end 133.540499 99.0445) (width 0.2) (layer F.Cu) (net 23)) + (segment (start 133.6 97.329) (end 133.540499 97.388501) (width 0.2) (layer F.Cu) (net 23)) + (segment (start 133.6 96.4915) (end 133.6 97.329) (width 0.2) (layer F.Cu) (net 23)) + (segment (start 131.6355 106.2495) (end 131.6355 104.648) (width 0.3) (layer F.Cu) (net 24) (status 10)) + (segment (start 131.0305 104.043) (end 129.7305 104.043) (width 0.3) (layer F.Cu) (net 24) (status 20)) + (segment (start 131.6355 104.648) (end 131.0305 104.043) (width 0.3) (layer F.Cu) (net 24)) + (via (at 132.3975 103.593) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 24)) + (segment (start 131.6355 104.648) (end 131.6355 104.355) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 131.6355 104.355) (end 132.3975 103.593) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 132.3975 103.593) (end 132.3975 102.885894) (width 0.3) (layer B.Cu) (net 24)) + (via (at 132.3975 101.7905) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 24)) + (segment (start 132.3975 102.885894) (end 132.3975 101.7905) (width 0.3) (layer B.Cu) (net 24)) + (segment (start 133.104606 101.7905) (end 133.803106 101.092) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 132.3975 101.7905) (end 133.104606 101.7905) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 133.803106 100.067394) (end 134.0485 99.822) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 133.803106 101.092) (end 133.803106 100.067394) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 134.0485 99.822) (end 134.0485 98.298) (width 0.3) (layer F.Cu) (net 24)) + (segment (start 134.1 98.2465) (end 134.0485 98.298) (width 0.2) (layer F.Cu) (net 24)) + (segment (start 134.1 96.4915) (end 134.1 98.2465) (width 0.2) (layer F.Cu) (net 24) (status 10)) + (segment (start 104.2696 76.8832) (end 104.2924 76.8604) (width 0.3) (layer F.Cu) (net 25) (status 30)) + (segment (start 102.1588 76.8832) (end 104.2696 76.8832) (width 0.3) (layer F.Cu) (net 25) (status 30)) + (segment (start 106.892 76.8604) (end 106.958 76.9264) (width 0.3) (layer F.Cu) (net 25) (status 30)) + (segment (start 104.2924 76.8604) (end 106.892 76.8604) (width 0.3) (layer F.Cu) (net 25) (status 30)) + (segment (start 165.013 92.5068) (end 165.4302 92.0896) (width 0.3) (layer F.Cu) (net 26) (status 30)) + (segment (start 156.0728 92.5068) (end 165.013 92.5068) (width 0.3) (layer F.Cu) (net 26) (status 30)) + (segment (start 167.4302 92.0896) (end 167.4302 90.887519) (width 0.3) (layer F.Cu) (net 27) (status 10)) + (segment (start 167.4302 90.887519) (end 166.941281 90.3986) (width 0.3) (layer F.Cu) (net 27)) + (segment (start 166.941281 90.3986) (end 163.7538 90.3986) (width 0.3) (layer F.Cu) (net 27)) + (segment (start 162.9156 91.2368) (end 163.7538 90.3986) (width 0.3) (layer F.Cu) (net 27)) + (segment (start 156.0728 91.2368) (end 162.9156 91.2368) (width 0.3) (layer F.Cu) (net 27) (status 10)) + (segment (start 148.1582 91.2368) (end 147.9804 91.059) (width 0.3) (layer F.Cu) (net 28) (status 30)) + (segment (start 150.6728 91.2368) (end 148.1582 91.2368) (width 0.3) (layer F.Cu) (net 28) (status 30)) + (segment (start 148.1074 92.5068) (end 147.9804 92.6338) (width 0.3) (layer F.Cu) (net 29) (status 30)) + (segment (start 150.6728 92.5068) (end 148.1074 92.5068) (width 0.3) (layer F.Cu) (net 29) (status 30)) + (segment (start 89.146799 103.014001) (end 90.985999 103.014001) (width 2) (layer F.Cu) (net 30)) + (segment (start 87.8468 104.314) (end 89.146799 103.014001) (width 2) (layer F.Cu) (net 30)) + (segment (start 93.3444 100.6556) (end 96.72 100.6556) (width 2) (layer F.Cu) (net 30)) + (segment (start 90.985999 103.014001) (end 93.3444 100.6556) (width 2) (layer F.Cu) (net 30)) + (segment (start 89.0452 98.1156) (end 87.8468 99.314) (width 2) (layer F.Cu) (net 31)) + (segment (start 96.72 98.1156) (end 89.0452 98.1156) (width 2) (layer F.Cu) (net 31)) + (segment (start 87.8468 88.2396) (end 91.2396 88.2396) (width 2) (layer B.Cu) (net 32)) + (segment (start 91.2396 88.2396) (end 92.5 89.5) (width 2) (layer B.Cu) (net 32)) + (segment (start 92.5 89.5) (end 92.5 93.5) (width 2) (layer B.Cu) (net 32)) + (segment (start 94.5756 95.5756) (end 96.72 95.5756) (width 2) (layer B.Cu) (net 32)) + (segment (start 92.5 93.5) (end 94.5756 95.5756) (width 2) (layer B.Cu) (net 32)) + (segment (start 88.0508 93.0356) (end 87.8468 93.2396) (width 2) (layer F.Cu) (net 33)) + (segment (start 96.72 93.0356) (end 88.0508 93.0356) (width 2) (layer F.Cu) (net 33)) + (via (at 131.5085 91.7575) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 34)) + (segment (start 129.1875 92.079) (end 131.187 92.079) (width 0.2) (layer F.Cu) (net 34) (status 10)) + (segment (start 131.187 92.079) (end 131.5085 91.7575) (width 0.2) (layer F.Cu) (net 34)) + (segment (start 128.3795 97.9965) (end 128.951 97.425) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 127.221 98.0445) (end 127.173 97.9965) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 127.221 99.9675) (end 127.221 98.0445) (width 0.3) (layer B.Cu) (net 34) (status 10)) + (segment (start 127.173 97.9965) (end 128.3795 97.9965) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 128.951 96.981) (end 128.951 96.599) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 128.951 96.981) (end 128.951 97.425) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 128.951 96.599) (end 129.522 96.028) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 129.522 96.028) (end 131.1095 96.028) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.1095 96.028) (end 131.427 95.7105) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.427 95.7105) (end 131.427 95.647) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.427 92.546106) (end 131.427 95.7105) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.5085 92.464606) (end 131.427 92.546106) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.5085 91.7575) (end 131.5085 92.464606) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 125.410499 98.615501) (end 126.0295 97.9965) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 122.171999 98.615501) (end 125.410499 98.615501) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 121.0765 99.711) (end 122.171999 98.615501) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 112.6945 99.711) (end 121.0765 99.711) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 126.0295 97.9965) (end 127.173 97.9965) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 110.526999 101.878501) (end 112.6945 99.711) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 99.605499 101.878501) (end 110.526999 101.878501) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 98.2884 103.1956) (end 99.605499 101.878501) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 96.72 103.1956) (end 98.2884 103.1956) (width 0.3) (layer B.Cu) (net 34)) + (segment (start 131.1 97.329) (end 131.1275 97.3565) (width 0.2) (layer F.Cu) (net 35)) + (segment (start 131.1 96.4915) (end 131.1 97.329) (width 0.2) (layer F.Cu) (net 35) (status 10)) + (segment (start 131.1275 97.3565) (end 131.1275 97.9805) (width 0.2) (layer F.Cu) (net 35)) + (segment (start 131.1275 97.9805) (end 129.54 97.9805) (width 0.2) (layer F.Cu) (net 35)) + (segment (start 129.54 97.9805) (end 129.413 97.8535) (width 0.2) (layer F.Cu) (net 35)) + (via (at 123.3805 97.7655) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 35)) + (segment (start 129.325 97.7655) (end 129.413 97.8535) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 123.3805 97.7655) (end 129.325 97.7655) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 121.625 97.7655) (end 123.3805 97.7655) (width 0.3) (layer B.Cu) (net 35)) + (segment (start 113.5835 98.7585) (end 120.632 98.7585) (width 0.3) (layer B.Cu) (net 35)) + (segment (start 113.5835 98.7585) (end 112.631 99.711) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 110.7895 103.0765) (end 110.7895 105.368181) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 120.632 98.7585) (end 121.625 97.7655) (width 0.3) (layer B.Cu) (net 35)) + (segment (start 110.422081 105.7356) (end 109.22 105.7356) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 110.7895 105.368181) (end 110.422081 105.7356) (width 0.3) (layer F.Cu) (net 35)) + (via (at 113.5835 98.7585) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 35)) + (segment (start 112.631 99.711) (end 112.631 101.235) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 112.631 101.235) (end 110.7895 103.0765) (width 0.3) (layer F.Cu) (net 35)) + (segment (start 130.35 96.4915) (end 129.9405 96.901) (width 0.2) (layer F.Cu) (net 36)) + (segment (start 130.6 96.4915) (end 130.35 96.4915) (width 0.2) (layer F.Cu) (net 36) (status 10)) + (segment (start 129.9405 96.901) (end 129.667 96.901) (width 0.2) (layer F.Cu) (net 36)) + (via (at 122.047 96.4565) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 36)) + (segment (start 129.667 96.901) (end 122.4915 96.901) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 122.4915 96.901) (end 122.047 96.4565) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 113.10625 97.77525) (end 112.123 98.7585) (width 0.3) (layer B.Cu) (net 36)) + (segment (start 120.72825 97.77525) (end 113.10625 97.77525) (width 0.3) (layer B.Cu) (net 36)) + (via (at 112.123 98.7585) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 36)) + (segment (start 122.047 96.4565) (end 120.72825 97.77525) (width 0.3) (layer B.Cu) (net 36)) + (segment (start 111.623001 100.792599) (end 110.069999 102.345601) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 111.623001 99.258499) (end 111.623001 100.792599) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 110.069999 102.345601) (end 109.22 103.1956) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 112.123 98.7585) (end 111.623001 99.258499) (width 0.3) (layer F.Cu) (net 36)) + (segment (start 128.35 91.079) (end 128.33 91.059) (width 0.2) (layer F.Cu) (net 37)) + (segment (start 129.1875 91.079) (end 128.35 91.079) (width 0.2) (layer F.Cu) (net 37) (status 10)) + (segment (start 128.33 91.059) (end 127.381 91.059) (width 0.2) (layer F.Cu) (net 37)) + (segment (start 110.422081 100.6556) (end 110.599 100.478681) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 109.22 100.6556) (end 110.422081 100.6556) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 110.599 100.478681) (end 110.599 100.473) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 110.599 100.473) (end 111.0435 100.0285) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 111.0435 100.0285) (end 111.0435 95.901) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 111.0435 95.901) (end 111.742 95.2025) (width 0.3) (layer B.Cu) (net 37)) + (via (at 112.631 89.7415) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 37)) + (segment (start 111.742 95.2025) (end 111.742 90.6305) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 111.742 90.6305) (end 112.631 89.7415) (width 0.3) (layer B.Cu) (net 37)) + (segment (start 126.5715 91.109) (end 127.381 91.109) (width 0.3) (layer F.Cu) (net 37)) + (segment (start 125.204 89.7415) (end 126.5715 91.109) (width 0.3) (layer F.Cu) (net 37)) + (segment (start 112.631 89.7415) (end 125.204 89.7415) (width 0.3) (layer F.Cu) (net 37)) + (segment (start 132.1 96.4915) (end 132.1 98.7225) (width 0.2) (layer F.Cu) (net 38) (status 10)) + (via (at 119.126 96.7105) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 38)) + (segment (start 131.832214 98.990286) (end 132.1 98.7225) (width 0.2) (layer F.Cu) (net 38)) + (segment (start 131.451214 98.990286) (end 131.832214 98.990286) (width 0.2) (layer F.Cu) (net 38)) + (segment (start 131.318 99.1235) (end 131.451214 98.990286) (width 0.2) (layer F.Cu) (net 38)) + (segment (start 121.539 99.1235) (end 122.68 99.1235) (width 0.3) (layer F.Cu) (net 38)) + (segment (start 119.126 96.7105) (end 121.539 99.1235) (width 0.3) (layer F.Cu) (net 38)) + (segment (start 122.68 99.1235) (end 131.318 99.1235) (width 0.3) (layer F.Cu) (net 38)) + (segment (start 110.6091 96.7265) (end 109.22 98.1156) (width 0.3) (layer F.Cu) (net 38)) + (segment (start 111.996 96.7265) (end 110.6091 96.7265) (width 0.3) (layer F.Cu) (net 38)) + (segment (start 116.2665 96.7105) (end 119.126 96.7105) (width 0.3) (layer B.Cu) (net 38)) + (via (at 111.996 96.7265) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 38)) + (segment (start 111.996 96.7265) (end 116.2665 96.7105) (width 0.3) (layer B.Cu) (net 38)) + (segment (start 129.1875 90.579) (end 127.409 90.579) (width 0.2) (layer F.Cu) (net 39) (status 10)) + (segment (start 127.37901 90.60899) (end 127.409 90.579) (width 0.3) (layer F.Cu) (net 39)) + (segment (start 110.422081 95.5756) (end 111.1705 94.827181) (width 0.3) (layer B.Cu) (net 39)) + (segment (start 109.22 95.5756) (end 110.422081 95.5756) (width 0.3) (layer B.Cu) (net 39)) + (via (at 111.6785 88.8525) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 39)) + (segment (start 111.1705 94.827181) (end 111.1705 89.3605) (width 0.3) (layer B.Cu) (net 39)) + (segment (start 111.1705 89.3605) (end 111.6785 88.8525) (width 0.3) (layer B.Cu) (net 39)) + (segment (start 125.2675 88.8525) (end 127.02399 90.60899) (width 0.3) (layer F.Cu) (net 39)) + (segment (start 111.6785 88.8525) (end 125.2675 88.8525) (width 0.3) (layer F.Cu) (net 39)) + (segment (start 127.02399 90.60899) (end 127.37901 90.60899) (width 0.3) (layer F.Cu) (net 39)) + (segment (start 131.6 96.4915) (end 131.6 98.397) (width 0.2) (layer F.Cu) (net 40) (status 10)) + (segment (start 130.937 98.6155) (end 130.683 98.6155) (width 0.2) (layer F.Cu) (net 40)) + (segment (start 131.1555 98.397) (end 130.937 98.6155) (width 0.2) (layer F.Cu) (net 40)) + (segment (start 131.6 98.397) (end 131.1555 98.397) (width 0.2) (layer F.Cu) (net 40)) + (segment (start 112.6704 93.0356) (end 112.6785 93.0275) (width 0.3) (layer F.Cu) (net 40)) + (via (at 112.6785 93.0275) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 40)) + (segment (start 109.22 93.0356) (end 112.6704 93.0356) (width 0.3) (layer F.Cu) (net 40)) + (via (at 114.455541 92.298459) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 40)) + (segment (start 113.7265 93.0275) (end 114.455541 92.298459) (width 0.3) (layer B.Cu) (net 40)) + (segment (start 112.6785 93.0275) (end 113.7265 93.0275) (width 0.3) (layer B.Cu) (net 40)) + (segment (start 122.3625 98.6155) (end 130.683 98.6155) (width 0.3) (layer F.Cu) (net 40)) + (segment (start 119.607499 95.860499) (end 122.3625 98.6155) (width 0.3) (layer F.Cu) (net 40)) + (segment (start 114.455541 92.298459) (end 118.017581 95.860499) (width 0.3) (layer F.Cu) (net 40)) + (segment (start 118.017581 95.860499) (end 119.607499 95.860499) (width 0.3) (layer F.Cu) (net 40)) + (segment (start 132.6 98.8575) (end 132.6 96.4915) (width 0.2) (layer F.Cu) (net 41) (status 20)) + (segment (start 131.952295 99.440295) (end 132.017205 99.440295) (width 0.2) (layer F.Cu) (net 41)) + (segment (start 132.017205 99.440295) (end 132.6 98.8575) (width 0.2) (layer F.Cu) (net 41)) + (segment (start 111.4506 90.4956) (end 109.22 90.4956) (width 0.3) (layer F.Cu) (net 41)) + (segment (start 131.681295 99.711295) (end 120.666295 99.711295) (width 0.3) (layer F.Cu) (net 41)) + (segment (start 120.666295 99.711295) (end 111.4506 90.4956) (width 0.3) (layer F.Cu) (net 41)) + (segment (start 131.952295 99.440295) (end 131.681295 99.711295) (width 0.3) (layer F.Cu) (net 41)) + (segment (start 129.1875 90.079) (end 127.544 90.079) (width 0.2) (layer F.Cu) (net 42) (status 10)) + (segment (start 110.37 87.9556) (end 110.3781 87.9475) (width 0.3) (layer F.Cu) (net 42)) + (segment (start 109.22 87.9556) (end 110.37 87.9556) (width 0.3) (layer F.Cu) (net 42) (status 10)) + (segment (start 125.4125 87.9475) (end 127.544 90.079) (width 0.3) (layer F.Cu) (net 42)) + (segment (start 110.3781 87.9475) (end 125.4125 87.9475) (width 0.3) (layer F.Cu) (net 42)) + (segment (start 167.7797 80.0229) (end 167.7797 81.6229) (width 0.3) (layer B.Cu) (net 43) (status 20)) + (segment (start 167.462 79.7052) (end 167.7797 80.0229) (width 0.3) (layer B.Cu) (net 43)) + (segment (start 161.6964 79.7052) (end 167.462 79.7052) (width 0.3) (layer B.Cu) (net 43) (status 10)) + (segment (start 125.5395 111.426) (end 125.523 111.4425) (width 0.3) (layer F.Cu) (net 44) (status 30)) + (segment (start 125.5395 107.9995) (end 125.5395 111.426) (width 0.3) (layer F.Cu) (net 44) (status 30)) + (segment (start 120.523 107.9995) (end 120.523 111.4425) (width 0.3) (layer F.Cu) (net 45) (status 30)) + (segment (start 131.6355 107.9995) (end 131.6355 111.4425) (width 0.3) (layer F.Cu) (net 46) (status 30)) + (segment (start 136.5885 111.3955) (end 136.6355 111.4425) (width 0.3) (layer F.Cu) (net 47) (status 30)) + (segment (start 136.5885 107.9995) (end 136.5885 111.3955) (width 0.3) (layer F.Cu) (net 47) (status 30)) + (segment (start 156.5 113.1) (end 154.8268 114.7732) (width 0.3) (layer F.Cu) (net 48)) + (segment (start 156.5 111.5) (end 156.5 113.1) (width 0.3) (layer F.Cu) (net 48)) + (segment (start 154.8268 114.7732) (end 148.2164 114.7732) (width 0.3) (layer F.Cu) (net 48)) + (segment (start 147.5306 114.0874) (end 147.5306 112.573) (width 0.3) (layer F.Cu) (net 48)) + (segment (start 148.2164 114.7732) (end 147.5306 114.0874) (width 0.3) (layer F.Cu) (net 48)) + (segment (start 161.5 113.6308) (end 161.5 111.5) (width 0.3) (layer F.Cu) (net 49)) + (segment (start 146.2606 112.573) (end 146.2606 114.951) (width 0.3) (layer F.Cu) (net 49)) + (segment (start 146.2606 114.951) (end 146.9464 115.6368) (width 0.3) (layer F.Cu) (net 49)) + (segment (start 159.494 115.6368) (end 161.5 113.6308) (width 0.3) (layer F.Cu) (net 49)) + (segment (start 146.9464 115.6368) (end 159.494 115.6368) (width 0.3) (layer F.Cu) (net 49)) + (segment (start 143.9418 89.0778) (end 145.0848 89.0778) (width 0.3) (layer F.Cu) (net 50) (status 10)) + (segment (start 145.0848 89.0778) (end 145.4658 88.6968) (width 0.3) (layer F.Cu) (net 50)) + (segment (start 145.4658 88.6968) (end 151.8412 88.6968) (width 0.3) (layer F.Cu) (net 50)) + (segment (start 151.8412 88.6968) (end 153.1112 87.4268) (width 0.3) (layer F.Cu) (net 50)) + (segment (start 157.0736 87.4268) (end 158.6484 85.852) (width 0.3) (layer F.Cu) (net 50) (status 20)) + (segment (start 153.1112 87.4268) (end 157.0736 87.4268) (width 0.3) (layer F.Cu) (net 50)) + (segment (start 130.221 97.3895) (end 130.249 97.3615) (width 0.3) (layer B.Cu) (net 51) (status 30)) + (segment (start 130.221 99.0175) (end 130.221 97.3895) (width 0.3) (layer B.Cu) (net 51) (status 30)) + (segment (start 130.5045 91.579) (end 129.1875 91.579) (width 0.2) (layer F.Cu) (net 52) (status 20)) + (via (at 132.6515 90.7415) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 52)) + (segment (start 131.999 97.3615) (end 133.7135 97.3615) (width 0.3) (layer B.Cu) (net 52) (status 30)) + (segment (start 131.342 90.7415) (end 131.09075 90.99275) (width 0.3) (layer F.Cu) (net 52)) + (segment (start 132.6515 90.7415) (end 131.342 90.7415) (width 0.3) (layer F.Cu) (net 52)) + (segment (start 131.09075 90.99275) (end 130.5045 91.579) (width 0.2) (layer F.Cu) (net 52)) + (segment (start 132.6515 91.74715) (end 132.348499 92.050151) (width 0.3) (layer B.Cu) (net 52)) + (segment (start 132.6515 90.7415) (end 132.6515 91.74715) (width 0.3) (layer B.Cu) (net 52)) + (segment (start 131.999 97.3615) (end 131.999 92.7255) (width 0.3) (layer B.Cu) (net 52)) + (segment (start 131.999 92.7255) (end 132.348499 92.376001) (width 0.3) (layer B.Cu) (net 52)) + (segment (start 132.348499 92.050151) (end 132.348499 92.376001) (width 0.3) (layer B.Cu) (net 52)) + (segment (start 135.6258 76.736) (end 136.9314 75.4304) (width 0.3) (layer F.Cu) (net 53) (status 20)) + (segment (start 135.0772 76.736) (end 135.6258 76.736) (width 0.3) (layer F.Cu) (net 53) (status 10)) + (segment (start 136.5885 105.6245) (end 136.5885 106.2495) (width 0.3) (layer F.Cu) (net 54) (status 20)) + (segment (start 133.707 102.743) (end 136.5885 105.6245) (width 0.3) (layer F.Cu) (net 54)) + (segment (start 129.7305 102.743) (end 133.707 102.743) (width 0.3) (layer F.Cu) (net 54) (status 10)) + (segment (start 134.6 101.85) (end 133.707 102.743) (width 0.3) (layer F.Cu) (net 54)) + (segment (start 134.6 101.85) (end 134.6 98.445) (width 0.3) (layer F.Cu) (net 54)) + (segment (start 134.6 96.4915) (end 134.6 98.445) (width 0.2) (layer F.Cu) (net 54) (status 10)) + (segment (start 100.55753 72.4916) (end 102.0679 72.4916) (width 0.3) (layer F.Cu) (net 55)) + (segment (start 98.0694 76.1111) (end 98.0694 74.97973) (width 0.3) (layer F.Cu) (net 55)) + (segment (start 98.0694 74.97973) (end 100.55753 72.4916) (width 0.3) (layer F.Cu) (net 55)) + (segment (start 106.0704 72.4916) (end 102.0679 72.4916) (width 0.3) (layer F.Cu) (net 55)) + (segment (start 146.2304 92.6338) (end 142.7988 92.6338) (width 0.3) (layer F.Cu) (net 56) (status 10)) + (segment (start 142.7988 92.6338) (end 141.8336 91.6686) (width 0.3) (layer F.Cu) (net 56)) + (segment (start 141.744 91.579) (end 141.8336 91.6686) (width 0.2) (layer F.Cu) (net 56)) + (segment (start 137.5125 91.579) (end 141.744 91.579) (width 0.2) (layer F.Cu) (net 56) (status 10)) + (segment (start 146.2304 91.059) (end 145.6054 91.059) (width 0.3) (layer F.Cu) (net 57) (status 10)) + (segment (start 145.6054 91.059) (end 141.8082 91.059) (width 0.3) (layer F.Cu) (net 57)) + (segment (start 138.37 91.059) (end 141.8082 91.059) (width 0.2) (layer F.Cu) (net 57)) + (segment (start 138.35 91.079) (end 138.37 91.059) (width 0.2) (layer F.Cu) (net 57)) + (segment (start 137.5125 91.079) (end 138.35 91.079) (width 0.2) (layer F.Cu) (net 57) (status 10)) + (segment (start 146.2606 107.423) (end 147.5306 107.423) (width 0.3) (layer F.Cu) (net 58)) + (via (at 142.1204 95.4184) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 58)) + (segment (start 142.827506 95.4184) (end 142.878306 95.4692) (width 0.3) (layer B.Cu) (net 58)) + (segment (start 142.1204 95.4184) (end 142.827506 95.4184) (width 0.3) (layer B.Cu) (net 58)) + (segment (start 142.878306 95.4692) (end 145.3208 95.4692) (width 0.3) (layer B.Cu) (net 58)) + (via (at 146.2352 105.0704) (size 1) (drill 0.6) (layers F.Cu B.Cu) (net 58)) + (segment (start 145.3208 95.4692) (end 146.2352 96.3836) (width 0.3) (layer B.Cu) (net 58)) + (segment (start 146.2352 96.3836) (end 146.2352 105.0704) (width 0.3) (layer B.Cu) (net 58)) + (segment (start 146.2352 107.3976) (end 146.2606 107.423) (width 0.3) (layer F.Cu) (net 58)) + (segment (start 146.2352 105.0704) (end 146.2352 107.3976) (width 0.3) (layer F.Cu) (net 58)) + (segment (start 137.5125 93.079) (end 139.273 93.079) (width 0.2) (layer F.Cu) (net 58)) + (segment (start 142.1204 95.4184) (end 141.620401 94.918401) (width 0.3) (layer F.Cu) (net 58)) + (segment (start 140.53925 93.83725) (end 140.03125 93.83725) (width 0.3) (layer F.Cu) (net 58)) + (segment (start 139.273 93.079) (end 140.03125 93.83725) (width 0.2) (layer F.Cu) (net 58)) + (segment (start 141.620401 94.918401) (end 140.53925 93.83725) (width 0.3) (layer F.Cu) (net 58)) + (segment (start 139.7849 92.579) (end 140.3604 93.1545) (width 0.2) (layer F.Cu) (net 59)) + (segment (start 137.5125 92.579) (end 139.7849 92.579) (width 0.2) (layer F.Cu) (net 59) (status 10)) + (segment (start 144.9906 106.448) (end 144.9652 106.4226) (width 0.3) (layer F.Cu) (net 59)) + (segment (start 144.9906 107.423) (end 144.9906 106.448) (width 0.3) (layer F.Cu) (net 59)) + (segment (start 144.9652 106.4226) (end 144.9652 96.8408) (width 0.3) (layer F.Cu) (net 59)) + (segment (start 141.2789 93.1545) (end 140.3604 93.1545) (width 0.3) (layer F.Cu) (net 59)) + (segment (start 144.9652 96.8408) (end 141.2789 93.1545) (width 0.3) (layer F.Cu) (net 59)) + (segment (start 137.5125 92.079) (end 141.1137 92.079) (width 0.2) (layer F.Cu) (net 60) (status 10)) + (segment (start 142.7988 93.7641) (end 141.1137 92.079) (width 0.3) (layer F.Cu) (net 60)) + (segment (start 145.5875 96.5528) (end 142.7988 93.7641) (width 0.3) (layer F.Cu) (net 60)) + (segment (start 148.8006 107.423) (end 148.8006 106.2896) (width 0.3) (layer F.Cu) (net 60)) + (segment (start 145.5875 103.0765) (end 145.5875 96.5528) (width 0.3) (layer F.Cu) (net 60)) + (segment (start 148.8006 106.2896) (end 145.5875 103.0765) (width 0.3) (layer F.Cu) (net 60)) + (segment (start 102.8425 80.0875) (end 103.0978 79.8322) (width 0.5) (layer B.Cu) (net 61) (tstamp 5E38E0F7) (status 30)) + (segment (start 100.5332 80.0875) (end 102.8425 80.0875) (width 0.5) (layer B.Cu) (net 61) (tstamp 5E38E0BB) (status 30)) + (segment (start 107.8978 79.8322) (end 103.0978 79.8322) (width 0.5) (layer B.Cu) (net 61) (tstamp 5E38E0B5) (status 20)) + (segment (start 109.3978 79.8322) (end 107.8978 79.8322) (width 0.5) (layer B.Cu) (net 61) (status 10)) + (segment (start 109.3978 80.7322) (end 109.3978 79.8322) (width 0.5) (layer B.Cu) (net 61) (status 30)) + (segment (start 111.7871 83.1215) (end 109.3978 80.7322) (width 0.5) (layer B.Cu) (net 61) (status 20)) + (segment (start 116.1623 83.1215) (end 111.7871 83.1215) (width 0.5) (layer B.Cu) (net 61)) + (segment (start 116.81 83.7692) (end 116.1623 83.1215) (width 0.5) (layer B.Cu) (net 61)) + (segment (start 119.06 83.7692) (end 116.81 83.7692) (width 0.5) (layer B.Cu) (net 61) (status 10)) + (segment (start 119.0752 83.7844) (end 119.06 83.7692) (width 0.5) (layer B.Cu) (net 61) (status 30)) + + (zone (net 2) (net_name GND) (layer B.Cu) (tstamp 5E3A9917) (hatch edge 0.508) + (connect_pads (clearance 0.5)) + (min_thickness 0.254) + (fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 81 63) (xy 173.5 63) (xy 173.5 117) (xy 81 117) + ) + ) + (filled_polygon + (pts + (xy 173.298001 116.798) (xy 81.202 116.798) (xy 81.202 112.78066) (xy 82.773 112.78066) (xy 82.773 113.21934) + (xy 82.858582 113.649592) (xy 83.026458 114.05488) (xy 83.270176 114.41963) (xy 83.58037 114.729824) (xy 83.94512 114.973542) + (xy 84.350408 115.141418) (xy 84.78066 115.227) (xy 85.21934 115.227) (xy 85.649592 115.141418) (xy 86.05488 114.973542) + (xy 86.41963 114.729824) (xy 86.729824 114.41963) (xy 86.973542 114.05488) (xy 87.141418 113.649592) (xy 87.227 113.21934) + (xy 87.227 112.78066) (xy 87.141418 112.350408) (xy 86.973542 111.94512) (xy 86.729824 111.58037) (xy 86.41963 111.270176) + (xy 86.05488 111.026458) (xy 85.649592 110.858582) (xy 85.21934 110.773) (xy 84.78066 110.773) (xy 84.350408 110.858582) + (xy 83.94512 111.026458) (xy 83.58037 111.270176) (xy 83.270176 111.58037) (xy 83.026458 111.94512) (xy 82.858582 112.350408) + (xy 82.773 112.78066) (xy 81.202 112.78066) (xy 81.202 110.2) (xy 118.592967 110.2) (xy 118.592967 112.8) + (xy 118.605073 112.922913) (xy 118.640925 113.041103) (xy 118.699147 113.150028) (xy 118.777499 113.245501) (xy 118.872972 113.323853) + (xy 118.981897 113.382075) (xy 119.100087 113.417927) (xy 119.223 113.430033) (xy 121.823 113.430033) (xy 121.945913 113.417927) + (xy 122.064103 113.382075) (xy 122.173028 113.323853) (xy 122.268501 113.245501) (xy 122.346853 113.150028) (xy 122.405075 113.041103) + (xy 122.440927 112.922913) (xy 122.453033 112.8) (xy 122.453033 111.310207) (xy 123.596 111.310207) (xy 123.596 111.689793) + (xy 123.670053 112.062085) (xy 123.815315 112.412777) (xy 124.026201 112.728391) (xy 124.294609 112.996799) (xy 124.610223 113.207685) + (xy 124.960915 113.352947) (xy 125.333207 113.427) (xy 125.712793 113.427) (xy 126.085085 113.352947) (xy 126.435777 113.207685) + (xy 126.751391 112.996799) (xy 127.019799 112.728391) (xy 127.230685 112.412777) (xy 127.375947 112.062085) (xy 127.45 111.689793) + (xy 127.45 111.310207) (xy 127.375947 110.937915) (xy 127.230685 110.587223) (xy 127.019799 110.271609) (xy 126.94819 110.2) + (xy 129.705467 110.2) (xy 129.705467 112.8) (xy 129.717573 112.922913) (xy 129.753425 113.041103) (xy 129.811647 113.150028) + (xy 129.889999 113.245501) (xy 129.985472 113.323853) (xy 130.094397 113.382075) (xy 130.212587 113.417927) (xy 130.3355 113.430033) + (xy 132.9355 113.430033) (xy 133.058413 113.417927) (xy 133.176603 113.382075) (xy 133.285528 113.323853) (xy 133.381001 113.245501) + (xy 133.459353 113.150028) (xy 133.517575 113.041103) (xy 133.553427 112.922913) (xy 133.565533 112.8) (xy 133.565533 111.310207) + (xy 134.7085 111.310207) (xy 134.7085 111.689793) (xy 134.782553 112.062085) (xy 134.927815 112.412777) (xy 135.138701 112.728391) + (xy 135.407109 112.996799) (xy 135.722723 113.207685) (xy 136.073415 113.352947) (xy 136.445707 113.427) (xy 136.825293 113.427) + (xy 137.197585 113.352947) (xy 137.548277 113.207685) (xy 137.863891 112.996799) (xy 138.132299 112.728391) (xy 138.343185 112.412777) + (xy 138.488447 112.062085) (xy 138.5625 111.689793) (xy 138.5625 111.310207) (xy 138.488447 110.937915) (xy 138.343185 110.587223) + (xy 138.132299 110.271609) (xy 138.06069 110.2) (xy 154.569967 110.2) (xy 154.569967 112.8) (xy 154.582073 112.922913) + (xy 154.617925 113.041103) (xy 154.676147 113.150028) (xy 154.754499 113.245501) (xy 154.849972 113.323853) (xy 154.958897 113.382075) + (xy 155.077087 113.417927) (xy 155.2 113.430033) (xy 157.8 113.430033) (xy 157.922913 113.417927) (xy 158.041103 113.382075) + (xy 158.150028 113.323853) (xy 158.245501 113.245501) (xy 158.323853 113.150028) (xy 158.382075 113.041103) (xy 158.417927 112.922913) + (xy 158.430033 112.8) (xy 158.430033 111.310207) (xy 159.573 111.310207) (xy 159.573 111.689793) (xy 159.647053 112.062085) + (xy 159.792315 112.412777) (xy 160.003201 112.728391) (xy 160.271609 112.996799) (xy 160.587223 113.207685) (xy 160.937915 113.352947) + (xy 161.310207 113.427) (xy 161.689793 113.427) (xy 162.062085 113.352947) (xy 162.412777 113.207685) (xy 162.728391 112.996799) + (xy 162.94453 112.78066) (xy 167.773 112.78066) (xy 167.773 113.21934) (xy 167.858582 113.649592) (xy 168.026458 114.05488) + (xy 168.270176 114.41963) (xy 168.58037 114.729824) (xy 168.94512 114.973542) (xy 169.350408 115.141418) (xy 169.78066 115.227) + (xy 170.21934 115.227) (xy 170.649592 115.141418) (xy 171.05488 114.973542) (xy 171.41963 114.729824) (xy 171.729824 114.41963) + (xy 171.973542 114.05488) (xy 172.141418 113.649592) (xy 172.227 113.21934) (xy 172.227 112.78066) (xy 172.141418 112.350408) + (xy 171.973542 111.94512) (xy 171.729824 111.58037) (xy 171.41963 111.270176) (xy 171.05488 111.026458) (xy 170.649592 110.858582) + (xy 170.21934 110.773) (xy 169.78066 110.773) (xy 169.350408 110.858582) (xy 168.94512 111.026458) (xy 168.58037 111.270176) + (xy 168.270176 111.58037) (xy 168.026458 111.94512) (xy 167.858582 112.350408) (xy 167.773 112.78066) (xy 162.94453 112.78066) + (xy 162.996799 112.728391) (xy 163.207685 112.412777) (xy 163.352947 112.062085) (xy 163.427 111.689793) (xy 163.427 111.310207) + (xy 163.352947 110.937915) (xy 163.207685 110.587223) (xy 162.996799 110.271609) (xy 162.728391 110.003201) (xy 162.412777 109.792315) + (xy 162.062085 109.647053) (xy 161.689793 109.573) (xy 161.310207 109.573) (xy 160.937915 109.647053) (xy 160.587223 109.792315) + (xy 160.271609 110.003201) (xy 160.003201 110.271609) (xy 159.792315 110.587223) (xy 159.647053 110.937915) (xy 159.573 111.310207) + (xy 158.430033 111.310207) (xy 158.430033 110.2) (xy 158.417927 110.077087) (xy 158.382075 109.958897) (xy 158.323853 109.849972) + (xy 158.245501 109.754499) (xy 158.150028 109.676147) (xy 158.041103 109.617925) (xy 157.922913 109.582073) (xy 157.8 109.569967) + (xy 155.2 109.569967) (xy 155.077087 109.582073) (xy 154.958897 109.617925) (xy 154.849972 109.676147) (xy 154.754499 109.754499) + (xy 154.676147 109.849972) (xy 154.617925 109.958897) (xy 154.582073 110.077087) (xy 154.569967 110.2) (xy 138.06069 110.2) + (xy 137.863891 110.003201) (xy 137.548277 109.792315) (xy 137.197585 109.647053) (xy 136.825293 109.573) (xy 136.445707 109.573) + (xy 136.073415 109.647053) (xy 135.722723 109.792315) (xy 135.407109 110.003201) (xy 135.138701 110.271609) (xy 134.927815 110.587223) + (xy 134.782553 110.937915) (xy 134.7085 111.310207) (xy 133.565533 111.310207) (xy 133.565533 110.2) (xy 133.553427 110.077087) + (xy 133.517575 109.958897) (xy 133.459353 109.849972) (xy 133.381001 109.754499) (xy 133.285528 109.676147) (xy 133.176603 109.617925) + (xy 133.058413 109.582073) (xy 132.9355 109.569967) (xy 130.3355 109.569967) (xy 130.212587 109.582073) (xy 130.094397 109.617925) + (xy 129.985472 109.676147) (xy 129.889999 109.754499) (xy 129.811647 109.849972) (xy 129.753425 109.958897) (xy 129.717573 110.077087) + (xy 129.705467 110.2) (xy 126.94819 110.2) (xy 126.751391 110.003201) (xy 126.435777 109.792315) (xy 126.085085 109.647053) + (xy 125.712793 109.573) (xy 125.333207 109.573) (xy 124.960915 109.647053) (xy 124.610223 109.792315) (xy 124.294609 110.003201) + (xy 124.026201 110.271609) (xy 123.815315 110.587223) (xy 123.670053 110.937915) (xy 123.596 111.310207) (xy 122.453033 111.310207) + (xy 122.453033 110.2) (xy 122.440927 110.077087) (xy 122.405075 109.958897) (xy 122.346853 109.849972) (xy 122.268501 109.754499) + (xy 122.173028 109.676147) (xy 122.064103 109.617925) (xy 121.945913 109.582073) (xy 121.823 109.569967) (xy 119.223 109.569967) + (xy 119.100087 109.582073) (xy 118.981897 109.617925) (xy 118.872972 109.676147) (xy 118.777499 109.754499) (xy 118.699147 109.849972) + (xy 118.640925 109.958897) (xy 118.605073 110.077087) (xy 118.592967 110.2) (xy 81.202 110.2) (xy 81.202 106.5856) + (xy 95.231928 106.5856) (xy 95.244188 106.710082) (xy 95.280498 106.82978) (xy 95.339463 106.940094) (xy 95.418815 107.036785) + (xy 95.515506 107.116137) (xy 95.62582 107.175102) (xy 95.745518 107.211412) (xy 95.87 107.223672) (xy 96.43425 107.2206) + (xy 96.593 107.06185) (xy 96.593 105.8626) (xy 96.847 105.8626) (xy 96.847 107.06185) (xy 97.00575 107.2206) + (xy 97.57 107.223672) (xy 97.694482 107.211412) (xy 97.81418 107.175102) (xy 97.924494 107.116137) (xy 98.021185 107.036785) + (xy 98.100537 106.940094) (xy 98.159502 106.82978) (xy 98.195812 106.710082) (xy 98.208072 106.5856) (xy 98.205 106.02135) + (xy 98.04625 105.8626) (xy 96.847 105.8626) (xy 96.593 105.8626) (xy 95.39375 105.8626) (xy 95.235 106.02135) + (xy 95.231928 106.5856) (xy 81.202 106.5856) (xy 81.202 104.124207) (xy 85.9198 104.124207) (xy 85.9198 104.503793) + (xy 85.993853 104.876085) (xy 86.139115 105.226777) (xy 86.350001 105.542391) (xy 86.618409 105.810799) (xy 86.934023 106.021685) + (xy 87.284715 106.166947) (xy 87.657007 106.241) (xy 88.036593 106.241) (xy 88.408885 106.166947) (xy 88.759577 106.021685) + (xy 89.075191 105.810799) (xy 89.343599 105.542391) (xy 89.554485 105.226777) (xy 89.699747 104.876085) (xy 89.7738 104.503793) + (xy 89.7738 104.124207) (xy 89.699747 103.751915) (xy 89.554485 103.401223) (xy 89.343599 103.085609) (xy 89.075191 102.817201) + (xy 88.759577 102.606315) (xy 88.408885 102.461053) (xy 88.036593 102.387) (xy 87.657007 102.387) (xy 87.284715 102.461053) + (xy 86.934023 102.606315) (xy 86.618409 102.817201) (xy 86.350001 103.085609) (xy 86.139115 103.401223) (xy 85.993853 103.751915) + (xy 85.9198 104.124207) (xy 81.202 104.124207) (xy 81.202 98.014) (xy 85.916767 98.014) (xy 85.916767 100.614) + (xy 85.928873 100.736913) (xy 85.964725 100.855103) (xy 86.022947 100.964028) (xy 86.101299 101.059501) (xy 86.196772 101.137853) + (xy 86.305697 101.196075) (xy 86.423887 101.231927) (xy 86.5468 101.244033) (xy 89.1468 101.244033) (xy 89.269713 101.231927) + (xy 89.387903 101.196075) (xy 89.496828 101.137853) (xy 89.592301 101.059501) (xy 89.670653 100.964028) (xy 89.728875 100.855103) + (xy 89.764727 100.736913) (xy 89.776833 100.614) (xy 89.776833 98.014) (xy 89.764727 97.891087) (xy 89.728875 97.772897) + (xy 89.670653 97.663972) (xy 89.592301 97.568499) (xy 89.496828 97.490147) (xy 89.387903 97.431925) (xy 89.269713 97.396073) + (xy 89.1468 97.383967) (xy 86.5468 97.383967) (xy 86.423887 97.396073) (xy 86.305697 97.431925) (xy 86.196772 97.490147) + (xy 86.101299 97.568499) (xy 86.022947 97.663972) (xy 85.964725 97.772897) (xy 85.928873 97.891087) (xy 85.916767 98.014) + (xy 81.202 98.014) (xy 81.202 93.049807) (xy 85.9198 93.049807) (xy 85.9198 93.429393) (xy 85.993853 93.801685) + (xy 86.139115 94.152377) (xy 86.350001 94.467991) (xy 86.618409 94.736399) (xy 86.934023 94.947285) (xy 87.284715 95.092547) + (xy 87.657007 95.1666) (xy 88.036593 95.1666) (xy 88.408885 95.092547) (xy 88.759577 94.947285) (xy 89.075191 94.736399) + (xy 89.343599 94.467991) (xy 89.554485 94.152377) (xy 89.699747 93.801685) (xy 89.7738 93.429393) (xy 89.7738 93.049807) + (xy 89.699747 92.677515) (xy 89.554485 92.326823) (xy 89.343599 92.011209) (xy 89.075191 91.742801) (xy 88.759577 91.531915) + (xy 88.408885 91.386653) (xy 88.036593 91.3126) (xy 87.657007 91.3126) (xy 87.284715 91.386653) (xy 86.934023 91.531915) + (xy 86.618409 91.742801) (xy 86.350001 92.011209) (xy 86.139115 92.326823) (xy 85.993853 92.677515) (xy 85.9198 93.049807) + (xy 81.202 93.049807) (xy 81.202 86.9396) (xy 85.916767 86.9396) (xy 85.916767 89.5396) (xy 85.928873 89.662513) + (xy 85.964725 89.780703) (xy 86.022947 89.889628) (xy 86.101299 89.985101) (xy 86.196772 90.063453) (xy 86.305697 90.121675) + (xy 86.423887 90.157527) (xy 86.5468 90.169633) (xy 89.1468 90.169633) (xy 89.269713 90.157527) (xy 89.387903 90.121675) + (xy 89.496828 90.063453) (xy 89.592301 89.985101) (xy 89.670653 89.889628) (xy 89.682962 89.8666) (xy 90.565675 89.8666) + (xy 90.873 90.173926) (xy 90.873001 93.420076) (xy 90.865129 93.5) (xy 90.873001 93.579925) (xy 90.896543 93.818948) + (xy 90.970097 94.061425) (xy 90.989576 94.125638) (xy 91.140654 94.408285) (xy 91.293022 94.593947) (xy 91.293026 94.593951) + (xy 91.343972 94.656029) (xy 91.40605 94.706975) (xy 93.36862 96.669545) (xy 93.419571 96.731629) (xy 93.667314 96.934946) + (xy 93.949962 97.086025) (xy 94.208196 97.164359) (xy 94.256652 97.179058) (xy 94.5756 97.210472) (xy 94.655525 97.2026) + (xy 95.558569 97.2026) (xy 95.485978 97.291053) (xy 95.348828 97.547642) (xy 95.264371 97.826057) (xy 95.235854 98.1156) + (xy 95.264371 98.405143) (xy 95.348828 98.683558) (xy 95.485978 98.940147) (xy 95.67055 99.16505) (xy 95.895453 99.349622) + (xy 95.962763 99.3856) (xy 95.895453 99.421578) (xy 95.67055 99.60615) (xy 95.485978 99.831053) (xy 95.348828 100.087642) + (xy 95.264371 100.366057) (xy 95.235854 100.6556) (xy 95.264371 100.945143) (xy 95.348828 101.223558) (xy 95.485978 101.480147) + (xy 95.67055 101.70505) (xy 95.895453 101.889622) (xy 95.962763 101.9256) (xy 95.895453 101.961578) (xy 95.67055 102.14615) + (xy 95.485978 102.371053) (xy 95.348828 102.627642) (xy 95.264371 102.906057) (xy 95.235854 103.1956) (xy 95.264371 103.485143) + (xy 95.348828 103.763558) (xy 95.485978 104.020147) (xy 95.67055 104.24505) (xy 95.703894 104.272415) (xy 95.62582 104.296098) + (xy 95.515506 104.355063) (xy 95.418815 104.434415) (xy 95.339463 104.531106) (xy 95.280498 104.64142) (xy 95.244188 104.761118) + (xy 95.231928 104.8856) (xy 95.235 105.44985) (xy 95.39375 105.6086) (xy 96.593 105.6086) (xy 96.593 105.5886) + (xy 96.847 105.5886) (xy 96.847 105.6086) (xy 98.04625 105.6086) (xy 98.205 105.44985) (xy 98.208072 104.8856) + (xy 98.195812 104.761118) (xy 98.159502 104.64142) (xy 98.100537 104.531106) (xy 98.021185 104.434415) (xy 97.924494 104.355063) + (xy 97.81418 104.296098) (xy 97.736106 104.272415) (xy 97.76945 104.24505) (xy 97.954022 104.020147) (xy 97.979436 103.9726) + (xy 98.250237 103.9726) (xy 98.2884 103.976359) (xy 98.326563 103.9726) (xy 98.326566 103.9726) (xy 98.440719 103.961357) + (xy 98.587184 103.916927) (xy 98.722166 103.844777) (xy 98.84048 103.74768) (xy 98.864812 103.718031) (xy 99.927343 102.655501) + (xy 107.840377 102.655501) (xy 107.764371 102.906057) (xy 107.735854 103.1956) (xy 107.764371 103.485143) (xy 107.848828 103.763558) + (xy 107.985978 104.020147) (xy 108.17055 104.24505) (xy 108.395453 104.429622) (xy 108.462763 104.4656) (xy 108.395453 104.501578) + (xy 108.17055 104.68615) (xy 107.985978 104.911053) (xy 107.848828 105.167642) (xy 107.764371 105.446057) (xy 107.735854 105.7356) + (xy 107.764371 106.025143) (xy 107.848828 106.303558) (xy 107.985978 106.560147) (xy 108.17055 106.78505) (xy 108.395453 106.969622) + (xy 108.652042 107.106772) (xy 108.930457 107.191229) (xy 109.147444 107.2126) (xy 109.292556 107.2126) (xy 109.509543 107.191229) + (xy 109.787958 107.106772) (xy 110.044547 106.969622) (xy 110.26945 106.78505) (xy 110.454022 106.560147) (xy 110.591172 106.303558) + (xy 110.675629 106.025143) (xy 110.704146 105.7356) (xy 110.675629 105.446057) (xy 110.591172 105.167642) (xy 110.454022 104.911053) + (xy 110.26945 104.68615) (xy 110.044547 104.501578) (xy 109.977237 104.4656) (xy 110.044547 104.429622) (xy 110.26945 104.24505) + (xy 110.454022 104.020147) (xy 110.591172 103.763558) (xy 110.675629 103.485143) (xy 110.704146 103.1956) (xy 110.675629 102.906057) + (xy 110.598623 102.652206) (xy 110.679318 102.644258) (xy 110.825783 102.599828) (xy 110.960765 102.527678) (xy 111.079079 102.430581) + (xy 111.103411 102.400932) (xy 113.016344 100.488) (xy 121.038337 100.488) (xy 121.0765 100.491759) (xy 121.114663 100.488) + (xy 121.114666 100.488) (xy 121.228819 100.476757) (xy 121.375284 100.432327) (xy 121.510266 100.360177) (xy 121.62858 100.26308) + (xy 121.652912 100.233431) (xy 122.493843 99.392501) (xy 125.372336 99.392501) (xy 125.410499 99.39626) (xy 125.448662 99.392501) + (xy 125.448665 99.392501) (xy 125.562818 99.381258) (xy 125.683377 99.344687) (xy 125.653073 99.444587) (xy 125.640967 99.5675) + (xy 125.640967 100.3675) (xy 125.653073 100.490413) (xy 125.688925 100.608603) (xy 125.747147 100.717528) (xy 125.75611 100.72845) + (xy 125.755835 100.728266) (xy 125.550734 100.64331) (xy 125.333 100.6) (xy 125.111 100.6) (xy 124.893266 100.64331) + (xy 124.688165 100.728266) (xy 124.503579 100.851602) (xy 124.346602 101.008579) (xy 124.223266 101.193165) (xy 124.13831 101.398266) + (xy 124.095 101.616) (xy 124.095 101.838) (xy 124.13831 102.055734) (xy 124.223266 102.260835) (xy 124.346602 102.445421) + (xy 124.490501 102.58932) (xy 124.4905 103.910681) (xy 124.392102 104.009079) (xy 124.268766 104.193665) (xy 124.18381 104.398766) + (xy 124.1405 104.6165) (xy 124.1405 104.8385) (xy 124.18381 105.056234) (xy 124.268766 105.261335) (xy 124.392102 105.445921) + (xy 124.549079 105.602898) (xy 124.733665 105.726234) (xy 124.938766 105.81119) (xy 125.1565 105.8545) (xy 125.3785 105.8545) + (xy 125.596234 105.81119) (xy 125.801335 105.726234) (xy 125.985921 105.602898) (xy 126.142898 105.445921) (xy 126.266234 105.261335) + (xy 126.35119 105.056234) (xy 126.3945 104.8385) (xy 126.3945 104.6165) (xy 126.35119 104.398766) (xy 126.266234 104.193665) + (xy 126.142898 104.009079) (xy 126.0445 103.910681) (xy 126.0445 102.498319) (xy 126.097398 102.445421) (xy 126.220734 102.260835) + (xy 126.30569 102.055734) (xy 126.349 101.838) (xy 126.349 101.616) (xy 126.30569 101.398266) (xy 126.220734 101.193165) + (xy 126.097398 101.008579) (xy 126.042094 100.953275) (xy 126.148087 100.985427) (xy 126.271 100.997533) (xy 128.171 100.997533) + (xy 128.293913 100.985427) (xy 128.412103 100.949575) (xy 128.521028 100.891353) (xy 128.616501 100.813001) (xy 128.640967 100.783189) + (xy 128.640967 101.3175) (xy 128.653073 101.440413) (xy 128.688925 101.558603) (xy 128.747147 101.667528) (xy 128.825499 101.763001) + (xy 128.920972 101.841353) (xy 129.029897 101.899575) (xy 129.148087 101.935427) (xy 129.271 101.947533) (xy 131.171 101.947533) + (xy 131.277569 101.937037) (xy 131.31381 102.119234) (xy 131.398766 102.324335) (xy 131.522102 102.508921) (xy 131.6205 102.607319) + (xy 131.6205 102.776181) (xy 131.522102 102.874579) (xy 131.398766 103.059165) (xy 131.31381 103.264266) (xy 131.2705 103.482) + (xy 131.2705 103.704) (xy 131.31381 103.921734) (xy 131.398766 104.126835) (xy 131.522102 104.311421) (xy 131.679079 104.468398) + (xy 131.863665 104.591734) (xy 132.068766 104.67669) (xy 132.2865 104.72) (xy 132.5085 104.72) (xy 132.726234 104.67669) + (xy 132.931335 104.591734) (xy 133.115921 104.468398) (xy 133.272898 104.311421) (xy 133.396234 104.126835) (xy 133.48119 103.921734) + (xy 133.5245 103.704) (xy 133.5245 103.482) (xy 133.48119 103.264266) (xy 133.396234 103.059165) (xy 133.272898 102.874579) + (xy 133.1745 102.776181) (xy 133.1745 102.607319) (xy 133.272898 102.508921) (xy 133.396234 102.324335) (xy 133.48119 102.119234) + (xy 133.5245 101.9015) (xy 133.5245 101.6795) (xy 133.48119 101.461766) (xy 133.396234 101.256665) (xy 133.272898 101.072079) + (xy 133.115921 100.915102) (xy 133.051671 100.872172) (xy 133.657311 100.266533) (xy 133.951 100.266533) (xy 134.120247 100.249864) + (xy 134.282991 100.200496) (xy 134.432976 100.120327) (xy 134.564438 100.012438) (xy 134.672327 99.880976) (xy 134.677894 99.870561) + (xy 134.802284 99.832827) (xy 134.937266 99.760677) (xy 135.05558 99.66358) (xy 135.079912 99.633931) (xy 135.632937 99.080907) + (xy 135.66258 99.05658) (xy 135.686909 99.026935) (xy 135.759678 98.938266) (xy 135.815009 98.834748) (xy 135.831827 98.803284) + (xy 135.876257 98.656819) (xy 135.8875 98.542666) (xy 135.8875 98.542664) (xy 135.891259 98.5045) (xy 135.8875 98.466337) + (xy 135.8875 96.7052) (xy 136.121628 96.7052) (xy 136.133888 96.829682) (xy 136.170198 96.94938) (xy 136.229163 97.059694) + (xy 136.308515 97.156385) (xy 136.405206 97.235737) (xy 136.51552 97.294702) (xy 136.635218 97.331012) (xy 136.7597 97.343272) + (xy 137.64895 97.3402) (xy 137.8077 97.18145) (xy 137.8077 95.7072) (xy 138.0617 95.7072) (xy 138.0617 97.18145) + (xy 138.22045 97.3402) (xy 139.1097 97.343272) (xy 139.234182 97.331012) (xy 139.35388 97.294702) (xy 139.464194 97.235737) + (xy 139.560885 97.156385) (xy 139.640237 97.059694) (xy 139.699202 96.94938) (xy 139.735512 96.829682) (xy 139.747772 96.7052) + (xy 139.7447 95.86595) (xy 139.58595 95.7072) (xy 138.0617 95.7072) (xy 137.8077 95.7072) (xy 136.28345 95.7072) + (xy 136.1247 95.86595) (xy 136.121628 96.7052) (xy 135.8875 96.7052) (xy 135.8875 96.320163) (xy 135.891259 96.282) + (xy 135.887147 96.240253) (xy 135.876257 96.129681) (xy 135.831827 95.983216) (xy 135.775413 95.877673) (xy 135.759677 95.848233) + (xy 135.686909 95.759565) (xy 135.686908 95.759564) (xy 135.66258 95.72992) (xy 135.632936 95.705592) (xy 134.8255 94.898157) + (xy 134.8255 94.719397) (xy 134.89305 94.7183) (xy 135.0518 94.55955) (xy 135.0518 93.6853) (xy 135.3058 93.6853) + (xy 135.3058 94.55955) (xy 135.46455 94.7183) (xy 135.6538 94.721372) (xy 135.778282 94.709112) (xy 135.89798 94.672802) + (xy 136.008294 94.613837) (xy 136.104985 94.534485) (xy 136.121843 94.513943) (xy 136.1247 95.29445) (xy 136.28345 95.4532) + (xy 137.8077 95.4532) (xy 137.8077 93.97895) (xy 138.0617 93.97895) (xy 138.0617 95.4532) (xy 139.58595 95.4532) + (xy 139.73175 95.3074) (xy 140.9934 95.3074) (xy 140.9934 95.5294) (xy 141.03671 95.747134) (xy 141.121666 95.952235) + (xy 141.245002 96.136821) (xy 141.401979 96.293798) (xy 141.586565 96.417134) (xy 141.791666 96.50209) (xy 141.947287 96.533045) + (xy 141.759477 96.687177) (xy 141.581152 96.904466) (xy 141.448645 97.152369) (xy 141.367048 97.421359) (xy 141.339496 97.7011) + (xy 141.367048 97.980841) (xy 141.448645 98.249831) (xy 141.581152 98.497734) (xy 141.759477 98.715023) (xy 141.976766 98.893348) + (xy 142.12223 98.9711) (xy 141.976766 99.048852) (xy 141.759477 99.227177) (xy 141.581152 99.444466) (xy 141.448645 99.692369) + (xy 141.367048 99.961359) (xy 141.339496 100.2411) (xy 141.367048 100.520841) (xy 141.448645 100.789831) (xy 141.581152 101.037734) + (xy 141.759477 101.255023) (xy 141.976766 101.433348) (xy 142.12223 101.5111) (xy 141.976766 101.588852) (xy 141.759477 101.767177) + (xy 141.581152 101.984466) (xy 141.448645 102.232369) (xy 141.367048 102.501359) (xy 141.339496 102.7811) (xy 141.367048 103.060841) + (xy 141.448645 103.329831) (xy 141.581152 103.577734) (xy 141.759477 103.795023) (xy 141.976766 103.973348) (xy 142.12223 104.0511) + (xy 141.976766 104.128852) (xy 141.759477 104.307177) (xy 141.581152 104.524466) (xy 141.448645 104.772369) (xy 141.367048 105.041359) + (xy 141.339496 105.3211) (xy 141.367048 105.600841) (xy 141.448645 105.869831) (xy 141.581152 106.117734) (xy 141.759477 106.335023) + (xy 141.976766 106.513348) (xy 142.224669 106.645855) (xy 142.493659 106.727452) (xy 142.703302 106.7481) (xy 142.843498 106.7481) + (xy 143.053141 106.727452) (xy 143.322131 106.645855) (xy 143.570034 106.513348) (xy 143.787323 106.335023) (xy 143.965648 106.117734) + (xy 144.098155 105.869831) (xy 144.179752 105.600841) (xy 144.207304 105.3211) (xy 144.179752 105.041359) (xy 144.098155 104.772369) + (xy 143.965648 104.524466) (xy 143.787323 104.307177) (xy 143.570034 104.128852) (xy 143.42457 104.0511) (xy 143.570034 103.973348) + (xy 143.787323 103.795023) (xy 143.965648 103.577734) (xy 144.098155 103.329831) (xy 144.179752 103.060841) (xy 144.207304 102.7811) + (xy 144.179752 102.501359) (xy 144.098155 102.232369) (xy 143.965648 101.984466) (xy 143.787323 101.767177) (xy 143.570034 101.588852) + (xy 143.42457 101.5111) (xy 143.570034 101.433348) (xy 143.787323 101.255023) (xy 143.965648 101.037734) (xy 144.098155 100.789831) + (xy 144.179752 100.520841) (xy 144.207304 100.2411) (xy 144.179752 99.961359) (xy 144.098155 99.692369) (xy 143.965648 99.444466) + (xy 143.787323 99.227177) (xy 143.570034 99.048852) (xy 143.42457 98.9711) (xy 143.570034 98.893348) (xy 143.787323 98.715023) + (xy 143.965648 98.497734) (xy 144.098155 98.249831) (xy 144.179752 97.980841) (xy 144.207304 97.7011) (xy 144.179752 97.421359) + (xy 144.098155 97.152369) (xy 143.965648 96.904466) (xy 143.787323 96.687177) (xy 143.570034 96.508852) (xy 143.322131 96.376345) + (xy 143.053141 96.294748) (xy 142.857172 96.275447) (xy 142.883137 96.249482) (xy 142.916461 96.2462) (xy 144.998957 96.2462) + (xy 145.4582 96.705444) (xy 145.458201 104.25358) (xy 145.359802 104.351979) (xy 145.236466 104.536565) (xy 145.15151 104.741666) + (xy 145.1082 104.9594) (xy 145.1082 105.1814) (xy 145.15151 105.399134) (xy 145.236466 105.604235) (xy 145.359802 105.788821) + (xy 145.516779 105.945798) (xy 145.701365 106.069134) (xy 145.906466 106.15409) (xy 146.1242 106.1974) (xy 146.3462 106.1974) + (xy 146.563934 106.15409) (xy 146.769035 106.069134) (xy 146.953621 105.945798) (xy 147.110598 105.788821) (xy 147.189898 105.670139) + (xy 149.001496 105.670139) (xy 149.042154 105.804187) (xy 149.162363 106.05852) (xy 149.329881 106.284514) (xy 149.538269 106.473485) + (xy 149.779519 106.61817) (xy 150.04436 106.713009) (xy 150.2664 106.591724) (xy 150.2664 105.4481) (xy 150.5204 105.4481) + (xy 150.5204 106.591724) (xy 150.74244 106.713009) (xy 151.007281 106.61817) (xy 151.248531 106.473485) (xy 151.456919 106.284514) + (xy 151.624437 106.05852) (xy 151.744646 105.804187) (xy 151.785304 105.670139) (xy 151.663315 105.4481) (xy 150.5204 105.4481) + (xy 150.2664 105.4481) (xy 149.123485 105.4481) (xy 149.001496 105.670139) (xy 147.189898 105.670139) (xy 147.233934 105.604235) + (xy 147.31889 105.399134) (xy 147.3622 105.1814) (xy 147.3622 104.9594) (xy 147.31889 104.741666) (xy 147.233934 104.536565) + (xy 147.110598 104.351979) (xy 147.0122 104.253581) (xy 147.0122 103.130139) (xy 149.001496 103.130139) (xy 149.042154 103.264187) + (xy 149.162363 103.51852) (xy 149.329881 103.744514) (xy 149.538269 103.933485) (xy 149.734382 104.0511) (xy 149.538269 104.168715) + (xy 149.329881 104.357686) (xy 149.162363 104.58368) (xy 149.042154 104.838013) (xy 149.001496 104.972061) (xy 149.123485 105.1941) + (xy 150.2664 105.1941) (xy 150.2664 102.9081) (xy 150.5204 102.9081) (xy 150.5204 105.1941) (xy 151.663315 105.1941) + (xy 151.785304 104.972061) (xy 151.744646 104.838013) (xy 151.624437 104.58368) (xy 151.456919 104.357686) (xy 151.248531 104.168715) + (xy 151.052418 104.0511) (xy 151.248531 103.933485) (xy 151.456919 103.744514) (xy 151.624437 103.51852) (xy 151.744646 103.264187) + (xy 151.785304 103.130139) (xy 151.663315 102.9081) (xy 150.5204 102.9081) (xy 150.2664 102.9081) (xy 149.123485 102.9081) + (xy 149.001496 103.130139) (xy 147.0122 103.130139) (xy 147.0122 100.590139) (xy 149.001496 100.590139) (xy 149.042154 100.724187) + (xy 149.162363 100.97852) (xy 149.329881 101.204514) (xy 149.538269 101.393485) (xy 149.734382 101.5111) (xy 149.538269 101.628715) + (xy 149.329881 101.817686) (xy 149.162363 102.04368) (xy 149.042154 102.298013) (xy 149.001496 102.432061) (xy 149.123485 102.6541) + (xy 150.2664 102.6541) (xy 150.2664 100.3681) (xy 150.5204 100.3681) (xy 150.5204 102.6541) (xy 151.663315 102.6541) + (xy 151.785304 102.432061) (xy 151.744646 102.298013) (xy 151.624437 102.04368) (xy 151.456919 101.817686) (xy 151.248531 101.628715) + (xy 151.052418 101.5111) (xy 151.248531 101.393485) (xy 151.456919 101.204514) (xy 151.586863 101.029209) (xy 168.650197 101.029209) + (xy 168.836273 101.370366) (xy 169.253609 101.586113) (xy 169.705015 101.716296) (xy 170.173146 101.755913) (xy 170.640011 101.703442) + (xy 171.087668 101.560897) (xy 171.444127 101.370366) (xy 171.630203 101.029209) (xy 170.1402 99.539205) (xy 168.650197 101.029209) + (xy 151.586863 101.029209) (xy 151.624437 100.97852) (xy 151.744646 100.724187) (xy 151.785304 100.590139) (xy 151.663315 100.3681) + (xy 150.5204 100.3681) (xy 150.2664 100.3681) (xy 149.123485 100.3681) (xy 149.001496 100.590139) (xy 147.0122 100.590139) + (xy 147.0122 98.5011) (xy 148.955328 98.5011) (xy 148.967588 98.625582) (xy 149.003898 98.74528) (xy 149.062863 98.855594) + (xy 149.142215 98.952285) (xy 149.238906 99.031637) (xy 149.34922 99.090602) (xy 149.468918 99.126912) (xy 149.49348 99.129331) + (xy 149.329881 99.277686) (xy 149.162363 99.50368) (xy 149.042154 99.758013) (xy 149.001496 99.892061) (xy 149.123485 100.1141) + (xy 150.2664 100.1141) (xy 150.2664 97.8281) (xy 150.5204 97.8281) (xy 150.5204 100.1141) (xy 151.663315 100.1141) + (xy 151.785304 99.892061) (xy 151.744646 99.758013) (xy 151.624437 99.50368) (xy 151.456919 99.277686) (xy 151.29332 99.129331) + (xy 151.317882 99.126912) (xy 151.43758 99.090602) (xy 151.547894 99.031637) (xy 151.644585 98.952285) (xy 151.723937 98.855594) + (xy 151.782902 98.74528) (xy 151.819212 98.625582) (xy 151.831472 98.5011) (xy 151.8284 97.98685) (xy 151.66965 97.8281) + (xy 150.5204 97.8281) (xy 150.2664 97.8281) (xy 149.11715 97.8281) (xy 148.9584 97.98685) (xy 148.955328 98.5011) + (xy 147.0122 98.5011) (xy 147.0122 96.9011) (xy 148.955328 96.9011) (xy 148.9584 97.41535) (xy 149.11715 97.5741) + (xy 150.2664 97.5741) (xy 150.2664 96.42485) (xy 150.5204 96.42485) (xy 150.5204 97.5741) (xy 151.66965 97.5741) + (xy 151.8284 97.41535) (xy 151.831472 96.9011) (xy 151.819212 96.776618) (xy 151.782902 96.65692) (xy 151.723937 96.546606) + (xy 151.644585 96.449915) (xy 151.547894 96.370563) (xy 151.43758 96.311598) (xy 151.317882 96.275288) (xy 151.1934 96.263028) + (xy 150.67915 96.2661) (xy 150.5204 96.42485) (xy 150.2664 96.42485) (xy 150.10765 96.2661) (xy 149.5934 96.263028) + (xy 149.468918 96.275288) (xy 149.34922 96.311598) (xy 149.238906 96.370563) (xy 149.142215 96.449915) (xy 149.062863 96.546606) + (xy 149.003898 96.65692) (xy 148.967588 96.776618) (xy 148.955328 96.9011) (xy 147.0122 96.9011) (xy 147.0122 96.421763) + (xy 147.015959 96.3836) (xy 147.010363 96.326783) (xy 147.000957 96.231281) (xy 146.956527 96.084816) (xy 146.911597 96.000759) + (xy 146.884377 95.949833) (xy 146.811609 95.861165) (xy 146.811608 95.861164) (xy 146.78728 95.83152) (xy 146.757637 95.807193) + (xy 145.897212 94.946769) (xy 145.87288 94.91712) (xy 145.754566 94.820023) (xy 145.619584 94.747873) (xy 145.473119 94.703443) + (xy 145.358966 94.6922) (xy 145.358963 94.6922) (xy 145.3208 94.688441) (xy 145.282637 94.6922) (xy 143.110226 94.6922) + (xy 142.979825 94.652643) (xy 142.945036 94.649217) (xy 142.838821 94.543002) (xy 142.654235 94.419666) (xy 142.449134 94.33471) + (xy 142.2314 94.2914) (xy 142.0094 94.2914) (xy 141.791666 94.33471) (xy 141.586565 94.419666) (xy 141.401979 94.543002) + (xy 141.245002 94.699979) (xy 141.121666 94.884565) (xy 141.03671 95.089666) (xy 140.9934 95.3074) (xy 139.73175 95.3074) + (xy 139.7447 95.29445) (xy 139.747772 94.4552) (xy 139.735512 94.330718) (xy 139.699202 94.21102) (xy 139.640237 94.100706) + (xy 139.560885 94.004015) (xy 139.464194 93.924663) (xy 139.35388 93.865698) (xy 139.234182 93.829388) (xy 139.1097 93.817128) + (xy 138.22045 93.8202) (xy 138.0617 93.97895) (xy 137.8077 93.97895) (xy 137.64895 93.8202) (xy 136.7597 93.817128) + (xy 136.635218 93.829388) (xy 136.51552 93.865698) (xy 136.405206 93.924663) (xy 136.308515 94.004015) (xy 136.291126 94.025204) + (xy 136.2888 93.84405) (xy 136.13005 93.6853) (xy 135.3058 93.6853) (xy 135.0518 93.6853) (xy 135.0318 93.6853) + (xy 135.0318 93.4313) (xy 135.0518 93.4313) (xy 135.0518 93.4113) (xy 135.3058 93.4113) (xy 135.3058 93.4313) + (xy 136.13005 93.4313) (xy 136.2888 93.27255) (xy 136.291872 93.0333) (xy 136.279612 92.908818) (xy 136.243302 92.78912) + (xy 136.184337 92.678806) (xy 136.119525 92.599833) (xy 136.137627 92.577776) (xy 136.217796 92.427791) (xy 136.267164 92.265047) + (xy 136.283833 92.0958) (xy 136.283833 91.851254) (xy 136.387422 91.977478) (xy 136.520779 92.086921) (xy 136.672925 92.168245) + (xy 136.838013 92.218323) (xy 137.009699 92.235233) (xy 138.645368 92.235233) (xy 139.131003 92.720868) (xy 139.158467 92.754333) + (xy 139.292008 92.863927) (xy 139.434348 92.940009) (xy 139.444363 92.945362) (xy 139.609677 92.99551) (xy 139.7816 93.012443) + (xy 139.824679 93.0082) (xy 152.013767 93.0082) (xy 152.013767 94.0372) (xy 152.025873 94.160113) (xy 152.061725 94.278303) + (xy 152.119947 94.387228) (xy 152.198299 94.482701) (xy 152.293772 94.561053) (xy 152.402697 94.619275) (xy 152.520887 94.655127) + (xy 152.6438 94.667233) (xy 153.250201 94.667233) (xy 153.2502 96.668226) (xy 153.154287 96.677673) (xy 153.036097 96.713525) + (xy 152.927172 96.771747) (xy 152.831699 96.850099) (xy 152.753347 96.945572) (xy 152.695125 97.054497) (xy 152.659273 97.172687) + (xy 152.647167 97.2956) (xy 152.647167 98.9956) (xy 152.659273 99.118513) (xy 152.695125 99.236703) (xy 152.753347 99.345628) + (xy 152.831699 99.441101) (xy 152.927172 99.519453) (xy 153.036097 99.577675) (xy 153.154287 99.613527) (xy 153.2772 99.625633) + (xy 154.9772 99.625633) (xy 155.100113 99.613527) (xy 155.218303 99.577675) (xy 155.327228 99.519453) (xy 155.422701 99.441101) + (xy 155.462548 99.392546) (xy 167.743887 99.392546) (xy 167.796358 99.859411) (xy 167.938903 100.307068) (xy 168.129434 100.663527) + (xy 168.470591 100.849603) (xy 169.960595 99.3596) (xy 170.319805 99.3596) (xy 171.809809 100.849603) (xy 172.150966 100.663527) + (xy 172.366713 100.246191) (xy 172.496896 99.794785) (xy 172.536513 99.326654) (xy 172.484042 98.859789) (xy 172.341497 98.412132) + (xy 172.150966 98.055673) (xy 171.809809 97.869597) (xy 170.319805 99.3596) (xy 169.960595 99.3596) (xy 168.470591 97.869597) + (xy 168.129434 98.055673) (xy 167.913687 98.473009) (xy 167.783504 98.924415) (xy 167.743887 99.392546) (xy 155.462548 99.392546) + (xy 155.501053 99.345628) (xy 155.559275 99.236703) (xy 155.595127 99.118513) (xy 155.607233 98.9956) (xy 155.607233 97.689991) + (xy 168.650197 97.689991) (xy 170.1402 99.179995) (xy 171.630203 97.689991) (xy 171.444127 97.348834) (xy 171.026791 97.133087) + (xy 170.575385 97.002904) (xy 170.107254 96.963287) (xy 169.640389 97.015758) (xy 169.192732 97.158303) (xy 168.836273 97.348834) + (xy 168.650197 97.689991) (xy 155.607233 97.689991) (xy 155.607233 97.2956) (xy 155.595127 97.172687) (xy 155.559275 97.054497) + (xy 155.501053 96.945572) (xy 155.422701 96.850099) (xy 155.327228 96.771747) (xy 155.218303 96.713525) (xy 155.100113 96.677673) + (xy 155.0042 96.668226) (xy 155.0042 94.552541) (xy 155.089301 94.482701) (xy 155.167653 94.387228) (xy 155.225875 94.278303) + (xy 155.261727 94.160113) (xy 155.273833 94.0372) (xy 155.273833 93.0142) (xy 158.327113 93.0142) (xy 158.361725 93.128303) + (xy 158.419947 93.237228) (xy 158.460958 93.2872) (xy 158.419947 93.337172) (xy 158.361725 93.446097) (xy 158.325873 93.564287) + (xy 158.313767 93.6872) (xy 158.313767 95.1872) (xy 158.325873 95.310113) (xy 158.361725 95.428303) (xy 158.419947 95.537228) + (xy 158.498299 95.632701) (xy 158.593772 95.711053) (xy 158.702697 95.769275) (xy 158.820887 95.805127) (xy 158.9438 95.817233) + (xy 160.9438 95.817233) (xy 161.066713 95.805127) (xy 161.184903 95.769275) (xy 161.284357 95.716116) (xy 161.361802 95.832021) + (xy 161.518779 95.988998) (xy 161.703365 96.112334) (xy 161.908466 96.19729) (xy 162.1262 96.2406) (xy 162.3482 96.2406) + (xy 162.565934 96.19729) (xy 162.771035 96.112334) (xy 162.955621 95.988998) (xy 163.112598 95.832021) (xy 163.235934 95.647435) + (xy 163.32089 95.442334) (xy 163.3642 95.2246) (xy 163.3642 95.0026) (xy 163.32089 94.784866) (xy 163.235934 94.579765) + (xy 163.112598 94.395179) (xy 162.955621 94.238202) (xy 162.771035 94.114866) (xy 162.750462 94.106344) (xy 162.760793 94.00145) + (xy 162.75655 93.958371) (xy 162.75655 93.7396) (xy 163.950167 93.7396) (xy 163.950167 95.4396) (xy 163.962273 95.562513) + (xy 163.998125 95.680703) (xy 164.056347 95.789628) (xy 164.134699 95.885101) (xy 164.230172 95.963453) (xy 164.339097 96.021675) + (xy 164.457287 96.057527) (xy 164.5802 96.069633) (xy 166.2802 96.069633) (xy 166.403113 96.057527) (xy 166.521303 96.021675) + (xy 166.630228 95.963453) (xy 166.7151 95.893801) (xy 166.923083 95.992971) (xy 167.206611 96.064939) (xy 167.498731 96.080211) + (xy 167.788219 96.038199) (xy 168.063947 95.940519) (xy 168.201357 95.867072) (xy 168.278992 95.617997) (xy 167.4302 94.769205) + (xy 167.416058 94.783348) (xy 167.236453 94.603743) (xy 167.250595 94.5896) (xy 167.609805 94.5896) (xy 168.458597 95.438392) + (xy 168.707672 95.360757) (xy 168.833571 95.096717) (xy 168.905539 94.813189) (xy 168.920811 94.521069) (xy 168.878799 94.231581) + (xy 168.781119 93.955853) (xy 168.707672 93.818443) (xy 168.458597 93.740808) (xy 167.609805 94.5896) (xy 167.250595 94.5896) + (xy 167.236453 94.575458) (xy 167.416058 94.395853) (xy 167.4302 94.409995) (xy 168.278992 93.561203) (xy 168.211308 93.344054) + (xy 168.371733 93.236861) (xy 168.577461 93.031133) (xy 168.739101 92.789222) (xy 168.85044 92.520425) (xy 168.9072 92.235072) + (xy 168.9072 91.944128) (xy 168.85044 91.658775) (xy 168.739101 91.389978) (xy 168.577461 91.148067) (xy 168.371733 90.942339) + (xy 168.129822 90.780699) (xy 167.861025 90.66936) (xy 167.575672 90.6126) (xy 167.284728 90.6126) (xy 166.999375 90.66936) + (xy 166.730578 90.780699) (xy 166.488667 90.942339) (xy 166.4302 91.000806) (xy 166.371733 90.942339) (xy 166.129822 90.780699) + (xy 165.861025 90.66936) (xy 165.575672 90.6126) (xy 165.284728 90.6126) (xy 164.999375 90.66936) (xy 164.730578 90.780699) + (xy 164.488667 90.942339) (xy 164.282939 91.148067) (xy 164.121299 91.389978) (xy 164.00996 91.658775) (xy 163.9532 91.944128) + (xy 163.9532 92.235072) (xy 164.00996 92.520425) (xy 164.121299 92.789222) (xy 164.282939 93.031133) (xy 164.392985 93.141179) + (xy 164.339097 93.157525) (xy 164.230172 93.215747) (xy 164.134699 93.294099) (xy 164.056347 93.389572) (xy 163.998125 93.498497) + (xy 163.962273 93.616687) (xy 163.950167 93.7396) (xy 162.75655 93.7396) (xy 162.75655 88.989209) (xy 168.650197 88.989209) + (xy 168.836273 89.330366) (xy 169.253609 89.546113) (xy 169.705015 89.676296) (xy 170.173146 89.715913) (xy 170.640011 89.663442) + (xy 171.087668 89.520897) (xy 171.444127 89.330366) (xy 171.630203 88.989209) (xy 170.1402 87.499205) (xy 168.650197 88.989209) + (xy 162.75655 88.989209) (xy 162.75655 87.352546) (xy 167.743887 87.352546) (xy 167.796358 87.819411) (xy 167.938903 88.267068) + (xy 168.129434 88.623527) (xy 168.470591 88.809603) (xy 169.960595 87.3196) (xy 170.319805 87.3196) (xy 171.809809 88.809603) + (xy 172.150966 88.623527) (xy 172.366713 88.206191) (xy 172.496896 87.754785) (xy 172.536513 87.286654) (xy 172.484042 86.819789) + (xy 172.341497 86.372132) (xy 172.150966 86.015673) (xy 171.809809 85.829597) (xy 170.319805 87.3196) (xy 169.960595 87.3196) + (xy 168.470591 85.829597) (xy 168.129434 86.015673) (xy 167.913687 86.433009) (xy 167.783504 86.884415) (xy 167.743887 87.352546) + (xy 162.75655 87.352546) (xy 162.75655 85.649991) (xy 168.650197 85.649991) (xy 170.1402 87.139995) (xy 171.630203 85.649991) + (xy 171.444127 85.308834) (xy 171.026791 85.093087) (xy 170.575385 84.962904) (xy 170.107254 84.923287) (xy 169.640389 84.975758) + (xy 169.192732 85.118303) (xy 168.836273 85.308834) (xy 168.650197 85.649991) (xy 162.75655 85.649991) (xy 162.75655 83.589026) + (xy 162.760793 83.545949) (xy 162.755888 83.49615) (xy 162.74386 83.374028) (xy 162.693712 83.208713) (xy 162.612277 83.056358) + (xy 162.502683 82.922817) (xy 162.469225 82.895359) (xy 162.152468 82.578603) (xy 162.265891 82.544196) (xy 162.415876 82.464027) + (xy 162.547338 82.356138) (xy 162.655227 82.224676) (xy 162.735396 82.074691) (xy 162.784764 81.911947) (xy 162.801433 81.7427) + (xy 162.801433 81.1677) (xy 162.784764 80.998453) (xy 162.735396 80.835709) (xy 162.655227 80.685724) (xy 162.568625 80.5802) + (xy 162.649052 80.4822) (xy 165.849667 80.4822) (xy 165.849667 82.9229) (xy 165.861773 83.045813) (xy 165.897625 83.164003) + (xy 165.955847 83.272928) (xy 166.034199 83.368401) (xy 166.129672 83.446753) (xy 166.238597 83.504975) (xy 166.356787 83.540827) + (xy 166.4797 83.552933) (xy 169.0797 83.552933) (xy 169.202613 83.540827) (xy 169.320803 83.504975) (xy 169.429728 83.446753) + (xy 169.525201 83.368401) (xy 169.603553 83.272928) (xy 169.661775 83.164003) (xy 169.697627 83.045813) (xy 169.709733 82.9229) + (xy 169.709733 80.3229) (xy 169.697627 80.199987) (xy 169.661775 80.081797) (xy 169.603553 79.972872) (xy 169.525201 79.877399) + (xy 169.429728 79.799047) (xy 169.320803 79.740825) (xy 169.202613 79.704973) (xy 169.0797 79.692867) (xy 168.484324 79.692867) + (xy 168.428877 79.589134) (xy 168.33178 79.47082) (xy 168.302132 79.446489) (xy 168.038413 79.18277) (xy 168.01408 79.15312) + (xy 167.895766 79.056023) (xy 167.760784 78.983873) (xy 167.614319 78.939443) (xy 167.500166 78.9282) (xy 167.500163 78.9282) + (xy 167.462 78.924441) (xy 167.423837 78.9282) (xy 162.649052 78.9282) (xy 162.547338 78.804262) (xy 162.415876 78.696373) + (xy 162.265891 78.616204) (xy 162.103147 78.566836) (xy 161.9339 78.550167) (xy 161.4589 78.550167) (xy 161.289653 78.566836) + (xy 161.126909 78.616204) (xy 160.976924 78.696373) (xy 160.845462 78.804262) (xy 160.737573 78.935724) (xy 160.657404 79.085709) + (xy 160.608036 79.248453) (xy 160.591367 79.4177) (xy 160.591367 79.9927) (xy 160.608036 80.161947) (xy 160.657404 80.324691) + (xy 160.737573 80.474676) (xy 160.824175 80.5802) (xy 160.737573 80.685724) (xy 160.657404 80.835709) (xy 160.608036 80.998453) + (xy 160.591367 81.1677) (xy 160.591367 81.356351) (xy 160.56899 81.354147) (xy 160.525911 81.35839) (xy 159.19088 81.35839) + (xy 159.270801 81.292801) (xy 159.349153 81.197328) (xy 159.407375 81.088403) (xy 159.443227 80.970213) (xy 159.455333 80.8473) + (xy 159.455333 79.1473) (xy 159.443227 79.024387) (xy 159.407375 78.906197) (xy 159.349153 78.797272) (xy 159.270801 78.701799) + (xy 159.175328 78.623447) (xy 159.066403 78.565225) (xy 158.948213 78.529373) (xy 158.8253 78.517267) (xy 157.1253 78.517267) + (xy 157.002387 78.529373) (xy 156.884197 78.565225) (xy 156.775272 78.623447) (xy 156.679799 78.701799) (xy 156.601447 78.797272) + (xy 156.543225 78.906197) (xy 156.507373 79.024387) (xy 156.495267 79.1473) (xy 156.495267 80.8473) (xy 156.507373 80.970213) + (xy 156.543225 81.088403) (xy 156.601447 81.197328) (xy 156.679799 81.292801) (xy 156.75972 81.35839) (xy 143.674213 81.35839) + (xy 143.492025 81.236656) (xy 143.286924 81.1517) (xy 143.06919 81.10839) (xy 142.84719 81.10839) (xy 142.629456 81.1517) + (xy 142.424355 81.236656) (xy 142.242167 81.35839) (xy 134.795655 81.35839) (xy 134.432397 80.995132) (xy 134.404933 80.961667) + (xy 134.271392 80.852073) (xy 134.119037 80.770638) (xy 133.953722 80.72049) (xy 133.7818 80.703557) (xy 133.738721 80.7078) + (xy 132.184428 80.7078) (xy 132.337313 80.421772) (xy 132.444641 80.067956) (xy 132.480882 79.7) (xy 132.444641 79.332044) + (xy 132.337313 78.978228) (xy 132.16302 78.652149) (xy 131.928461 78.366339) (xy 131.642651 78.13178) (xy 131.343956 77.972124) + (xy 166.610081 77.972124) (xy 166.742017 78.267212) (xy 167.082745 78.438059) (xy 167.450257 78.53915) (xy 167.830429 78.566601) + (xy 168.208651 78.519357) (xy 168.57039 78.399233) (xy 168.817383 78.267212) (xy 168.949319 77.972124) (xy 167.7797 76.802505) + (xy 166.610081 77.972124) (xy 131.343956 77.972124) (xy 131.316572 77.957487) (xy 131.29189 77.95) (xy 131.316572 77.942513) + (xy 131.642651 77.76822) (xy 131.928461 77.533661) (xy 132.16302 77.247851) (xy 132.337313 76.921772) (xy 132.412585 76.673629) + (xy 165.835999 76.673629) (xy 165.883243 77.051851) (xy 166.003367 77.41359) (xy 166.135388 77.660583) (xy 166.430476 77.792519) + (xy 167.600095 76.6229) (xy 167.959305 76.6229) (xy 169.128924 77.792519) (xy 169.424012 77.660583) (xy 169.594859 77.319855) + (xy 169.69595 76.952343) (xy 169.723401 76.572171) (xy 169.676157 76.193949) (xy 169.556033 75.83221) (xy 169.424012 75.585217) + (xy 169.128924 75.453281) (xy 167.959305 76.6229) (xy 167.600095 76.6229) (xy 166.430476 75.453281) (xy 166.135388 75.585217) + (xy 165.964541 75.925945) (xy 165.86345 76.293457) (xy 165.835999 76.673629) (xy 132.412585 76.673629) (xy 132.444641 76.567956) + (xy 132.480882 76.2) (xy 132.444641 75.832044) (xy 132.337313 75.478228) (xy 132.227978 75.273676) (xy 166.610081 75.273676) + (xy 167.7797 76.443295) (xy 168.949319 75.273676) (xy 168.817383 74.978588) (xy 168.476655 74.807741) (xy 168.109143 74.70665) + (xy 167.728971 74.679199) (xy 167.350749 74.726443) (xy 166.98901 74.846567) (xy 166.742017 74.978588) (xy 166.610081 75.273676) + (xy 132.227978 75.273676) (xy 132.16302 75.152149) (xy 131.928461 74.866339) (xy 131.642651 74.63178) (xy 131.316572 74.457487) + (xy 130.962756 74.350159) (xy 130.68701 74.323) (xy 129.00259 74.323) (xy 128.726844 74.350159) (xy 128.373028 74.457487) + (xy 128.046949 74.63178) (xy 127.761139 74.866339) (xy 127.52658 75.152149) (xy 127.352287 75.478228) (xy 127.244959 75.832044) + (xy 127.208718 76.2) (xy 127.244959 76.567956) (xy 127.352287 76.921772) (xy 127.52658 77.247851) (xy 127.761139 77.533661) + (xy 128.046949 77.76822) (xy 128.373028 77.942513) (xy 128.39771 77.95) (xy 128.373028 77.957487) (xy 128.046949 78.13178) + (xy 127.761139 78.366339) (xy 127.52658 78.652149) (xy 127.352287 78.978228) (xy 127.244959 79.332044) (xy 127.208718 79.7) + (xy 127.244959 80.067956) (xy 127.352287 80.421772) (xy 127.52658 80.747851) (xy 127.761139 81.033661) (xy 128.046949 81.26822) + (xy 128.373028 81.442513) (xy 128.726844 81.549841) (xy 129.00259 81.577) (xy 130.517335 81.577) (xy 130.395935 81.6984) + (xy 127.946879 81.6984) (xy 127.9038 81.694157) (xy 127.731877 81.71109) (xy 127.612543 81.74729) (xy 127.566563 81.761238) + (xy 127.414208 81.842673) (xy 127.280667 81.952267) (xy 127.253199 81.985737) (xy 126.808079 82.430856) (xy 126.792075 82.378097) + (xy 126.733853 82.269172) (xy 126.655501 82.173699) (xy 126.560028 82.095347) (xy 126.451103 82.037125) (xy 126.332913 82.001273) + (xy 126.21 81.989167) (xy 122.71 81.989167) (xy 122.587087 82.001273) (xy 122.468897 82.037125) (xy 122.359972 82.095347) + (xy 122.264499 82.173699) (xy 122.186147 82.269172) (xy 122.127925 82.378097) (xy 122.092073 82.496287) (xy 122.079967 82.6192) + (xy 122.079967 84.9192) (xy 122.087965 85.0004) (xy 121.432035 85.0004) (xy 121.440033 84.9192) (xy 121.440033 82.6192) + (xy 121.427927 82.496287) (xy 121.392075 82.378097) (xy 121.333853 82.269172) (xy 121.255501 82.173699) (xy 121.160028 82.095347) + (xy 121.051103 82.037125) (xy 120.932913 82.001273) (xy 120.81 81.989167) (xy 117.31 81.989167) (xy 117.187087 82.001273) + (xy 117.068897 82.037125) (xy 116.959972 82.095347) (xy 116.864499 82.173699) (xy 116.786147 82.269172) (xy 116.727925 82.378097) + (xy 116.710177 82.436606) (xy 116.651892 82.388773) (xy 116.499537 82.307338) (xy 116.334222 82.25719) (xy 116.205379 82.2445) + (xy 116.1623 82.240257) (xy 116.119221 82.2445) (xy 112.150365 82.2445) (xy 111.027833 81.121968) (xy 111.027833 77.9322) + (xy 111.015727 77.809287) (xy 110.979875 77.691097) (xy 110.921653 77.582172) (xy 110.843301 77.486699) (xy 110.747828 77.408347) + (xy 110.638903 77.350125) (xy 110.520713 77.314273) (xy 110.3978 77.302167) (xy 108.3978 77.302167) (xy 108.274887 77.314273) + (xy 108.156697 77.350125) (xy 108.047772 77.408347) (xy 107.952299 77.486699) (xy 107.873947 77.582172) (xy 107.815725 77.691097) + (xy 107.779873 77.809287) (xy 107.767767 77.9322) (xy 107.767767 78.9552) (xy 104.714487 78.9552) (xy 104.679875 78.841097) + (xy 104.621653 78.732172) (xy 104.580642 78.6822) (xy 104.621653 78.632228) (xy 104.679875 78.523303) (xy 104.715727 78.405113) + (xy 104.727833 78.2822) (xy 104.727833 76.7822) (xy 104.715727 76.659287) (xy 104.679875 76.541097) (xy 104.621653 76.432172) + (xy 104.543301 76.336699) (xy 104.447828 76.258347) (xy 104.338903 76.200125) (xy 104.338491 76.2) (xy 113.308718 76.2) + (xy 113.344959 76.567956) (xy 113.452287 76.921772) (xy 113.62658 77.247851) (xy 113.861139 77.533661) (xy 114.146949 77.76822) + (xy 114.473028 77.942513) (xy 114.49771 77.95) (xy 114.473028 77.957487) (xy 114.146949 78.13178) (xy 113.861139 78.366339) + (xy 113.62658 78.652149) (xy 113.452287 78.978228) (xy 113.344959 79.332044) (xy 113.308718 79.7) (xy 113.344959 80.067956) + (xy 113.452287 80.421772) (xy 113.62658 80.747851) (xy 113.861139 81.033661) (xy 114.146949 81.26822) (xy 114.473028 81.442513) + (xy 114.826844 81.549841) (xy 115.10259 81.577) (xy 116.78701 81.577) (xy 117.062756 81.549841) (xy 117.416572 81.442513) + (xy 117.742651 81.26822) (xy 118.028461 81.033661) (xy 118.26302 80.747851) (xy 118.437313 80.421772) (xy 118.544641 80.067956) + (xy 118.580882 79.7) (xy 118.544641 79.332044) (xy 118.437313 78.978228) (xy 118.26302 78.652149) (xy 118.028461 78.366339) + (xy 117.742651 78.13178) (xy 117.416572 77.957487) (xy 117.39189 77.95) (xy 117.416572 77.942513) (xy 117.742651 77.76822) + (xy 118.028461 77.533661) (xy 118.26302 77.247851) (xy 118.437313 76.921772) (xy 118.544641 76.567956) (xy 118.580882 76.2) + (xy 118.544641 75.832044) (xy 118.437313 75.478228) (xy 118.26302 75.152149) (xy 118.028461 74.866339) (xy 117.742651 74.63178) + (xy 117.416572 74.457487) (xy 117.062756 74.350159) (xy 116.78701 74.323) (xy 115.10259 74.323) (xy 114.826844 74.350159) + (xy 114.473028 74.457487) (xy 114.146949 74.63178) (xy 113.861139 74.866339) (xy 113.62658 75.152149) (xy 113.452287 75.478228) + (xy 113.344959 75.832044) (xy 113.308718 76.2) (xy 104.338491 76.2) (xy 104.278619 76.181838) (xy 104.2881 76.182772) + (xy 104.52735 76.1797) (xy 104.6861 76.02095) (xy 104.6861 75.1967) (xy 104.9401 75.1967) (xy 104.9401 76.02095) + (xy 105.09885 76.1797) (xy 105.3381 76.182772) (xy 105.462582 76.170512) (xy 105.58228 76.134202) (xy 105.692594 76.075237) + (xy 105.789285 75.995885) (xy 105.868637 75.899194) (xy 105.927602 75.78888) (xy 105.963912 75.669182) (xy 105.976172 75.5447) + (xy 105.9731 75.35545) (xy 105.81435 75.1967) (xy 104.9401 75.1967) (xy 104.6861 75.1967) (xy 104.6661 75.1967) + (xy 104.6661 74.9427) (xy 104.6861 74.9427) (xy 104.6861 74.11845) (xy 104.9401 74.11845) (xy 104.9401 74.9427) + (xy 105.81435 74.9427) (xy 105.9731 74.78395) (xy 105.976172 74.5947) (xy 105.963912 74.470218) (xy 105.927602 74.35052) + (xy 105.868637 74.240206) (xy 105.789285 74.143515) (xy 105.692594 74.064163) (xy 105.58228 74.005198) (xy 105.462582 73.968888) + (xy 105.3381 73.956628) (xy 105.09885 73.9597) (xy 104.9401 74.11845) (xy 104.6861 74.11845) (xy 104.52735 73.9597) + (xy 104.2881 73.956628) (xy 104.163618 73.968888) (xy 104.04392 74.005198) (xy 103.933606 74.064163) (xy 103.854633 74.128975) + (xy 103.832576 74.110873) (xy 103.682591 74.030704) (xy 103.519847 73.981336) (xy 103.3506 73.964667) (xy 102.7756 73.964667) + (xy 102.606353 73.981336) (xy 102.443609 74.030704) (xy 102.293624 74.110873) (xy 102.162162 74.218762) (xy 102.054273 74.350224) + (xy 101.974104 74.500209) (xy 101.924736 74.662953) (xy 101.908067 74.8322) (xy 101.908067 75.3072) (xy 101.924736 75.476447) + (xy 101.974104 75.639191) (xy 102.054273 75.789176) (xy 102.162162 75.920638) (xy 102.1861 75.940284) (xy 102.1861 76.152167) + (xy 102.0978 76.152167) (xy 101.974887 76.164273) (xy 101.856697 76.200125) (xy 101.747772 76.258347) (xy 101.652299 76.336699) + (xy 101.573947 76.432172) (xy 101.515725 76.541097) (xy 101.479873 76.659287) (xy 101.467767 76.7822) (xy 101.467767 77.155694) + (xy 101.385587 77.073514) (xy 101.160054 76.922818) (xy 100.909456 76.819017) (xy 100.643423 76.7661) (xy 100.372177 76.7661) + (xy 100.106144 76.819017) (xy 99.855546 76.922818) (xy 99.630013 77.073514) (xy 99.438214 77.265313) (xy 99.287518 77.490846) + (xy 99.183717 77.741444) (xy 99.1308 78.007477) (xy 99.1308 78.278723) (xy 99.183717 78.544756) (xy 99.287518 78.795354) + (xy 99.438214 79.020887) (xy 99.630013 79.212686) (xy 99.649911 79.225981) (xy 99.574373 79.318024) (xy 99.494204 79.468009) + (xy 99.444836 79.630753) (xy 99.428167 79.8) (xy 99.428167 80.375) (xy 99.444836 80.544247) (xy 99.494204 80.706991) + (xy 99.574373 80.856976) (xy 99.592475 80.879033) (xy 99.527663 80.958006) (xy 99.468698 81.06832) (xy 99.432388 81.188018) + (xy 99.420128 81.3125) (xy 99.4232 81.55175) (xy 99.58195 81.7105) (xy 100.4062 81.7105) (xy 100.4062 81.6905) + (xy 100.6602 81.6905) (xy 100.6602 81.7105) (xy 100.6802 81.7105) (xy 100.6802 81.9645) (xy 100.6602 81.9645) + (xy 100.6602 82.83875) (xy 100.81895 82.9975) (xy 101.0082 83.000572) (xy 101.132682 82.988312) (xy 101.25238 82.952002) + (xy 101.362694 82.893037) (xy 101.459385 82.813685) (xy 101.460188 82.812707) (xy 101.459728 82.8822) (xy 101.471988 83.006682) + (xy 101.508298 83.12638) (xy 101.567263 83.236694) (xy 101.646615 83.333385) (xy 101.743306 83.412737) (xy 101.85362 83.471702) + (xy 101.973318 83.508012) (xy 102.0978 83.520272) (xy 102.81205 83.5172) (xy 102.9708 83.35845) (xy 102.9708 82.2592) + (xy 103.2248 82.2592) (xy 103.2248 83.35845) (xy 103.38355 83.5172) (xy 104.0978 83.520272) (xy 104.222282 83.508012) + (xy 104.34198 83.471702) (xy 104.452294 83.412737) (xy 104.548985 83.333385) (xy 104.628337 83.236694) (xy 104.687302 83.12638) + (xy 104.723612 83.006682) (xy 104.735872 82.8822) (xy 104.7328 82.41795) (xy 104.57405 82.2592) (xy 103.2248 82.2592) + (xy 102.9708 82.2592) (xy 102.9508 82.2592) (xy 102.9508 82.0052) (xy 102.9708 82.0052) (xy 102.9708 81.9852) + (xy 103.2248 81.9852) (xy 103.2248 82.0052) (xy 104.57405 82.0052) (xy 104.7328 81.84645) (xy 104.735872 81.3822) + (xy 104.723612 81.257718) (xy 104.687302 81.13802) (xy 104.628337 81.027706) (xy 104.585817 80.975895) (xy 104.621653 80.932228) + (xy 104.679875 80.823303) (xy 104.714487 80.7092) (xy 107.767767 80.7092) (xy 107.767767 81.7322) (xy 107.779873 81.855113) + (xy 107.815725 81.973303) (xy 107.873947 82.082228) (xy 107.952299 82.177701) (xy 108.047772 82.256053) (xy 108.156697 82.314275) + (xy 108.274887 82.350127) (xy 108.3978 82.362233) (xy 109.787568 82.362233) (xy 111.136503 83.711168) (xy 111.14988 83.727467) + (xy 111.105079 83.757402) (xy 110.948102 83.914379) (xy 110.824766 84.098965) (xy 110.73981 84.304066) (xy 110.6965 84.5218) + (xy 110.6965 84.7438) (xy 110.73981 84.961534) (xy 110.824766 85.166635) (xy 110.948102 85.351221) (xy 111.105079 85.508198) + (xy 111.289665 85.631534) (xy 111.494766 85.71649) (xy 111.7125 85.7598) (xy 111.9345 85.7598) (xy 112.152234 85.71649) + (xy 112.357335 85.631534) (xy 112.541921 85.508198) (xy 112.640319 85.4098) (xy 114.651257 85.4098) (xy 115.421651 86.180195) + (xy 115.42165 88.093486) (xy 115.417891 88.13165) (xy 115.42165 88.169813) (xy 115.42165 88.169815) (xy 115.432893 88.283968) + (xy 115.477323 88.430433) (xy 115.549473 88.565416) (xy 115.589755 88.6145) (xy 115.64657 88.68373) (xy 115.676219 88.708062) + (xy 117.41929 90.451134) (xy 117.44362 90.48078) (xy 117.473264 90.505108) (xy 117.473265 90.505109) (xy 117.561933 90.577877) + (xy 117.645604 90.6226) (xy 117.696916 90.650027) (xy 117.843381 90.694457) (xy 117.957534 90.7057) (xy 117.957546 90.7057) + (xy 117.995699 90.709458) (xy 118.033852 90.7057) (xy 119.036857 90.7057) (xy 119.445963 91.114806) (xy 119.36095 91.1151) + (xy 119.2022 91.27385) (xy 119.2022 92.7481) (xy 119.2222 92.7481) (xy 119.2222 93.0021) (xy 119.2022 93.0021) + (xy 119.2022 94.47635) (xy 119.36095 94.6351) (xy 120.2502 94.638172) (xy 120.374682 94.625912) (xy 120.49438 94.589602) + (xy 120.604694 94.530637) (xy 120.701385 94.451285) (xy 120.780737 94.354594) (xy 120.839702 94.24428) (xy 120.876012 94.124582) + (xy 120.888272 94.0001) (xy 120.8852 93.16085) (xy 120.726452 93.002102) (xy 120.835759 93.002102) (xy 121.195092 93.361436) + (xy 121.21942 93.39108) (xy 121.249064 93.415408) (xy 121.249065 93.415409) (xy 121.312149 93.467181) (xy 121.387673 93.608476) + (xy 121.495562 93.739938) (xy 121.578496 93.808001) (xy 121.580744 93.830819) (xy 121.589641 93.860147) (xy 121.625173 93.977283) + (xy 121.697323 94.112266) (xy 121.749218 94.1755) (xy 121.794421 94.23058) (xy 121.824065 94.254908) (xy 121.9434 94.374243) + (xy 121.9434 94.5134) (xy 121.98671 94.731134) (xy 122.071666 94.936235) (xy 122.195002 95.120821) (xy 122.351979 95.277798) + (xy 122.536565 95.401134) (xy 122.741666 95.48609) (xy 122.9594 95.5294) (xy 123.1814 95.5294) (xy 123.399134 95.48609) + (xy 123.604235 95.401134) (xy 123.788821 95.277798) (xy 123.945798 95.120821) (xy 124.069134 94.936235) (xy 124.15409 94.731134) + (xy 124.1974 94.5134) (xy 124.1974 94.2914) (xy 124.15409 94.073666) (xy 124.069134 93.868565) (xy 123.945798 93.683979) + (xy 123.788821 93.527002) (xy 123.604235 93.403666) (xy 123.424687 93.329295) (xy 123.434864 93.295747) (xy 123.451533 93.1265) + (xy 123.451533 92.5515) (xy 123.434864 92.382253) (xy 123.385496 92.219509) (xy 123.305327 92.069524) (xy 123.287225 92.047467) + (xy 123.352037 91.968494) (xy 123.411002 91.85818) (xy 123.447312 91.738482) (xy 123.459572 91.614) (xy 123.4565 91.37475) + (xy 123.29775 91.216) (xy 122.4735 91.216) (xy 122.4735 91.236) (xy 122.2195 91.236) (xy 122.2195 91.216) + (xy 122.1995 91.216) (xy 122.1995 90.962) (xy 122.2195 90.962) (xy 122.2195 90.46255) (xy 122.2883 90.39375) + (xy 122.2883 89.3445) (xy 121.36405 89.3445) (xy 121.2053 89.50325) (xy 121.202228 89.9175) (xy 121.214488 90.041982) + (xy 121.250798 90.16168) (xy 121.308662 90.269935) (xy 121.281998 90.31982) (xy 121.245688 90.439518) (xy 121.233428 90.564) + (xy 121.235257 90.706413) (xy 120.053706 89.524863) (xy 120.171887 89.513223) (xy 120.336975 89.463145) (xy 120.489121 89.381821) + (xy 120.622478 89.272378) (xy 120.731921 89.139021) (xy 120.813245 88.986875) (xy 120.863323 88.821787) (xy 120.880233 88.650101) + (xy 120.880233 86.900099) (xy 120.865883 86.7544) (xy 121.550109 86.7544) (xy 121.546928 86.7867) (xy 121.55 86.97595) + (xy 121.70875 87.1347) (xy 122.583 87.1347) (xy 122.583 87.1147) (xy 122.837 87.1147) (xy 122.837 87.1347) + (xy 122.857 87.1347) (xy 122.857 87.3887) (xy 122.837 87.3887) (xy 122.837 87.4087) (xy 122.583 87.4087) + (xy 122.583 87.3887) (xy 121.70875 87.3887) (xy 121.55 87.54745) (xy 121.546928 87.7367) (xy 121.559188 87.861182) + (xy 121.581781 87.935662) (xy 121.485806 87.986963) (xy 121.389115 88.066315) (xy 121.309763 88.163006) (xy 121.250798 88.27332) + (xy 121.214488 88.393018) (xy 121.202228 88.5175) (xy 121.2053 88.93175) (xy 121.36405 89.0905) (xy 122.2883 89.0905) + (xy 122.2883 89.0705) (xy 122.5423 89.0705) (xy 122.5423 89.0905) (xy 122.5623 89.0905) (xy 122.5623 89.3445) + (xy 122.5423 89.3445) (xy 122.5423 90.01895) (xy 122.4735 90.08775) (xy 122.4735 90.962) (xy 123.29775 90.962) + (xy 123.4565 90.80325) (xy 123.459572 90.564) (xy 123.447312 90.439518) (xy 123.428946 90.378975) (xy 123.441485 90.368685) + (xy 123.512132 90.282601) (xy 123.518022 90.289778) (xy 123.651379 90.399221) (xy 123.803525 90.480545) (xy 123.968613 90.530623) + (xy 124.140299 90.547533) (xy 124.696489 90.547533) (xy 125.03389 90.884934) (xy 125.05822 90.91458) (xy 125.087864 90.938908) + (xy 125.087865 90.938909) (xy 125.176534 91.011678) (xy 125.259798 91.056183) (xy 125.311516 91.083827) (xy 125.457981 91.128257) + (xy 125.572134 91.1395) (xy 125.572136 91.1395) (xy 125.6103 91.143259) (xy 125.648463 91.1395) (xy 126.346848 91.1395) + (xy 126.448562 91.263438) (xy 126.477001 91.286777) (xy 126.477 94.407781) (xy 126.378602 94.506179) (xy 126.255266 94.690765) + (xy 126.17031 94.895866) (xy 126.127 95.1136) (xy 126.127 95.3356) (xy 126.169878 95.551162) (xy 126.153482 95.546188) + (xy 126.029 95.533928) (xy 125.78975 95.537) (xy 125.631 95.69575) (xy 125.631 96.52) (xy 125.651 96.52) + (xy 125.651 96.774) (xy 125.631 96.774) (xy 125.631 96.794) (xy 125.377 96.794) (xy 125.377 96.774) + (xy 124.50275 96.774) (xy 124.344 96.93275) (xy 124.340928 97.122) (xy 124.346974 97.183384) (xy 124.255898 97.047079) + (xy 124.098921 96.890102) (xy 123.914335 96.766766) (xy 123.709234 96.68181) (xy 123.4915 96.6385) (xy 123.2695 96.6385) + (xy 123.155361 96.661204) (xy 123.174 96.5675) (xy 123.174 96.3455) (xy 123.139489 96.172) (xy 124.340928 96.172) + (xy 124.344 96.36125) (xy 124.50275 96.52) (xy 125.377 96.52) (xy 125.377 95.69575) (xy 125.21825 95.537) + (xy 124.979 95.533928) (xy 124.854518 95.546188) (xy 124.73482 95.582498) (xy 124.624506 95.641463) (xy 124.527815 95.720815) + (xy 124.448463 95.817506) (xy 124.389498 95.92782) (xy 124.353188 96.047518) (xy 124.340928 96.172) (xy 123.139489 96.172) + (xy 123.13069 96.127766) (xy 123.045734 95.922665) (xy 122.922398 95.738079) (xy 122.765421 95.581102) (xy 122.580835 95.457766) + (xy 122.375734 95.37281) (xy 122.158 95.3295) (xy 121.936 95.3295) (xy 121.718266 95.37281) (xy 121.513165 95.457766) + (xy 121.328579 95.581102) (xy 121.171602 95.738079) (xy 121.048266 95.922665) (xy 120.96331 96.127766) (xy 120.92 96.3455) + (xy 120.92 96.484656) (xy 120.406407 96.99825) (xy 120.217842 96.99825) (xy 120.253 96.8215) (xy 120.253 96.5995) + (xy 120.20969 96.381766) (xy 120.124734 96.176665) (xy 120.001398 95.992079) (xy 119.844421 95.835102) (xy 119.659835 95.711766) + (xy 119.454734 95.62681) (xy 119.237 95.5835) (xy 119.015 95.5835) (xy 118.797266 95.62681) (xy 118.592165 95.711766) + (xy 118.407579 95.835102) (xy 118.309181 95.9335) (xy 116.303201 95.9335) (xy 116.301754 95.933363) (xy 116.265188 95.9335) + (xy 116.228334 95.9335) (xy 116.226877 95.933644) (xy 112.809765 95.946446) (xy 112.714421 95.851102) (xy 112.529835 95.727766) + (xy 112.370313 95.66169) (xy 112.391177 95.636267) (xy 112.463327 95.501284) (xy 112.471021 95.47592) (xy 112.507757 95.354819) + (xy 112.519 95.240666) (xy 112.519 95.240657) (xy 112.522758 95.202501) (xy 112.519 95.164345) (xy 112.519 94.144853) + (xy 112.5675 94.1545) (xy 112.7895 94.1545) (xy 113.007234 94.11119) (xy 113.212335 94.026234) (xy 113.251447 94.0001) + (xy 117.262128 94.0001) (xy 117.274388 94.124582) (xy 117.310698 94.24428) (xy 117.369663 94.354594) (xy 117.449015 94.451285) + (xy 117.545706 94.530637) (xy 117.65602 94.589602) (xy 117.775718 94.625912) (xy 117.9002 94.638172) (xy 118.78945 94.6351) + (xy 118.9482 94.47635) (xy 118.9482 93.0021) (xy 117.42395 93.0021) (xy 117.2652 93.16085) (xy 117.262128 94.0001) + (xy 113.251447 94.0001) (xy 113.396921 93.902898) (xy 113.495319 93.8045) (xy 113.688337 93.8045) (xy 113.7265 93.808259) + (xy 113.764663 93.8045) (xy 113.764666 93.8045) (xy 113.878819 93.793257) (xy 114.025284 93.748827) (xy 114.160266 93.676677) + (xy 114.27858 93.57958) (xy 114.302912 93.549931) (xy 114.427384 93.425459) (xy 114.566541 93.425459) (xy 114.784275 93.382149) + (xy 114.989376 93.297193) (xy 115.173962 93.173857) (xy 115.330939 93.01688) (xy 115.454275 92.832294) (xy 115.539231 92.627193) + (xy 115.582541 92.409459) (xy 115.582541 92.187459) (xy 115.539231 91.969725) (xy 115.454275 91.764624) (xy 115.444571 91.7501) + (xy 117.262128 91.7501) (xy 117.2652 92.58935) (xy 117.42395 92.7481) (xy 118.9482 92.7481) (xy 118.9482 91.27385) + (xy 118.78945 91.1151) (xy 117.9002 91.112028) (xy 117.775718 91.124288) (xy 117.65602 91.160598) (xy 117.545706 91.219563) + (xy 117.449015 91.298915) (xy 117.369663 91.395606) (xy 117.310698 91.50592) (xy 117.274388 91.625618) (xy 117.262128 91.7501) + (xy 115.444571 91.7501) (xy 115.330939 91.580038) (xy 115.173962 91.423061) (xy 114.989376 91.299725) (xy 114.784275 91.214769) + (xy 114.566541 91.171459) (xy 114.344541 91.171459) (xy 114.126807 91.214769) (xy 113.921706 91.299725) (xy 113.73712 91.423061) + (xy 113.580143 91.580038) (xy 113.456807 91.764624) (xy 113.371851 91.969725) (xy 113.342771 92.11592) (xy 113.212335 92.028766) + (xy 113.007234 91.94381) (xy 112.7895 91.9005) (xy 112.5675 91.9005) (xy 112.519 91.910147) (xy 112.519 90.952343) + (xy 112.602843 90.8685) (xy 112.742 90.8685) (xy 112.959734 90.82519) (xy 113.164835 90.740234) (xy 113.349421 90.616898) + (xy 113.506398 90.459921) (xy 113.629734 90.275335) (xy 113.71469 90.070234) (xy 113.758 89.8525) (xy 113.758 89.6305) + (xy 113.71469 89.412766) (xy 113.629734 89.207665) (xy 113.506398 89.023079) (xy 113.349421 88.866102) (xy 113.164835 88.742766) + (xy 112.959734 88.65781) (xy 112.781813 88.622419) (xy 112.76219 88.523766) (xy 112.677234 88.318665) (xy 112.553898 88.134079) + (xy 112.396921 87.977102) (xy 112.212335 87.853766) (xy 112.007234 87.76881) (xy 111.7895 87.7255) (xy 111.5675 87.7255) + (xy 111.349766 87.76881) (xy 111.144665 87.853766) (xy 110.960079 87.977102) (xy 110.803102 88.134079) (xy 110.700033 88.288333) + (xy 110.700033 87.1056) (xy 110.687927 86.982687) (xy 110.652075 86.864497) (xy 110.593853 86.755572) (xy 110.515501 86.660099) + (xy 110.420028 86.581747) (xy 110.311103 86.523525) (xy 110.192913 86.487673) (xy 110.07 86.475567) (xy 108.37 86.475567) + (xy 108.247087 86.487673) (xy 108.128897 86.523525) (xy 108.019972 86.581747) (xy 107.924499 86.660099) (xy 107.846147 86.755572) + (xy 107.787925 86.864497) (xy 107.752073 86.982687) (xy 107.739967 87.1056) (xy 107.739967 88.8056) (xy 107.752073 88.928513) + (xy 107.787925 89.046703) (xy 107.846147 89.155628) (xy 107.924499 89.251101) (xy 108.019972 89.329453) (xy 108.128897 89.387675) + (xy 108.211332 89.412681) (xy 108.17055 89.44615) (xy 107.985978 89.671053) (xy 107.848828 89.927642) (xy 107.764371 90.206057) + (xy 107.735854 90.4956) (xy 107.764371 90.785143) (xy 107.848828 91.063558) (xy 107.985978 91.320147) (xy 108.17055 91.54505) + (xy 108.395453 91.729622) (xy 108.462763 91.7656) (xy 108.395453 91.801578) (xy 108.17055 91.98615) (xy 107.985978 92.211053) + (xy 107.848828 92.467642) (xy 107.764371 92.746057) (xy 107.735854 93.0356) (xy 107.764371 93.325143) (xy 107.848828 93.603558) + (xy 107.985978 93.860147) (xy 108.17055 94.08505) (xy 108.395453 94.269622) (xy 108.462763 94.3056) (xy 108.395453 94.341578) + (xy 108.17055 94.52615) (xy 107.985978 94.751053) (xy 107.848828 95.007642) (xy 107.764371 95.286057) (xy 107.735854 95.5756) + (xy 107.764371 95.865143) (xy 107.848828 96.143558) (xy 107.985978 96.400147) (xy 108.17055 96.62505) (xy 108.395453 96.809622) + (xy 108.462763 96.8456) (xy 108.395453 96.881578) (xy 108.17055 97.06615) (xy 107.985978 97.291053) (xy 107.848828 97.547642) + (xy 107.764371 97.826057) (xy 107.735854 98.1156) (xy 107.764371 98.405143) (xy 107.848828 98.683558) (xy 107.985978 98.940147) + (xy 108.17055 99.16505) (xy 108.395453 99.349622) (xy 108.462763 99.3856) (xy 108.395453 99.421578) (xy 108.17055 99.60615) + (xy 107.985978 99.831053) (xy 107.848828 100.087642) (xy 107.764371 100.366057) (xy 107.735854 100.6556) (xy 107.764371 100.945143) + (xy 107.811802 101.101501) (xy 99.643654 101.101501) (xy 99.605498 101.097743) (xy 99.567342 101.101501) (xy 99.567333 101.101501) + (xy 99.45318 101.112744) (xy 99.306715 101.157174) (xy 99.171732 101.229324) (xy 99.083064 101.302092) (xy 99.053419 101.326421) + (xy 99.029091 101.356065) (xy 97.97495 102.410207) (xy 97.954022 102.371053) (xy 97.76945 102.14615) (xy 97.544547 101.961578) + (xy 97.477237 101.9256) (xy 97.544547 101.889622) (xy 97.76945 101.70505) (xy 97.954022 101.480147) (xy 98.091172 101.223558) + (xy 98.175629 100.945143) (xy 98.204146 100.6556) (xy 98.175629 100.366057) (xy 98.091172 100.087642) (xy 97.954022 99.831053) + (xy 97.76945 99.60615) (xy 97.544547 99.421578) (xy 97.477237 99.3856) (xy 97.544547 99.349622) (xy 97.76945 99.16505) + (xy 97.954022 98.940147) (xy 98.091172 98.683558) (xy 98.175629 98.405143) (xy 98.204146 98.1156) (xy 98.175629 97.826057) + (xy 98.091172 97.547642) (xy 97.954022 97.291053) (xy 97.76945 97.06615) (xy 97.616956 96.941002) (xy 97.628286 96.934946) + (xy 97.876029 96.731629) (xy 98.079346 96.483886) (xy 98.230425 96.201238) (xy 98.323458 95.894548) (xy 98.354872 95.5756) + (xy 98.323458 95.256652) (xy 98.230425 94.949962) (xy 98.079346 94.667314) (xy 97.876029 94.419571) (xy 97.628286 94.216254) + (xy 97.616956 94.210198) (xy 97.76945 94.08505) (xy 97.954022 93.860147) (xy 98.091172 93.603558) (xy 98.175629 93.325143) + (xy 98.204146 93.0356) (xy 98.175629 92.746057) (xy 98.091172 92.467642) (xy 97.954022 92.211053) (xy 97.76945 91.98615) + (xy 97.544547 91.801578) (xy 97.476451 91.76518) (xy 97.601355 91.690778) (xy 97.817588 91.495869) (xy 97.991641 91.26252) + (xy 98.116825 90.999699) (xy 98.161476 90.85249) (xy 98.040155 90.6226) (xy 96.847 90.6226) (xy 96.847 90.6426) + (xy 96.593 90.6426) (xy 96.593 90.6226) (xy 95.399845 90.6226) (xy 95.278524 90.85249) (xy 95.323175 90.999699) + (xy 95.448359 91.26252) (xy 95.622412 91.495869) (xy 95.838645 91.690778) (xy 95.963549 91.76518) (xy 95.895453 91.801578) + (xy 95.67055 91.98615) (xy 95.485978 92.211053) (xy 95.348828 92.467642) (xy 95.264371 92.746057) (xy 95.235854 93.0356) + (xy 95.264371 93.325143) (xy 95.348828 93.603558) (xy 95.485978 93.860147) (xy 95.558569 93.9486) (xy 95.249525 93.9486) + (xy 94.127 92.826075) (xy 94.127 89.579925) (xy 94.134872 89.5) (xy 94.103458 89.181052) (xy 94.083809 89.116279) + (xy 94.010425 88.874362) (xy 93.859346 88.591714) (xy 93.832363 88.558835) (xy 93.706978 88.406052) (xy 93.706975 88.406049) + (xy 93.656029 88.343971) (xy 93.593952 88.293026) (xy 93.256526 87.9556) (xy 95.235854 87.9556) (xy 95.264371 88.245143) + (xy 95.348828 88.523558) (xy 95.485978 88.780147) (xy 95.67055 89.00505) (xy 95.895453 89.189622) (xy 95.963549 89.22602) + (xy 95.838645 89.300422) (xy 95.622412 89.495331) (xy 95.448359 89.72868) (xy 95.323175 89.991501) (xy 95.278524 90.13871) + (xy 95.399845 90.3686) (xy 96.593 90.3686) (xy 96.593 90.3486) (xy 96.847 90.3486) (xy 96.847 90.3686) + (xy 98.040155 90.3686) (xy 98.161476 90.13871) (xy 98.116825 89.991501) (xy 98.014371 89.7764) (xy 99.865167 89.7764) + (xy 99.865167 91.3764) (xy 99.877273 91.499313) (xy 99.913125 91.617503) (xy 99.971347 91.726428) (xy 100.049699 91.821901) + (xy 100.145172 91.900253) (xy 100.254097 91.958475) (xy 100.372287 91.994327) (xy 100.4952 92.006433) (xy 102.0952 92.006433) + (xy 102.218113 91.994327) (xy 102.336303 91.958475) (xy 102.445228 91.900253) (xy 102.540701 91.821901) (xy 102.619053 91.726428) + (xy 102.677275 91.617503) (xy 102.691957 91.569102) (xy 103.982103 91.569102) (xy 104.053686 91.813071) (xy 104.309196 91.933971) + (xy 104.583384 92.0027) (xy 104.865712 92.016617) (xy 105.14533 91.975187) (xy 105.411492 91.880003) (xy 105.536714 91.813071) + (xy 105.608297 91.569102) (xy 104.7952 90.756005) (xy 103.982103 91.569102) (xy 102.691957 91.569102) (xy 102.713127 91.499313) + (xy 102.725233 91.3764) (xy 102.725233 90.646912) (xy 103.354983 90.646912) (xy 103.396413 90.92653) (xy 103.491597 91.192692) + (xy 103.558529 91.317914) (xy 103.802498 91.389497) (xy 104.615595 90.5764) (xy 104.974805 90.5764) (xy 105.787902 91.389497) + (xy 106.031871 91.317914) (xy 106.152771 91.062404) (xy 106.2215 90.788216) (xy 106.235417 90.505888) (xy 106.193987 90.22627) + (xy 106.098803 89.960108) (xy 106.031871 89.834886) (xy 105.787902 89.763303) (xy 104.974805 90.5764) (xy 104.615595 90.5764) + (xy 103.802498 89.763303) (xy 103.558529 89.834886) (xy 103.437629 90.090396) (xy 103.3689 90.364584) (xy 103.354983 90.646912) + (xy 102.725233 90.646912) (xy 102.725233 89.7764) (xy 102.713127 89.653487) (xy 102.691958 89.583698) (xy 103.982103 89.583698) + (xy 104.7952 90.396795) (xy 105.608297 89.583698) (xy 105.536714 89.339729) (xy 105.281204 89.218829) (xy 105.007016 89.1501) + (xy 104.724688 89.136183) (xy 104.44507 89.177613) (xy 104.178908 89.272797) (xy 104.053686 89.339729) (xy 103.982103 89.583698) + (xy 102.691958 89.583698) (xy 102.677275 89.535297) (xy 102.619053 89.426372) (xy 102.540701 89.330899) (xy 102.445228 89.252547) + (xy 102.336303 89.194325) (xy 102.218113 89.158473) (xy 102.0952 89.146367) (xy 100.4952 89.146367) (xy 100.372287 89.158473) + (xy 100.254097 89.194325) (xy 100.145172 89.252547) (xy 100.049699 89.330899) (xy 99.971347 89.426372) (xy 99.913125 89.535297) + (xy 99.877273 89.653487) (xy 99.865167 89.7764) (xy 98.014371 89.7764) (xy 97.991641 89.72868) (xy 97.817588 89.495331) + (xy 97.601355 89.300422) (xy 97.476451 89.22602) (xy 97.544547 89.189622) (xy 97.76945 89.00505) (xy 97.954022 88.780147) + (xy 98.091172 88.523558) (xy 98.175629 88.245143) (xy 98.204146 87.9556) (xy 98.175629 87.666057) (xy 98.091172 87.387642) + (xy 97.954022 87.131053) (xy 97.76945 86.90615) (xy 97.544547 86.721578) (xy 97.287958 86.584428) (xy 97.009543 86.499971) + (xy 96.792556 86.4786) (xy 96.647444 86.4786) (xy 96.430457 86.499971) (xy 96.152042 86.584428) (xy 95.895453 86.721578) + (xy 95.67055 86.90615) (xy 95.485978 87.131053) (xy 95.348828 87.387642) (xy 95.264371 87.666057) (xy 95.235854 87.9556) + (xy 93.256526 87.9556) (xy 92.446579 87.145654) (xy 92.395629 87.083571) (xy 92.147886 86.880254) (xy 91.865238 86.729175) + (xy 91.558548 86.636142) (xy 91.319525 86.6126) (xy 91.319514 86.6126) (xy 91.2396 86.604729) (xy 91.159686 86.6126) + (xy 89.682962 86.6126) (xy 89.670653 86.589572) (xy 89.592301 86.494099) (xy 89.496828 86.415747) (xy 89.387903 86.357525) + (xy 89.269713 86.321673) (xy 89.1468 86.309567) (xy 86.5468 86.309567) (xy 86.423887 86.321673) (xy 86.305697 86.357525) + (xy 86.196772 86.415747) (xy 86.101299 86.494099) (xy 86.022947 86.589572) (xy 85.964725 86.698497) (xy 85.928873 86.816687) + (xy 85.916767 86.9396) (xy 81.202 86.9396) (xy 81.202 82.3625) (xy 99.420128 82.3625) (xy 99.432388 82.486982) + (xy 99.468698 82.60668) (xy 99.527663 82.716994) (xy 99.607015 82.813685) (xy 99.703706 82.893037) (xy 99.81402 82.952002) + (xy 99.933718 82.988312) (xy 100.0582 83.000572) (xy 100.24745 82.9975) (xy 100.4062 82.83875) (xy 100.4062 81.9645) + (xy 99.58195 81.9645) (xy 99.4232 82.12325) (xy 99.420128 82.3625) (xy 81.202 82.3625) (xy 81.202 75.3111) + (xy 89.019367 75.3111) (xy 89.019367 76.9111) (xy 89.031473 77.034013) (xy 89.067325 77.152203) (xy 89.125547 77.261128) + (xy 89.203899 77.356601) (xy 89.299372 77.434953) (xy 89.408297 77.493175) (xy 89.526487 77.529027) (xy 89.6494 77.541133) + (xy 91.2494 77.541133) (xy 91.372313 77.529027) (xy 91.490503 77.493175) (xy 91.599428 77.434953) (xy 91.694901 77.356601) + (xy 91.773253 77.261128) (xy 91.831475 77.152203) (xy 91.867327 77.034013) (xy 91.879433 76.9111) (xy 91.879433 76.1111) + (xy 96.635496 76.1111) (xy 96.663048 76.390841) (xy 96.744645 76.659831) (xy 96.877152 76.907734) (xy 97.055477 77.125023) + (xy 97.272766 77.303348) (xy 97.520669 77.435855) (xy 97.789659 77.517452) (xy 97.999302 77.5381) (xy 98.139498 77.5381) + (xy 98.349141 77.517452) (xy 98.618131 77.435855) (xy 98.866034 77.303348) (xy 99.083323 77.125023) (xy 99.261648 76.907734) + (xy 99.394155 76.659831) (xy 99.475752 76.390841) (xy 99.503304 76.1111) (xy 99.475752 75.831359) (xy 99.394155 75.562369) + (xy 99.261648 75.314466) (xy 99.083323 75.097177) (xy 98.866034 74.918852) (xy 98.618131 74.786345) (xy 98.349141 74.704748) + (xy 98.139498 74.6841) (xy 97.999302 74.6841) (xy 97.789659 74.704748) (xy 97.520669 74.786345) (xy 97.272766 74.918852) + (xy 97.055477 75.097177) (xy 96.877152 75.314466) (xy 96.744645 75.562369) (xy 96.663048 75.831359) (xy 96.635496 76.1111) + (xy 91.879433 76.1111) (xy 91.879433 75.3111) (xy 91.867327 75.188187) (xy 91.831475 75.069997) (xy 91.773253 74.961072) + (xy 91.694901 74.865599) (xy 91.599428 74.787247) (xy 91.490503 74.729025) (xy 91.372313 74.693173) (xy 91.2494 74.681067) + (xy 89.6494 74.681067) (xy 89.526487 74.693173) (xy 89.408297 74.729025) (xy 89.299372 74.787247) (xy 89.203899 74.865599) + (xy 89.125547 74.961072) (xy 89.067325 75.069997) (xy 89.031473 75.188187) (xy 89.019367 75.3111) (xy 81.202 75.3111) + (xy 81.202 69.330325) (xy 89.9246 69.330325) (xy 89.9246 69.847799) (xy 90.025554 70.35533) (xy 90.223583 70.833413) + (xy 90.511076 71.263677) (xy 90.876985 71.629586) (xy 91.307249 71.917079) (xy 91.785332 72.115108) (xy 92.292863 72.216062) + (xy 92.810337 72.216062) (xy 93.317868 72.115108) (xy 93.795951 71.917079) (xy 94.226215 71.629586) (xy 94.592124 71.263677) + (xy 94.879617 70.833413) (xy 95.077646 70.35533) (xy 95.1786 69.847799) (xy 95.1786 69.748515) (xy 98.0846 69.748515) + (xy 98.0846 70.029609) (xy 98.139438 70.305303) (xy 98.247009 70.565) (xy 98.403176 70.798722) (xy 98.60194 70.997486) + (xy 98.835662 71.153653) (xy 99.095359 71.261224) (xy 99.371053 71.316062) (xy 99.652147 71.316062) (xy 99.927841 71.261224) + (xy 100.187538 71.153653) (xy 100.42126 70.997486) (xy 100.620024 70.798722) (xy 100.776191 70.565) (xy 100.883762 70.305303) + (xy 100.8966 70.240761) (xy 100.909438 70.305303) (xy 101.017009 70.565) (xy 101.173176 70.798722) (xy 101.37194 70.997486) + (xy 101.605662 71.153653) (xy 101.865359 71.261224) (xy 102.141053 71.316062) (xy 102.422147 71.316062) (xy 102.697841 71.261224) + (xy 102.957538 71.153653) (xy 103.19126 70.997486) (xy 103.306982 70.881764) (xy 104.238503 70.881764) (xy 104.310086 71.125733) + (xy 104.565596 71.246633) (xy 104.839784 71.315362) (xy 105.122112 71.329279) (xy 105.40173 71.287849) (xy 105.667892 71.192665) + (xy 105.793114 71.125733) (xy 105.864697 70.881764) (xy 105.0516 70.068667) (xy 104.238503 70.881764) (xy 103.306982 70.881764) + (xy 103.390024 70.798722) (xy 103.546191 70.565) (xy 103.653762 70.305303) (xy 103.661873 70.264526) (xy 103.747997 70.505354) + (xy 103.814929 70.630576) (xy 104.058898 70.702159) (xy 104.871995 69.889062) (xy 105.231205 69.889062) (xy 106.044302 70.702159) + (xy 106.288271 70.630576) (xy 106.409171 70.375066) (xy 106.439359 70.254633) (xy 106.449438 70.305303) (xy 106.557009 70.565) + (xy 106.713176 70.798722) (xy 106.91194 70.997486) (xy 106.9446 71.019309) (xy 106.9446 71.64702) (xy 106.940357 71.6901) + (xy 106.9446 71.733178) (xy 106.95729 71.862021) (xy 107.007438 72.027336) (xy 107.088873 72.179691) (xy 107.198467 72.313233) + (xy 107.231931 72.340696) (xy 108.112208 73.220974) (xy 108.139667 73.254433) (xy 108.273208 73.364027) (xy 108.425563 73.445462) + (xy 108.590877 73.49561) (xy 108.7628 73.512543) (xy 108.805879 73.5083) (xy 139.288621 73.5083) (xy 139.3317 73.512543) + (xy 139.374779 73.5083) (xy 139.503622 73.49561) (xy 139.668937 73.445462) (xy 139.821292 73.364027) (xy 139.954833 73.254433) + (xy 139.982297 73.220968) (xy 140.707533 72.495732) (xy 146.248221 72.495732) (xy 146.2913 72.499975) (xy 146.334379 72.495732) + (xy 146.463222 72.483042) (xy 146.628537 72.432894) (xy 146.780892 72.351459) (xy 146.914433 72.241865) (xy 146.941896 72.208401) + (xy 147.479273 71.671025) (xy 147.512733 71.643565) (xy 147.622327 71.510024) (xy 147.703762 71.357669) (xy 147.732274 71.263677) + (xy 147.75391 71.192355) (xy 147.770843 71.020432) (xy 147.770477 71.016718) (xy 147.79926 70.997486) (xy 147.914982 70.881764) + (xy 148.846503 70.881764) (xy 148.918086 71.125733) (xy 149.173596 71.246633) (xy 149.447784 71.315362) (xy 149.730112 71.329279) + (xy 150.00973 71.287849) (xy 150.275892 71.192665) (xy 150.401114 71.125733) (xy 150.472697 70.881764) (xy 149.6596 70.068667) + (xy 148.846503 70.881764) (xy 147.914982 70.881764) (xy 147.998024 70.798722) (xy 148.154191 70.565) (xy 148.261762 70.305303) + (xy 148.269873 70.264526) (xy 148.355997 70.505354) (xy 148.422929 70.630576) (xy 148.666898 70.702159) (xy 149.479995 69.889062) + (xy 149.839205 69.889062) (xy 150.652302 70.702159) (xy 150.896271 70.630576) (xy 151.017171 70.375066) (xy 151.047359 70.254633) + (xy 151.057438 70.305303) (xy 151.165009 70.565) (xy 151.321176 70.798722) (xy 151.51994 70.997486) (xy 151.753662 71.153653) + (xy 152.013359 71.261224) (xy 152.289053 71.316062) (xy 152.570147 71.316062) (xy 152.845841 71.261224) (xy 153.105538 71.153653) + (xy 153.33926 70.997486) (xy 153.538024 70.798722) (xy 153.694191 70.565) (xy 153.801762 70.305303) (xy 153.8146 70.240761) + (xy 153.827438 70.305303) (xy 153.935009 70.565) (xy 154.091176 70.798722) (xy 154.28994 70.997486) (xy 154.523662 71.153653) + (xy 154.783359 71.261224) (xy 155.059053 71.316062) (xy 155.340147 71.316062) (xy 155.615841 71.261224) (xy 155.875538 71.153653) + (xy 156.10926 70.997486) (xy 156.308024 70.798722) (xy 156.464191 70.565) (xy 156.571762 70.305303) (xy 156.6266 70.029609) + (xy 156.6266 69.748515) (xy 156.571762 69.472821) (xy 156.512738 69.330325) (xy 159.5326 69.330325) (xy 159.5326 69.847799) + (xy 159.633554 70.35533) (xy 159.831583 70.833413) (xy 160.119076 71.263677) (xy 160.484985 71.629586) (xy 160.915249 71.917079) + (xy 161.393332 72.115108) (xy 161.900863 72.216062) (xy 162.418337 72.216062) (xy 162.925868 72.115108) (xy 163.403951 71.917079) + (xy 163.834215 71.629586) (xy 164.200124 71.263677) (xy 164.487617 70.833413) (xy 164.685646 70.35533) (xy 164.7866 69.847799) + (xy 164.7866 69.330325) (xy 164.685646 68.822794) (xy 164.487617 68.344711) (xy 164.200124 67.914447) (xy 163.834215 67.548538) + (xy 163.403951 67.261045) (xy 162.925868 67.063016) (xy 162.418337 66.962062) (xy 161.900863 66.962062) (xy 161.393332 67.063016) + (xy 160.915249 67.261045) (xy 160.484985 67.548538) (xy 160.119076 67.914447) (xy 159.831583 68.344711) (xy 159.633554 68.822794) + (xy 159.5326 69.330325) (xy 156.512738 69.330325) (xy 156.464191 69.213124) (xy 156.308024 68.979402) (xy 156.10926 68.780638) + (xy 155.875538 68.624471) (xy 155.615841 68.5169) (xy 155.340147 68.462062) (xy 155.059053 68.462062) (xy 154.783359 68.5169) + (xy 154.523662 68.624471) (xy 154.28994 68.780638) (xy 154.091176 68.979402) (xy 153.935009 69.213124) (xy 153.827438 69.472821) + (xy 153.8146 69.537363) (xy 153.801762 69.472821) (xy 153.694191 69.213124) (xy 153.538024 68.979402) (xy 153.33926 68.780638) + (xy 153.105538 68.624471) (xy 152.845841 68.5169) (xy 152.570147 68.462062) (xy 152.289053 68.462062) (xy 152.013359 68.5169) + (xy 151.753662 68.624471) (xy 151.51994 68.780638) (xy 151.321176 68.979402) (xy 151.165009 69.213124) (xy 151.057438 69.472821) + (xy 151.049327 69.513598) (xy 150.963203 69.27277) (xy 150.896271 69.147548) (xy 150.652302 69.075965) (xy 149.839205 69.889062) + (xy 149.479995 69.889062) (xy 148.666898 69.075965) (xy 148.422929 69.147548) (xy 148.302029 69.403058) (xy 148.271841 69.523491) + (xy 148.261762 69.472821) (xy 148.154191 69.213124) (xy 147.998024 68.979402) (xy 147.914982 68.89636) (xy 148.846503 68.89636) + (xy 149.6596 69.709457) (xy 150.472697 68.89636) (xy 150.401114 68.652391) (xy 150.145604 68.531491) (xy 149.871416 68.462762) + (xy 149.589088 68.448845) (xy 149.30947 68.490275) (xy 149.043308 68.585459) (xy 148.918086 68.652391) (xy 148.846503 68.89636) + (xy 147.914982 68.89636) (xy 147.79926 68.780638) (xy 147.565538 68.624471) (xy 147.305841 68.5169) (xy 147.030147 68.462062) + (xy 146.749053 68.462062) (xy 146.473359 68.5169) (xy 146.213662 68.624471) (xy 145.97994 68.780638) (xy 145.781176 68.979402) + (xy 145.625009 69.213124) (xy 145.549633 69.395096) (xy 145.549633 69.089062) (xy 145.537527 68.966149) (xy 145.501675 68.847959) + (xy 145.443453 68.739034) (xy 145.365101 68.643561) (xy 145.269628 68.565209) (xy 145.160703 68.506987) (xy 145.042513 68.471135) + (xy 144.9196 68.459029) (xy 143.3196 68.459029) (xy 143.196687 68.471135) (xy 143.078497 68.506987) (xy 142.969572 68.565209) + (xy 142.874099 68.643561) (xy 142.795747 68.739034) (xy 142.737525 68.847959) (xy 142.701673 68.966149) (xy 142.689567 69.089062) + (xy 142.689567 70.689062) (xy 142.694755 70.741732) (xy 140.387337 70.741732) (xy 140.344267 70.73749) (xy 140.301198 70.741732) + (xy 140.301189 70.741732) (xy 140.172346 70.754422) (xy 140.007031 70.80457) (xy 139.854676 70.886005) (xy 139.721135 70.995599) + (xy 139.693674 71.029061) (xy 138.968435 71.7543) (xy 138.647567 71.7543) (xy 138.834215 71.629586) (xy 139.200124 71.263677) + (xy 139.487617 70.833413) (xy 139.685646 70.35533) (xy 139.7866 69.847799) (xy 139.7866 69.330325) (xy 139.685646 68.822794) + (xy 139.487617 68.344711) (xy 139.200124 67.914447) (xy 138.834215 67.548538) (xy 138.403951 67.261045) (xy 137.925868 67.063016) + (xy 137.418337 66.962062) (xy 136.900863 66.962062) (xy 136.393332 67.063016) (xy 135.915249 67.261045) (xy 135.484985 67.548538) + (xy 135.119076 67.914447) (xy 134.831583 68.344711) (xy 134.633554 68.822794) (xy 134.5326 69.330325) (xy 134.5326 69.847799) + (xy 134.633554 70.35533) (xy 134.831583 70.833413) (xy 135.119076 71.263677) (xy 135.484985 71.629586) (xy 135.671633 71.7543) + (xy 119.039567 71.7543) (xy 119.226215 71.629586) (xy 119.592124 71.263677) (xy 119.879617 70.833413) (xy 120.077646 70.35533) + (xy 120.1786 69.847799) (xy 120.1786 69.330325) (xy 120.105898 68.964824) (xy 123.685981 68.964824) (xy 123.817917 69.259912) + (xy 124.158645 69.430759) (xy 124.526157 69.53185) (xy 124.906329 69.559301) (xy 125.284551 69.512057) (xy 125.64629 69.391933) + (xy 125.893283 69.259912) (xy 126.025219 68.964824) (xy 124.8556 67.795205) (xy 123.685981 68.964824) (xy 120.105898 68.964824) + (xy 120.077646 68.822794) (xy 119.879617 68.344711) (xy 119.592124 67.914447) (xy 119.344006 67.666329) (xy 122.911899 67.666329) + (xy 122.959143 68.044551) (xy 123.079267 68.40629) (xy 123.211288 68.653283) (xy 123.506376 68.785219) (xy 124.675995 67.6156) + (xy 125.035205 67.6156) (xy 126.204824 68.785219) (xy 126.499912 68.653283) (xy 126.670759 68.312555) (xy 126.77185 67.945043) + (xy 126.799301 67.564871) (xy 126.752057 67.186649) (xy 126.631933 66.82491) (xy 126.499912 66.577917) (xy 126.204824 66.445981) + (xy 125.035205 67.6156) (xy 124.675995 67.6156) (xy 123.506376 66.445981) (xy 123.211288 66.577917) (xy 123.040441 66.918645) + (xy 122.93935 67.286157) (xy 122.911899 67.666329) (xy 119.344006 67.666329) (xy 119.226215 67.548538) (xy 118.795951 67.261045) + (xy 118.317868 67.063016) (xy 117.810337 66.962062) (xy 117.292863 66.962062) (xy 116.785332 67.063016) (xy 116.307249 67.261045) + (xy 115.876985 67.548538) (xy 115.511076 67.914447) (xy 115.223583 68.344711) (xy 115.025554 68.822794) (xy 114.9246 69.330325) + (xy 114.9246 69.847799) (xy 115.025554 70.35533) (xy 115.223583 70.833413) (xy 115.511076 71.263677) (xy 115.876985 71.629586) + (xy 116.063633 71.7543) (xy 109.126066 71.7543) (xy 108.6986 71.326835) (xy 108.6986 71.019309) (xy 108.73126 70.997486) + (xy 108.930024 70.798722) (xy 109.086191 70.565) (xy 109.161567 70.383028) (xy 109.161567 70.689062) (xy 109.173673 70.811975) + (xy 109.209525 70.930165) (xy 109.267747 71.03909) (xy 109.346099 71.134563) (xy 109.441572 71.212915) (xy 109.550497 71.271137) + (xy 109.668687 71.306989) (xy 109.7916 71.319095) (xy 111.3916 71.319095) (xy 111.514513 71.306989) (xy 111.632703 71.271137) + (xy 111.741628 71.212915) (xy 111.837101 71.134563) (xy 111.915453 71.03909) (xy 111.973675 70.930165) (xy 112.009527 70.811975) + (xy 112.021633 70.689062) (xy 112.021633 69.089062) (xy 112.009527 68.966149) (xy 111.973675 68.847959) (xy 111.915453 68.739034) + (xy 111.837101 68.643561) (xy 111.741628 68.565209) (xy 111.632703 68.506987) (xy 111.514513 68.471135) (xy 111.3916 68.459029) + (xy 109.7916 68.459029) (xy 109.668687 68.471135) (xy 109.550497 68.506987) (xy 109.441572 68.565209) (xy 109.346099 68.643561) + (xy 109.267747 68.739034) (xy 109.209525 68.847959) (xy 109.173673 68.966149) (xy 109.161567 69.089062) (xy 109.161567 69.395096) + (xy 109.086191 69.213124) (xy 108.930024 68.979402) (xy 108.73126 68.780638) (xy 108.497538 68.624471) (xy 108.237841 68.5169) + (xy 107.962147 68.462062) (xy 107.681053 68.462062) (xy 107.405359 68.5169) (xy 107.145662 68.624471) (xy 106.91194 68.780638) + (xy 106.713176 68.979402) (xy 106.557009 69.213124) (xy 106.449438 69.472821) (xy 106.441327 69.513598) (xy 106.355203 69.27277) + (xy 106.288271 69.147548) (xy 106.044302 69.075965) (xy 105.231205 69.889062) (xy 104.871995 69.889062) (xy 104.058898 69.075965) + (xy 103.814929 69.147548) (xy 103.694029 69.403058) (xy 103.663841 69.523491) (xy 103.653762 69.472821) (xy 103.546191 69.213124) + (xy 103.390024 68.979402) (xy 103.306982 68.89636) (xy 104.238503 68.89636) (xy 105.0516 69.709457) (xy 105.864697 68.89636) + (xy 105.793114 68.652391) (xy 105.537604 68.531491) (xy 105.263416 68.462762) (xy 104.981088 68.448845) (xy 104.70147 68.490275) + (xy 104.435308 68.585459) (xy 104.310086 68.652391) (xy 104.238503 68.89636) (xy 103.306982 68.89636) (xy 103.19126 68.780638) + (xy 102.957538 68.624471) (xy 102.697841 68.5169) (xy 102.422147 68.462062) (xy 102.141053 68.462062) (xy 101.865359 68.5169) + (xy 101.605662 68.624471) (xy 101.37194 68.780638) (xy 101.173176 68.979402) (xy 101.017009 69.213124) (xy 100.909438 69.472821) + (xy 100.8966 69.537363) (xy 100.883762 69.472821) (xy 100.776191 69.213124) (xy 100.620024 68.979402) (xy 100.42126 68.780638) + (xy 100.187538 68.624471) (xy 99.927841 68.5169) (xy 99.652147 68.462062) (xy 99.371053 68.462062) (xy 99.095359 68.5169) + (xy 98.835662 68.624471) (xy 98.60194 68.780638) (xy 98.403176 68.979402) (xy 98.247009 69.213124) (xy 98.139438 69.472821) + (xy 98.0846 69.748515) (xy 95.1786 69.748515) (xy 95.1786 69.330325) (xy 95.077646 68.822794) (xy 94.879617 68.344711) + (xy 94.592124 67.914447) (xy 94.226215 67.548538) (xy 93.795951 67.261045) (xy 93.317868 67.063016) (xy 92.810337 66.962062) + (xy 92.292863 66.962062) (xy 91.785332 67.063016) (xy 91.307249 67.261045) (xy 90.876985 67.548538) (xy 90.511076 67.914447) + (xy 90.223583 68.344711) (xy 90.025554 68.822794) (xy 89.9246 69.330325) (xy 81.202 69.330325) (xy 81.202 66.78066) + (xy 82.773 66.78066) (xy 82.773 67.21934) (xy 82.858582 67.649592) (xy 83.026458 68.05488) (xy 83.270176 68.41963) + (xy 83.58037 68.729824) (xy 83.94512 68.973542) (xy 84.350408 69.141418) (xy 84.78066 69.227) (xy 85.21934 69.227) + (xy 85.649592 69.141418) (xy 86.05488 68.973542) (xy 86.41963 68.729824) (xy 86.729824 68.41963) (xy 86.973542 68.05488) + (xy 87.141418 67.649592) (xy 87.227 67.21934) (xy 87.227 66.908515) (xy 99.4696 66.908515) (xy 99.4696 67.189609) + (xy 99.524438 67.465303) (xy 99.632009 67.725) (xy 99.788176 67.958722) (xy 99.98694 68.157486) (xy 100.220662 68.313653) + (xy 100.480359 68.421224) (xy 100.756053 68.476062) (xy 101.037147 68.476062) (xy 101.312841 68.421224) (xy 101.572538 68.313653) + (xy 101.80626 68.157486) (xy 102.005024 67.958722) (xy 102.161191 67.725) (xy 102.268762 67.465303) (xy 102.2816 67.400761) + (xy 102.294438 67.465303) (xy 102.402009 67.725) (xy 102.558176 67.958722) (xy 102.75694 68.157486) (xy 102.990662 68.313653) + (xy 103.250359 68.421224) (xy 103.526053 68.476062) (xy 103.807147 68.476062) (xy 104.082841 68.421224) (xy 104.342538 68.313653) + (xy 104.57626 68.157486) (xy 104.775024 67.958722) (xy 104.931191 67.725) (xy 105.038762 67.465303) (xy 105.0516 67.400761) + (xy 105.064438 67.465303) (xy 105.172009 67.725) (xy 105.328176 67.958722) (xy 105.52694 68.157486) (xy 105.760662 68.313653) + (xy 106.020359 68.421224) (xy 106.296053 68.476062) (xy 106.577147 68.476062) (xy 106.852841 68.421224) (xy 107.112538 68.313653) + (xy 107.34626 68.157486) (xy 107.545024 67.958722) (xy 107.701191 67.725) (xy 107.808762 67.465303) (xy 107.8216 67.400761) + (xy 107.834438 67.465303) (xy 107.942009 67.725) (xy 108.098176 67.958722) (xy 108.29694 68.157486) (xy 108.530662 68.313653) + (xy 108.790359 68.421224) (xy 109.066053 68.476062) (xy 109.347147 68.476062) (xy 109.622841 68.421224) (xy 109.882538 68.313653) + (xy 110.11626 68.157486) (xy 110.315024 67.958722) (xy 110.471191 67.725) (xy 110.578762 67.465303) (xy 110.6336 67.189609) + (xy 110.6336 66.908515) (xy 110.578762 66.632821) (xy 110.471191 66.373124) (xy 110.399865 66.266376) (xy 123.685981 66.266376) + (xy 124.8556 67.435995) (xy 125.975995 66.3156) (xy 127.925567 66.3156) (xy 127.925567 68.9156) (xy 127.937673 69.038513) + (xy 127.973525 69.156703) (xy 128.031747 69.265628) (xy 128.110099 69.361101) (xy 128.205572 69.439453) (xy 128.314497 69.497675) + (xy 128.432687 69.533527) (xy 128.5556 69.545633) (xy 131.1556 69.545633) (xy 131.278513 69.533527) (xy 131.396703 69.497675) + (xy 131.505628 69.439453) (xy 131.601101 69.361101) (xy 131.679453 69.265628) (xy 131.737675 69.156703) (xy 131.773527 69.038513) + (xy 131.785633 68.9156) (xy 131.785633 68.484036) (xy 131.827522 68.47991) (xy 131.992837 68.429762) (xy 132.145192 68.348327) + (xy 132.278733 68.238733) (xy 132.306197 68.205268) (xy 134.343766 66.1677) (xy 144.377268 66.1677) (xy 144.240009 66.373124) + (xy 144.132438 66.632821) (xy 144.0776 66.908515) (xy 144.0776 67.189609) (xy 144.132438 67.465303) (xy 144.240009 67.725) + (xy 144.396176 67.958722) (xy 144.59494 68.157486) (xy 144.828662 68.313653) (xy 145.088359 68.421224) (xy 145.364053 68.476062) + (xy 145.645147 68.476062) (xy 145.920841 68.421224) (xy 146.180538 68.313653) (xy 146.41426 68.157486) (xy 146.613024 67.958722) + (xy 146.769191 67.725) (xy 146.876762 67.465303) (xy 146.8896 67.400761) (xy 146.902438 67.465303) (xy 147.010009 67.725) + (xy 147.166176 67.958722) (xy 147.36494 68.157486) (xy 147.598662 68.313653) (xy 147.858359 68.421224) (xy 148.134053 68.476062) + (xy 148.415147 68.476062) (xy 148.690841 68.421224) (xy 148.950538 68.313653) (xy 149.18426 68.157486) (xy 149.383024 67.958722) + (xy 149.539191 67.725) (xy 149.646762 67.465303) (xy 149.6596 67.400761) (xy 149.672438 67.465303) (xy 149.780009 67.725) + (xy 149.936176 67.958722) (xy 150.13494 68.157486) (xy 150.368662 68.313653) (xy 150.628359 68.421224) (xy 150.904053 68.476062) + (xy 151.185147 68.476062) (xy 151.460841 68.421224) (xy 151.720538 68.313653) (xy 151.95426 68.157486) (xy 152.153024 67.958722) + (xy 152.309191 67.725) (xy 152.416762 67.465303) (xy 152.4296 67.400761) (xy 152.442438 67.465303) (xy 152.550009 67.725) + (xy 152.706176 67.958722) (xy 152.90494 68.157486) (xy 153.138662 68.313653) (xy 153.398359 68.421224) (xy 153.674053 68.476062) + (xy 153.955147 68.476062) (xy 154.230841 68.421224) (xy 154.490538 68.313653) (xy 154.72426 68.157486) (xy 154.923024 67.958722) + (xy 155.079191 67.725) (xy 155.186762 67.465303) (xy 155.2416 67.189609) (xy 155.2416 66.908515) (xy 155.216169 66.78066) + (xy 167.6482 66.78066) (xy 167.6482 67.21934) (xy 167.733782 67.649592) (xy 167.901658 68.05488) (xy 168.145376 68.41963) + (xy 168.45557 68.729824) (xy 168.82032 68.973542) (xy 169.225608 69.141418) (xy 169.65586 69.227) (xy 170.09454 69.227) + (xy 170.524792 69.141418) (xy 170.93008 68.973542) (xy 171.29483 68.729824) (xy 171.605024 68.41963) (xy 171.848742 68.05488) + (xy 172.016618 67.649592) (xy 172.1022 67.21934) (xy 172.1022 66.78066) (xy 172.016618 66.350408) (xy 171.848742 65.94512) + (xy 171.605024 65.58037) (xy 171.29483 65.270176) (xy 170.93008 65.026458) (xy 170.524792 64.858582) (xy 170.09454 64.773) + (xy 169.65586 64.773) (xy 169.225608 64.858582) (xy 168.82032 65.026458) (xy 168.45557 65.270176) (xy 168.145376 65.58037) + (xy 167.901658 65.94512) (xy 167.733782 66.350408) (xy 167.6482 66.78066) (xy 155.216169 66.78066) (xy 155.186762 66.632821) + (xy 155.079191 66.373124) (xy 154.923024 66.139402) (xy 154.72426 65.940638) (xy 154.695477 65.921406) (xy 154.695843 65.917692) + (xy 154.67891 65.745769) (xy 154.628762 65.580455) (xy 154.628717 65.58037) (xy 154.547327 65.4281) (xy 154.437733 65.294559) + (xy 154.404268 65.267095) (xy 153.838205 64.701032) (xy 153.810741 64.667567) (xy 153.6772 64.557973) (xy 153.524845 64.476538) + (xy 153.35953 64.42639) (xy 153.230687 64.4137) (xy 153.187608 64.409457) (xy 153.144529 64.4137) (xy 134.023576 64.4137) + (xy 133.980499 64.409457) (xy 133.937422 64.4137) (xy 133.937421 64.4137) (xy 133.808578 64.42639) (xy 133.643263 64.476538) + (xy 133.490908 64.557973) (xy 133.357367 64.667567) (xy 133.329908 64.701026) (xy 131.77933 66.251605) (xy 131.773527 66.192687) + (xy 131.737675 66.074497) (xy 131.679453 65.965572) (xy 131.601101 65.870099) (xy 131.505628 65.791747) (xy 131.396703 65.733525) + (xy 131.278513 65.697673) (xy 131.1556 65.685567) (xy 128.5556 65.685567) (xy 128.432687 65.697673) (xy 128.314497 65.733525) + (xy 128.205572 65.791747) (xy 128.110099 65.870099) (xy 128.031747 65.965572) (xy 127.973525 66.074497) (xy 127.937673 66.192687) + (xy 127.925567 66.3156) (xy 125.975995 66.3156) (xy 126.025219 66.266376) (xy 125.893283 65.971288) (xy 125.552555 65.800441) + (xy 125.185043 65.69935) (xy 124.804871 65.671899) (xy 124.426649 65.719143) (xy 124.06491 65.839267) (xy 123.817917 65.971288) + (xy 123.685981 66.266376) (xy 110.399865 66.266376) (xy 110.315024 66.139402) (xy 110.11626 65.940638) (xy 109.882538 65.784471) + (xy 109.622841 65.6769) (xy 109.347147 65.622062) (xy 109.066053 65.622062) (xy 108.790359 65.6769) (xy 108.530662 65.784471) + (xy 108.29694 65.940638) (xy 108.098176 66.139402) (xy 107.942009 66.373124) (xy 107.834438 66.632821) (xy 107.8216 66.697363) + (xy 107.808762 66.632821) (xy 107.701191 66.373124) (xy 107.545024 66.139402) (xy 107.34626 65.940638) (xy 107.112538 65.784471) + (xy 106.852841 65.6769) (xy 106.577147 65.622062) (xy 106.296053 65.622062) (xy 106.020359 65.6769) (xy 105.760662 65.784471) + (xy 105.52694 65.940638) (xy 105.328176 66.139402) (xy 105.172009 66.373124) (xy 105.064438 66.632821) (xy 105.0516 66.697363) + (xy 105.038762 66.632821) (xy 104.931191 66.373124) (xy 104.775024 66.139402) (xy 104.57626 65.940638) (xy 104.342538 65.784471) + (xy 104.082841 65.6769) (xy 103.807147 65.622062) (xy 103.526053 65.622062) (xy 103.250359 65.6769) (xy 102.990662 65.784471) + (xy 102.75694 65.940638) (xy 102.558176 66.139402) (xy 102.402009 66.373124) (xy 102.294438 66.632821) (xy 102.2816 66.697363) + (xy 102.268762 66.632821) (xy 102.161191 66.373124) (xy 102.005024 66.139402) (xy 101.80626 65.940638) (xy 101.572538 65.784471) + (xy 101.312841 65.6769) (xy 101.037147 65.622062) (xy 100.756053 65.622062) (xy 100.480359 65.6769) (xy 100.220662 65.784471) + (xy 99.98694 65.940638) (xy 99.788176 66.139402) (xy 99.632009 66.373124) (xy 99.524438 66.632821) (xy 99.4696 66.908515) + (xy 87.227 66.908515) (xy 87.227 66.78066) (xy 87.141418 66.350408) (xy 86.973542 65.94512) (xy 86.729824 65.58037) + (xy 86.41963 65.270176) (xy 86.05488 65.026458) (xy 85.649592 64.858582) (xy 85.21934 64.773) (xy 84.78066 64.773) + (xy 84.350408 64.858582) (xy 83.94512 65.026458) (xy 83.58037 65.270176) (xy 83.270176 65.58037) (xy 83.026458 65.94512) + (xy 82.858582 66.350408) (xy 82.773 66.78066) (xy 81.202 66.78066) (xy 81.202 63.202) (xy 173.298 63.202) + ) + ) + (filled_polygon + (pts + (xy 133.781793 82.825058) (xy 133.809257 82.858523) (xy 133.942798 82.968117) (xy 134.095153 83.049552) (xy 134.260468 83.0997) + (xy 134.389311 83.11239) (xy 134.38932 83.11239) (xy 134.432389 83.116632) (xy 134.475459 83.11239) (xy 142.242167 83.11239) + (xy 142.424355 83.234124) (xy 142.629456 83.31908) (xy 142.84719 83.36239) (xy 143.06919 83.36239) (xy 143.286924 83.31908) + (xy 143.492025 83.234124) (xy 143.674213 83.11239) (xy 160.205726 83.11239) (xy 160.379052 83.285716) (xy 160.379056 83.285721) + (xy 161.00255 83.909216) (xy 161.00255 88.454914) (xy 160.9438 88.449128) (xy 160.22955 88.4522) (xy 160.0708 88.61095) + (xy 160.0708 89.7102) (xy 160.0908 89.7102) (xy 160.0908 89.9642) (xy 160.0708 89.9642) (xy 160.0708 89.9842) + (xy 159.8168 89.9842) (xy 159.8168 89.9642) (xy 158.46755 89.9642) (xy 158.3088 90.12295) (xy 158.305728 90.5872) + (xy 158.317988 90.711682) (xy 158.354298 90.83138) (xy 158.413263 90.941694) (xy 158.455783 90.993505) (xy 158.419947 91.037172) + (xy 158.361725 91.146097) (xy 158.327113 91.2602) (xy 155.273833 91.2602) (xy 155.273833 90.2372) (xy 155.261727 90.114287) + (xy 155.225875 89.996097) (xy 155.167653 89.887172) (xy 155.089301 89.791699) (xy 154.993828 89.713347) (xy 154.884903 89.655125) + (xy 154.766713 89.619273) (xy 154.6438 89.607167) (xy 152.6438 89.607167) (xy 152.520887 89.619273) (xy 152.402697 89.655125) + (xy 152.293772 89.713347) (xy 152.198299 89.791699) (xy 152.119947 89.887172) (xy 152.061725 89.996097) (xy 152.025873 90.114287) + (xy 152.013767 90.2372) (xy 152.013767 91.2542) (xy 141.140744 91.2542) (xy 141.224435 91.219534) (xy 141.409021 91.096198) + (xy 141.565998 90.939221) (xy 141.689334 90.754635) (xy 141.77429 90.549534) (xy 141.8176 90.3318) (xy 141.8176 90.1098) + (xy 141.77429 89.892066) (xy 141.689334 89.686965) (xy 141.565998 89.502379) (xy 141.409021 89.345402) (xy 141.224435 89.222066) + (xy 141.019334 89.13711) (xy 140.8016 89.0938) (xy 140.5796 89.0938) (xy 140.361866 89.13711) (xy 140.156765 89.222066) + (xy 139.974577 89.3438) (xy 139.695609 89.3438) (xy 139.672745 89.268425) (xy 139.591421 89.116279) (xy 139.567557 89.0872) + (xy 158.305728 89.0872) (xy 158.3088 89.55145) (xy 158.46755 89.7102) (xy 159.8168 89.7102) (xy 159.8168 88.61095) + (xy 159.65805 88.4522) (xy 158.9438 88.449128) (xy 158.819318 88.461388) (xy 158.69962 88.497698) (xy 158.589306 88.556663) + (xy 158.492615 88.636015) (xy 158.413263 88.732706) (xy 158.354298 88.84302) (xy 158.317988 88.962718) (xy 158.305728 89.0872) + (xy 139.567557 89.0872) (xy 139.481978 88.982922) (xy 139.348621 88.873479) (xy 139.236221 88.8134) (xy 148.170837 88.8134) + (xy 148.209 88.817159) (xy 148.247163 88.8134) (xy 148.247166 88.8134) (xy 148.361319 88.802157) (xy 148.507784 88.757727) + (xy 148.642766 88.685577) (xy 148.76108 88.58848) (xy 148.785413 88.55883) (xy 149.01083 88.333413) (xy 149.04048 88.30908) + (xy 149.137577 88.190766) (xy 149.209727 88.055784) (xy 149.254157 87.909319) (xy 149.2654 87.795166) (xy 149.2654 87.795157) + (xy 149.269158 87.757001) (xy 149.2654 87.718845) (xy 149.2654 87.111436) (xy 149.312947 87.086022) (xy 149.53785 86.90145) + (xy 149.722422 86.676547) (xy 149.75882 86.608451) (xy 149.833222 86.733355) (xy 150.028131 86.949588) (xy 150.26148 87.123641) + (xy 150.524301 87.248825) (xy 150.67151 87.293476) (xy 150.9014 87.172155) (xy 150.9014 85.979) (xy 150.8814 85.979) + (xy 150.8814 85.725) (xy 150.9014 85.725) (xy 150.9014 85.705) (xy 151.1554 85.705) (xy 151.1554 85.725) + (xy 151.1754 85.725) (xy 151.1754 85.979) (xy 151.1554 85.979) (xy 151.1554 87.172155) (xy 151.38529 87.293476) + (xy 151.532499 87.248825) (xy 151.79532 87.123641) (xy 152.028669 86.949588) (xy 152.223578 86.733355) (xy 152.29798 86.608451) + (xy 152.334378 86.676547) (xy 152.51895 86.90145) (xy 152.743853 87.086022) (xy 153.000442 87.223172) (xy 153.278857 87.307629) + (xy 153.495844 87.329) (xy 153.640956 87.329) (xy 153.857943 87.307629) (xy 154.136358 87.223172) (xy 154.392947 87.086022) + (xy 154.61785 86.90145) (xy 154.802422 86.676547) (xy 154.8384 86.609237) (xy 154.874378 86.676547) (xy 155.05895 86.90145) + (xy 155.283853 87.086022) (xy 155.540442 87.223172) (xy 155.818857 87.307629) (xy 156.035844 87.329) (xy 156.180956 87.329) + (xy 156.397943 87.307629) (xy 156.676358 87.223172) (xy 156.932947 87.086022) (xy 157.15785 86.90145) (xy 157.342422 86.676547) + (xy 157.3784 86.609237) (xy 157.414378 86.676547) (xy 157.59895 86.90145) (xy 157.823853 87.086022) (xy 158.080442 87.223172) + (xy 158.358857 87.307629) (xy 158.575844 87.329) (xy 158.720956 87.329) (xy 158.937943 87.307629) (xy 159.216358 87.223172) + (xy 159.472947 87.086022) (xy 159.69785 86.90145) (xy 159.882422 86.676547) (xy 160.019572 86.419958) (xy 160.104029 86.141543) + (xy 160.132546 85.852) (xy 160.104029 85.562457) (xy 160.019572 85.284042) (xy 159.882422 85.027453) (xy 159.69785 84.80255) + (xy 159.472947 84.617978) (xy 159.216358 84.480828) (xy 158.937943 84.396371) (xy 158.720956 84.375) (xy 158.575844 84.375) + (xy 158.358857 84.396371) (xy 158.080442 84.480828) (xy 157.823853 84.617978) (xy 157.59895 84.80255) (xy 157.414378 85.027453) + (xy 157.3784 85.094763) (xy 157.342422 85.027453) (xy 157.15785 84.80255) (xy 156.932947 84.617978) (xy 156.883405 84.591497) + (xy 156.874157 84.4976) (xy 156.829727 84.351135) (xy 156.824261 84.340909) (xy 156.757577 84.216152) (xy 156.69514 84.140073) + (xy 156.66048 84.097839) (xy 156.63083 84.073507) (xy 156.242246 83.684924) (xy 156.21791 83.65527) (xy 156.099596 83.558173) + (xy 156.099597 83.558173) (xy 156.099595 83.558172) (xy 156.058649 83.536286) (xy 155.964614 83.486023) (xy 155.818149 83.441593) + (xy 155.703996 83.43035) (xy 155.703993 83.43035) (xy 155.66583 83.426591) (xy 155.627666 83.43035) (xy 144.473013 83.43035) + (xy 144.43485 83.426591) (xy 144.396686 83.43035) (xy 144.396684 83.43035) (xy 144.282531 83.441593) (xy 144.136066 83.486023) + (xy 144.071991 83.520272) (xy 144.001083 83.558173) (xy 143.929546 83.616882) (xy 143.88277 83.65527) (xy 143.858442 83.684914) + (xy 143.468357 84.075) (xy 136.900619 84.075) (xy 136.811621 83.986002) (xy 136.627035 83.862666) (xy 136.421934 83.77771) + (xy 136.2042 83.7344) (xy 135.9822 83.7344) (xy 135.764466 83.77771) (xy 135.559365 83.862666) (xy 135.374779 83.986002) + (xy 135.217802 84.142979) (xy 135.094466 84.327565) (xy 135.00951 84.532666) (xy 134.9662 84.7504) (xy 134.9662 84.9724) + (xy 134.986608 85.075) (xy 133.801444 85.075) (xy 133.693033 84.966589) (xy 133.693033 84.6729) (xy 133.676364 84.503653) + (xy 133.626996 84.340909) (xy 133.546827 84.190924) (xy 133.528725 84.168867) (xy 133.593537 84.089894) (xy 133.652502 83.97958) + (xy 133.688812 83.859882) (xy 133.701072 83.7354) (xy 133.698 83.49615) (xy 133.53925 83.3374) (xy 132.715 83.3374) + (xy 132.715 83.3574) (xy 132.461 83.3574) (xy 132.461 83.3374) (xy 131.63675 83.3374) (xy 131.478 83.49615) + (xy 131.474928 83.7354) (xy 131.487188 83.859882) (xy 131.523498 83.97958) (xy 131.582463 84.089894) (xy 131.647275 84.168867) + (xy 131.629173 84.190924) (xy 131.549004 84.340909) (xy 131.499636 84.503653) (xy 131.482967 84.6729) (xy 131.482967 85.2479) + (xy 131.499636 85.417147) (xy 131.549004 85.579891) (xy 131.629173 85.729876) (xy 131.737062 85.861338) (xy 131.868524 85.969227) + (xy 131.929148 86.001631) (xy 131.88531 86.107466) (xy 131.842 86.3252) (xy 131.842 86.5472) (xy 131.88531 86.764934) + (xy 131.970266 86.970035) (xy 132.093602 87.154621) (xy 132.250579 87.311598) (xy 132.435165 87.434934) (xy 132.640266 87.51989) + (xy 132.858 87.5632) (xy 133.08 87.5632) (xy 133.297734 87.51989) (xy 133.502835 87.434934) (xy 133.687421 87.311598) + (xy 133.844398 87.154621) (xy 133.967734 86.970035) (xy 134.05269 86.764934) (xy 134.079729 86.629) (xy 144.468367 86.629) + (xy 144.468367 86.702) (xy 144.480473 86.824913) (xy 144.516325 86.943103) (xy 144.574547 87.052028) (xy 144.652899 87.147501) + (xy 144.748372 87.225853) (xy 144.811134 87.2594) (xy 135.900763 87.2594) (xy 135.8626 87.255641) (xy 135.824436 87.2594) + (xy 135.824434 87.2594) (xy 135.710281 87.270643) (xy 135.563816 87.315073) (xy 135.428833 87.387223) (xy 135.340165 87.459991) + (xy 135.31052 87.48432) (xy 135.286192 87.513964) (xy 133.698569 89.101588) (xy 133.66892 89.12592) (xy 133.623675 89.181052) + (xy 133.571823 89.244234) (xy 133.504697 89.369818) (xy 133.499673 89.379217) (xy 133.455243 89.525682) (xy 133.444 89.639834) + (xy 133.440241 89.678) (xy 133.444 89.716164) (xy 133.444 89.940181) (xy 133.369921 89.866102) (xy 133.185335 89.742766) + (xy 132.980234 89.65781) (xy 132.7625 89.6145) (xy 132.5405 89.6145) (xy 132.322766 89.65781) (xy 132.117665 89.742766) + (xy 131.933079 89.866102) (xy 131.776102 90.023079) (xy 131.652766 90.207665) (xy 131.56781 90.412766) (xy 131.5245 90.6305) + (xy 131.3975 90.6305) (xy 131.179766 90.67381) (xy 130.974665 90.758766) (xy 130.790079 90.882102) (xy 130.633102 91.039079) + (xy 130.509766 91.223665) (xy 130.42481 91.428766) (xy 130.3815 91.6465) (xy 130.3815 91.8685) (xy 130.42481 92.086234) + (xy 130.509766 92.291335) (xy 130.633102 92.475921) (xy 130.651356 92.494175) (xy 130.646241 92.546106) (xy 130.65 92.584269) + (xy 130.650001 95.251) (xy 129.560163 95.251) (xy 129.522 95.247241) (xy 129.483836 95.251) (xy 129.483834 95.251) + (xy 129.369681 95.262243) (xy 129.223216 95.306673) (xy 129.197941 95.320183) (xy 129.088233 95.378823) (xy 129.015648 95.438392) + (xy 128.96992 95.47592) (xy 128.945592 95.505565) (xy 128.428568 96.022589) (xy 128.39892 96.04692) (xy 128.351314 96.104929) + (xy 128.342996 96.077509) (xy 128.262827 95.927524) (xy 128.194986 95.844861) (xy 128.252734 95.758435) (xy 128.33769 95.553334) + (xy 128.381 95.3356) (xy 128.381 95.1136) (xy 128.33769 94.895866) (xy 128.252734 94.690765) (xy 128.129398 94.506179) + (xy 128.031 94.407781) (xy 128.031 91.361459) (xy 128.150438 91.263438) (xy 128.258327 91.131976) (xy 128.338496 90.981991) + (xy 128.387864 90.819247) (xy 128.404533 90.65) (xy 128.404533 90.075) (xy 128.387864 89.905753) (xy 128.338496 89.743009) + (xy 128.258327 89.593024) (xy 128.171725 89.4875) (xy 128.258327 89.381976) (xy 128.338496 89.231991) (xy 128.387864 89.069247) + (xy 128.404533 88.9) (xy 128.404533 88.325) (xy 128.387864 88.155753) (xy 128.338496 87.993009) (xy 128.258327 87.843024) + (xy 128.150438 87.711562) (xy 128.0765 87.650882) (xy 128.0765 84.396863) (xy 128.080259 84.3587) (xy 128.075583 84.311223) + (xy 128.065257 84.206381) (xy 128.020827 84.059916) (xy 127.977886 83.97958) (xy 127.948677 83.924933) (xy 127.879195 83.84027) + (xy 128.013593 83.705872) (xy 128.013593 83.705871) (xy 128.267064 83.4524) (xy 130.716121 83.4524) (xy 130.7592 83.456643) + (xy 130.802279 83.4524) (xy 130.931122 83.43971) (xy 131.096437 83.389562) (xy 131.248792 83.308127) (xy 131.382333 83.198533) + (xy 131.409796 83.165069) (xy 131.564108 83.010758) (xy 131.63675 83.0834) (xy 132.461 83.0834) (xy 132.461 83.0634) + (xy 132.715 83.0634) (xy 132.715 83.0834) (xy 133.53925 83.0834) (xy 133.698 82.92465) (xy 133.700325 82.74359) + ) + ) + ) + (zone (net 2) (net_name GND) (layer F.Cu) (tstamp 5E3A9914) (hatch edge 0.508) + (connect_pads (clearance 0.5)) + (min_thickness 0.254) + (fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 81 63) (xy 173.5 63) (xy 173.5 117) (xy 81 117) + ) + ) + (filled_polygon + (pts + (xy 173.298001 116.798) (xy 81.202 116.798) (xy 81.202 112.78066) (xy 82.773 112.78066) (xy 82.773 113.21934) + (xy 82.858582 113.649592) (xy 83.026458 114.05488) (xy 83.270176 114.41963) (xy 83.58037 114.729824) (xy 83.94512 114.973542) + (xy 84.350408 115.141418) (xy 84.78066 115.227) (xy 85.21934 115.227) (xy 85.649592 115.141418) (xy 86.05488 114.973542) + (xy 86.41963 114.729824) (xy 86.729824 114.41963) (xy 86.973542 114.05488) (xy 87.141418 113.649592) (xy 87.181516 113.448) + (xy 144.052528 113.448) (xy 144.064788 113.572482) (xy 144.101098 113.69218) (xy 144.160063 113.802494) (xy 144.239415 113.899185) + (xy 144.336106 113.978537) (xy 144.44642 114.037502) (xy 144.566118 114.073812) (xy 144.6906 114.086072) (xy 144.70485 114.083) + (xy 144.8636 113.92425) (xy 144.8636 112.7) (xy 144.21435 112.7) (xy 144.0556 112.85875) (xy 144.052528 113.448) + (xy 87.181516 113.448) (xy 87.227 113.21934) (xy 87.227 112.78066) (xy 87.141418 112.350408) (xy 86.973542 111.94512) + (xy 86.729824 111.58037) (xy 86.41963 111.270176) (xy 86.05488 111.026458) (xy 85.649592 110.858582) (xy 85.21934 110.773) + (xy 84.78066 110.773) (xy 84.350408 110.858582) (xy 83.94512 111.026458) (xy 83.58037 111.270176) (xy 83.270176 111.58037) + (xy 83.026458 111.94512) (xy 82.858582 112.350408) (xy 82.773 112.78066) (xy 81.202 112.78066) (xy 81.202 106.5856) + (xy 95.231928 106.5856) (xy 95.244188 106.710082) (xy 95.280498 106.82978) (xy 95.339463 106.940094) (xy 95.418815 107.036785) + (xy 95.515506 107.116137) (xy 95.62582 107.175102) (xy 95.745518 107.211412) (xy 95.87 107.223672) (xy 96.43425 107.2206) + (xy 96.593 107.06185) (xy 96.593 105.8626) (xy 96.847 105.8626) (xy 96.847 107.06185) (xy 97.00575 107.2206) + (xy 97.57 107.223672) (xy 97.694482 107.211412) (xy 97.81418 107.175102) (xy 97.924494 107.116137) (xy 98.021185 107.036785) + (xy 98.100537 106.940094) (xy 98.159502 106.82978) (xy 98.195812 106.710082) (xy 98.208072 106.5856) (xy 98.205 106.02135) + (xy 98.04625 105.8626) (xy 96.847 105.8626) (xy 96.593 105.8626) (xy 95.39375 105.8626) (xy 95.235 106.02135) + (xy 95.231928 106.5856) (xy 81.202 106.5856) (xy 81.202 98.014) (xy 85.916767 98.014) (xy 85.916767 100.614) + (xy 85.928873 100.736913) (xy 85.964725 100.855103) (xy 86.022947 100.964028) (xy 86.101299 101.059501) (xy 86.196772 101.137853) + (xy 86.305697 101.196075) (xy 86.423887 101.231927) (xy 86.5468 101.244033) (xy 89.1468 101.244033) (xy 89.269713 101.231927) + (xy 89.387903 101.196075) (xy 89.496828 101.137853) (xy 89.592301 101.059501) (xy 89.670653 100.964028) (xy 89.728875 100.855103) + (xy 89.764727 100.736913) (xy 89.776833 100.614) (xy 89.776833 99.7426) (xy 91.956475 99.7426) (xy 90.312074 101.387001) + (xy 89.226713 101.387001) (xy 89.146798 101.37913) (xy 89.066884 101.387001) (xy 89.066874 101.387001) (xy 88.827851 101.410543) + (xy 88.521161 101.503576) (xy 88.521159 101.503577) (xy 88.238513 101.654655) (xy 88.052851 101.807023) (xy 88.052848 101.807026) + (xy 87.99077 101.857972) (xy 87.939824 101.92005) (xy 87.427154 102.43272) (xy 87.284715 102.461053) (xy 86.934023 102.606315) + (xy 86.618409 102.817201) (xy 86.350001 103.085609) (xy 86.139115 103.401223) (xy 85.993853 103.751915) (xy 85.9198 104.124207) + (xy 85.9198 104.503793) (xy 85.993853 104.876085) (xy 86.139115 105.226777) (xy 86.350001 105.542391) (xy 86.618409 105.810799) + (xy 86.934023 106.021685) (xy 87.284715 106.166947) (xy 87.657007 106.241) (xy 88.036593 106.241) (xy 88.408885 106.166947) + (xy 88.759577 106.021685) (xy 89.075191 105.810799) (xy 89.343599 105.542391) (xy 89.554485 105.226777) (xy 89.699747 104.876085) + (xy 89.72808 104.733646) (xy 89.820725 104.641001) (xy 90.906085 104.641001) (xy 90.985999 104.648872) (xy 91.065913 104.641001) + (xy 91.065924 104.641001) (xy 91.304947 104.617459) (xy 91.611637 104.524426) (xy 91.894285 104.373347) (xy 92.142028 104.17003) + (xy 92.192979 104.107946) (xy 94.018325 102.2826) (xy 95.558569 102.2826) (xy 95.485978 102.371053) (xy 95.348828 102.627642) + (xy 95.264371 102.906057) (xy 95.235854 103.1956) (xy 95.264371 103.485143) (xy 95.348828 103.763558) (xy 95.485978 104.020147) + (xy 95.67055 104.24505) (xy 95.703894 104.272415) (xy 95.62582 104.296098) (xy 95.515506 104.355063) (xy 95.418815 104.434415) + (xy 95.339463 104.531106) (xy 95.280498 104.64142) (xy 95.244188 104.761118) (xy 95.231928 104.8856) (xy 95.235 105.44985) + (xy 95.39375 105.6086) (xy 96.593 105.6086) (xy 96.593 105.5886) (xy 96.847 105.5886) (xy 96.847 105.6086) + (xy 98.04625 105.6086) (xy 98.205 105.44985) (xy 98.208072 104.8856) (xy 98.195812 104.761118) (xy 98.159502 104.64142) + (xy 98.100537 104.531106) (xy 98.021185 104.434415) (xy 97.924494 104.355063) (xy 97.81418 104.296098) (xy 97.736106 104.272415) + (xy 97.76945 104.24505) (xy 97.954022 104.020147) (xy 98.091172 103.763558) (xy 98.175629 103.485143) (xy 98.204146 103.1956) + (xy 98.175629 102.906057) (xy 98.091172 102.627642) (xy 97.954022 102.371053) (xy 97.76945 102.14615) (xy 97.616956 102.021002) + (xy 97.628286 102.014946) (xy 97.876029 101.811629) (xy 98.079346 101.563886) (xy 98.230425 101.281238) (xy 98.323458 100.974548) + (xy 98.354872 100.6556) (xy 98.323458 100.336652) (xy 98.230425 100.029962) (xy 98.079346 99.747314) (xy 97.876029 99.499571) + (xy 97.737155 99.3856) (xy 97.876029 99.271629) (xy 98.079346 99.023886) (xy 98.230425 98.741238) (xy 98.323458 98.434548) + (xy 98.354872 98.1156) (xy 98.323458 97.796652) (xy 98.230425 97.489962) (xy 98.079346 97.207314) (xy 97.876029 96.959571) + (xy 97.628286 96.756254) (xy 97.616956 96.750198) (xy 97.76945 96.62505) (xy 97.954022 96.400147) (xy 98.091172 96.143558) + (xy 98.175629 95.865143) (xy 98.204146 95.5756) (xy 98.175629 95.286057) (xy 98.091172 95.007642) (xy 97.954022 94.751053) + (xy 97.76945 94.52615) (xy 97.616956 94.401002) (xy 97.628286 94.394946) (xy 97.876029 94.191629) (xy 98.079346 93.943886) + (xy 98.230425 93.661238) (xy 98.323458 93.354548) (xy 98.354872 93.0356) (xy 98.323458 92.716652) (xy 98.230425 92.409962) + (xy 98.079346 92.127314) (xy 97.876029 91.879571) (xy 97.628286 91.676254) (xy 97.621495 91.672624) (xy 97.817588 91.495869) + (xy 97.991641 91.26252) (xy 98.116825 90.999699) (xy 98.161476 90.85249) (xy 98.040155 90.6226) (xy 96.847 90.6226) + (xy 96.847 90.6426) (xy 96.593 90.6426) (xy 96.593 90.6226) (xy 95.399845 90.6226) (xy 95.278524 90.85249) + (xy 95.323175 90.999699) (xy 95.448359 91.26252) (xy 95.557319 91.4086) (xy 88.46187 91.4086) (xy 88.408885 91.386653) + (xy 88.036593 91.3126) (xy 87.657007 91.3126) (xy 87.284715 91.386653) (xy 86.934023 91.531915) (xy 86.618409 91.742801) + (xy 86.350001 92.011209) (xy 86.139115 92.326823) (xy 85.993853 92.677515) (xy 85.9198 93.049807) (xy 85.9198 93.429393) + (xy 85.993853 93.801685) (xy 86.139115 94.152377) (xy 86.350001 94.467991) (xy 86.618409 94.736399) (xy 86.934023 94.947285) + (xy 87.284715 95.092547) (xy 87.657007 95.1666) (xy 88.036593 95.1666) (xy 88.408885 95.092547) (xy 88.759577 94.947285) + (xy 89.075191 94.736399) (xy 89.14899 94.6626) (xy 95.558569 94.6626) (xy 95.485978 94.751053) (xy 95.348828 95.007642) + (xy 95.264371 95.286057) (xy 95.235854 95.5756) (xy 95.264371 95.865143) (xy 95.348828 96.143558) (xy 95.485978 96.400147) + (xy 95.558569 96.4886) (xy 89.125125 96.4886) (xy 89.0452 96.480728) (xy 88.965275 96.4886) (xy 88.726252 96.512142) + (xy 88.419562 96.605175) (xy 88.136914 96.756254) (xy 87.889171 96.959571) (xy 87.83822 97.021655) (xy 87.475908 97.383967) + (xy 86.5468 97.383967) (xy 86.423887 97.396073) (xy 86.305697 97.431925) (xy 86.196772 97.490147) (xy 86.101299 97.568499) + (xy 86.022947 97.663972) (xy 85.964725 97.772897) (xy 85.928873 97.891087) (xy 85.916767 98.014) (xy 81.202 98.014) + (xy 81.202 86.9396) (xy 85.916767 86.9396) (xy 85.916767 89.5396) (xy 85.928873 89.662513) (xy 85.964725 89.780703) + (xy 86.022947 89.889628) (xy 86.101299 89.985101) (xy 86.196772 90.063453) (xy 86.305697 90.121675) (xy 86.423887 90.157527) + (xy 86.5468 90.169633) (xy 89.1468 90.169633) (xy 89.269713 90.157527) (xy 89.387903 90.121675) (xy 89.496828 90.063453) + (xy 89.592301 89.985101) (xy 89.670653 89.889628) (xy 89.728875 89.780703) (xy 89.764727 89.662513) (xy 89.776833 89.5396) + (xy 89.776833 86.9396) (xy 89.764727 86.816687) (xy 89.728875 86.698497) (xy 89.670653 86.589572) (xy 89.592301 86.494099) + (xy 89.496828 86.415747) (xy 89.387903 86.357525) (xy 89.269713 86.321673) (xy 89.1468 86.309567) (xy 86.5468 86.309567) + (xy 86.423887 86.321673) (xy 86.305697 86.357525) (xy 86.196772 86.415747) (xy 86.101299 86.494099) (xy 86.022947 86.589572) + (xy 85.964725 86.698497) (xy 85.928873 86.816687) (xy 85.916767 86.9396) (xy 81.202 86.9396) (xy 81.202 75.3111) + (xy 89.019367 75.3111) (xy 89.019367 76.9111) (xy 89.031473 77.034013) (xy 89.067325 77.152203) (xy 89.125547 77.261128) + (xy 89.203899 77.356601) (xy 89.299372 77.434953) (xy 89.408297 77.493175) (xy 89.526487 77.529027) (xy 89.6494 77.541133) + (xy 91.2494 77.541133) (xy 91.372313 77.529027) (xy 91.490503 77.493175) (xy 91.599428 77.434953) (xy 91.694901 77.356601) + (xy 91.773253 77.261128) (xy 91.831475 77.152203) (xy 91.867327 77.034013) (xy 91.879433 76.9111) (xy 91.879433 76.8881) + (xy 92.760737 76.8881) (xy 92.7989 76.891859) (xy 92.837063 76.8881) (xy 92.837066 76.8881) (xy 92.951219 76.876857) + (xy 93.097684 76.832427) (xy 93.232666 76.760277) (xy 93.35098 76.66318) (xy 93.375313 76.63353) (xy 97.855237 72.153607) + (xy 97.88488 72.12928) (xy 97.944499 72.056634) (xy 97.981977 72.010967) (xy 98.03317 71.915191) (xy 98.054127 71.875984) + (xy 98.098557 71.729519) (xy 98.1098 71.615366) (xy 98.1098 71.615364) (xy 98.113559 71.5772) (xy 98.1098 71.539037) + (xy 98.1098 70.1563) (xy 98.139438 70.305303) (xy 98.247009 70.565) (xy 98.403176 70.798722) (xy 98.60194 70.997486) + (xy 98.835662 71.153653) (xy 99.095359 71.261224) (xy 99.371053 71.316062) (xy 99.652147 71.316062) (xy 99.927841 71.261224) + (xy 100.187538 71.153653) (xy 100.42126 70.997486) (xy 100.620024 70.798722) (xy 100.776191 70.565) (xy 100.883762 70.305303) + (xy 100.8966 70.240761) (xy 100.909438 70.305303) (xy 101.017009 70.565) (xy 101.173176 70.798722) (xy 101.37194 70.997486) + (xy 101.605662 71.153653) (xy 101.865359 71.261224) (xy 102.141053 71.316062) (xy 102.422147 71.316062) (xy 102.697841 71.261224) + (xy 102.957538 71.153653) (xy 103.19126 70.997486) (xy 103.306982 70.881764) (xy 104.238503 70.881764) (xy 104.310086 71.125733) + (xy 104.565596 71.246633) (xy 104.839784 71.315362) (xy 105.122112 71.329279) (xy 105.40173 71.287849) (xy 105.667892 71.192665) + (xy 105.793114 71.125733) (xy 105.864697 70.881764) (xy 105.0516 70.068667) (xy 104.238503 70.881764) (xy 103.306982 70.881764) + (xy 103.390024 70.798722) (xy 103.546191 70.565) (xy 103.653762 70.305303) (xy 103.661873 70.264526) (xy 103.747997 70.505354) + (xy 103.814929 70.630576) (xy 104.058898 70.702159) (xy 104.871995 69.889062) (xy 104.857853 69.87492) (xy 105.037458 69.695315) + (xy 105.0516 69.709457) (xy 105.065743 69.695315) (xy 105.245348 69.87492) (xy 105.231205 69.889062) (xy 106.044302 70.702159) + (xy 106.288271 70.630576) (xy 106.409171 70.375066) (xy 106.439359 70.254633) (xy 106.449438 70.305303) (xy 106.557009 70.565) + (xy 106.713176 70.798722) (xy 106.91194 70.997486) (xy 107.0446 71.086126) (xy 107.044601 71.537963) (xy 106.9454 71.619375) + (xy 106.839876 71.532773) (xy 106.689891 71.452604) (xy 106.527147 71.403236) (xy 106.3579 71.386567) (xy 105.7829 71.386567) + (xy 105.613653 71.403236) (xy 105.450909 71.452604) (xy 105.300924 71.532773) (xy 105.169462 71.640662) (xy 105.108782 71.7146) + (xy 100.595685 71.7146) (xy 100.557529 71.710842) (xy 100.519373 71.7146) (xy 100.519364 71.7146) (xy 100.405211 71.725843) + (xy 100.262702 71.769073) (xy 100.258746 71.770273) (xy 100.123763 71.842423) (xy 100.036557 71.913991) (xy 100.00545 71.93952) + (xy 99.981122 71.969164) (xy 97.546965 74.403322) (xy 97.517321 74.42765) (xy 97.492993 74.457294) (xy 97.492991 74.457296) + (xy 97.420223 74.545964) (xy 97.348073 74.680947) (xy 97.333489 74.729025) (xy 97.306279 74.818727) (xy 97.303644 74.827412) + (xy 97.295853 74.906512) (xy 97.272766 74.918852) (xy 97.055477 75.097177) (xy 96.877152 75.314466) (xy 96.744645 75.562369) + (xy 96.663048 75.831359) (xy 96.635496 76.1111) (xy 96.663048 76.390841) (xy 96.744645 76.659831) (xy 96.877152 76.907734) + (xy 97.055477 77.125023) (xy 97.272766 77.303348) (xy 97.520669 77.435855) (xy 97.789659 77.517452) (xy 97.999302 77.5381) + (xy 98.139498 77.5381) (xy 98.349141 77.517452) (xy 98.618131 77.435855) (xy 98.866034 77.303348) (xy 99.083323 77.125023) + (xy 99.261648 76.907734) (xy 99.394155 76.659831) (xy 99.475752 76.390841) (xy 99.503304 76.1111) (xy 99.475752 75.831359) + (xy 99.394155 75.562369) (xy 99.261648 75.314466) (xy 99.083323 75.097177) (xy 99.065458 75.082515) (xy 99.539773 74.6082) + (xy 101.045728 74.6082) (xy 101.0488 74.84745) (xy 101.20755 75.0062) (xy 102.0318 75.0062) (xy 102.0318 74.13195) + (xy 102.2858 74.13195) (xy 102.2858 75.0062) (xy 103.11005 75.0062) (xy 103.2688 74.84745) (xy 103.271872 74.6082) + (xy 103.259612 74.483718) (xy 103.223302 74.36402) (xy 103.164337 74.253706) (xy 103.084985 74.157015) (xy 102.988294 74.077663) + (xy 102.87798 74.018698) (xy 102.758282 73.982388) (xy 102.6338 73.970128) (xy 102.44455 73.9732) (xy 102.2858 74.13195) + (xy 102.0318 74.13195) (xy 101.87305 73.9732) (xy 101.6838 73.970128) (xy 101.559318 73.982388) (xy 101.43962 74.018698) + (xy 101.329306 74.077663) (xy 101.232615 74.157015) (xy 101.153263 74.253706) (xy 101.094298 74.36402) (xy 101.057988 74.483718) + (xy 101.045728 74.6082) (xy 99.539773 74.6082) (xy 100.879374 73.2686) (xy 105.108782 73.2686) (xy 105.169462 73.342538) + (xy 105.300924 73.450427) (xy 105.450909 73.530596) (xy 105.613653 73.579964) (xy 105.7829 73.596633) (xy 106.3579 73.596633) + (xy 106.527147 73.579964) (xy 106.689891 73.530596) (xy 106.839876 73.450427) (xy 106.9454 73.363825) (xy 107.050924 73.450427) + (xy 107.200909 73.530596) (xy 107.363653 73.579964) (xy 107.5329 73.596633) (xy 108.1079 73.596633) (xy 108.277147 73.579964) + (xy 108.439891 73.530596) (xy 108.589876 73.450427) (xy 108.721338 73.342538) (xy 108.829227 73.211076) (xy 108.909396 73.061091) + (xy 108.958764 72.898347) (xy 108.975433 72.7291) (xy 108.975433 72.2541) (xy 108.958764 72.084853) (xy 108.909396 71.922109) + (xy 108.829227 71.772124) (xy 108.721338 71.640662) (xy 108.5986 71.539933) (xy 108.5986 71.086126) (xy 108.73126 70.997486) + (xy 108.930024 70.798722) (xy 109.086191 70.565) (xy 109.161567 70.383028) (xy 109.161567 70.689062) (xy 109.173673 70.811975) + (xy 109.209525 70.930165) (xy 109.267747 71.03909) (xy 109.346099 71.134563) (xy 109.441572 71.212915) (xy 109.550497 71.271137) + (xy 109.668687 71.306989) (xy 109.7916 71.319095) (xy 111.3916 71.319095) (xy 111.514513 71.306989) (xy 111.632703 71.271137) + (xy 111.741628 71.212915) (xy 111.837101 71.134563) (xy 111.915453 71.03909) (xy 111.973675 70.930165) (xy 112.009527 70.811975) + (xy 112.021633 70.689062) (xy 112.021633 70.149358) (xy 115.067801 73.195526) (xy 115.067801 74.326427) (xy 114.826844 74.350159) + (xy 114.473028 74.457487) (xy 114.146949 74.63178) (xy 113.861139 74.866339) (xy 113.62658 75.152149) (xy 113.452287 75.478228) + (xy 113.344959 75.832044) (xy 113.308718 76.2) (xy 113.344959 76.567956) (xy 113.452287 76.921772) (xy 113.49378 76.9994) + (xy 111.315119 76.9994) (xy 111.258028 76.952547) (xy 111.149103 76.894325) (xy 111.030913 76.858473) (xy 110.908 76.846367) + (xy 109.008 76.846367) (xy 108.885087 76.858473) (xy 108.766897 76.894325) (xy 108.657972 76.952547) (xy 108.562499 77.030899) + (xy 108.538033 77.060711) (xy 108.538033 76.5264) (xy 108.525927 76.403487) (xy 108.490075 76.285297) (xy 108.431853 76.176372) + (xy 108.353501 76.080899) (xy 108.258028 76.002547) (xy 108.149103 75.944325) (xy 108.030913 75.908473) (xy 107.908 75.896367) + (xy 106.008 75.896367) (xy 105.885087 75.908473) (xy 105.766897 75.944325) (xy 105.657972 76.002547) (xy 105.562499 76.080899) + (xy 105.560446 76.0834) (xy 105.493856 76.0834) (xy 105.474121 76.046479) (xy 105.364678 75.913122) (xy 105.231321 75.803679) + (xy 105.079175 75.722355) (xy 104.914087 75.672277) (xy 104.742401 75.655367) (xy 103.842399 75.655367) (xy 103.670713 75.672277) + (xy 103.505625 75.722355) (xy 103.353479 75.803679) (xy 103.220122 75.913122) (xy 103.212775 75.922074) (xy 103.223302 75.90238) + (xy 103.259612 75.782682) (xy 103.271872 75.6582) (xy 103.2688 75.41895) (xy 103.11005 75.2602) (xy 102.2858 75.2602) + (xy 102.2858 75.2802) (xy 102.0318 75.2802) (xy 102.0318 75.2602) (xy 101.20755 75.2602) (xy 101.0488 75.41895) + (xy 101.045728 75.6582) (xy 101.057988 75.782682) (xy 101.094298 75.90238) (xy 101.153263 76.012694) (xy 101.218075 76.091667) + (xy 101.199973 76.113724) (xy 101.119804 76.263709) (xy 101.070436 76.426453) (xy 101.053767 76.5957) (xy 101.053767 76.878793) + (xy 100.909456 76.819017) (xy 100.643423 76.7661) (xy 100.372177 76.7661) (xy 100.106144 76.819017) (xy 99.855546 76.922818) + (xy 99.630013 77.073514) (xy 99.438214 77.265313) (xy 99.287518 77.490846) (xy 99.183717 77.741444) (xy 99.1308 78.007477) + (xy 99.1308 78.278723) (xy 99.183717 78.544756) (xy 99.287518 78.795354) (xy 99.438214 79.020887) (xy 99.630013 79.212686) + (xy 99.6308 79.213212) (xy 99.630801 85.758934) (xy 99.027295 86.36244) (xy 98.993348 86.352142) (xy 98.754325 86.3286) + (xy 98.754314 86.3286) (xy 98.6744 86.320729) (xy 98.594486 86.3286) (xy 96.640075 86.3286) (xy 96.401052 86.352142) + (xy 96.094362 86.445175) (xy 95.811714 86.596254) (xy 95.563971 86.799571) (xy 95.360654 87.047314) (xy 95.209575 87.329962) + (xy 95.116542 87.636652) (xy 95.085128 87.9556) (xy 95.116542 88.274548) (xy 95.209575 88.581238) (xy 95.360654 88.863886) + (xy 95.563971 89.111629) (xy 95.811714 89.314946) (xy 95.818505 89.318576) (xy 95.622412 89.495331) (xy 95.448359 89.72868) + (xy 95.323175 89.991501) (xy 95.278524 90.13871) (xy 95.399845 90.3686) (xy 96.593 90.3686) (xy 96.593 90.3486) + (xy 96.847 90.3486) (xy 96.847 90.3686) (xy 98.040155 90.3686) (xy 98.161476 90.13871) (xy 98.116825 89.991501) + (xy 97.991641 89.72868) (xy 97.882681 89.5826) (xy 98.000475 89.5826) (xy 99.872912 91.455038) (xy 99.877273 91.499313) + (xy 99.913125 91.617503) (xy 99.971347 91.726428) (xy 100.049699 91.821901) (xy 100.145172 91.900253) (xy 100.254097 91.958475) + (xy 100.372287 91.994327) (xy 100.4952 92.006433) (xy 100.51916 92.006433) (xy 100.669561 92.086824) (xy 100.976252 92.179858) + (xy 101.2952 92.211271) (xy 101.614147 92.179858) (xy 101.920838 92.086824) (xy 102.071239 92.006433) (xy 102.0952 92.006433) + (xy 102.218113 91.994327) (xy 102.336303 91.958475) (xy 102.445228 91.900253) (xy 102.540701 91.821901) (xy 102.619053 91.726428) + (xy 102.677275 91.617503) (xy 102.691957 91.569102) (xy 103.982103 91.569102) (xy 104.053686 91.813071) (xy 104.309196 91.933971) + (xy 104.583384 92.0027) (xy 104.865712 92.016617) (xy 105.14533 91.975187) (xy 105.411492 91.880003) (xy 105.536714 91.813071) + (xy 105.608297 91.569102) (xy 104.7952 90.756005) (xy 103.982103 91.569102) (xy 102.691957 91.569102) (xy 102.713127 91.499313) + (xy 102.725233 91.3764) (xy 102.725233 91.352439) (xy 102.805624 91.202038) (xy 102.898658 90.895347) (xy 102.923126 90.646912) + (xy 103.354983 90.646912) (xy 103.396413 90.92653) (xy 103.491597 91.192692) (xy 103.558529 91.317914) (xy 103.802498 91.389497) + (xy 104.615595 90.5764) (xy 104.974805 90.5764) (xy 105.787902 91.389497) (xy 106.031871 91.317914) (xy 106.152771 91.062404) + (xy 106.2215 90.788216) (xy 106.235417 90.505888) (xy 106.233893 90.4956) (xy 107.735854 90.4956) (xy 107.764371 90.785143) + (xy 107.848828 91.063558) (xy 107.985978 91.320147) (xy 108.17055 91.54505) (xy 108.395453 91.729622) (xy 108.462763 91.7656) + (xy 108.395453 91.801578) (xy 108.17055 91.98615) (xy 107.985978 92.211053) (xy 107.848828 92.467642) (xy 107.764371 92.746057) + (xy 107.735854 93.0356) (xy 107.764371 93.325143) (xy 107.848828 93.603558) (xy 107.985978 93.860147) (xy 108.17055 94.08505) + (xy 108.395453 94.269622) (xy 108.462763 94.3056) (xy 108.395453 94.341578) (xy 108.17055 94.52615) (xy 107.985978 94.751053) + (xy 107.848828 95.007642) (xy 107.764371 95.286057) (xy 107.735854 95.5756) (xy 107.764371 95.865143) (xy 107.848828 96.143558) + (xy 107.985978 96.400147) (xy 108.17055 96.62505) (xy 108.395453 96.809622) (xy 108.462763 96.8456) (xy 108.395453 96.881578) + (xy 108.17055 97.06615) (xy 107.985978 97.291053) (xy 107.848828 97.547642) (xy 107.764371 97.826057) (xy 107.735854 98.1156) + (xy 107.764371 98.405143) (xy 107.848828 98.683558) (xy 107.985978 98.940147) (xy 108.17055 99.16505) (xy 108.395453 99.349622) + (xy 108.462763 99.3856) (xy 108.395453 99.421578) (xy 108.17055 99.60615) (xy 107.985978 99.831053) (xy 107.848828 100.087642) + (xy 107.764371 100.366057) (xy 107.735854 100.6556) (xy 107.764371 100.945143) (xy 107.848828 101.223558) (xy 107.985978 101.480147) + (xy 108.17055 101.70505) (xy 108.395453 101.889622) (xy 108.462763 101.9256) (xy 108.395453 101.961578) (xy 108.17055 102.14615) + (xy 107.985978 102.371053) (xy 107.848828 102.627642) (xy 107.764371 102.906057) (xy 107.735854 103.1956) (xy 107.764371 103.485143) + (xy 107.848828 103.763558) (xy 107.985978 104.020147) (xy 108.17055 104.24505) (xy 108.395453 104.429622) (xy 108.462763 104.4656) + (xy 108.395453 104.501578) (xy 108.17055 104.68615) (xy 107.985978 104.911053) (xy 107.848828 105.167642) (xy 107.764371 105.446057) + (xy 107.735854 105.7356) (xy 107.764371 106.025143) (xy 107.848828 106.303558) (xy 107.985978 106.560147) (xy 108.17055 106.78505) + (xy 108.395453 106.969622) (xy 108.652042 107.106772) (xy 108.930457 107.191229) (xy 109.147444 107.2126) (xy 109.292556 107.2126) + (xy 109.509543 107.191229) (xy 109.787958 107.106772) (xy 110.044547 106.969622) (xy 110.26945 106.78505) (xy 110.454022 106.560147) + (xy 110.480503 106.510605) (xy 110.5744 106.501357) (xy 110.720865 106.456927) (xy 110.855847 106.384777) (xy 110.974161 106.28768) + (xy 110.998494 106.25803) (xy 111.31193 105.944594) (xy 111.34158 105.920261) (xy 111.438677 105.801947) (xy 111.510827 105.666965) + (xy 111.555257 105.5205) (xy 111.5665 105.406347) (xy 111.5665 105.406345) (xy 111.570259 105.368181) (xy 111.5665 105.330018) + (xy 111.5665 103.398343) (xy 113.153436 101.811408) (xy 113.18308 101.78708) (xy 113.208658 101.755913) (xy 113.280177 101.668767) + (xy 113.352327 101.533784) (xy 113.36149 101.503577) (xy 113.396757 101.387319) (xy 113.408 101.273166) (xy 113.408 101.273157) + (xy 113.411758 101.235001) (xy 113.408 101.196845) (xy 113.408 100.032843) (xy 113.555343 99.8855) (xy 113.6945 99.8855) + (xy 113.912234 99.84219) (xy 114.117335 99.757234) (xy 114.301921 99.633898) (xy 114.458898 99.476921) (xy 114.582234 99.292335) + (xy 114.66719 99.087234) (xy 114.7105 98.8695) (xy 114.7105 98.6475) (xy 114.66719 98.429766) (xy 114.582234 98.224665) + (xy 114.458898 98.040079) (xy 114.301921 97.883102) (xy 114.117335 97.759766) (xy 113.912234 97.67481) (xy 113.6945 97.6315) + (xy 113.4725 97.6315) (xy 113.254766 97.67481) (xy 113.049665 97.759766) (xy 112.865079 97.883102) (xy 112.85325 97.894931) + (xy 112.841421 97.883102) (xy 112.656835 97.759766) (xy 112.546533 97.714077) (xy 112.714421 97.601898) (xy 112.871398 97.444921) + (xy 112.994734 97.260335) (xy 113.07969 97.055234) (xy 113.123 96.8375) (xy 113.123 96.6155) (xy 113.07969 96.397766) + (xy 112.994734 96.192665) (xy 112.871398 96.008079) (xy 112.714421 95.851102) (xy 112.529835 95.727766) (xy 112.324734 95.64281) + (xy 112.107 95.5995) (xy 111.885 95.5995) (xy 111.667266 95.64281) (xy 111.462165 95.727766) (xy 111.277579 95.851102) + (xy 111.179181 95.9495) (xy 110.650039 95.9495) (xy 110.675629 95.865143) (xy 110.704146 95.5756) (xy 110.675629 95.286057) + (xy 110.591172 95.007642) (xy 110.454022 94.751053) (xy 110.26945 94.52615) (xy 110.044547 94.341578) (xy 109.977237 94.3056) + (xy 110.044547 94.269622) (xy 110.26945 94.08505) (xy 110.454022 93.860147) (xy 110.479436 93.8126) (xy 111.869781 93.8126) + (xy 111.960079 93.902898) (xy 112.144665 94.026234) (xy 112.349766 94.11119) (xy 112.5675 94.1545) (xy 112.7895 94.1545) + (xy 113.007234 94.11119) (xy 113.212335 94.026234) (xy 113.396921 93.902898) (xy 113.553898 93.745921) (xy 113.573196 93.717039) + (xy 120.089887 100.233731) (xy 120.114215 100.263375) (xy 120.143859 100.287703) (xy 120.14386 100.287704) (xy 120.232528 100.360472) + (xy 120.30002 100.396547) (xy 120.367511 100.432622) (xy 120.513976 100.477052) (xy 120.628129 100.488295) (xy 120.628131 100.488295) + (xy 120.666295 100.492054) (xy 120.704458 100.488295) (xy 123.901362 100.488295) (xy 123.556565 100.833092) (xy 123.526921 100.85742) + (xy 123.502593 100.887064) (xy 123.502591 100.887066) (xy 123.429823 100.975734) (xy 123.357673 101.110717) (xy 123.332663 101.193165) + (xy 123.317233 101.244033) (xy 123.313244 101.257182) (xy 123.298241 101.4095) (xy 123.302001 101.447673) (xy 123.302001 101.966) + (xy 122.720155 101.966) (xy 122.681999 101.962242) (xy 122.643843 101.966) (xy 122.643834 101.966) (xy 122.529681 101.977243) + (xy 122.405392 102.014946) (xy 122.383216 102.021673) (xy 122.248233 102.093823) (xy 122.180611 102.149319) (xy 122.12992 102.19092) + (xy 122.105592 102.220564) (xy 120.000565 104.325592) (xy 119.970921 104.34992) (xy 119.946593 104.379564) (xy 119.946591 104.379566) + (xy 119.873823 104.468234) (xy 119.801673 104.603217) (xy 119.776511 104.686166) (xy 119.759676 104.741666) (xy 119.757244 104.749682) + (xy 119.742241 104.902) (xy 119.746001 104.940173) (xy 119.746001 105.287882) (xy 119.672062 105.348562) (xy 119.564173 105.480024) + (xy 119.484004 105.630009) (xy 119.434636 105.792753) (xy 119.417967 105.962) (xy 119.417967 106.537) (xy 119.434636 106.706247) + (xy 119.484004 106.868991) (xy 119.564173 107.018976) (xy 119.650775 107.1245) (xy 119.564173 107.230024) (xy 119.484004 107.380009) + (xy 119.434636 107.542753) (xy 119.417967 107.712) (xy 119.417967 108.287) (xy 119.434636 108.456247) (xy 119.484004 108.618991) + (xy 119.564173 108.768976) (xy 119.672062 108.900438) (xy 119.746 108.961118) (xy 119.746 109.569967) (xy 119.223 109.569967) + (xy 119.100087 109.582073) (xy 118.981897 109.617925) (xy 118.872972 109.676147) (xy 118.777499 109.754499) (xy 118.699147 109.849972) + (xy 118.640925 109.958897) (xy 118.605073 110.077087) (xy 118.592967 110.2) (xy 118.592967 112.8) (xy 118.605073 112.922913) + (xy 118.640925 113.041103) (xy 118.699147 113.150028) (xy 118.777499 113.245501) (xy 118.872972 113.323853) (xy 118.981897 113.382075) + (xy 119.100087 113.417927) (xy 119.223 113.430033) (xy 121.823 113.430033) (xy 121.945913 113.417927) (xy 122.064103 113.382075) + (xy 122.173028 113.323853) (xy 122.268501 113.245501) (xy 122.346853 113.150028) (xy 122.405075 113.041103) (xy 122.440927 112.922913) + (xy 122.453033 112.8) (xy 122.453033 110.2) (xy 122.440927 110.077087) (xy 122.405075 109.958897) (xy 122.346853 109.849972) + (xy 122.268501 109.754499) (xy 122.173028 109.676147) (xy 122.064103 109.617925) (xy 121.945913 109.582073) (xy 121.823 109.569967) + (xy 121.3 109.569967) (xy 121.3 108.961118) (xy 121.373938 108.900438) (xy 121.481827 108.768976) (xy 121.561996 108.618991) + (xy 121.611364 108.456247) (xy 121.628033 108.287) (xy 121.628033 107.712) (xy 121.611364 107.542753) (xy 121.561996 107.380009) + (xy 121.481827 107.230024) (xy 121.395225 107.1245) (xy 121.481827 107.018976) (xy 121.561996 106.868991) (xy 121.611364 106.706247) + (xy 121.628033 106.537) (xy 121.628033 105.962) (xy 121.611364 105.792753) (xy 121.561996 105.630009) (xy 121.481827 105.480024) + (xy 121.373938 105.348562) (xy 121.3 105.287882) (xy 121.3 105.223843) (xy 123.003844 103.52) (xy 124.040834 103.52) + (xy 124.079 103.523759) (xy 124.117166 103.52) (xy 125.6855 103.52) (xy 125.6855 103.520002) (xy 125.782199 103.520002) + (xy 125.772957 103.537293) (xy 125.6855 103.62475) (xy 125.69189 103.683432) (xy 125.596234 103.64381) (xy 125.3785 103.6005) + (xy 125.1565 103.6005) (xy 124.938766 103.64381) (xy 124.733665 103.728766) (xy 124.549079 103.852102) (xy 124.392102 104.009079) + (xy 124.268766 104.193665) (xy 124.18381 104.398766) (xy 124.1405 104.6165) (xy 124.1405 104.8385) (xy 124.18381 105.056234) + (xy 124.268766 105.261335) (xy 124.392102 105.445921) (xy 124.526868 105.580687) (xy 124.500504 105.630009) (xy 124.451136 105.792753) + (xy 124.434467 105.962) (xy 124.434467 106.537) (xy 124.451136 106.706247) (xy 124.500504 106.868991) (xy 124.580673 107.018976) + (xy 124.667275 107.1245) (xy 124.580673 107.230024) (xy 124.500504 107.380009) (xy 124.451136 107.542753) (xy 124.434467 107.712) + (xy 124.434467 108.287) (xy 124.451136 108.456247) (xy 124.500504 108.618991) (xy 124.580673 108.768976) (xy 124.688562 108.900438) + (xy 124.7625 108.961118) (xy 124.762501 109.729239) (xy 124.610223 109.792315) (xy 124.294609 110.003201) (xy 124.026201 110.271609) + (xy 123.815315 110.587223) (xy 123.670053 110.937915) (xy 123.596 111.310207) (xy 123.596 111.689793) (xy 123.670053 112.062085) + (xy 123.815315 112.412777) (xy 124.026201 112.728391) (xy 124.294609 112.996799) (xy 124.610223 113.207685) (xy 124.960915 113.352947) + (xy 125.333207 113.427) (xy 125.712793 113.427) (xy 126.085085 113.352947) (xy 126.435777 113.207685) (xy 126.751391 112.996799) + (xy 127.019799 112.728391) (xy 127.230685 112.412777) (xy 127.375947 112.062085) (xy 127.45 111.689793) (xy 127.45 111.310207) + (xy 127.375947 110.937915) (xy 127.230685 110.587223) (xy 127.019799 110.271609) (xy 126.751391 110.003201) (xy 126.435777 109.792315) + (xy 126.3165 109.742909) (xy 126.3165 108.961118) (xy 126.390438 108.900438) (xy 126.498327 108.768976) (xy 126.578496 108.618991) + (xy 126.627864 108.456247) (xy 126.644533 108.287) (xy 126.644533 107.712) (xy 126.627864 107.542753) (xy 126.578496 107.380009) + (xy 126.498327 107.230024) (xy 126.411725 107.1245) (xy 126.498327 107.018976) (xy 126.578496 106.868991) (xy 126.627864 106.706247) + (xy 126.644533 106.537) (xy 126.644533 105.962) (xy 126.627864 105.792753) (xy 126.578496 105.630009) (xy 126.498327 105.480024) + (xy 126.390438 105.348562) (xy 126.348335 105.314008) (xy 126.789311 104.873033) (xy 127.8205 104.873033) (xy 127.943413 104.860927) + (xy 128.061603 104.825075) (xy 128.170528 104.766853) (xy 128.266001 104.688501) (xy 128.344353 104.593028) (xy 128.4005 104.487985) + (xy 128.456647 104.593028) (xy 128.534999 104.688501) (xy 128.630472 104.766853) (xy 128.739397 104.825075) (xy 128.857587 104.860927) + (xy 128.9805 104.873033) (xy 130.4805 104.873033) (xy 130.603413 104.860927) (xy 130.715564 104.826907) (xy 130.858501 104.969844) + (xy 130.858501 105.287882) (xy 130.784562 105.348562) (xy 130.676673 105.480024) (xy 130.596504 105.630009) (xy 130.547136 105.792753) + (xy 130.530467 105.962) (xy 130.530467 106.537) (xy 130.547136 106.706247) (xy 130.596504 106.868991) (xy 130.676673 107.018976) + (xy 130.763275 107.1245) (xy 130.676673 107.230024) (xy 130.596504 107.380009) (xy 130.547136 107.542753) (xy 130.530467 107.712) + (xy 130.530467 108.287) (xy 130.547136 108.456247) (xy 130.596504 108.618991) (xy 130.676673 108.768976) (xy 130.784562 108.900438) + (xy 130.8585 108.961118) (xy 130.8585 109.569967) (xy 130.3355 109.569967) (xy 130.212587 109.582073) (xy 130.094397 109.617925) + (xy 129.985472 109.676147) (xy 129.889999 109.754499) (xy 129.811647 109.849972) (xy 129.753425 109.958897) (xy 129.717573 110.077087) + (xy 129.705467 110.2) (xy 129.705467 112.8) (xy 129.717573 112.922913) (xy 129.753425 113.041103) (xy 129.811647 113.150028) + (xy 129.889999 113.245501) (xy 129.985472 113.323853) (xy 130.094397 113.382075) (xy 130.212587 113.417927) (xy 130.3355 113.430033) + (xy 132.9355 113.430033) (xy 133.058413 113.417927) (xy 133.176603 113.382075) (xy 133.285528 113.323853) (xy 133.381001 113.245501) + (xy 133.459353 113.150028) (xy 133.517575 113.041103) (xy 133.553427 112.922913) (xy 133.565533 112.8) (xy 133.565533 110.2) + (xy 133.553427 110.077087) (xy 133.517575 109.958897) (xy 133.459353 109.849972) (xy 133.381001 109.754499) (xy 133.285528 109.676147) + (xy 133.176603 109.617925) (xy 133.058413 109.582073) (xy 132.9355 109.569967) (xy 132.4125 109.569967) (xy 132.4125 108.961118) + (xy 132.486438 108.900438) (xy 132.594327 108.768976) (xy 132.674496 108.618991) (xy 132.723864 108.456247) (xy 132.740533 108.287) + (xy 132.740533 107.712) (xy 132.723864 107.542753) (xy 132.674496 107.380009) (xy 132.594327 107.230024) (xy 132.507725 107.1245) + (xy 132.594327 107.018976) (xy 132.674496 106.868991) (xy 132.723864 106.706247) (xy 132.740533 106.537) (xy 132.740533 105.962) + (xy 132.723864 105.792753) (xy 132.674496 105.630009) (xy 132.594327 105.480024) (xy 132.486438 105.348562) (xy 132.4125 105.287882) + (xy 132.4125 104.72) (xy 132.5085 104.72) (xy 132.726234 104.67669) (xy 132.931335 104.591734) (xy 133.115921 104.468398) + (xy 133.272898 104.311421) (xy 133.396234 104.126835) (xy 133.48119 103.921734) (xy 133.5245 103.704) (xy 133.5245 103.659343) + (xy 135.536857 105.671701) (xy 135.500136 105.792753) (xy 135.483467 105.962) (xy 135.483467 106.537) (xy 135.500136 106.706247) + (xy 135.549504 106.868991) (xy 135.629673 107.018976) (xy 135.716275 107.1245) (xy 135.629673 107.230024) (xy 135.549504 107.380009) + (xy 135.500136 107.542753) (xy 135.483467 107.712) (xy 135.483467 108.287) (xy 135.500136 108.456247) (xy 135.549504 108.618991) + (xy 135.629673 108.768976) (xy 135.737562 108.900438) (xy 135.8115 108.961118) (xy 135.811501 109.755542) (xy 135.722723 109.792315) + (xy 135.407109 110.003201) (xy 135.138701 110.271609) (xy 134.927815 110.587223) (xy 134.782553 110.937915) (xy 134.7085 111.310207) + (xy 134.7085 111.689793) (xy 134.782553 112.062085) (xy 134.927815 112.412777) (xy 135.138701 112.728391) (xy 135.407109 112.996799) + (xy 135.722723 113.207685) (xy 136.073415 113.352947) (xy 136.445707 113.427) (xy 136.825293 113.427) (xy 137.197585 113.352947) + (xy 137.548277 113.207685) (xy 137.863891 112.996799) (xy 138.132299 112.728391) (xy 138.343185 112.412777) (xy 138.488447 112.062085) + (xy 138.560867 111.698) (xy 144.052528 111.698) (xy 144.0556 112.28725) (xy 144.21435 112.446) (xy 144.8636 112.446) + (xy 144.8636 111.22175) (xy 145.1176 111.22175) (xy 145.1176 112.446) (xy 145.1376 112.446) (xy 145.1376 112.7) + (xy 145.1176 112.7) (xy 145.1176 113.92425) (xy 145.27635 114.083) (xy 145.2906 114.086072) (xy 145.415082 114.073812) + (xy 145.483601 114.053027) (xy 145.483601 114.912827) (xy 145.479841 114.951) (xy 145.494844 115.103318) (xy 145.539273 115.249783) + (xy 145.611423 115.384766) (xy 145.684191 115.473434) (xy 145.708521 115.50308) (xy 145.738165 115.527408) (xy 146.369992 116.159236) + (xy 146.39432 116.18888) (xy 146.423964 116.213208) (xy 146.423965 116.213209) (xy 146.512634 116.285978) (xy 146.600599 116.332995) + (xy 146.647616 116.358127) (xy 146.794081 116.402557) (xy 146.908234 116.4138) (xy 146.908236 116.4138) (xy 146.9464 116.417559) + (xy 146.984563 116.4138) (xy 159.455837 116.4138) (xy 159.494 116.417559) (xy 159.532163 116.4138) (xy 159.532166 116.4138) + (xy 159.646319 116.402557) (xy 159.792784 116.358127) (xy 159.927766 116.285977) (xy 160.04608 116.18888) (xy 160.070412 116.159231) + (xy 162.022437 114.207207) (xy 162.05208 114.18288) (xy 162.099117 114.125565) (xy 162.149177 114.064567) (xy 162.221327 113.929584) + (xy 162.222945 113.92425) (xy 162.265757 113.783119) (xy 162.277 113.668966) (xy 162.277 113.668957) (xy 162.280758 113.630801) + (xy 162.277 113.592645) (xy 162.277 113.263926) (xy 162.412777 113.207685) (xy 162.728391 112.996799) (xy 162.94453 112.78066) + (xy 167.773 112.78066) (xy 167.773 113.21934) (xy 167.858582 113.649592) (xy 168.026458 114.05488) (xy 168.270176 114.41963) + (xy 168.58037 114.729824) (xy 168.94512 114.973542) (xy 169.350408 115.141418) (xy 169.78066 115.227) (xy 170.21934 115.227) + (xy 170.649592 115.141418) (xy 171.05488 114.973542) (xy 171.41963 114.729824) (xy 171.729824 114.41963) (xy 171.973542 114.05488) + (xy 172.141418 113.649592) (xy 172.227 113.21934) (xy 172.227 112.78066) (xy 172.141418 112.350408) (xy 171.973542 111.94512) + (xy 171.729824 111.58037) (xy 171.41963 111.270176) (xy 171.05488 111.026458) (xy 170.649592 110.858582) (xy 170.21934 110.773) + (xy 169.78066 110.773) (xy 169.350408 110.858582) (xy 168.94512 111.026458) (xy 168.58037 111.270176) (xy 168.270176 111.58037) + (xy 168.026458 111.94512) (xy 167.858582 112.350408) (xy 167.773 112.78066) (xy 162.94453 112.78066) (xy 162.996799 112.728391) + (xy 163.207685 112.412777) (xy 163.352947 112.062085) (xy 163.427 111.689793) (xy 163.427 111.310207) (xy 163.352947 110.937915) + (xy 163.207685 110.587223) (xy 162.996799 110.271609) (xy 162.728391 110.003201) (xy 162.412777 109.792315) (xy 162.062085 109.647053) + (xy 161.689793 109.573) (xy 161.310207 109.573) (xy 160.937915 109.647053) (xy 160.587223 109.792315) (xy 160.271609 110.003201) + (xy 160.003201 110.271609) (xy 159.792315 110.587223) (xy 159.647053 110.937915) (xy 159.573 111.310207) (xy 159.573 111.689793) + (xy 159.647053 112.062085) (xy 159.792315 112.412777) (xy 160.003201 112.728391) (xy 160.271609 112.996799) (xy 160.587223 113.207685) + (xy 160.723 113.263926) (xy 160.723 113.308956) (xy 159.172157 114.8598) (xy 155.839043 114.8598) (xy 157.022436 113.676408) + (xy 157.05208 113.65208) (xy 157.117404 113.572482) (xy 157.149177 113.533767) (xy 157.204624 113.430033) (xy 157.8 113.430033) + (xy 157.922913 113.417927) (xy 158.041103 113.382075) (xy 158.150028 113.323853) (xy 158.245501 113.245501) (xy 158.323853 113.150028) + (xy 158.382075 113.041103) (xy 158.417927 112.922913) (xy 158.430033 112.8) (xy 158.430033 110.2) (xy 158.417927 110.077087) + (xy 158.382075 109.958897) (xy 158.323853 109.849972) (xy 158.245501 109.754499) (xy 158.150028 109.676147) (xy 158.041103 109.617925) + (xy 157.922913 109.582073) (xy 157.8 109.569967) (xy 155.2 109.569967) (xy 155.077087 109.582073) (xy 154.958897 109.617925) + (xy 154.849972 109.676147) (xy 154.754499 109.754499) (xy 154.676147 109.849972) (xy 154.617925 109.958897) (xy 154.582073 110.077087) + (xy 154.569967 110.2) (xy 154.569967 112.8) (xy 154.582073 112.922913) (xy 154.617925 113.041103) (xy 154.676147 113.150028) + (xy 154.754499 113.245501) (xy 154.849972 113.323853) (xy 154.958897 113.382075) (xy 155.077087 113.417927) (xy 155.082679 113.418478) + (xy 154.504957 113.9962) (xy 149.29112 113.9962) (xy 149.383963 113.946574) (xy 149.502167 113.849567) (xy 149.599174 113.731363) + (xy 149.671257 113.596506) (xy 149.715645 113.450177) (xy 149.730633 113.298) (xy 149.730633 113.143173) (xy 149.75268 113.12508) + (xy 149.777013 113.09543) (xy 154.103009 108.769435) (xy 154.103013 108.76943) (xy 154.649636 108.222808) (xy 154.67928 108.19848) + (xy 154.703609 108.168835) (xy 154.776378 108.080166) (xy 154.832547 107.97508) (xy 154.848527 107.945184) (xy 154.892957 107.798719) + (xy 154.9042 107.684566) (xy 154.9042 107.684564) (xy 154.907959 107.6464) (xy 154.9042 107.608237) (xy 154.9042 101.029209) + (xy 168.650197 101.029209) (xy 168.836273 101.370366) (xy 169.253609 101.586113) (xy 169.705015 101.716296) (xy 170.173146 101.755913) + (xy 170.640011 101.703442) (xy 171.087668 101.560897) (xy 171.444127 101.370366) (xy 171.630203 101.029209) (xy 170.1402 99.539205) + (xy 168.650197 101.029209) (xy 154.9042 101.029209) (xy 154.9042 99.625633) (xy 154.9772 99.625633) (xy 155.100113 99.613527) + (xy 155.218303 99.577675) (xy 155.327228 99.519453) (xy 155.422701 99.441101) (xy 155.501053 99.345628) (xy 155.559275 99.236703) + (xy 155.595127 99.118513) (xy 155.607233 98.9956) (xy 155.607233 97.2956) (xy 155.595127 97.172687) (xy 155.559275 97.054497) + (xy 155.501053 96.945572) (xy 155.422701 96.850099) (xy 155.327228 96.771747) (xy 155.218303 96.713525) (xy 155.100113 96.677673) + (xy 154.9772 96.665567) (xy 153.2772 96.665567) (xy 153.154287 96.677673) (xy 153.036097 96.713525) (xy 152.927172 96.771747) + (xy 152.831699 96.850099) (xy 152.753347 96.945572) (xy 152.695125 97.054497) (xy 152.659273 97.172687) (xy 152.647167 97.2956) + (xy 152.647167 98.9956) (xy 152.659273 99.118513) (xy 152.695125 99.236703) (xy 152.753347 99.345628) (xy 152.831699 99.441101) + (xy 152.927172 99.519453) (xy 153.036097 99.577675) (xy 153.154287 99.613527) (xy 153.2772 99.625633) (xy 153.3502 99.625633) + (xy 153.350201 107.324555) (xy 153.00417 107.670587) (xy 153.004165 107.670591) (xy 149.434146 111.24061) (xy 149.383963 111.199426) + (xy 149.249106 111.127343) (xy 149.102777 111.082955) (xy 148.9506 111.067967) (xy 148.6506 111.067967) (xy 148.498423 111.082955) + (xy 148.352094 111.127343) (xy 148.217237 111.199426) (xy 148.1656 111.241803) (xy 148.113963 111.199426) (xy 147.979106 111.127343) + (xy 147.832777 111.082955) (xy 147.6806 111.067967) (xy 147.3806 111.067967) (xy 147.228423 111.082955) (xy 147.082094 111.127343) + (xy 146.947237 111.199426) (xy 146.8956 111.241803) (xy 146.843963 111.199426) (xy 146.709106 111.127343) (xy 146.562777 111.082955) + (xy 146.4106 111.067967) (xy 146.1106 111.067967) (xy 145.958423 111.082955) (xy 145.812094 111.127343) (xy 145.681357 111.197224) + (xy 145.645094 111.167463) (xy 145.53478 111.108498) (xy 145.415082 111.072188) (xy 145.2906 111.059928) (xy 145.27635 111.063) + (xy 145.1176 111.22175) (xy 144.8636 111.22175) (xy 144.70485 111.063) (xy 144.6906 111.059928) (xy 144.566118 111.072188) + (xy 144.44642 111.108498) (xy 144.336106 111.167463) (xy 144.239415 111.246815) (xy 144.160063 111.343506) (xy 144.101098 111.45382) + (xy 144.064788 111.573518) (xy 144.052528 111.698) (xy 138.560867 111.698) (xy 138.5625 111.689793) (xy 138.5625 111.310207) + (xy 138.488447 110.937915) (xy 138.343185 110.587223) (xy 138.132299 110.271609) (xy 137.863891 110.003201) (xy 137.548277 109.792315) + (xy 137.3655 109.716606) (xy 137.3655 108.961118) (xy 137.439438 108.900438) (xy 137.547327 108.768976) (xy 137.627496 108.618991) + (xy 137.676864 108.456247) (xy 137.693533 108.287) (xy 137.693533 107.712) (xy 137.676864 107.542753) (xy 137.627496 107.380009) + (xy 137.547327 107.230024) (xy 137.460725 107.1245) (xy 137.547327 107.018976) (xy 137.627496 106.868991) (xy 137.676864 106.706247) + (xy 137.693533 106.537) (xy 137.693533 105.962) (xy 137.676864 105.792753) (xy 137.627496 105.630009) (xy 137.547327 105.480024) + (xy 137.439438 105.348562) (xy 137.307976 105.240673) (xy 137.246929 105.208043) (xy 137.237677 105.190733) (xy 137.164909 105.102065) + (xy 137.164908 105.102064) (xy 137.14058 105.07242) (xy 137.110937 105.048093) (xy 134.805843 102.743) (xy 135.122437 102.426407) + (xy 135.15208 102.40208) (xy 135.192621 102.352681) (xy 135.249177 102.283766) (xy 135.262594 102.258665) (xy 135.321327 102.148784) + (xy 135.365757 102.002319) (xy 135.377 101.888166) (xy 135.377 101.888164) (xy 135.380759 101.85) (xy 135.377 101.811837) + (xy 135.377 99.5062) (xy 136.808928 99.5062) (xy 136.821188 99.630682) (xy 136.857498 99.75038) (xy 136.916463 99.860694) + (xy 136.995815 99.957385) (xy 137.092506 100.036737) (xy 137.20282 100.095702) (xy 137.322518 100.132012) (xy 137.447 100.144272) + (xy 137.63625 100.1412) (xy 137.795 99.98245) (xy 137.795 99.1082) (xy 138.049 99.1082) (xy 138.049 99.98245) + (xy 138.20775 100.1412) (xy 138.397 100.144272) (xy 138.521482 100.132012) (xy 138.64118 100.095702) (xy 138.751494 100.036737) + (xy 138.848185 99.957385) (xy 138.927537 99.860694) (xy 138.986502 99.75038) (xy 139.022812 99.630682) (xy 139.035072 99.5062) + (xy 139.032 99.26695) (xy 138.87325 99.1082) (xy 138.049 99.1082) (xy 137.795 99.1082) (xy 136.97075 99.1082) + (xy 136.812 99.26695) (xy 136.808928 99.5062) (xy 135.377 99.5062) (xy 135.377 98.406834) (xy 135.365757 98.292681) + (xy 135.327 98.164917) (xy 135.327 97.854054) (xy 135.41825 97.864) (xy 135.513721 97.768529) (xy 135.566695 97.740214) + (xy 135.6 97.712881) (xy 135.633305 97.740214) (xy 135.686279 97.768529) (xy 135.78175 97.864) (xy 135.883883 97.852868) + (xy 135.90237 97.846955) (xy 136.025 97.859033) (xy 136.175 97.859033) (xy 136.312545 97.845486) (xy 136.444804 97.805366) + (xy 136.566695 97.740214) (xy 136.673534 97.652534) (xy 136.761214 97.545695) (xy 136.816967 97.441388) (xy 136.816967 97.5187) + (xy 136.833636 97.687947) (xy 136.883004 97.850691) (xy 136.963173 98.000676) (xy 136.981275 98.022733) (xy 136.916463 98.101706) + (xy 136.857498 98.21202) (xy 136.821188 98.331718) (xy 136.808928 98.4562) (xy 136.812 98.69545) (xy 136.97075 98.8542) + (xy 137.795 98.8542) (xy 137.795 98.8342) (xy 138.049 98.8342) (xy 138.049 98.8542) (xy 138.87325 98.8542) + (xy 139.032 98.69545) (xy 139.035072 98.4562) (xy 139.022812 98.331718) (xy 138.986502 98.21202) (xy 138.927537 98.101706) + (xy 138.862725 98.022733) (xy 138.880827 98.000676) (xy 138.911308 97.943651) (xy 139.2225 98.254844) (xy 139.222501 99.482327) + (xy 139.218741 99.5205) (xy 139.230517 99.640053) (xy 139.233744 99.672819) (xy 139.241026 99.696823) (xy 139.278173 99.819283) + (xy 139.350323 99.954266) (xy 139.423091 100.042934) (xy 139.447421 100.07258) (xy 139.477065 100.096908) (xy 140.048 100.667844) + (xy 140.048001 101.958827) (xy 140.044241 101.997) (xy 140.055492 102.111229) (xy 140.059244 102.149319) (xy 140.067112 102.175256) + (xy 140.103673 102.295783) (xy 140.175823 102.430766) (xy 140.248591 102.519434) (xy 140.272921 102.54908) (xy 140.302565 102.573408) + (xy 140.556 102.826843) (xy 140.556001 103.842527) (xy 140.552241 103.8807) (xy 140.567244 104.033018) (xy 140.611673 104.179483) + (xy 140.683823 104.314466) (xy 140.756591 104.403134) (xy 140.780921 104.43278) (xy 140.810565 104.457108) (xy 141.373511 105.020054) + (xy 141.367048 105.041359) (xy 141.339496 105.3211) (xy 141.367048 105.600841) (xy 141.448645 105.869831) (xy 141.581152 106.117734) + (xy 141.759477 106.335023) (xy 141.976766 106.513348) (xy 142.224669 106.645855) (xy 142.493659 106.727452) (xy 142.703302 106.7481) + (xy 142.843498 106.7481) (xy 143.053141 106.727452) (xy 143.322131 106.645855) (xy 143.570034 106.513348) (xy 143.787323 106.335023) + (xy 143.965648 106.117734) (xy 144.098155 105.869831) (xy 144.179752 105.600841) (xy 144.1882 105.515066) (xy 144.1882 106.271795) + (xy 144.119943 106.399494) (xy 144.075555 106.545823) (xy 144.060567 106.698) (xy 144.060567 108.148) (xy 144.075555 108.300177) + (xy 144.119943 108.446506) (xy 144.192026 108.581363) (xy 144.289033 108.699567) (xy 144.407237 108.796574) (xy 144.542094 108.868657) + (xy 144.688423 108.913045) (xy 144.8406 108.928033) (xy 145.1406 108.928033) (xy 145.292777 108.913045) (xy 145.439106 108.868657) + (xy 145.573963 108.796574) (xy 145.6256 108.754197) (xy 145.677237 108.796574) (xy 145.812094 108.868657) (xy 145.958423 108.913045) + (xy 146.1106 108.928033) (xy 146.4106 108.928033) (xy 146.562777 108.913045) (xy 146.709106 108.868657) (xy 146.843963 108.796574) + (xy 146.8956 108.754197) (xy 146.947237 108.796574) (xy 147.082094 108.868657) (xy 147.228423 108.913045) (xy 147.3806 108.928033) + (xy 147.6806 108.928033) (xy 147.832777 108.913045) (xy 147.979106 108.868657) (xy 148.113963 108.796574) (xy 148.1656 108.754197) + (xy 148.217237 108.796574) (xy 148.352094 108.868657) (xy 148.498423 108.913045) (xy 148.6506 108.928033) (xy 148.9506 108.928033) + (xy 149.102777 108.913045) (xy 149.249106 108.868657) (xy 149.383963 108.796574) (xy 149.502167 108.699567) (xy 149.599174 108.581363) + (xy 149.671257 108.446506) (xy 149.715645 108.300177) (xy 149.730633 108.148) (xy 149.730633 106.698) (xy 149.719208 106.582) + (xy 149.779519 106.61817) (xy 150.04436 106.713009) (xy 150.2664 106.591724) (xy 150.2664 105.4481) (xy 150.5204 105.4481) + (xy 150.5204 106.591724) (xy 150.74244 106.713009) (xy 151.007281 106.61817) (xy 151.248531 106.473485) (xy 151.456919 106.284514) + (xy 151.624437 106.05852) (xy 151.744646 105.804187) (xy 151.785304 105.670139) (xy 151.663315 105.4481) (xy 150.5204 105.4481) + (xy 150.2664 105.4481) (xy 149.123485 105.4481) (xy 149.100245 105.490401) (xy 146.739983 103.130139) (xy 149.001496 103.130139) + (xy 149.042154 103.264187) (xy 149.162363 103.51852) (xy 149.329881 103.744514) (xy 149.538269 103.933485) (xy 149.734382 104.0511) + (xy 149.538269 104.168715) (xy 149.329881 104.357686) (xy 149.162363 104.58368) (xy 149.042154 104.838013) (xy 149.001496 104.972061) + (xy 149.123485 105.1941) (xy 150.2664 105.1941) (xy 150.2664 102.9081) (xy 150.5204 102.9081) (xy 150.5204 105.1941) + (xy 151.663315 105.1941) (xy 151.785304 104.972061) (xy 151.744646 104.838013) (xy 151.624437 104.58368) (xy 151.456919 104.357686) + (xy 151.248531 104.168715) (xy 151.052418 104.0511) (xy 151.248531 103.933485) (xy 151.456919 103.744514) (xy 151.624437 103.51852) + (xy 151.744646 103.264187) (xy 151.785304 103.130139) (xy 151.663315 102.9081) (xy 150.5204 102.9081) (xy 150.2664 102.9081) + (xy 149.123485 102.9081) (xy 149.001496 103.130139) (xy 146.739983 103.130139) (xy 146.3645 102.754657) (xy 146.3645 100.590139) + (xy 149.001496 100.590139) (xy 149.042154 100.724187) (xy 149.162363 100.97852) (xy 149.329881 101.204514) (xy 149.538269 101.393485) + (xy 149.734382 101.5111) (xy 149.538269 101.628715) (xy 149.329881 101.817686) (xy 149.162363 102.04368) (xy 149.042154 102.298013) + (xy 149.001496 102.432061) (xy 149.123485 102.6541) (xy 150.2664 102.6541) (xy 150.2664 100.3681) (xy 150.5204 100.3681) + (xy 150.5204 102.6541) (xy 151.663315 102.6541) (xy 151.785304 102.432061) (xy 151.744646 102.298013) (xy 151.624437 102.04368) + (xy 151.456919 101.817686) (xy 151.248531 101.628715) (xy 151.052418 101.5111) (xy 151.248531 101.393485) (xy 151.456919 101.204514) + (xy 151.624437 100.97852) (xy 151.744646 100.724187) (xy 151.785304 100.590139) (xy 151.663315 100.3681) (xy 150.5204 100.3681) + (xy 150.2664 100.3681) (xy 149.123485 100.3681) (xy 149.001496 100.590139) (xy 146.3645 100.590139) (xy 146.3645 98.5011) + (xy 148.955328 98.5011) (xy 148.967588 98.625582) (xy 149.003898 98.74528) (xy 149.062863 98.855594) (xy 149.142215 98.952285) + (xy 149.238906 99.031637) (xy 149.34922 99.090602) (xy 149.468918 99.126912) (xy 149.49348 99.129331) (xy 149.329881 99.277686) + (xy 149.162363 99.50368) (xy 149.042154 99.758013) (xy 149.001496 99.892061) (xy 149.123485 100.1141) (xy 150.2664 100.1141) + (xy 150.2664 97.8281) (xy 150.5204 97.8281) (xy 150.5204 100.1141) (xy 151.663315 100.1141) (xy 151.785304 99.892061) + (xy 151.744646 99.758013) (xy 151.624437 99.50368) (xy 151.456919 99.277686) (xy 151.29332 99.129331) (xy 151.317882 99.126912) + (xy 151.43758 99.090602) (xy 151.547894 99.031637) (xy 151.644585 98.952285) (xy 151.723937 98.855594) (xy 151.782902 98.74528) + (xy 151.819212 98.625582) (xy 151.831472 98.5011) (xy 151.8284 97.98685) (xy 151.66965 97.8281) (xy 150.5204 97.8281) + (xy 150.2664 97.8281) (xy 149.11715 97.8281) (xy 148.9584 97.98685) (xy 148.955328 98.5011) (xy 146.3645 98.5011) + (xy 146.3645 96.9011) (xy 148.955328 96.9011) (xy 148.9584 97.41535) (xy 149.11715 97.5741) (xy 150.2664 97.5741) + (xy 150.2664 96.42485) (xy 150.5204 96.42485) (xy 150.5204 97.5741) (xy 151.66965 97.5741) (xy 151.8284 97.41535) + (xy 151.831472 96.9011) (xy 151.819212 96.776618) (xy 151.782902 96.65692) (xy 151.723937 96.546606) (xy 151.644585 96.449915) + (xy 151.547894 96.370563) (xy 151.43758 96.311598) (xy 151.317882 96.275288) (xy 151.1934 96.263028) (xy 150.67915 96.2661) + (xy 150.5204 96.42485) (xy 150.2664 96.42485) (xy 150.10765 96.2661) (xy 149.5934 96.263028) (xy 149.468918 96.275288) + (xy 149.34922 96.311598) (xy 149.238906 96.370563) (xy 149.142215 96.449915) (xy 149.062863 96.546606) (xy 149.003898 96.65692) + (xy 148.967588 96.776618) (xy 148.955328 96.9011) (xy 146.3645 96.9011) (xy 146.3645 96.590955) (xy 146.368258 96.552799) + (xy 146.3645 96.514643) (xy 146.3645 96.514634) (xy 146.353257 96.400481) (xy 146.308827 96.254016) (xy 146.273664 96.188231) + (xy 146.236677 96.119033) (xy 146.163909 96.030365) (xy 146.163908 96.030364) (xy 146.13958 96.00072) (xy 146.109936 95.976392) + (xy 143.544343 93.4108) (xy 145.268782 93.4108) (xy 145.329462 93.484738) (xy 145.460924 93.592627) (xy 145.610909 93.672796) + (xy 145.773653 93.722164) (xy 145.9429 93.738833) (xy 146.5179 93.738833) (xy 146.687147 93.722164) (xy 146.849891 93.672796) + (xy 146.999876 93.592627) (xy 147.1054 93.506025) (xy 147.210924 93.592627) (xy 147.360909 93.672796) (xy 147.523653 93.722164) + (xy 147.6929 93.738833) (xy 148.2679 93.738833) (xy 148.437147 93.722164) (xy 148.599891 93.672796) (xy 148.749876 93.592627) + (xy 148.881338 93.484738) (xy 148.989227 93.353276) (xy 149.026363 93.2838) (xy 149.301133 93.2838) (xy 149.279873 93.353887) + (xy 149.267767 93.4768) (xy 149.267767 94.0768) (xy 149.279873 94.199713) (xy 149.315725 94.317903) (xy 149.373947 94.426828) + (xy 149.452299 94.522301) (xy 149.547772 94.600653) (xy 149.656697 94.658875) (xy 149.774887 94.694727) (xy 149.8978 94.706833) + (xy 151.4478 94.706833) (xy 151.570713 94.694727) (xy 151.688903 94.658875) (xy 151.797828 94.600653) (xy 151.854919 94.5538) + (xy 154.890681 94.5538) (xy 154.947772 94.600653) (xy 155.056697 94.658875) (xy 155.174887 94.694727) (xy 155.2978 94.706833) + (xy 156.8478 94.706833) (xy 156.970713 94.694727) (xy 157.088903 94.658875) (xy 157.197828 94.600653) (xy 157.254919 94.5538) + (xy 161.255815 94.5538) (xy 161.238466 94.579765) (xy 161.15351 94.784866) (xy 161.110762 94.999773) (xy 159.440168 96.670367) + (xy 158.1786 96.670367) (xy 158.055687 96.682473) (xy 157.937497 96.718325) (xy 157.828572 96.776547) (xy 157.733099 96.854899) + (xy 157.654747 96.950372) (xy 157.596525 97.059297) (xy 157.560673 97.177487) (xy 157.548567 97.3004) (xy 157.548567 99.6004) + (xy 157.560673 99.723313) (xy 157.596525 99.841503) (xy 157.654747 99.950428) (xy 157.733099 100.045901) (xy 157.828572 100.124253) + (xy 157.937497 100.182475) (xy 158.055687 100.218327) (xy 158.1786 100.230433) (xy 161.6786 100.230433) (xy 161.801513 100.218327) + (xy 161.919703 100.182475) (xy 162.028628 100.124253) (xy 162.124101 100.045901) (xy 162.202453 99.950428) (xy 162.260675 99.841503) + (xy 162.296527 99.723313) (xy 162.308633 99.6004) (xy 162.308633 97.3004) (xy 162.296527 97.177487) (xy 162.260675 97.059297) + (xy 162.202453 96.950372) (xy 162.124101 96.854899) (xy 162.028628 96.776547) (xy 161.919703 96.718325) (xy 161.88367 96.707395) + (xy 162.351027 96.240038) (xy 162.565934 96.19729) (xy 162.771035 96.112334) (xy 162.955621 95.988998) (xy 163.112598 95.832021) + (xy 163.235934 95.647435) (xy 163.32089 95.442334) (xy 163.3642 95.2246) (xy 163.3642 95.0026) (xy 163.32089 94.784866) + (xy 163.235934 94.579765) (xy 163.218585 94.5538) (xy 163.950167 94.5538) (xy 163.950167 95.4396) (xy 163.962273 95.562513) + (xy 163.998125 95.680703) (xy 164.056347 95.789628) (xy 164.134699 95.885101) (xy 164.230172 95.963453) (xy 164.339097 96.021675) + (xy 164.457287 96.057527) (xy 164.5532 96.066974) (xy 164.553201 96.670367) (xy 163.5786 96.670367) (xy 163.455687 96.682473) + (xy 163.337497 96.718325) (xy 163.228572 96.776547) (xy 163.133099 96.854899) (xy 163.054747 96.950372) (xy 162.996525 97.059297) + (xy 162.960673 97.177487) (xy 162.948567 97.3004) (xy 162.948567 99.6004) (xy 162.960673 99.723313) (xy 162.996525 99.841503) + (xy 163.054747 99.950428) (xy 163.133099 100.045901) (xy 163.228572 100.124253) (xy 163.337497 100.182475) (xy 163.455687 100.218327) + (xy 163.5786 100.230433) (xy 167.0786 100.230433) (xy 167.201513 100.218327) (xy 167.319703 100.182475) (xy 167.428628 100.124253) + (xy 167.524101 100.045901) (xy 167.602453 99.950428) (xy 167.660675 99.841503) (xy 167.696527 99.723313) (xy 167.708633 99.6004) + (xy 167.708633 99.392546) (xy 167.743887 99.392546) (xy 167.796358 99.859411) (xy 167.938903 100.307068) (xy 168.129434 100.663527) + (xy 168.470591 100.849603) (xy 169.960595 99.3596) (xy 170.319805 99.3596) (xy 171.809809 100.849603) (xy 172.150966 100.663527) + (xy 172.366713 100.246191) (xy 172.496896 99.794785) (xy 172.536513 99.326654) (xy 172.484042 98.859789) (xy 172.341497 98.412132) + (xy 172.150966 98.055673) (xy 171.809809 97.869597) (xy 170.319805 99.3596) (xy 169.960595 99.3596) (xy 168.470591 97.869597) + (xy 168.129434 98.055673) (xy 167.913687 98.473009) (xy 167.783504 98.924415) (xy 167.743887 99.392546) (xy 167.708633 99.392546) + (xy 167.708633 97.689991) (xy 168.650197 97.689991) (xy 170.1402 99.179995) (xy 171.630203 97.689991) (xy 171.444127 97.348834) + (xy 171.026791 97.133087) (xy 170.575385 97.002904) (xy 170.107254 96.963287) (xy 169.640389 97.015758) (xy 169.192732 97.158303) + (xy 168.836273 97.348834) (xy 168.650197 97.689991) (xy 167.708633 97.689991) (xy 167.708633 97.3004) (xy 167.696527 97.177487) + (xy 167.660675 97.059297) (xy 167.602453 96.950372) (xy 167.524101 96.854899) (xy 167.428628 96.776547) (xy 167.319703 96.718325) + (xy 167.201513 96.682473) (xy 167.0786 96.670367) (xy 166.3072 96.670367) (xy 166.3072 96.066974) (xy 166.403113 96.057527) + (xy 166.521303 96.021675) (xy 166.630228 95.963453) (xy 166.7151 95.893801) (xy 166.923083 95.992971) (xy 167.206611 96.064939) + (xy 167.498731 96.080211) (xy 167.788219 96.038199) (xy 168.063947 95.940519) (xy 168.201357 95.867072) (xy 168.278992 95.617997) + (xy 167.4302 94.769205) (xy 167.416058 94.783348) (xy 167.236453 94.603743) (xy 167.250595 94.5896) (xy 167.609805 94.5896) + (xy 168.458597 95.438392) (xy 168.707672 95.360757) (xy 168.833571 95.096717) (xy 168.905539 94.813189) (xy 168.920811 94.521069) + (xy 168.878799 94.231581) (xy 168.781119 93.955853) (xy 168.707672 93.818443) (xy 168.458597 93.740808) (xy 167.609805 94.5896) + (xy 167.250595 94.5896) (xy 167.236453 94.575458) (xy 167.416058 94.395853) (xy 167.4302 94.409995) (xy 168.278992 93.561203) + (xy 168.211308 93.344054) (xy 168.371733 93.236861) (xy 168.577461 93.031133) (xy 168.739101 92.789222) (xy 168.85044 92.520425) + (xy 168.9072 92.235072) (xy 168.9072 91.944128) (xy 168.85044 91.658775) (xy 168.739101 91.389978) (xy 168.577461 91.148067) + (xy 168.371733 90.942339) (xy 168.205412 90.831207) (xy 168.204679 90.823758) (xy 168.195957 90.7352) (xy 168.151527 90.588735) + (xy 168.107244 90.505888) (xy 168.079377 90.453752) (xy 168.022207 90.384091) (xy 167.98228 90.335439) (xy 167.95263 90.311106) + (xy 167.517694 89.87617) (xy 167.493361 89.84652) (xy 167.375047 89.749423) (xy 167.240065 89.677273) (xy 167.0936 89.632843) + (xy 166.979447 89.6216) (xy 166.979444 89.6216) (xy 166.941281 89.617841) (xy 166.903118 89.6216) (xy 163.791963 89.6216) + (xy 163.7538 89.617841) (xy 163.715636 89.6216) (xy 163.715634 89.6216) (xy 163.601481 89.632843) (xy 163.455016 89.677273) + (xy 163.395441 89.709117) (xy 163.320033 89.749423) (xy 163.240957 89.814319) (xy 163.20172 89.84652) (xy 163.177392 89.876164) + (xy 162.593757 90.4598) (xy 157.452827 90.4598) (xy 157.473612 90.391282) (xy 157.485872 90.2668) (xy 157.4828 90.25255) + (xy 157.32405 90.0938) (xy 156.1998 90.0938) (xy 156.1998 90.1138) (xy 155.9458 90.1138) (xy 155.9458 90.0938) + (xy 154.82155 90.0938) (xy 154.6628 90.25255) (xy 154.659728 90.2668) (xy 154.671988 90.391282) (xy 154.708298 90.51098) + (xy 154.761379 90.610285) (xy 154.715725 90.695697) (xy 154.679873 90.813887) (xy 154.667767 90.9368) (xy 154.667767 91.5368) + (xy 154.679873 91.659713) (xy 154.715725 91.777903) (xy 154.765914 91.8718) (xy 154.715725 91.965697) (xy 154.679873 92.083887) + (xy 154.667767 92.2068) (xy 154.667767 92.8068) (xy 154.679873 92.929713) (xy 154.701133 92.9998) (xy 152.044467 92.9998) + (xy 152.065727 92.929713) (xy 152.077833 92.8068) (xy 152.077833 92.2068) (xy 152.065727 92.083887) (xy 152.029875 91.965697) + (xy 151.979686 91.8718) (xy 152.029875 91.777903) (xy 152.065727 91.659713) (xy 152.077833 91.5368) (xy 152.077833 90.9368) + (xy 152.065727 90.813887) (xy 152.029875 90.695697) (xy 151.984221 90.610285) (xy 152.037302 90.51098) (xy 152.073612 90.391282) + (xy 152.085872 90.2668) (xy 152.0828 90.25255) (xy 151.92405 90.0938) (xy 150.7998 90.0938) (xy 150.7998 90.1138) + (xy 150.5458 90.1138) (xy 150.5458 90.0938) (xy 149.42155 90.0938) (xy 149.2628 90.25255) (xy 149.259728 90.2668) + (xy 149.271988 90.391282) (xy 149.292773 90.4598) (xy 149.053516 90.4598) (xy 148.989227 90.339524) (xy 148.881338 90.208062) + (xy 148.749876 90.100173) (xy 148.599891 90.020004) (xy 148.437147 89.970636) (xy 148.2679 89.953967) (xy 147.6929 89.953967) + (xy 147.523653 89.970636) (xy 147.360909 90.020004) (xy 147.210924 90.100173) (xy 147.1054 90.186775) (xy 146.999876 90.100173) + (xy 146.849891 90.020004) (xy 146.687147 89.970636) (xy 146.5179 89.953967) (xy 145.9429 89.953967) (xy 145.773653 89.970636) + (xy 145.610909 90.020004) (xy 145.460924 90.100173) (xy 145.329462 90.208062) (xy 145.268782 90.282) (xy 141.8176 90.282) + (xy 141.8176 90.192644) (xy 141.834304 90.175939) (xy 141.9043 90.182833) (xy 142.4793 90.182833) (xy 142.648547 90.166164) + (xy 142.811291 90.116796) (xy 142.961276 90.036627) (xy 143.0668 89.950025) (xy 143.172324 90.036627) (xy 143.322309 90.116796) + (xy 143.485053 90.166164) (xy 143.6543 90.182833) (xy 144.2293 90.182833) (xy 144.398547 90.166164) (xy 144.561291 90.116796) + (xy 144.711276 90.036627) (xy 144.842738 89.928738) (xy 144.903418 89.8548) (xy 145.046637 89.8548) (xy 145.0848 89.858559) + (xy 145.122963 89.8548) (xy 145.122966 89.8548) (xy 145.237119 89.843557) (xy 145.383584 89.799127) (xy 145.518566 89.726977) + (xy 145.63688 89.62988) (xy 145.661213 89.60023) (xy 145.787643 89.4738) (xy 149.292773 89.4738) (xy 149.271988 89.542318) + (xy 149.259728 89.6668) (xy 149.2628 89.68105) (xy 149.42155 89.8398) (xy 150.5458 89.8398) (xy 150.5458 89.8198) + (xy 150.7998 89.8198) (xy 150.7998 89.8398) (xy 151.92405 89.8398) (xy 152.0828 89.68105) (xy 152.085872 89.6668) + (xy 154.659728 89.6668) (xy 154.6628 89.68105) (xy 154.82155 89.8398) (xy 155.9458 89.8398) (xy 155.9458 89.19055) + (xy 156.1998 89.19055) (xy 156.1998 89.8398) (xy 157.32405 89.8398) (xy 157.4828 89.68105) (xy 157.485872 89.6668) + (xy 157.473612 89.542318) (xy 157.437302 89.42262) (xy 157.378337 89.312306) (xy 157.298985 89.215615) (xy 157.202294 89.136263) + (xy 157.09198 89.077298) (xy 156.972282 89.040988) (xy 156.8478 89.028728) (xy 156.35855 89.0318) (xy 156.1998 89.19055) + (xy 155.9458 89.19055) (xy 155.78705 89.0318) (xy 155.2978 89.028728) (xy 155.173318 89.040988) (xy 155.05362 89.077298) + (xy 154.943306 89.136263) (xy 154.846615 89.215615) (xy 154.767263 89.312306) (xy 154.708298 89.42262) (xy 154.671988 89.542318) + (xy 154.659728 89.6668) (xy 152.085872 89.6668) (xy 152.073612 89.542318) (xy 152.044706 89.447029) (xy 152.139984 89.418127) + (xy 152.274966 89.345977) (xy 152.39328 89.24888) (xy 152.417612 89.219231) (xy 152.647634 88.989209) (xy 168.650197 88.989209) + (xy 168.836273 89.330366) (xy 169.253609 89.546113) (xy 169.705015 89.676296) (xy 170.173146 89.715913) (xy 170.640011 89.663442) + (xy 171.087668 89.520897) (xy 171.444127 89.330366) (xy 171.630203 88.989209) (xy 170.1402 87.499205) (xy 168.650197 88.989209) + (xy 152.647634 88.989209) (xy 153.433044 88.2038) (xy 157.035437 88.2038) (xy 157.0736 88.207559) (xy 157.111763 88.2038) + (xy 157.111766 88.2038) (xy 157.225919 88.192557) (xy 157.372384 88.148127) (xy 157.507366 88.075977) (xy 157.62568 87.97888) + (xy 157.650012 87.949231) (xy 158.246697 87.352546) (xy 167.743887 87.352546) (xy 167.796358 87.819411) (xy 167.938903 88.267068) + (xy 168.129434 88.623527) (xy 168.470591 88.809603) (xy 169.960595 87.3196) (xy 170.319805 87.3196) (xy 171.809809 88.809603) + (xy 172.150966 88.623527) (xy 172.366713 88.206191) (xy 172.496896 87.754785) (xy 172.536513 87.286654) (xy 172.484042 86.819789) + (xy 172.341497 86.372132) (xy 172.150966 86.015673) (xy 171.809809 85.829597) (xy 170.319805 87.3196) (xy 169.960595 87.3196) + (xy 168.470591 85.829597) (xy 168.129434 86.015673) (xy 167.913687 86.433009) (xy 167.783504 86.884415) (xy 167.743887 87.352546) + (xy 158.246697 87.352546) (xy 158.307265 87.291979) (xy 158.358857 87.307629) (xy 158.575844 87.329) (xy 158.720956 87.329) + (xy 158.937943 87.307629) (xy 159.216358 87.223172) (xy 159.472947 87.086022) (xy 159.69785 86.90145) (xy 159.882422 86.676547) + (xy 160.019572 86.419958) (xy 160.104029 86.141543) (xy 160.132546 85.852) (xy 160.112651 85.649991) (xy 168.650197 85.649991) + (xy 170.1402 87.139995) (xy 171.630203 85.649991) (xy 171.444127 85.308834) (xy 171.026791 85.093087) (xy 170.575385 84.962904) + (xy 170.107254 84.923287) (xy 169.640389 84.975758) (xy 169.192732 85.118303) (xy 168.836273 85.308834) (xy 168.650197 85.649991) + (xy 160.112651 85.649991) (xy 160.104029 85.562457) (xy 160.019572 85.284042) (xy 159.882422 85.027453) (xy 159.69785 84.80255) + (xy 159.472947 84.617978) (xy 159.216358 84.480828) (xy 158.937943 84.396371) (xy 158.720956 84.375) (xy 158.575844 84.375) + (xy 158.358857 84.396371) (xy 158.080442 84.480828) (xy 157.823853 84.617978) (xy 157.59895 84.80255) (xy 157.414378 85.027453) + (xy 157.3784 85.094763) (xy 157.342422 85.027453) (xy 157.15785 84.80255) (xy 156.932947 84.617978) (xy 156.676358 84.480828) + (xy 156.397943 84.396371) (xy 156.180956 84.375) (xy 156.035844 84.375) (xy 155.818857 84.396371) (xy 155.540442 84.480828) + (xy 155.283853 84.617978) (xy 155.05895 84.80255) (xy 154.874378 85.027453) (xy 154.8384 85.094763) (xy 154.802422 85.027453) + (xy 154.61785 84.80255) (xy 154.392947 84.617978) (xy 154.136358 84.480828) (xy 153.857943 84.396371) (xy 153.640956 84.375) + (xy 153.495844 84.375) (xy 153.278857 84.396371) (xy 153.000442 84.480828) (xy 152.743853 84.617978) (xy 152.51895 84.80255) + (xy 152.334378 85.027453) (xy 152.29798 85.095549) (xy 152.223578 84.970645) (xy 152.028669 84.754412) (xy 151.79532 84.580359) + (xy 151.532499 84.455175) (xy 151.38529 84.410524) (xy 151.1554 84.531845) (xy 151.1554 85.725) (xy 151.1754 85.725) + (xy 151.1754 85.979) (xy 151.1554 85.979) (xy 151.1554 85.999) (xy 150.9014 85.999) (xy 150.9014 85.979) + (xy 150.8814 85.979) (xy 150.8814 85.725) (xy 150.9014 85.725) (xy 150.9014 84.531845) (xy 150.67151 84.410524) + (xy 150.524301 84.455175) (xy 150.26148 84.580359) (xy 150.028131 84.754412) (xy 149.833222 84.970645) (xy 149.75882 85.095549) + (xy 149.722422 85.027453) (xy 149.53785 84.80255) (xy 149.312947 84.617978) (xy 149.056358 84.480828) (xy 148.777943 84.396371) + (xy 148.560956 84.375) (xy 148.415844 84.375) (xy 148.198857 84.396371) (xy 147.920442 84.480828) (xy 147.663853 84.617978) + (xy 147.43895 84.80255) (xy 147.405481 84.843332) (xy 147.380475 84.760897) (xy 147.322253 84.651972) (xy 147.243901 84.556499) + (xy 147.148428 84.478147) (xy 147.039503 84.419925) (xy 146.921313 84.384073) (xy 146.7984 84.371967) (xy 145.0984 84.371967) + (xy 144.975487 84.384073) (xy 144.857297 84.419925) (xy 144.748372 84.478147) (xy 144.652899 84.556499) (xy 144.574547 84.651972) + (xy 144.516325 84.760897) (xy 144.480473 84.879087) (xy 144.468367 85.002) (xy 144.468367 86.702) (xy 144.480473 86.824913) + (xy 144.516325 86.943103) (xy 144.574547 87.052028) (xy 144.652899 87.147501) (xy 144.748372 87.225853) (xy 144.857297 87.284075) + (xy 144.859687 87.2848) (xy 141.516163 87.2848) (xy 141.478 87.281041) (xy 141.439836 87.2848) (xy 141.439834 87.2848) + (xy 141.325681 87.296043) (xy 141.179216 87.340473) (xy 141.132199 87.365605) (xy 141.044234 87.412622) (xy 141.013353 87.437966) + (xy 141.015472 87.3074) (xy 141.003212 87.182918) (xy 140.966902 87.06322) (xy 140.907937 86.952906) (xy 140.828585 86.856215) + (xy 140.731894 86.776863) (xy 140.62158 86.717898) (xy 140.501882 86.681588) (xy 140.3774 86.669328) (xy 140.13815 86.6724) + (xy 139.9794 86.83115) (xy 139.9794 87.6554) (xy 139.9994 87.6554) (xy 139.9994 87.9094) (xy 139.9794 87.9094) + (xy 139.9794 87.9294) (xy 139.7254 87.9294) (xy 139.7254 87.9094) (xy 139.7054 87.9094) (xy 139.7054 87.6554) + (xy 139.7254 87.6554) (xy 139.7254 86.83115) (xy 139.56665 86.6724) (xy 139.3274 86.669328) (xy 139.202918 86.681588) + (xy 139.08322 86.717898) (xy 138.972906 86.776863) (xy 138.893933 86.841675) (xy 138.871876 86.823573) (xy 138.721891 86.743404) + (xy 138.559147 86.694036) (xy 138.3899 86.677367) (xy 137.8149 86.677367) (xy 137.645653 86.694036) (xy 137.482909 86.743404) + (xy 137.332924 86.823573) (xy 137.201462 86.931462) (xy 137.093573 87.062924) (xy 137.013404 87.212909) (xy 136.964036 87.375653) + (xy 136.947367 87.5449) (xy 136.947367 87.914942) (xy 136.914 87.9556) (xy 136.905098 87.966447) (xy 136.880033 88.01334) + (xy 136.880033 87.504) (xy 136.866486 87.366455) (xy 136.827 87.236286) (xy 136.827 85.721419) (xy 136.968598 85.579821) + (xy 137.091934 85.395235) (xy 137.17689 85.190134) (xy 137.2202 84.9724) (xy 137.2202 84.7504) (xy 137.17689 84.532666) + (xy 137.091934 84.327565) (xy 136.968598 84.142979) (xy 136.811621 83.986002) (xy 136.627035 83.862666) (xy 136.421934 83.77771) + (xy 136.2042 83.7344) (xy 135.9822 83.7344) (xy 135.764466 83.77771) (xy 135.559365 83.862666) (xy 135.374779 83.986002) + (xy 135.217802 84.142979) (xy 135.094466 84.327565) (xy 135.00951 84.532666) (xy 134.9662 84.7504) (xy 134.9662 84.9724) + (xy 135.00951 85.190134) (xy 135.094466 85.395235) (xy 135.217802 85.579821) (xy 135.373001 85.73502) (xy 135.373 86.816899) + (xy 135.35 86.823876) (xy 135.312545 86.812514) (xy 135.175 86.798967) (xy 135.025 86.798967) (xy 134.887455 86.812514) + (xy 134.85 86.823876) (xy 134.812545 86.812514) (xy 134.675 86.798967) (xy 134.525 86.798967) (xy 134.387455 86.812514) + (xy 134.35 86.823876) (xy 134.312545 86.812514) (xy 134.175 86.798967) (xy 134.038593 86.798967) (xy 134.05269 86.764934) + (xy 134.096 86.5472) (xy 134.096 86.3252) (xy 134.05269 86.107466) (xy 133.967734 85.902365) (xy 133.844398 85.717779) + (xy 133.687421 85.560802) (xy 133.686113 85.559928) (xy 135.602107 83.643935) (xy 135.602111 83.64393) (xy 136.079842 83.1662) + (xy 140.483037 83.1662) (xy 140.5212 83.169959) (xy 140.559363 83.1662) (xy 140.559366 83.1662) (xy 140.673519 83.154957) + (xy 140.819984 83.110527) (xy 140.954966 83.038377) (xy 141.07328 82.94128) (xy 141.097613 82.91163) (xy 141.263832 82.745411) + (xy 141.29348 82.72108) (xy 141.390577 82.602766) (xy 141.462727 82.467784) (xy 141.507157 82.321319) (xy 141.5184 82.207166) + (xy 141.5184 82.207164) (xy 141.522159 82.169) (xy 141.5184 82.130837) (xy 141.5184 82.012519) (xy 141.565253 81.955428) + (xy 141.623475 81.846503) (xy 141.659327 81.728313) (xy 141.671433 81.6054) (xy 141.671433 80.0554) (xy 141.667071 80.011115) + (xy 142.18119 80.525234) (xy 142.181191 81.41857) (xy 142.082792 81.516969) (xy 141.959456 81.701555) (xy 141.8745 81.906656) + (xy 141.83119 82.12439) (xy 141.83119 82.34639) (xy 141.8745 82.564124) (xy 141.959456 82.769225) (xy 142.082792 82.953811) + (xy 142.239769 83.110788) (xy 142.424355 83.234124) (xy 142.629456 83.31908) (xy 142.84719 83.36239) (xy 143.06919 83.36239) + (xy 143.286924 83.31908) (xy 143.492025 83.234124) (xy 143.676611 83.110788) (xy 143.833588 82.953811) (xy 143.956924 82.769225) + (xy 144.04188 82.564124) (xy 144.08519 82.34639) (xy 144.08519 82.12439) (xy 144.04188 81.906656) (xy 143.956924 81.701555) + (xy 143.833588 81.516969) (xy 143.73519 81.418571) (xy 143.73519 80.241545) (xy 143.738948 80.203389) (xy 143.73519 80.165233) + (xy 143.73519 80.165224) (xy 143.723947 80.051071) (xy 143.679517 79.904606) (xy 143.607367 79.769623) (xy 143.534599 79.680955) + (xy 143.534598 79.680954) (xy 143.51027 79.65131) (xy 143.480627 79.626983) (xy 143.000944 79.1473) (xy 156.495267 79.1473) + (xy 156.495267 80.8473) (xy 156.507373 80.970213) (xy 156.543225 81.088403) (xy 156.601447 81.197328) (xy 156.679799 81.292801) + (xy 156.775272 81.371153) (xy 156.884197 81.429375) (xy 157.002387 81.465227) (xy 157.1253 81.477333) (xy 158.8253 81.477333) + (xy 158.948213 81.465227) (xy 159.066403 81.429375) (xy 159.175328 81.371153) (xy 159.270801 81.292801) (xy 159.349153 81.197328) + (xy 159.407375 81.088403) (xy 159.443227 80.970213) (xy 159.455333 80.8473) (xy 159.455333 80.3229) (xy 165.849667 80.3229) + (xy 165.849667 82.9229) (xy 165.861773 83.045813) (xy 165.897625 83.164003) (xy 165.955847 83.272928) (xy 166.034199 83.368401) + (xy 166.129672 83.446753) (xy 166.238597 83.504975) (xy 166.356787 83.540827) (xy 166.4797 83.552933) (xy 169.0797 83.552933) + (xy 169.202613 83.540827) (xy 169.320803 83.504975) (xy 169.429728 83.446753) (xy 169.525201 83.368401) (xy 169.603553 83.272928) + (xy 169.661775 83.164003) (xy 169.697627 83.045813) (xy 169.709733 82.9229) (xy 169.709733 80.3229) (xy 169.697627 80.199987) + (xy 169.661775 80.081797) (xy 169.603553 79.972872) (xy 169.525201 79.877399) (xy 169.429728 79.799047) (xy 169.320803 79.740825) + (xy 169.202613 79.704973) (xy 169.0797 79.692867) (xy 166.4797 79.692867) (xy 166.356787 79.704973) (xy 166.238597 79.740825) + (xy 166.129672 79.799047) (xy 166.034199 79.877399) (xy 165.955847 79.972872) (xy 165.897625 80.081797) (xy 165.861773 80.199987) + (xy 165.849667 80.3229) (xy 159.455333 80.3229) (xy 159.455333 79.1473) (xy 159.443227 79.024387) (xy 159.407375 78.906197) + (xy 159.349153 78.797272) (xy 159.270801 78.701799) (xy 159.175328 78.623447) (xy 159.066403 78.565225) (xy 158.948213 78.529373) + (xy 158.8253 78.517267) (xy 157.1253 78.517267) (xy 157.002387 78.529373) (xy 156.884197 78.565225) (xy 156.775272 78.623447) + (xy 156.679799 78.701799) (xy 156.601447 78.797272) (xy 156.543225 78.906197) (xy 156.507373 79.024387) (xy 156.495267 79.1473) + (xy 143.000944 79.1473) (xy 142.392012 78.538369) (xy 142.36768 78.50872) (xy 142.249366 78.411623) (xy 142.114384 78.339473) + (xy 141.967919 78.295043) (xy 141.853766 78.2838) (xy 141.853763 78.2838) (xy 141.8156 78.280041) (xy 141.777437 78.2838) + (xy 139.806955 78.2838) (xy 139.768799 78.280042) (xy 139.730643 78.2838) (xy 139.730634 78.2838) (xy 139.616481 78.295043) + (xy 139.470016 78.339473) (xy 139.335034 78.411623) (xy 139.21672 78.50872) (xy 139.192387 78.53837) (xy 138.948965 78.781792) + (xy 138.919321 78.80612) (xy 138.894993 78.835764) (xy 138.894991 78.835766) (xy 138.822223 78.924434) (xy 138.750073 79.059417) + (xy 138.705644 79.205882) (xy 138.690641 79.3582) (xy 138.694401 79.396373) (xy 138.694401 79.450373) (xy 138.625882 79.429588) + (xy 138.5014 79.417328) (xy 138.48715 79.4204) (xy 138.3284 79.57915) (xy 138.3284 80.7034) (xy 138.3484 80.7034) + (xy 138.3484 80.9574) (xy 138.3284 80.9574) (xy 138.3284 80.9774) (xy 138.0744 80.9774) (xy 138.0744 80.9574) + (xy 138.0544 80.9574) (xy 138.0544 80.7034) (xy 138.0744 80.7034) (xy 138.0744 79.57915) (xy 137.91565 79.4204) + (xy 137.9014 79.417328) (xy 137.776918 79.429588) (xy 137.65722 79.465898) (xy 137.557915 79.518979) (xy 137.472503 79.473325) + (xy 137.354313 79.437473) (xy 137.2314 79.425367) (xy 136.6314 79.425367) (xy 136.508487 79.437473) (xy 136.390297 79.473325) + (xy 136.281372 79.531547) (xy 136.185899 79.609899) (xy 136.107547 79.705372) (xy 136.049325 79.814297) (xy 136.013473 79.932487) + (xy 136.001367 80.0554) (xy 136.001367 80.125776) (xy 135.897633 80.181223) (xy 135.870624 80.203389) (xy 135.77932 80.27832) + (xy 135.754992 80.307964) (xy 131.172466 84.890491) (xy 130.9736 85.089357) (xy 130.900832 85.178025) (xy 130.828682 85.313008) + (xy 130.784253 85.459473) (xy 130.76925 85.611791) (xy 130.784253 85.764109) (xy 130.828682 85.910574) (xy 130.873001 85.993489) + (xy 130.873001 86.798932) (xy 130.816117 86.805132) (xy 130.79763 86.811045) (xy 130.675 86.798967) (xy 130.525 86.798967) + (xy 130.387455 86.812514) (xy 130.255196 86.852634) (xy 130.133305 86.917786) (xy 130.026466 87.005466) (xy 129.938786 87.112305) + (xy 129.889124 87.205217) (xy 129.867796 87.134909) (xy 129.787627 86.984924) (xy 129.769525 86.962867) (xy 129.834337 86.883894) + (xy 129.893302 86.77358) (xy 129.929612 86.653882) (xy 129.941872 86.5294) (xy 129.9388 86.29015) (xy 129.78005 86.1314) + (xy 128.9558 86.1314) (xy 128.9558 86.1514) (xy 128.7018 86.1514) (xy 128.7018 86.1314) (xy 127.87755 86.1314) + (xy 127.7188 86.29015) (xy 127.715728 86.5294) (xy 127.727988 86.653882) (xy 127.764298 86.77358) (xy 127.823263 86.883894) + (xy 127.888075 86.962867) (xy 127.869973 86.984924) (xy 127.789804 87.134909) (xy 127.740436 87.297653) (xy 127.723767 87.4669) + (xy 127.723767 88.0419) (xy 127.740436 88.211147) (xy 127.789804 88.373891) (xy 127.869973 88.523876) (xy 127.977862 88.655338) + (xy 128.101801 88.757053) (xy 128.101801 88.943641) (xy 128.026466 89.005466) (xy 127.938786 89.112305) (xy 127.873634 89.234196) + (xy 127.85604 89.292196) (xy 125.988912 87.425069) (xy 125.96458 87.39542) (xy 125.846266 87.298323) (xy 125.711284 87.226173) + (xy 125.564819 87.181743) (xy 125.450666 87.1705) (xy 125.450663 87.1705) (xy 125.4125 87.166741) (xy 125.374337 87.1705) + (xy 110.700033 87.1705) (xy 110.700033 87.1056) (xy 110.687927 86.982687) (xy 110.652075 86.864497) (xy 110.593853 86.755572) + (xy 110.515501 86.660099) (xy 110.420028 86.581747) (xy 110.311103 86.523525) (xy 110.192913 86.487673) (xy 110.07 86.475567) + (xy 108.37 86.475567) (xy 108.247087 86.487673) (xy 108.128897 86.523525) (xy 108.019972 86.581747) (xy 107.924499 86.660099) + (xy 107.846147 86.755572) (xy 107.787925 86.864497) (xy 107.752073 86.982687) (xy 107.739967 87.1056) (xy 107.739967 88.8056) + (xy 107.752073 88.928513) (xy 107.787925 89.046703) (xy 107.846147 89.155628) (xy 107.924499 89.251101) (xy 108.019972 89.329453) + (xy 108.128897 89.387675) (xy 108.211332 89.412681) (xy 108.17055 89.44615) (xy 107.985978 89.671053) (xy 107.848828 89.927642) + (xy 107.764371 90.206057) (xy 107.735854 90.4956) (xy 106.233893 90.4956) (xy 106.193987 90.22627) (xy 106.098803 89.960108) + (xy 106.031871 89.834886) (xy 105.787902 89.763303) (xy 104.974805 90.5764) (xy 104.615595 90.5764) (xy 103.802498 89.763303) + (xy 103.558529 89.834886) (xy 103.437629 90.090396) (xy 103.3689 90.364584) (xy 103.354983 90.646912) (xy 102.923126 90.646912) + (xy 102.930071 90.5764) (xy 102.898658 90.257452) (xy 102.805624 89.950761) (xy 102.725233 89.80036) (xy 102.725233 89.7764) + (xy 102.713127 89.653487) (xy 102.691958 89.583698) (xy 103.982103 89.583698) (xy 104.7952 90.396795) (xy 105.608297 89.583698) + (xy 105.536714 89.339729) (xy 105.281204 89.218829) (xy 105.007016 89.1501) (xy 104.724688 89.136183) (xy 104.44507 89.177613) + (xy 104.178908 89.272797) (xy 104.053686 89.339729) (xy 103.982103 89.583698) (xy 102.691958 89.583698) (xy 102.677275 89.535297) + (xy 102.619053 89.426372) (xy 102.540701 89.330899) (xy 102.445228 89.252547) (xy 102.336303 89.194325) (xy 102.218113 89.158473) + (xy 102.173838 89.154112) (xy 100.444995 87.42527) (xy 101.097468 86.772797) (xy 101.130933 86.745333) (xy 101.240527 86.611792) + (xy 101.321962 86.459437) (xy 101.37211 86.294122) (xy 101.3848 86.165279) (xy 101.3848 86.165278) (xy 101.389043 86.122201) + (xy 101.3848 86.079124) (xy 101.3848 79.7874) (xy 103.162446 79.7874) (xy 103.220122 79.857678) (xy 103.353479 79.967121) + (xy 103.505625 80.048445) (xy 103.670713 80.098523) (xy 103.842399 80.115433) (xy 104.742401 80.115433) (xy 104.914087 80.098523) + (xy 105.079175 80.048445) (xy 105.231321 79.967121) (xy 105.364678 79.857678) (xy 105.422354 79.7874) (xy 105.727469 79.7874) + (xy 105.766897 79.808475) (xy 105.885087 79.844327) (xy 106.008 79.856433) (xy 106.181 79.856433) (xy 106.181001 80.071761) + (xy 106.165824 80.079873) (xy 106.034362 80.187762) (xy 105.926473 80.319224) (xy 105.846304 80.469209) (xy 105.796936 80.631953) + (xy 105.780267 80.8012) (xy 105.780267 81.2762) (xy 105.796936 81.445447) (xy 105.846304 81.608191) (xy 105.926473 81.758176) + (xy 106.034362 81.889638) (xy 106.165824 81.997527) (xy 106.315809 82.077696) (xy 106.478553 82.127064) (xy 106.6478 82.143733) + (xy 107.2228 82.143733) (xy 107.392047 82.127064) (xy 107.554791 82.077696) (xy 107.704776 81.997527) (xy 107.8103 81.910925) + (xy 107.915824 81.997527) (xy 108.065809 82.077696) (xy 108.228553 82.127064) (xy 108.3978 82.143733) (xy 108.69149 82.143733) + (xy 110.772618 84.224862) (xy 110.73981 84.304066) (xy 110.6965 84.5218) (xy 110.6965 84.7438) (xy 110.73981 84.961534) + (xy 110.824766 85.166635) (xy 110.948102 85.351221) (xy 111.105079 85.508198) (xy 111.289665 85.631534) (xy 111.494766 85.71649) + (xy 111.7125 85.7598) (xy 111.9345 85.7598) (xy 112.152234 85.71649) (xy 112.357335 85.631534) (xy 112.45227 85.568101) + (xy 112.487262 85.610738) (xy 112.618724 85.718627) (xy 112.768709 85.798796) (xy 112.931453 85.848164) (xy 113.1007 85.864833) + (xy 113.6757 85.864833) (xy 113.844947 85.848164) (xy 114.007691 85.798796) (xy 114.157676 85.718627) (xy 114.179733 85.700525) + (xy 114.258706 85.765337) (xy 114.36902 85.824302) (xy 114.488718 85.860612) (xy 114.6132 85.872872) (xy 114.85245 85.8698) + (xy 115.0112 85.71105) (xy 115.0112 84.8868) (xy 115.2652 84.8868) (xy 115.2652 85.71105) (xy 115.42395 85.8698) + (xy 115.6632 85.872872) (xy 115.787682 85.860612) (xy 115.90738 85.824302) (xy 116.017694 85.765337) (xy 116.114385 85.685985) + (xy 116.193737 85.589294) (xy 116.252477 85.4794) (xy 127.715728 85.4794) (xy 127.7188 85.71865) (xy 127.87755 85.8774) + (xy 128.7018 85.8774) (xy 128.7018 85.00315) (xy 128.9558 85.00315) (xy 128.9558 85.8774) (xy 129.78005 85.8774) + (xy 129.9388 85.71865) (xy 129.941872 85.4794) (xy 129.929612 85.354918) (xy 129.893302 85.23522) (xy 129.834337 85.124906) + (xy 129.754985 85.028215) (xy 129.658294 84.948863) (xy 129.54798 84.889898) (xy 129.428282 84.853588) (xy 129.3038 84.841328) + (xy 129.11455 84.8444) (xy 128.9558 85.00315) (xy 128.7018 85.00315) (xy 128.54305 84.8444) (xy 128.3538 84.841328) + (xy 128.229318 84.853588) (xy 128.10962 84.889898) (xy 127.999306 84.948863) (xy 127.902615 85.028215) (xy 127.823263 85.124906) + (xy 127.764298 85.23522) (xy 127.727988 85.354918) (xy 127.715728 85.4794) (xy 116.252477 85.4794) (xy 116.252702 85.47898) + (xy 116.289012 85.359282) (xy 116.301272 85.2348) (xy 116.2982 85.04555) (xy 116.13945 84.8868) (xy 115.2652 84.8868) + (xy 115.0112 84.8868) (xy 114.9912 84.8868) (xy 114.9912 84.6328) (xy 115.0112 84.6328) (xy 115.0112 84.6128) + (xy 115.2652 84.6128) (xy 115.2652 84.6328) (xy 116.13945 84.6328) (xy 116.2982 84.47405) (xy 116.301272 84.2848) + (xy 116.289012 84.160318) (xy 116.259042 84.061519) (xy 116.342185 83.993285) (xy 116.421537 83.896594) (xy 116.480502 83.78628) + (xy 116.516812 83.666582) (xy 116.529072 83.5421) (xy 116.526 83.12785) (xy 116.36725 82.9691) (xy 115.443 82.9691) + (xy 115.443 82.9891) (xy 115.189 82.9891) (xy 115.189 82.9691) (xy 115.169 82.9691) (xy 115.169 82.7151) + (xy 115.189 82.7151) (xy 115.189 82.6951) (xy 115.443 82.6951) (xy 115.443 82.7151) (xy 116.36725 82.7151) + (xy 116.526 82.55635) (xy 116.529072 82.1421) (xy 116.516812 82.017618) (xy 116.480502 81.89792) (xy 116.421537 81.787606) + (xy 116.342185 81.690915) (xy 116.245494 81.611563) (xy 116.180832 81.577) (xy 116.78701 81.577) (xy 117.062756 81.549841) + (xy 117.416572 81.442513) (xy 117.742651 81.26822) (xy 118.028461 81.033661) (xy 118.26302 80.747851) (xy 118.437313 80.421772) + (xy 118.544641 80.067956) (xy 118.580882 79.7) (xy 118.544641 79.332044) (xy 118.437313 78.978228) (xy 118.26302 78.652149) + (xy 118.028461 78.366339) (xy 117.742651 78.13178) (xy 117.416572 77.957487) (xy 117.39189 77.95) (xy 117.416572 77.942513) + (xy 117.742651 77.76822) (xy 118.028461 77.533661) (xy 118.26302 77.247851) (xy 118.437313 76.921772) (xy 118.544641 76.567956) + (xy 118.580882 76.2) (xy 118.544641 75.832044) (xy 118.437313 75.478228) (xy 118.26302 75.152149) (xy 118.028461 74.866339) + (xy 117.742651 74.63178) (xy 117.416572 74.457487) (xy 117.062756 74.350159) (xy 116.8218 74.326427) (xy 116.8218 72.875339) + (xy 116.826043 72.83226) (xy 116.80911 72.660337) (xy 116.758962 72.495023) (xy 116.757132 72.4916) (xy 116.677527 72.342668) + (xy 116.567933 72.209127) (xy 116.534468 72.181663) (xy 116.194643 71.841838) (xy 116.307249 71.917079) (xy 116.785332 72.115108) + (xy 117.292863 72.216062) (xy 117.810337 72.216062) (xy 118.317868 72.115108) (xy 118.795951 71.917079) (xy 119.226215 71.629586) + (xy 119.592124 71.263677) (xy 119.879617 70.833413) (xy 120.077646 70.35533) (xy 120.1786 69.847799) (xy 120.1786 69.330325) + (xy 120.105898 68.964824) (xy 123.685981 68.964824) (xy 123.817917 69.259912) (xy 124.158645 69.430759) (xy 124.526157 69.53185) + (xy 124.906329 69.559301) (xy 125.284551 69.512057) (xy 125.64629 69.391933) (xy 125.893283 69.259912) (xy 126.025219 68.964824) + (xy 124.8556 67.795205) (xy 123.685981 68.964824) (xy 120.105898 68.964824) (xy 120.077646 68.822794) (xy 119.879617 68.344711) + (xy 119.592124 67.914447) (xy 119.344006 67.666329) (xy 122.911899 67.666329) (xy 122.959143 68.044551) (xy 123.079267 68.40629) + (xy 123.211288 68.653283) (xy 123.506376 68.785219) (xy 124.675995 67.6156) (xy 125.035205 67.6156) (xy 126.204824 68.785219) + (xy 126.499912 68.653283) (xy 126.670759 68.312555) (xy 126.77185 67.945043) (xy 126.799301 67.564871) (xy 126.752057 67.186649) + (xy 126.631933 66.82491) (xy 126.499912 66.577917) (xy 126.204824 66.445981) (xy 125.035205 67.6156) (xy 124.675995 67.6156) + (xy 123.506376 66.445981) (xy 123.211288 66.577917) (xy 123.040441 66.918645) (xy 122.93935 67.286157) (xy 122.911899 67.666329) + (xy 119.344006 67.666329) (xy 119.226215 67.548538) (xy 118.795951 67.261045) (xy 118.317868 67.063016) (xy 117.810337 66.962062) + (xy 117.292863 66.962062) (xy 116.785332 67.063016) (xy 116.307249 67.261045) (xy 115.876985 67.548538) (xy 115.511076 67.914447) + (xy 115.223583 68.344711) (xy 115.025554 68.822794) (xy 114.9246 69.330325) (xy 114.9246 69.847799) (xy 115.025554 70.35533) + (xy 115.223583 70.833413) (xy 115.298824 70.946019) (xy 112.0622 67.709395) (xy 112.034736 67.67593) (xy 111.901195 67.566336) + (xy 111.74884 67.484901) (xy 111.583525 67.434753) (xy 111.454682 67.422063) (xy 111.411603 67.41782) (xy 111.368524 67.422063) + (xy 110.587363 67.422063) (xy 110.6336 67.189609) (xy 110.6336 66.908515) (xy 110.578762 66.632821) (xy 110.471191 66.373124) + (xy 110.315024 66.139402) (xy 110.11626 65.940638) (xy 109.999916 65.8629) (xy 124.020696 65.8629) (xy 123.817917 65.971288) + (xy 123.685981 66.266376) (xy 124.8556 67.435995) (xy 126.025219 66.266376) (xy 125.893283 65.971288) (xy 125.67712 65.8629) + (xy 128.118871 65.8629) (xy 128.110099 65.870099) (xy 128.031747 65.965572) (xy 127.973525 66.074497) (xy 127.937673 66.192687) + (xy 127.925567 66.3156) (xy 127.925567 68.9156) (xy 127.937673 69.038513) (xy 127.973525 69.156703) (xy 128.031747 69.265628) + (xy 128.110099 69.361101) (xy 128.205572 69.439453) (xy 128.314497 69.497675) (xy 128.432687 69.533527) (xy 128.5556 69.545633) + (xy 128.9786 69.545633) (xy 128.978601 74.325363) (xy 128.726844 74.350159) (xy 128.373028 74.457487) (xy 128.046949 74.63178) + (xy 127.761139 74.866339) (xy 127.52658 75.152149) (xy 127.352287 75.478228) (xy 127.244959 75.832044) (xy 127.208718 76.2) + (xy 127.244959 76.567956) (xy 127.352287 76.921772) (xy 127.52658 77.247851) (xy 127.761139 77.533661) (xy 128.046949 77.76822) + (xy 128.373028 77.942513) (xy 128.39771 77.95) (xy 128.373028 77.957487) (xy 128.046949 78.13178) (xy 127.761139 78.366339) + (xy 127.52658 78.652149) (xy 127.352287 78.978228) (xy 127.244959 79.332044) (xy 127.208718 79.7) (xy 127.244959 80.067956) + (xy 127.352287 80.421772) (xy 127.52658 80.747851) (xy 127.761139 81.033661) (xy 128.046949 81.26822) (xy 128.373028 81.442513) + (xy 128.726844 81.549841) (xy 129.00259 81.577) (xy 130.68701 81.577) (xy 130.962756 81.549841) (xy 131.316572 81.442513) + (xy 131.642651 81.26822) (xy 131.928461 81.033661) (xy 132.16302 80.747851) (xy 132.337313 80.421772) (xy 132.444641 80.067956) + (xy 132.480882 79.7) (xy 132.444641 79.332044) (xy 132.347255 79.011) (xy 133.964128 79.011) (xy 133.976388 79.135482) + (xy 134.012698 79.25518) (xy 134.071663 79.365494) (xy 134.151015 79.462185) (xy 134.247706 79.541537) (xy 134.35802 79.600502) + (xy 134.477718 79.636812) (xy 134.6022 79.649072) (xy 134.79145 79.646) (xy 134.9502 79.48725) (xy 134.9502 78.613) + (xy 135.2042 78.613) (xy 135.2042 79.48725) (xy 135.36295 79.646) (xy 135.5522 79.649072) (xy 135.676682 79.636812) + (xy 135.79638 79.600502) (xy 135.906694 79.541537) (xy 136.003385 79.462185) (xy 136.082737 79.365494) (xy 136.141702 79.25518) + (xy 136.178012 79.135482) (xy 136.190272 79.011) (xy 136.1872 78.77175) (xy 136.02845 78.613) (xy 135.2042 78.613) + (xy 134.9502 78.613) (xy 134.12595 78.613) (xy 133.9672 78.77175) (xy 133.964128 79.011) (xy 132.347255 79.011) + (xy 132.337313 78.978228) (xy 132.16302 78.652149) (xy 131.928461 78.366339) (xy 131.642651 78.13178) (xy 131.316572 77.957487) + (xy 131.29189 77.95) (xy 131.316572 77.942513) (xy 131.642651 77.76822) (xy 131.928461 77.533661) (xy 132.16302 77.247851) + (xy 132.337313 76.921772) (xy 132.444641 76.567956) (xy 132.480882 76.2) (xy 132.444641 75.832044) (xy 132.337313 75.478228) + (xy 132.16302 75.152149) (xy 131.928461 74.866339) (xy 131.642651 74.63178) (xy 131.316572 74.457487) (xy 130.962756 74.350159) + (xy 130.7326 74.32749) (xy 130.7326 69.545633) (xy 131.1556 69.545633) (xy 131.278513 69.533527) (xy 131.396703 69.497675) + (xy 131.505628 69.439453) (xy 131.601101 69.361101) (xy 131.679453 69.265628) (xy 131.737675 69.156703) (xy 131.773527 69.038513) + (xy 131.785633 68.9156) (xy 131.785633 66.3156) (xy 131.773527 66.192687) (xy 131.737675 66.074497) (xy 131.679453 65.965572) + (xy 131.601101 65.870099) (xy 131.592329 65.8629) (xy 140.767631 65.8629) (xy 140.76763 68.985186) (xy 139.757197 69.99562) + (xy 139.7866 69.847799) (xy 139.7866 69.330325) (xy 139.685646 68.822794) (xy 139.487617 68.344711) (xy 139.200124 67.914447) + (xy 138.834215 67.548538) (xy 138.403951 67.261045) (xy 137.925868 67.063016) (xy 137.418337 66.962062) (xy 136.900863 66.962062) + (xy 136.393332 67.063016) (xy 135.915249 67.261045) (xy 135.484985 67.548538) (xy 135.119076 67.914447) (xy 134.831583 68.344711) + (xy 134.633554 68.822794) (xy 134.5326 69.330325) (xy 134.5326 69.847799) (xy 134.633554 70.35533) (xy 134.831583 70.833413) + (xy 135.119076 71.263677) (xy 135.484985 71.629586) (xy 135.915249 71.917079) (xy 136.393332 72.115108) (xy 136.900863 72.216062) + (xy 137.418337 72.216062) (xy 137.578767 72.184151) (xy 137.552223 72.216494) (xy 137.480073 72.351477) (xy 137.478107 72.357959) + (xy 137.437932 72.490401) (xy 137.435644 72.497942) (xy 137.420641 72.65026) (xy 137.424401 72.688433) (xy 137.4244 74.058733) + (xy 137.354313 74.037473) (xy 137.2314 74.025367) (xy 136.6314 74.025367) (xy 136.508487 74.037473) (xy 136.390297 74.073325) + (xy 136.281372 74.131547) (xy 136.185899 74.209899) (xy 136.107547 74.305372) (xy 136.049325 74.414297) (xy 136.013473 74.532487) + (xy 136.001367 74.6554) (xy 136.001367 75.261589) (xy 135.623107 75.63985) (xy 135.483947 75.597636) (xy 135.3147 75.580967) + (xy 134.8397 75.580967) (xy 134.670453 75.597636) (xy 134.507709 75.647004) (xy 134.357724 75.727173) (xy 134.226262 75.835062) + (xy 134.118373 75.966524) (xy 134.038204 76.116509) (xy 133.988836 76.279253) (xy 133.972167 76.4485) (xy 133.972167 77.0235) + (xy 133.988836 77.192747) (xy 134.038204 77.355491) (xy 134.118373 77.505476) (xy 134.136475 77.527533) (xy 134.071663 77.606506) + (xy 134.012698 77.71682) (xy 133.976388 77.836518) (xy 133.964128 77.961) (xy 133.9672 78.20025) (xy 134.12595 78.359) + (xy 134.9502 78.359) (xy 134.9502 78.339) (xy 135.2042 78.339) (xy 135.2042 78.359) (xy 136.02845 78.359) + (xy 136.1872 78.20025) (xy 136.190129 77.972124) (xy 166.610081 77.972124) (xy 166.742017 78.267212) (xy 167.082745 78.438059) + (xy 167.450257 78.53915) (xy 167.830429 78.566601) (xy 168.208651 78.519357) (xy 168.57039 78.399233) (xy 168.817383 78.267212) + (xy 168.949319 77.972124) (xy 167.7797 76.802505) (xy 166.610081 77.972124) (xy 136.190129 77.972124) (xy 136.190272 77.961) + (xy 136.178012 77.836518) (xy 136.141702 77.71682) (xy 136.082737 77.606506) (xy 136.017925 77.527533) (xy 136.036027 77.505476) + (xy 136.116196 77.355491) (xy 136.122977 77.333137) (xy 136.17788 77.28808) (xy 136.202212 77.258431) (xy 136.259843 77.2008) + (xy 157.610328 77.2008) (xy 157.622588 77.325282) (xy 157.658898 77.44498) (xy 157.717863 77.555294) (xy 157.797215 77.651985) + (xy 157.893906 77.731337) (xy 158.00422 77.790302) (xy 158.123918 77.826612) (xy 158.2484 77.838872) (xy 158.36265 77.8358) + (xy 158.5214 77.67705) (xy 158.5214 76.3778) (xy 158.7754 76.3778) (xy 158.7754 77.67705) (xy 158.93415 77.8358) + (xy 159.0484 77.838872) (xy 159.172882 77.826612) (xy 159.29258 77.790302) (xy 159.402894 77.731337) (xy 159.499585 77.651985) + (xy 159.578937 77.555294) (xy 159.637902 77.44498) (xy 159.674212 77.325282) (xy 159.686472 77.2008) (xy 159.684034 76.673629) + (xy 165.835999 76.673629) (xy 165.883243 77.051851) (xy 166.003367 77.41359) (xy 166.135388 77.660583) (xy 166.430476 77.792519) + (xy 167.600095 76.6229) (xy 167.959305 76.6229) (xy 169.128924 77.792519) (xy 169.424012 77.660583) (xy 169.594859 77.319855) + (xy 169.69595 76.952343) (xy 169.723401 76.572171) (xy 169.676157 76.193949) (xy 169.556033 75.83221) (xy 169.424012 75.585217) + (xy 169.128924 75.453281) (xy 167.959305 76.6229) (xy 167.600095 76.6229) (xy 166.430476 75.453281) (xy 166.135388 75.585217) + (xy 165.964541 75.925945) (xy 165.86345 76.293457) (xy 165.835999 76.673629) (xy 159.684034 76.673629) (xy 159.6834 76.53655) + (xy 159.52465 76.3778) (xy 158.7754 76.3778) (xy 158.5214 76.3778) (xy 157.77215 76.3778) (xy 157.6134 76.53655) + (xy 157.610328 77.2008) (xy 136.259843 77.2008) (xy 136.625765 76.834878) (xy 136.6314 76.835433) (xy 137.2314 76.835433) + (xy 137.354313 76.823327) (xy 137.472503 76.787475) (xy 137.5664 76.737286) (xy 137.660297 76.787475) (xy 137.778487 76.823327) + (xy 137.9014 76.835433) (xy 138.5014 76.835433) (xy 138.624313 76.823327) (xy 138.742503 76.787475) (xy 138.8364 76.737286) + (xy 138.930297 76.787475) (xy 139.048487 76.823327) (xy 139.1714 76.835433) (xy 139.7714 76.835433) (xy 139.894313 76.823327) + (xy 140.012503 76.787475) (xy 140.1064 76.737286) (xy 140.200297 76.787475) (xy 140.318487 76.823327) (xy 140.4414 76.835433) + (xy 141.0414 76.835433) (xy 141.164313 76.823327) (xy 141.282503 76.787475) (xy 141.391428 76.729253) (xy 141.486901 76.650901) + (xy 141.565253 76.555428) (xy 141.623475 76.446503) (xy 141.659327 76.328313) (xy 141.671433 76.2054) (xy 141.671433 74.6554) + (xy 141.659327 74.532487) (xy 141.623475 74.414297) (xy 141.565253 74.305372) (xy 141.486901 74.209899) (xy 141.391428 74.131547) + (xy 141.32137 74.0941) (xy 143.423399 74.0941) (xy 143.461562 74.097859) (xy 143.499725 74.0941) (xy 143.499728 74.0941) + (xy 143.613881 74.082857) (xy 143.760346 74.038427) (xy 143.895328 73.966277) (xy 144.013642 73.86918) (xy 144.037975 73.83953) + (xy 146.59257 71.284936) (xy 146.749053 71.316062) (xy 147.030147 71.316062) (xy 147.186631 71.284936) (xy 149.67493 73.773236) + (xy 149.699258 73.80288) (xy 149.728902 73.827208) (xy 149.728903 73.827209) (xy 149.817571 73.899977) (xy 149.948814 73.970128) + (xy 149.952554 73.972127) (xy 150.099019 74.016557) (xy 150.213172 74.0278) (xy 150.213181 74.0278) (xy 150.251337 74.031558) + (xy 150.289493 74.0278) (xy 156.668367 74.0278) (xy 156.668367 74.2008) (xy 156.680473 74.323713) (xy 156.716325 74.441903) + (xy 156.774547 74.550828) (xy 156.852899 74.646301) (xy 156.948372 74.724653) (xy 157.057297 74.782875) (xy 157.175487 74.818727) + (xy 157.2984 74.830833) (xy 157.820101 74.830833) (xy 157.797215 74.849615) (xy 157.717863 74.946306) (xy 157.658898 75.05662) + (xy 157.622588 75.176318) (xy 157.610328 75.3008) (xy 157.6134 75.96505) (xy 157.77215 76.1238) (xy 158.5214 76.1238) + (xy 158.5214 74.82455) (xy 158.430882 74.734032) (xy 158.448428 74.724653) (xy 158.543901 74.646301) (xy 158.622253 74.550828) + (xy 158.6484 74.501911) (xy 158.674547 74.550828) (xy 158.752899 74.646301) (xy 158.848372 74.724653) (xy 158.865918 74.734032) + (xy 158.7754 74.82455) (xy 158.7754 76.1238) (xy 159.52465 76.1238) (xy 159.6834 75.96505) (xy 159.686472 75.3008) + (xy 159.683801 75.273676) (xy 166.610081 75.273676) (xy 167.7797 76.443295) (xy 168.949319 75.273676) (xy 168.817383 74.978588) + (xy 168.476655 74.807741) (xy 168.109143 74.70665) (xy 167.728971 74.679199) (xy 167.350749 74.726443) (xy 166.98901 74.846567) + (xy 166.742017 74.978588) (xy 166.610081 75.273676) (xy 159.683801 75.273676) (xy 159.674212 75.176318) (xy 159.637902 75.05662) + (xy 159.578937 74.946306) (xy 159.499585 74.849615) (xy 159.476699 74.830833) (xy 159.9984 74.830833) (xy 160.121313 74.818727) + (xy 160.239503 74.782875) (xy 160.348428 74.724653) (xy 160.443901 74.646301) (xy 160.522253 74.550828) (xy 160.580475 74.441903) + (xy 160.616327 74.323713) (xy 160.628433 74.2008) (xy 160.628433 72.3008) (xy 160.616327 72.177887) (xy 160.580475 72.059697) + (xy 160.522253 71.950772) (xy 160.443901 71.855299) (xy 160.348428 71.776947) (xy 160.341302 71.773138) (xy 160.319727 71.702016) + (xy 160.281012 71.629586) (xy 160.247578 71.567034) (xy 160.174809 71.478365) (xy 160.174808 71.478364) (xy 160.15048 71.44872) + (xy 160.120836 71.424392) (xy 159.7646 71.068157) (xy 159.7646 70.671702) (xy 159.831583 70.833413) (xy 160.119076 71.263677) + (xy 160.484985 71.629586) (xy 160.915249 71.917079) (xy 161.393332 72.115108) (xy 161.900863 72.216062) (xy 162.418337 72.216062) + (xy 162.925868 72.115108) (xy 163.403951 71.917079) (xy 163.834215 71.629586) (xy 164.200124 71.263677) (xy 164.487617 70.833413) + (xy 164.685646 70.35533) (xy 164.7866 69.847799) (xy 164.7866 69.330325) (xy 164.685646 68.822794) (xy 164.487617 68.344711) + (xy 164.200124 67.914447) (xy 163.834215 67.548538) (xy 163.403951 67.261045) (xy 162.925868 67.063016) (xy 162.418337 66.962062) + (xy 161.900863 66.962062) (xy 161.393332 67.063016) (xy 160.915249 67.261045) (xy 160.484985 67.548538) (xy 160.119076 67.914447) + (xy 159.831583 68.344711) (xy 159.763087 68.510075) (xy 159.759737 68.476062) (xy 159.753357 68.411281) (xy 159.708927 68.264816) + (xy 159.671836 68.195424) (xy 159.636777 68.129833) (xy 159.564009 68.041165) (xy 159.564008 68.041164) (xy 159.53968 68.01152) + (xy 159.510036 67.987192) (xy 158.303504 66.78066) (xy 167.6482 66.78066) (xy 167.6482 67.21934) (xy 167.733782 67.649592) + (xy 167.901658 68.05488) (xy 168.145376 68.41963) (xy 168.45557 68.729824) (xy 168.82032 68.973542) (xy 169.225608 69.141418) + (xy 169.65586 69.227) (xy 170.09454 69.227) (xy 170.524792 69.141418) (xy 170.93008 68.973542) (xy 171.29483 68.729824) + (xy 171.605024 68.41963) (xy 171.848742 68.05488) (xy 172.016618 67.649592) (xy 172.1022 67.21934) (xy 172.1022 66.78066) + (xy 172.016618 66.350408) (xy 171.848742 65.94512) (xy 171.605024 65.58037) (xy 171.29483 65.270176) (xy 170.93008 65.026458) + (xy 170.524792 64.858582) (xy 170.09454 64.773) (xy 169.65586 64.773) (xy 169.225608 64.858582) (xy 168.82032 65.026458) + (xy 168.45557 65.270176) (xy 168.145376 65.58037) (xy 167.901658 65.94512) (xy 167.733782 66.350408) (xy 167.6482 66.78066) + (xy 158.303504 66.78066) (xy 156.062513 64.53967) (xy 156.03818 64.51002) (xy 155.919866 64.412923) (xy 155.784884 64.340773) + (xy 155.638419 64.296343) (xy 155.524266 64.2851) (xy 155.524263 64.2851) (xy 155.4861 64.281341) (xy 155.447937 64.2851) + (xy 150.299725 64.2851) (xy 150.261562 64.281341) (xy 150.223398 64.2851) (xy 150.223396 64.2851) (xy 150.109243 64.296343) + (xy 149.962778 64.340773) (xy 149.921629 64.362768) (xy 149.827796 64.412922) (xy 149.739127 64.485691) (xy 149.709482 64.51002) + (xy 149.685154 64.539664) (xy 148.912394 65.312424) (xy 148.897733 65.294559) (xy 148.864274 65.2671) (xy 147.993404 64.396231) + (xy 147.965941 64.362767) (xy 147.8324 64.253173) (xy 147.680045 64.171738) (xy 147.51473 64.12159) (xy 147.385887 64.1089) + (xy 147.342808 64.104657) (xy 147.299729 64.1089) (xy 108.542841 64.1089) (xy 108.499762 64.104657) (xy 108.327839 64.12159) + (xy 108.162525 64.171738) (xy 108.092999 64.2089) (xy 100.380855 64.2089) (xy 100.342699 64.205142) (xy 100.304543 64.2089) + (xy 100.304534 64.2089) (xy 100.190381 64.220143) (xy 100.043916 64.264573) (xy 99.908933 64.336723) (xy 99.820265 64.409491) + (xy 99.79062 64.43382) (xy 99.766292 64.463464) (xy 96.810365 67.419392) (xy 96.780721 67.44372) (xy 96.756393 67.473364) + (xy 96.756391 67.473366) (xy 96.683623 67.562034) (xy 96.611473 67.697017) (xy 96.585758 67.781789) (xy 96.567411 67.842273) + (xy 96.567044 67.843482) (xy 96.552041 67.9958) (xy 96.555801 68.033973) (xy 96.5558 71.255356) (xy 92.477057 75.3341) + (xy 91.879433 75.3341) (xy 91.879433 75.3111) (xy 91.867327 75.188187) (xy 91.831475 75.069997) (xy 91.773253 74.961072) + (xy 91.694901 74.865599) (xy 91.599428 74.787247) (xy 91.490503 74.729025) (xy 91.372313 74.693173) (xy 91.2494 74.681067) + (xy 89.6494 74.681067) (xy 89.526487 74.693173) (xy 89.408297 74.729025) (xy 89.299372 74.787247) (xy 89.203899 74.865599) + (xy 89.125547 74.961072) (xy 89.067325 75.069997) (xy 89.031473 75.188187) (xy 89.019367 75.3111) (xy 81.202 75.3111) + (xy 81.202 69.330325) (xy 89.9246 69.330325) (xy 89.9246 69.847799) (xy 90.025554 70.35533) (xy 90.223583 70.833413) + (xy 90.511076 71.263677) (xy 90.876985 71.629586) (xy 91.307249 71.917079) (xy 91.785332 72.115108) (xy 92.292863 72.216062) + (xy 92.810337 72.216062) (xy 93.317868 72.115108) (xy 93.795951 71.917079) (xy 94.226215 71.629586) (xy 94.592124 71.263677) + (xy 94.879617 70.833413) (xy 95.077646 70.35533) (xy 95.1786 69.847799) (xy 95.1786 69.330325) (xy 95.077646 68.822794) + (xy 94.879617 68.344711) (xy 94.592124 67.914447) (xy 94.226215 67.548538) (xy 93.795951 67.261045) (xy 93.317868 67.063016) + (xy 92.810337 66.962062) (xy 92.292863 66.962062) (xy 91.785332 67.063016) (xy 91.307249 67.261045) (xy 90.876985 67.548538) + (xy 90.511076 67.914447) (xy 90.223583 68.344711) (xy 90.025554 68.822794) (xy 89.9246 69.330325) (xy 81.202 69.330325) + (xy 81.202 66.78066) (xy 82.773 66.78066) (xy 82.773 67.21934) (xy 82.858582 67.649592) (xy 83.026458 68.05488) + (xy 83.270176 68.41963) (xy 83.58037 68.729824) (xy 83.94512 68.973542) (xy 84.350408 69.141418) (xy 84.78066 69.227) + (xy 85.21934 69.227) (xy 85.649592 69.141418) (xy 86.05488 68.973542) (xy 86.41963 68.729824) (xy 86.729824 68.41963) + (xy 86.973542 68.05488) (xy 87.141418 67.649592) (xy 87.227 67.21934) (xy 87.227 66.78066) (xy 87.141418 66.350408) + (xy 86.973542 65.94512) (xy 86.729824 65.58037) (xy 86.41963 65.270176) (xy 86.05488 65.026458) (xy 85.649592 64.858582) + (xy 85.21934 64.773) (xy 84.78066 64.773) (xy 84.350408 64.858582) (xy 83.94512 65.026458) (xy 83.58037 65.270176) + (xy 83.270176 65.58037) (xy 83.026458 65.94512) (xy 82.858582 66.350408) (xy 82.773 66.78066) (xy 81.202 66.78066) + (xy 81.202 63.202) (xy 173.298 63.202) + ) + ) + (filled_polygon + (pts + (xy 125.359103 90.995447) (xy 125.33735 90.9958) (xy 125.1786 91.15455) (xy 125.1786 92.0288) (xy 126.00285 92.0288) + (xy 126.1616 91.87005) (xy 126.162864 91.77161) (xy 126.240691 91.813209) (xy 126.272716 91.830327) (xy 126.419181 91.874757) + (xy 126.533334 91.886) (xy 126.533343 91.886) (xy 126.571499 91.889758) (xy 126.609655 91.886) (xy 127.419166 91.886) + (xy 127.533319 91.874757) (xy 127.679784 91.830327) (xy 127.762713 91.786) (xy 127.832968 91.786) (xy 127.833514 91.791545) + (xy 127.844876 91.829) (xy 127.833514 91.866455) (xy 127.819967 92.004) (xy 127.819967 92.154) (xy 127.833514 92.291545) + (xy 127.844876 92.329) (xy 127.833514 92.366455) (xy 127.819967 92.504) (xy 127.819967 92.654) (xy 127.832045 92.77663) + (xy 127.826132 92.795117) (xy 127.819932 92.852) (xy 126.317108 92.852) (xy 126.2814 92.848483) (xy 126.138882 92.86252) + (xy 126.134661 92.863801) (xy 126.152412 92.805282) (xy 126.164672 92.6808) (xy 126.1616 92.44155) (xy 126.00285 92.2828) + (xy 125.1786 92.2828) (xy 125.1786 92.3028) (xy 124.9246 92.3028) (xy 124.9246 92.2828) (xy 124.10035 92.2828) + (xy 123.9416 92.44155) (xy 123.938528 92.6808) (xy 123.950788 92.805282) (xy 123.987098 92.92498) (xy 124.046063 93.035294) + (xy 124.110875 93.114267) (xy 124.092773 93.136324) (xy 124.012604 93.286309) (xy 123.963236 93.449053) (xy 123.946567 93.6183) + (xy 123.946567 93.68513) (xy 123.945798 93.683979) (xy 123.788821 93.527002) (xy 123.604235 93.403666) (xy 123.399134 93.31871) + (xy 123.1814 93.2754) (xy 122.9594 93.2754) (xy 122.741666 93.31871) (xy 122.536565 93.403666) (xy 122.351979 93.527002) + (xy 122.195002 93.683979) (xy 122.071666 93.868565) (xy 121.98671 94.073666) (xy 121.9434 94.2914) (xy 121.9434 94.5134) + (xy 121.98671 94.731134) (xy 122.071666 94.936235) (xy 122.195002 95.120821) (xy 122.351979 95.277798) (xy 122.536565 95.401134) + (xy 122.741666 95.48609) (xy 122.9594 95.5294) (xy 123.098556 95.5294) (xy 123.306792 95.737636) (xy 123.33112 95.76728) + (xy 123.360764 95.791608) (xy 123.360765 95.791609) (xy 123.449433 95.864377) (xy 123.495855 95.88919) (xy 123.584416 95.936527) + (xy 123.730881 95.980957) (xy 123.845034 95.9922) (xy 123.845036 95.9922) (xy 123.8832 95.995959) (xy 123.921363 95.9922) + (xy 125.724637 95.9922) (xy 125.7628 95.995959) (xy 125.800963 95.9922) (xy 125.800966 95.9922) (xy 125.915119 95.980957) + (xy 126.061584 95.936527) (xy 126.196566 95.864377) (xy 126.280195 95.795745) (xy 126.378602 95.943021) (xy 126.535579 96.099998) + (xy 126.571501 96.124) (xy 123.12913 96.124) (xy 123.045734 95.922665) (xy 122.922398 95.738079) (xy 122.765421 95.581102) + (xy 122.580835 95.457766) (xy 122.375734 95.37281) (xy 122.158 95.3295) (xy 121.936 95.3295) (xy 121.718266 95.37281) + (xy 121.513165 95.457766) (xy 121.328579 95.581102) (xy 121.171602 95.738079) (xy 121.048266 95.922665) (xy 120.966327 96.120483) + (xy 120.183912 95.338068) (xy 120.159579 95.308419) (xy 120.041265 95.211322) (xy 119.906283 95.139172) (xy 119.759818 95.094742) + (xy 119.645665 95.083499) (xy 119.645662 95.083499) (xy 119.607499 95.07974) (xy 119.569336 95.083499) (xy 118.339425 95.083499) + (xy 115.582541 92.326616) (xy 115.582541 92.187459) (xy 115.539231 91.969725) (xy 115.454275 91.764624) (xy 115.364857 91.6308) + (xy 123.938528 91.6308) (xy 123.9416 91.87005) (xy 124.10035 92.0288) (xy 124.9246 92.0288) (xy 124.9246 91.15455) + (xy 124.76585 90.9958) (xy 124.5766 90.992728) (xy 124.452118 91.004988) (xy 124.33242 91.041298) (xy 124.222106 91.100263) + (xy 124.125415 91.179615) (xy 124.046063 91.276306) (xy 123.987098 91.38662) (xy 123.950788 91.506318) (xy 123.938528 91.6308) + (xy 115.364857 91.6308) (xy 115.330939 91.580038) (xy 115.173962 91.423061) (xy 114.989376 91.299725) (xy 114.784275 91.214769) + (xy 114.566541 91.171459) (xy 114.344541 91.171459) (xy 114.126807 91.214769) (xy 113.921706 91.299725) (xy 113.73712 91.423061) + (xy 113.607012 91.553169) (xy 112.892422 90.838579) (xy 112.959734 90.82519) (xy 113.164835 90.740234) (xy 113.349421 90.616898) + (xy 113.447819 90.5185) (xy 124.882157 90.5185) + ) + ) + (filled_polygon + (pts + (xy 158.210601 68.885445) (xy 158.2106 71.351836) (xy 158.206841 71.39) (xy 158.2106 71.428163) (xy 158.2106 71.428165) + (xy 158.221843 71.542318) (xy 158.248316 71.629586) (xy 158.266273 71.688783) (xy 158.271203 71.698007) (xy 158.221313 71.682873) + (xy 158.0984 71.670767) (xy 157.2984 71.670767) (xy 157.175487 71.682873) (xy 157.057297 71.718725) (xy 156.948372 71.776947) + (xy 156.852899 71.855299) (xy 156.774547 71.950772) (xy 156.716325 72.059697) (xy 156.680473 72.177887) (xy 156.668367 72.3008) + (xy 156.668367 72.4738) (xy 150.573182 72.4738) (xy 149.403691 71.30431) (xy 149.447784 71.315362) (xy 149.730112 71.329279) + (xy 150.00973 71.287849) (xy 150.275892 71.192665) (xy 150.401114 71.125733) (xy 150.472697 70.881764) (xy 149.6596 70.068667) + (xy 149.645458 70.08281) (xy 149.465853 69.903205) (xy 149.479995 69.889062) (xy 149.839205 69.889062) (xy 150.652302 70.702159) + (xy 150.896271 70.630576) (xy 151.017171 70.375066) (xy 151.047359 70.254633) (xy 151.057438 70.305303) (xy 151.165009 70.565) + (xy 151.321176 70.798722) (xy 151.51994 70.997486) (xy 151.753662 71.153653) (xy 152.013359 71.261224) (xy 152.289053 71.316062) + (xy 152.570147 71.316062) (xy 152.845841 71.261224) (xy 153.105538 71.153653) (xy 153.33926 70.997486) (xy 153.538024 70.798722) + (xy 153.694191 70.565) (xy 153.801762 70.305303) (xy 153.8146 70.240761) (xy 153.827438 70.305303) (xy 153.935009 70.565) + (xy 154.091176 70.798722) (xy 154.28994 70.997486) (xy 154.523662 71.153653) (xy 154.783359 71.261224) (xy 155.059053 71.316062) + (xy 155.340147 71.316062) (xy 155.615841 71.261224) (xy 155.875538 71.153653) (xy 156.10926 70.997486) (xy 156.308024 70.798722) + (xy 156.464191 70.565) (xy 156.571762 70.305303) (xy 156.6266 70.029609) (xy 156.6266 69.748515) (xy 156.571762 69.472821) + (xy 156.464191 69.213124) (xy 156.308024 68.979402) (xy 156.10926 68.780638) (xy 155.875538 68.624471) (xy 155.615841 68.5169) + (xy 155.340147 68.462062) (xy 155.059053 68.462062) (xy 154.783359 68.5169) (xy 154.523662 68.624471) (xy 154.28994 68.780638) + (xy 154.091176 68.979402) (xy 153.935009 69.213124) (xy 153.827438 69.472821) (xy 153.8146 69.537363) (xy 153.801762 69.472821) + (xy 153.694191 69.213124) (xy 153.538024 68.979402) (xy 153.33926 68.780638) (xy 153.105538 68.624471) (xy 152.845841 68.5169) + (xy 152.570147 68.462062) (xy 152.289053 68.462062) (xy 152.013359 68.5169) (xy 151.753662 68.624471) (xy 151.51994 68.780638) + (xy 151.321176 68.979402) (xy 151.165009 69.213124) (xy 151.057438 69.472821) (xy 151.049327 69.513598) (xy 150.963203 69.27277) + (xy 150.896271 69.147548) (xy 150.652302 69.075965) (xy 149.839205 69.889062) (xy 149.479995 69.889062) (xy 148.666898 69.075965) + (xy 148.422929 69.147548) (xy 148.302029 69.403058) (xy 148.271841 69.523491) (xy 148.261762 69.472821) (xy 148.154191 69.213124) + (xy 147.998024 68.979402) (xy 147.914982 68.89636) (xy 148.846503 68.89636) (xy 149.6596 69.709457) (xy 150.472697 68.89636) + (xy 150.401114 68.652391) (xy 150.145604 68.531491) (xy 149.871416 68.462762) (xy 149.589088 68.448845) (xy 149.30947 68.490275) + (xy 149.043308 68.585459) (xy 148.918086 68.652391) (xy 148.846503 68.89636) (xy 147.914982 68.89636) (xy 147.79926 68.780638) + (xy 147.565538 68.624471) (xy 147.305841 68.5169) (xy 147.030147 68.462062) (xy 146.749053 68.462062) (xy 146.473359 68.5169) + (xy 146.213662 68.624471) (xy 145.97994 68.780638) (xy 145.781176 68.979402) (xy 145.625009 69.213124) (xy 145.549633 69.395096) + (xy 145.549633 69.089062) (xy 145.537527 68.966149) (xy 145.501675 68.847959) (xy 145.443453 68.739034) (xy 145.365101 68.643561) + (xy 145.269628 68.565209) (xy 145.160703 68.506987) (xy 145.042513 68.471135) (xy 144.9196 68.459029) (xy 143.3196 68.459029) + (xy 143.196687 68.471135) (xy 143.078497 68.506987) (xy 142.969572 68.565209) (xy 142.874099 68.643561) (xy 142.795747 68.739034) + (xy 142.737525 68.847959) (xy 142.701673 68.966149) (xy 142.689567 69.089062) (xy 142.689567 70.689062) (xy 142.701673 70.811975) + (xy 142.737525 70.930165) (xy 142.795747 71.03909) (xy 142.874099 71.134563) (xy 142.969572 71.212915) (xy 143.078497 71.271137) + (xy 143.196687 71.306989) (xy 143.3196 71.319095) (xy 144.360724 71.319095) (xy 143.139719 72.5401) (xy 140.547863 72.5401) + (xy 140.5097 72.536341) (xy 140.471536 72.5401) (xy 140.471534 72.5401) (xy 140.357381 72.551343) (xy 140.210916 72.595773) + (xy 140.199972 72.601623) (xy 140.075933 72.667923) (xy 140.001389 72.7291) (xy 139.95762 72.76502) (xy 139.933292 72.794664) + (xy 138.9784 73.749557) (xy 138.9784 72.972103) (xy 142.067067 69.883437) (xy 142.09671 69.85911) (xy 142.121039 69.829465) + (xy 142.193807 69.740797) (xy 142.265957 69.605814) (xy 142.265957 69.605813) (xy 142.310387 69.459349) (xy 142.32163 69.345196) + (xy 142.32163 69.345187) (xy 142.325388 69.307031) (xy 142.32163 69.268875) (xy 142.32163 65.8629) (xy 144.711284 65.8629) + (xy 144.59494 65.940638) (xy 144.396176 66.139402) (xy 144.240009 66.373124) (xy 144.132438 66.632821) (xy 144.0776 66.908515) + (xy 144.0776 67.189609) (xy 144.132438 67.465303) (xy 144.240009 67.725) (xy 144.396176 67.958722) (xy 144.59494 68.157486) + (xy 144.828662 68.313653) (xy 145.088359 68.421224) (xy 145.364053 68.476062) (xy 145.645147 68.476062) (xy 145.920841 68.421224) + (xy 146.180538 68.313653) (xy 146.41426 68.157486) (xy 146.613024 67.958722) (xy 146.769191 67.725) (xy 146.876762 67.465303) + (xy 146.8896 67.400761) (xy 146.902438 67.465303) (xy 147.010009 67.725) (xy 147.166176 67.958722) (xy 147.36494 68.157486) + (xy 147.598662 68.313653) (xy 147.858359 68.421224) (xy 148.134053 68.476062) (xy 148.415147 68.476062) (xy 148.690841 68.421224) + (xy 148.950538 68.313653) (xy 149.18426 68.157486) (xy 149.383024 67.958722) (xy 149.539191 67.725) (xy 149.646762 67.465303) + (xy 149.6596 67.400761) (xy 149.672438 67.465303) (xy 149.780009 67.725) (xy 149.936176 67.958722) (xy 150.13494 68.157486) + (xy 150.368662 68.313653) (xy 150.628359 68.421224) (xy 150.904053 68.476062) (xy 151.185147 68.476062) (xy 151.460841 68.421224) + (xy 151.720538 68.313653) (xy 151.95426 68.157486) (xy 152.153024 67.958722) (xy 152.309191 67.725) (xy 152.416762 67.465303) + (xy 152.4296 67.400761) (xy 152.442438 67.465303) (xy 152.550009 67.725) (xy 152.706176 67.958722) (xy 152.90494 68.157486) + (xy 153.138662 68.313653) (xy 153.398359 68.421224) (xy 153.674053 68.476062) (xy 153.955147 68.476062) (xy 154.230841 68.421224) + (xy 154.490538 68.313653) (xy 154.72426 68.157486) (xy 154.923024 67.958722) (xy 155.079191 67.725) (xy 155.186762 67.465303) + (xy 155.2416 67.189609) (xy 155.2416 66.908515) (xy 155.186762 66.632821) (xy 155.079191 66.373124) (xy 154.923024 66.139402) + (xy 154.72426 65.940638) (xy 154.572297 65.8391) (xy 155.164257 65.8391) + ) + ) + ) +) diff --git a/F0-nolib/Socket_fans/kicad/stm32.net b/F0-nolib/Socket_fans/kicad/stm32.net new file mode 100644 index 0000000..2017559 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32.net @@ -0,0 +1,1387 @@ +(export (version D) + (design + (source /Big/Data/00__Electronics/STM32/F0-nolib/00_Socket_fans/kicad/stm32.sch) + (date "Пт 21 авг 2020 19:53:34") + (tool "Eeschema 5.1.5") + (sheet (number 1) (name /) (tstamps /) + (title_block + (title) + (company) + (rev) + (date) + (source stm32.sch) + (comment (number 1) (value "")) + (comment (number 2) (value "")) + (comment (number 3) (value "")) + (comment (number 4) (value ""))))) + (components + (comp (ref C13) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 58C42D39)) + (comp (ref U1) + (value LM1117-3.3) + (footprint TO_SOT_Packages_SMD:SOT-223-3_TabPin2) + (libsource (lib Regulator_Linear) (part LM1117-3.3) (description "800mA Low-Dropout Linear Regulator, 3.3V fixed output, TO-220/TO-252/TO-263/SOT-223")) + (sheetpath (names /) (tstamps /)) + (tstamp 58C431FC)) + (comp (ref P1) + (value USB_A) + (footprint Connectors_USB:USB_B_OST_USB-B1HSxx_Horizontal) + (libsource (lib Connector) (part USB_B) (description "USB Type B connector")) + (sheetpath (names /) (tstamps /)) + (tstamp 58C433D0)) + (comp (ref C15) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 590935EA)) + (comp (ref C17) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 59093675)) + (comp (ref R25) + (value 56k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 590A6DDA)) + (comp (ref R26) + (value 47k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 590A6F68)) + (comp (ref R27) + (value 47k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 590A6F6E)) + (comp (ref P5) + (value Hole) + (footprint MountingHole:MountingHole_3.2mm_M3) + (libsource (lib Connector_Generic) (part Conn_01x01) (description "Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 59143415)) + (comp (ref P4) + (value Hole) + (footprint MountingHole:MountingHole_3.2mm_M3) + (libsource (lib Connector_Generic) (part Conn_01x01) (description "Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5914456D)) + (comp (ref P2) + (value Hole) + (footprint MountingHole:MountingHole_3.2mm_M3) + (libsource (lib Connector_Generic) (part Conn_01x01) (description "Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 591446F3)) + (comp (ref P3) + (value Hole) + (footprint MountingHole:MountingHole_3.2mm_M3) + (libsource (lib Connector_Generic) (part Conn_01x01) (description "Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 591446F9)) + (comp (ref D7) + (value MM3Z4V7) + (footprint Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder) + (libsource (lib Device) (part D_Zener) (description "Zener diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 59684468)) + (comp (ref R28) + (value 22) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5968E385)) + (comp (ref R29) + (value 22) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5968E83B)) + (comp (ref TP1) + (value TestPoint) + (footprint Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part TestPoint) (description "test point")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E5DD8CB)) + (comp (ref D1) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E615086)) + (comp (ref TP2) + (value TestPoint) + (footprint Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part TestPoint) (description "test point")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E672E87)) + (comp (ref C6) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E7836BE)) + (comp (ref C7) + (value "47uF, 10V") + (footprint Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder) + (datasheet ~) + (libsource (lib Device) (part CP) (description "Polarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E794E88)) + (comp (ref D8) + (value MM3Z4V7) + (footprint Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder) + (libsource (lib Device) (part D_Zener) (description "Zener diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E7D7999)) + (comp (ref R22) + (value 47k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 590D30C8)) + (comp (ref J7) + (value Conn_01x04) + (footprint Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x04_Female) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5EA0EDCD)) + (comp (ref R23) + (value 22) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (datasheet ~) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5EA6930E)) + (comp (ref C16) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E417130)) + (comp (ref C14) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E42F960)) + (comp (ref C18) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 590A8102)) + (comp (ref R1) + (value 10k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (datasheet ~) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5ED7FE5E)) + (comp (ref D3) + (value MM3Z7V5) + (footprint Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder) + (datasheet ~) + (libsource (lib Device) (part D_Zener) (description "Zener diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5ED78D2C)) + (comp (ref Q1) + (value AO3401) + (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering) + (libsource (lib Device) (part Q_PMOS_GSD) (description "P-MOSFET transistor, gate/source/drain")) + (sheetpath (names /) (tstamps /)) + (tstamp 5910E2F2)) + (comp (ref J1) + (value 12VIN) + (footprint Connectors_Terminal_Blocks:TerminalBlock_Pheonix_MKDS1.5-2pol) + (libsource (lib stm32-rescue) (part Conn_01x02-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5A170C1F)) + (comp (ref R14) + (value 10k) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEBD18)) + (comp (ref R11) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEBD1E)) + (comp (ref Q3) + (value IRLML2502) + (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEBD24)) + (comp (ref Q4) + (value IRLML2502) + (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEB585)) + (comp (ref R12) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEB37B)) + (comp (ref R16) + (value 10k) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEEB2E1)) + (comp (ref C11) + (value "100u, 25V") + (footprint Capacitor_THT:CP_Radial_D8.0mm_P3.50mm) + (libsource (lib stm32-rescue) (part CP-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5C53FDA9)) + (comp (ref R31) + (value 330) + (footprint Resistor_SMD:R_0603_1608Metric_Pad0.84x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part R-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5A66984A)) + (comp (ref R33) + (value 47k) + (footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.50mm_HandSolder) + (libsource (lib stm32-rescue) (part R-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B179FBF)) + (comp (ref K2) + (value SRD-12VDC) + (footprint Relay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_C) + (libsource (lib stm32-rescue) (part G5LE-1-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5A66AAE1)) + (comp (ref L1) + (value "BMBA 0.1mH") + (footprint Resistors_SMD.pretty:R_0805_HandSoldering) + (libsource (lib stm32-rescue) (part L-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F7F79F1)) + (comp (ref U2) + (value L7805) + (footprint TO_SOT_Packages_THT:TO-220-3_Vertical) + (datasheet http://www.st.com/content/ccc/resource/technical/document/datasheet/41/4f/b3/b0/12/d4/47/88/CD00000444.pdf/files/CD00000444.pdf/jcr:content/translations/en.CD00000444.pdf) + (libsource (lib Regulator_Linear) (part L7805) (description "Positive 1.5A 35V Linear Regulator, Fixed Output 5V, TO-220/TO-263/TO-252")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F943ABE)) + (comp (ref C3) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 596772D4)) + (comp (ref C8) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5A586F5C)) + (comp (ref C9) + (value "10uF, 10V") + (footprint Capacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolder) + (datasheet ~) + (libsource (lib Device) (part CP) (description "Polarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E5E1875)) + (comp (ref J2) + (value thermal) + (footprint Connector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector_Generic) (part Conn_02x04_Odd_Even) (description "Generic connector, double row, 02x04, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F9F47CC)) + (comp (ref C5) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part C-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA122F0)) + (comp (ref R2) + (value 10k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA12E95)) + (comp (ref R9) + (value "4k7, 1%") + (footprint Resistors_SMD.pretty:R_0805_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA11765)) + (comp (ref R7) + (value "4k7, 1%") + (footprint Resistors_SMD.pretty:R_0805_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA113CB)) + (comp (ref R5) + (value "4k7, 1%") + (footprint Resistors_SMD.pretty:R_0805_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA110F3)) + (comp (ref R3) + (value "4k7, 1%") + (footprint Resistors_SMD.pretty:R_0805_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEF45BA)) + (comp (ref R4) + (value 10k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA5AE90)) + (comp (ref R6) + (value 10k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA5BA50)) + (comp (ref R8) + (value 10k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA5BCFF)) + (comp (ref C4) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part C-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA120D2)) + (comp (ref C2) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part C-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5FA11F4D)) + (comp (ref C1) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part C-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5C5D51AF)) + (comp (ref U3) + (value STM32F072CBTx) + (footprint Package_QFP:LQFP-48_7x7mm_P0.5mm) + (datasheet http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00090510.pdf) + (libsource (lib MCU_ST_STM32F0) (part STM32F072CBTx) (description "ARM Cortex-M0 MCU, 128KB flash, 16KB RAM, 48MHz, 2-3.6V, 37 GPIO, LQFP-48")) + (sheetpath (names /) (tstamps /)) + (tstamp 5E89EA8D)) + (comp (ref Q7) + (value IRLML2502) + (footprint Package_TO_SOT_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5A668F1E)) + (comp (ref R24) + (value 220k) + (footprint Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 590A6DD4)) + (comp (ref R17) + (value 10k) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4074BF)) + (comp (ref R15) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4074C5)) + (comp (ref Q5) + (value IRLML2502) + (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4074CB)) + (comp (ref C12) + (value "100u, 25V") + (footprint Capacitor_THT:CP_Radial_D8.0mm_P3.50mm) + (libsource (lib stm32-rescue) (part CP-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4074E2)) + (comp (ref U4) + (value USBLC6-2SC6) + (footprint Package_TO_SOT_SMD:SOT-23-6) + (datasheet http://www2.st.com/resource/en/datasheet/CD00050750.pdf) + (libsource (lib Power_Protection) (part USBLC6-2SC6) (description "Bidirectional ESD Protection Diode, SOT-23-6")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F40EDD5)) + (comp (ref D2) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F44DDD5)) + (comp (ref D10) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F44DFC0)) + (comp (ref J4) + (value cooler3) + (footprint Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x02_Male) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4058DC)) + (comp (ref J6) + (value FAN) + (footprint Connector:FanPinHeader_1x04_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x04_Male) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F424D72)) + (comp (ref J3) + (value Buzzer) + (footprint Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x02_Male) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4397CD)) + (comp (ref R30) + (value 330) + (footprint Resistor_SMD:R_0603_1608Metric_Pad0.84x1.00mm_HandSolder) + (libsource (lib stm32-rescue) (part R-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F458865)) + (comp (ref R32) + (value 47k) + (footprint Resistor_SMD:R_0805_2012Metric_Pad1.15x1.50mm_HandSolder) + (libsource (lib stm32-rescue) (part R-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F45886D)) + (comp (ref K1) + (value SRD-12VDC) + (footprint Relay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_C) + (libsource (lib stm32-rescue) (part G5LE-1-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F458873)) + (comp (ref Q6) + (value IRLML2502) + (footprint Package_TO_SOT_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-socket-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F458885)) + (comp (ref D9) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F45888F)) + (comp (ref D5) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F48E038)) + (comp (ref R19) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4CEB3C)) + (comp (ref R21) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4CF586)) + (comp (ref D6) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4E7DE3)) + (comp (ref R13) + (value 10k) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F506974)) + (comp (ref R10) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F50697A)) + (comp (ref Q2) + (value IRLML2502) + (footprint TO_SOT_Packages_SMD:SOT-23_Handsoldering) + (libsource (lib stm32-rescue) (part Q_NMOS_GSD-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F506980)) + (comp (ref C10) + (value "100u, 25V") + (footprint Capacitor_THT:CP_Radial_D8.0mm_P3.50mm) + (libsource (lib stm32-rescue) (part CP-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F50698F)) + (comp (ref J5) + (value FAN) + (footprint Connector:FanPinHeader_1x04_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x04_Male) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F5069A0)) + (comp (ref D4) + (value 1N5819) + (footprint Diode_SMD:D_SOD-323_HandSoldering) + (libsource (lib Device) (part D_Schottky) (description "Schottky diode")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F5069A8)) + (comp (ref R18) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F5069B5)) + (comp (ref R20) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F5069BB)) + (comp (ref J8) + (value MKDS) + (footprint TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x02_Female) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F6401DC)) + (comp (ref J9) + (value MKDS) + (footprint TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal) + (datasheet ~) + (libsource (lib Connector) (part Conn_01x02_Female) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F640927)) + (comp (ref SW1) + (value SW_Push) + (footprint Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F40AE40)) + (comp (ref SW2) + (value SW_Push) + (footprint Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical) + (datasheet ~) + (libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F40BE17)) + (comp (ref R34) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F4227FB)) + (comp (ref C19) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F43976C)) + (comp (ref C20) + (value 0.1) + (footprint Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F43A352)) + (comp (ref R35) + (value 510) + (footprint Resistors_SMD.pretty:R_0603_HandSoldering) + (libsource (lib stm32-rescue) (part R-Chiller_control-rescue) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5F423117))) + (libparts + (libpart (lib Connector) (part Conn_01x02_Female) + (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_1x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x02_Female)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)))) + (libpart (lib Connector) (part Conn_01x02_Male) + (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_1x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x02_Male)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)))) + (libpart (lib Connector) (part Conn_01x04_Female) + (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_1x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x04_Female)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)) + (pin (num 3) (name Pin_3) (type passive)) + (pin (num 4) (name Pin_4) (type passive)))) + (libpart (lib Connector) (part Conn_01x04_Male) + (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_1x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x04_Male)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)) + (pin (num 3) (name Pin_3) (type passive)) + (pin (num 4) (name Pin_4) (type passive)))) + (libpart (lib Connector) (part TestPoint) + (description "test point") + (docs ~) + (footprints + (fp Pin*) + (fp Test*)) + (fields + (field (name Reference) TP) + (field (name Value) TestPoint)) + (pins + (pin (num 1) (name 1) (type passive)))) + (libpart (lib Connector) (part USB_B) + (description "USB Type B connector") + (docs " ~") + (footprints + (fp USB*)) + (fields + (field (name Reference) J) + (field (name Value) USB_B)) + (pins + (pin (num 1) (name VBUS) (type power_out)) + (pin (num 2) (name D-) (type passive)) + (pin (num 3) (name D+) (type passive)) + (pin (num 4) (name GND) (type power_out)) + (pin (num 5) (name Shield) (type passive)))) + (libpart (lib Connector_Generic) (part Conn_01x01) + (description "Generic connector, single row, 01x01, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x01)) + (pins + (pin (num 1) (name Pin_1) (type passive)))) + (libpart (lib Connector_Generic) (part Conn_02x04_Odd_Even) + (description "Generic connector, double row, 02x04, odd/even pin numbering scheme (row 1 odd numbers, row 2 even numbers), script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_2x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_02x04_Odd_Even)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)) + (pin (num 3) (name Pin_3) (type passive)) + (pin (num 4) (name Pin_4) (type passive)) + (pin (num 5) (name Pin_5) (type passive)) + (pin (num 6) (name Pin_6) (type passive)) + (pin (num 7) (name Pin_7) (type passive)) + (pin (num 8) (name Pin_8) (type passive)))) + (libpart (lib Device) (part C) + (description "Unpolarized capacitor") + (docs ~) + (footprints + (fp C_*)) + (fields + (field (name Reference) C) + (field (name Value) C)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib Device) (part CP) + (description "Polarized capacitor") + (docs ~) + (footprints + (fp CP_*)) + (fields + (field (name Reference) C) + (field (name Value) CP)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib Device) (part D_Schottky) + (description "Schottky diode") + (docs ~) + (footprints + (fp TO-???*) + (fp *_Diode_*) + (fp *SingleDiode*) + (fp D_*)) + (fields + (field (name Reference) D) + (field (name Value) D_Schottky)) + (pins + (pin (num 1) (name K) (type passive)) + (pin (num 2) (name A) (type passive)))) + (libpart (lib Device) (part D_Zener) + (description "Zener diode") + (docs ~) + (footprints + (fp TO-???*) + (fp *_Diode_*) + (fp *SingleDiode*) + (fp D_*)) + (fields + (field (name Reference) D) + (field (name Value) D_Zener)) + (pins + (pin (num 1) (name K) (type passive)) + (pin (num 2) (name A) (type passive)))) + (libpart (lib Device) (part Q_PMOS_GSD) + (description "P-MOSFET transistor, gate/source/drain") + (docs ~) + (fields + (field (name Reference) Q) + (field (name Value) Q_PMOS_GSD)) + (pins + (pin (num 1) (name G) (type input)) + (pin (num 2) (name S) (type passive)) + (pin (num 3) (name D) (type passive)))) + (libpart (lib Device) (part R) + (description Resistor) + (docs ~) + (footprints + (fp R_*)) + (fields + (field (name Reference) R) + (field (name Value) R)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib MCU_ST_STM32F0) (part STM32F072C8Tx) + (aliases + (alias STM32F072CBTx)) + (description "ARM Cortex-M0 MCU, 64KB flash, 16KB RAM, 48MHz, 2-3.6V, 37 GPIO, LQFP-48") + (docs http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00090510.pdf) + (footprints + (fp LQFP*7x7mm*P0.5mm*)) + (fields + (field (name Reference) U) + (field (name Value) STM32F072C8Tx) + (field (name Footprint) Package_QFP:LQFP-48_7x7mm_P0.5mm)) + (pins + (pin (num 1) (name VBAT) (type power_in)) + (pin (num 2) (name PC13) (type BiDi)) + (pin (num 3) (name PC14) (type BiDi)) + (pin (num 4) (name PC15) (type BiDi)) + (pin (num 5) (name PF0) (type input)) + (pin (num 6) (name PF1) (type input)) + (pin (num 7) (name NRST) (type input)) + (pin (num 8) (name VSSA) (type power_in)) + (pin (num 9) (name VDDA) (type power_in)) + (pin (num 10) (name PA0) (type BiDi)) + (pin (num 11) (name PA1) (type BiDi)) + (pin (num 12) (name PA2) (type BiDi)) + (pin (num 13) (name PA3) (type BiDi)) + (pin (num 14) (name PA4) (type BiDi)) + (pin (num 15) (name PA5) (type BiDi)) + (pin (num 16) (name PA6) (type BiDi)) + (pin (num 17) (name PA7) (type BiDi)) + (pin (num 18) (name PB0) (type BiDi)) + (pin (num 19) (name PB1) (type BiDi)) + (pin (num 20) (name PB2) (type BiDi)) + (pin (num 21) (name PB10) (type BiDi)) + (pin (num 22) (name PB11) (type BiDi)) + (pin (num 23) (name VSS) (type power_in)) + (pin (num 24) (name VDD) (type power_in)) + (pin (num 25) (name PB12) (type BiDi)) + (pin (num 26) (name PB13) (type BiDi)) + (pin (num 27) (name PB14) (type BiDi)) + (pin (num 28) (name PB15) (type BiDi)) + (pin (num 29) (name PA8) (type BiDi)) + (pin (num 30) (name PA9) (type BiDi)) + (pin (num 31) (name PA10) (type BiDi)) + (pin (num 32) (name PA11) (type BiDi)) + (pin (num 33) (name PA12) (type BiDi)) + (pin (num 34) (name PA13) (type BiDi)) + (pin (num 35) (name VSS) (type power_in)) + (pin (num 36) (name VDDIO2) (type power_in)) + (pin (num 37) (name PA14) (type BiDi)) + (pin (num 38) (name PA15) (type BiDi)) + (pin (num 39) (name PB3) (type BiDi)) + (pin (num 40) (name PB4) (type BiDi)) + (pin (num 41) (name PB5) (type BiDi)) + (pin (num 42) (name PB6) (type BiDi)) + (pin (num 43) (name PB7) (type BiDi)) + (pin (num 44) (name BOOT0) (type input)) + (pin (num 45) (name PB8) (type BiDi)) + (pin (num 46) (name PB9) (type BiDi)) + (pin (num 47) (name VSS) (type power_in)) + (pin (num 48) (name VDD) (type power_in)))) + (libpart (lib Power_Protection) (part USBLC6-2SC6) + (description "Bidirectional ESD Protection Diode, SOT-23-6") + (docs http://www2.st.com/resource/en/datasheet/CD00050750.pdf) + (footprints + (fp SOT?23*)) + (fields + (field (name Reference) U) + (field (name Value) USBLC6-2SC6) + (field (name Footprint) Package_TO_SOT_SMD:SOT-23-6)) + (pins + (pin (num 1) (name IO1) (type passive)) + (pin (num 2) (name GND) (type passive)) + (pin (num 3) (name IO2) (type passive)) + (pin (num 4) (name IO2) (type passive)) + (pin (num 5) (name VBUS) (type passive)) + (pin (num 6) (name IO1) (type passive)))) + (libpart (lib Regulator_Linear) (part L7805) + (aliases + (alias L7806) + (alias L7808) + (alias L7885) + (alias L7809) + (alias L7812) + (alias L7815) + (alias L7818) + (alias L7824)) + (description "Positive 1.5A 35V Linear Regulator, Fixed Output 5V, TO-220/TO-263/TO-252") + (docs http://www.st.com/content/ccc/resource/technical/document/datasheet/41/4f/b3/b0/12/d4/47/88/CD00000444.pdf/files/CD00000444.pdf/jcr:content/translations/en.CD00000444.pdf) + (footprints + (fp TO?252*) + (fp TO?263*) + (fp TO?220*)) + (fields + (field (name Reference) U) + (field (name Value) L7805)) + (pins + (pin (num 1) (name IN) (type power_in)) + (pin (num 2) (name GND) (type power_in)) + (pin (num 3) (name OUT) (type power_out)))) + (libpart (lib Regulator_Linear) (part LM1117-1.8) + (aliases + (alias LM1117-2.5) + (alias LM1117-3.3) + (alias LM1117-5.0) + (alias TLV1117-15) + (alias TLV1117-18) + (alias TLV1117-25) + (alias TLV1117-33) + (alias TLV1117-50)) + (description "800mA Low-Dropout Linear Regulator, 1.8V fixed output, TO-220/TO-252/TO-263/SOT-223") + (docs http://www.ti.com/lit/ds/symlink/lm1117.pdf) + (footprints + (fp SOT?223*) + (fp TO?263*) + (fp TO?252*) + (fp TO?220*)) + (fields + (field (name Reference) U) + (field (name Value) LM1117-1.8)) + (pins + (pin (num 1) (name GND) (type power_in)) + (pin (num 2) (name VO) (type power_out)) + (pin (num 3) (name VI) (type power_in)))) + (libpart (lib Switch) (part SW_Push) + (description "Push button switch, generic, two pins") + (docs ~) + (fields + (field (name Reference) SW) + (field (name Value) SW_Push)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)))) + (libpart (lib stm32-rescue) (part C-Chiller_control-rescue) + (footprints + (fp C_*)) + (fields + (field (name Reference) C) + (field (name Value) C-Chiller_control-rescue)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib stm32-rescue) (part CP-Chiller_control-rescue) + (footprints + (fp CP_*)) + (fields + (field (name Reference) C) + (field (name Value) CP-Chiller_control-rescue)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib stm32-rescue) (part Conn_01x02-Chiller_control-rescue) + (footprints + (fp Connector*:*_??x*mm*) + (fp Connector*:*1x??x*mm*) + (fp Pin?Header?Straight?1X*) + (fp Pin?Header?Angled?1X*) + (fp Socket?Strip?Straight?1X*) + (fp Socket?Strip?Angled?1X*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x02-Chiller_control-rescue)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)))) + (libpart (lib stm32-rescue) (part G5LE-1-socket-rescue) + (footprints + (fp Relay*SPDT*Omron*G5LE?1*)) + (fields + (field (name Reference) K) + (field (name Value) G5LE-1-socket-rescue) + (field (name Footprint) Relay_THT:Relay_SPDT_OMRON-G5LE-1)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)) + (pin (num 3) (name ~) (type passive)) + (pin (num 4) (name ~) (type passive)) + (pin (num 5) (name ~) (type passive)))) + (libpart (lib stm32-rescue) (part L-Chiller_control-rescue) + (footprints + (fp Choke_*) + (fp *Coil*) + (fp Inductor_*) + (fp L_*)) + (fields + (field (name Reference) L) + (field (name Value) L-Chiller_control-rescue)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)))) + (libpart (lib stm32-rescue) (part Q_NMOS_GSD-Chiller_control-rescue) + (fields + (field (name Reference) Q) + (field (name Value) Q_NMOS_GSD-Chiller_control-rescue)) + (pins + (pin (num 1) (name G) (type input)) + (pin (num 2) (name S) (type passive)) + (pin (num 3) (name D) (type passive)))) + (libpart (lib stm32-rescue) (part Q_NMOS_GSD-socket-rescue) + (fields + (field (name Reference) Q) + (field (name Value) Q_NMOS_GSD-socket-rescue)) + (pins + (pin (num 1) (name G) (type input)) + (pin (num 2) (name S) (type passive)) + (pin (num 3) (name D) (type passive)))) + (libpart (lib stm32-rescue) (part R-Chiller_control-rescue) + (footprints + (fp R_*) + (fp R_*)) + (fields + (field (name Reference) R) + (field (name Value) R-Chiller_control-rescue)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib stm32-rescue) (part R-socket-rescue) + (footprints + (fp R_*) + (fp R_*)) + (fields + (field (name Reference) R) + (field (name Value) R-socket-rescue)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive))))) + (libraries + (library (logical Connector) + (uri /usr/share/kicad/library/Connector.lib)) + (library (logical Connector_Generic) + (uri /usr/share/kicad/library/Connector_Generic.lib)) + (library (logical Device) + (uri /usr/share/kicad/library/Device.lib)) + (library (logical MCU_ST_STM32F0) + (uri /usr/share/kicad/library/MCU_ST_STM32F0.lib)) + (library (logical Power_Protection) + (uri /usr/share/kicad/library/Power_Protection.lib)) + (library (logical Regulator_Linear) + (uri /usr/share/kicad/library/Regulator_Linear.lib)) + (library (logical Switch) + (uri /usr/share/kicad/library/Switch.lib)) + (library (logical stm32-rescue) + (uri /Big/Data/00__Electronics/STM32/F0-nolib/00_Socket_fans/kicad/stm32-rescue.lib))) + (nets + (net (code 1) (name +12V) + (node (ref D6) (pin 1)) + (node (ref J4) (pin 1)) + (node (ref J3) (pin 2)) + (node (ref K1) (pin 2)) + (node (ref J6) (pin 2)) + (node (ref C11) (pin 1)) + (node (ref C10) (pin 1)) + (node (ref D4) (pin 1)) + (node (ref R24) (pin 1)) + (node (ref C12) (pin 1)) + (node (ref J5) (pin 2)) + (node (ref D10) (pin 2)) + (node (ref U2) (pin 1)) + (node (ref C3) (pin 1)) + (node (ref D5) (pin 1)) + (node (ref D9) (pin 2)) + (node (ref D3) (pin 1)) + (node (ref K2) (pin 2)) + (node (ref Q1) (pin 2))) + (net (code 2) (name "Net-(Q5-Pad1)") + (node (ref Q5) (pin 1)) + (node (ref R15) (pin 1))) + (net (code 3) (name "Net-(C12-Pad2)") + (node (ref D6) (pin 2)) + (node (ref C12) (pin 2)) + (node (ref Q5) (pin 3)) + (node (ref J4) (pin 2))) + (net (code 4) (name GND) + (node (ref R22) (pin 2)) + (node (ref D8) (pin 2)) + (node (ref C6) (pin 2)) + (node (ref C19) (pin 2)) + (node (ref C14) (pin 2)) + (node (ref C16) (pin 2)) + (node (ref J7) (pin 4)) + (node (ref R1) (pin 2)) + (node (ref C18) (pin 2)) + (node (ref SW1) (pin 1)) + (node (ref SW2) (pin 1)) + (node (ref C7) (pin 2)) + (node (ref R32) (pin 2)) + (node (ref Q6) (pin 2)) + (node (ref R13) (pin 1)) + (node (ref Q2) (pin 2)) + (node (ref Q4) (pin 2)) + (node (ref R16) (pin 1)) + (node (ref R3) (pin 1)) + (node (ref R5) (pin 1)) + (node (ref R7) (pin 1)) + (node (ref R9) (pin 1)) + (node (ref C13) (pin 1)) + (node (ref R33) (pin 2)) + (node (ref Q3) (pin 2)) + (node (ref R14) (pin 1)) + (node (ref J1) (pin 2)) + (node (ref C17) (pin 1)) + (node (ref C15) (pin 1)) + (node (ref P1) (pin 5)) + (node (ref P1) (pin 4)) + (node (ref U1) (pin 1)) + (node (ref R27) (pin 2)) + (node (ref R25) (pin 2)) + (node (ref C5) (pin 1)) + (node (ref C3) (pin 2)) + (node (ref U2) (pin 2)) + (node (ref C8) (pin 2)) + (node (ref C9) (pin 2)) + (node (ref D7) (pin 2)) + (node (ref C4) (pin 1)) + (node (ref R17) (pin 1)) + (node (ref Q5) (pin 2)) + (node (ref C2) (pin 1)) + (node (ref U3) (pin 8)) + (node (ref C1) (pin 1)) + (node (ref U3) (pin 23)) + (node (ref U3) (pin 35)) + (node (ref Q7) (pin 2)) + (node (ref U4) (pin 2)) + (node (ref U3) (pin 47)) + (node (ref C20) (pin 2))) + (net (code 5) (name "Net-(J1-Pad1)") + (node (ref J1) (pin 1)) + (node (ref Q1) (pin 3))) + (net (code 6) (name "Net-(Q7-Pad1)") + (node (ref R33) (pin 1)) + (node (ref R31) (pin 1)) + (node (ref Q7) (pin 1))) + (net (code 7) (name "Net-(D10-Pad1)") + (node (ref K2) (pin 5)) + (node (ref Q7) (pin 3)) + (node (ref D10) (pin 1))) + (net (code 8) (name "Net-(J6-Pad4)") + (node (ref J6) (pin 4)) + (node (ref R21) (pin 2))) + (net (code 9) (name "Net-(J3-Pad1)") + (node (ref J3) (pin 1)) + (node (ref Q4) (pin 3))) + (net (code 10) (name "Net-(Q6-Pad1)") + (node (ref R32) (pin 1)) + (node (ref Q6) (pin 1)) + (node (ref R30) (pin 1))) + (net (code 11) (name /Relay1) + (node (ref U3) (pin 20)) + (node (ref R30) (pin 2))) + (net (code 12) (name "Net-(D9-Pad1)") + (node (ref Q6) (pin 3)) + (node (ref K1) (pin 5)) + (node (ref D9) (pin 1))) + (net (code 13) (name "Net-(P1-Pad3)") + (node (ref U4) (pin 3)) + (node (ref P1) (pin 3))) + (net (code 14) (name "Net-(R29-Pad1)") + (node (ref U4) (pin 1)) + (node (ref R29) (pin 1))) + (net (code 15) (name "Net-(P1-Pad2)") + (node (ref U4) (pin 4)) + (node (ref P1) (pin 2))) + (net (code 16) (name "Net-(R28-Pad1)") + (node (ref U4) (pin 6)) + (node (ref R28) (pin 1))) + (net (code 17) (name /BOOT0) + (node (ref J7) (pin 2)) + (node (ref R22) (pin 1)) + (node (ref U3) (pin 44))) + (net (code 18) (name /ADC0) + (node (ref R2) (pin 2)) + (node (ref C1) (pin 2)) + (node (ref U3) (pin 10))) + (net (code 19) (name /ADC1) + (node (ref C2) (pin 2)) + (node (ref U3) (pin 11)) + (node (ref R4) (pin 2))) + (net (code 20) (name /TIM1_CH3) + (node (ref R15) (pin 2)) + (node (ref U3) (pin 31)) + (node (ref R17) (pin 2))) + (net (code 21) (name "Net-(U3-Pad4)") + (node (ref U3) (pin 4))) + (net (code 22) (name "Net-(U3-Pad41)") + (node (ref U3) (pin 41))) + (net (code 23) (name "Net-(U3-Pad42)") + (node (ref U3) (pin 42))) + (net (code 24) (name "Net-(U3-Pad43)") + (node (ref U3) (pin 43))) + (net (code 25) (name "Net-(U3-Pad45)") + (node (ref U3) (pin 45))) + (net (code 26) (name "Net-(U3-Pad46)") + (node (ref U3) (pin 46))) + (net (code 27) (name "Net-(U3-Pad2)") + (node (ref U3) (pin 2))) + (net (code 28) (name "Net-(U3-Pad3)") + (node (ref U3) (pin 3))) + (net (code 29) (name "Net-(U3-Pad28)") + (node (ref U3) (pin 28))) + (net (code 30) (name "Net-(U3-Pad5)") + (node (ref U3) (pin 5))) + (net (code 31) (name "Net-(U3-Pad6)") + (node (ref U3) (pin 6))) + (net (code 32) (name /TIM14_CH1) + (node (ref U3) (pin 17)) + (node (ref R18) (pin 1))) + (net (code 33) (name "Net-(R28-Pad2)") + (node (ref U3) (pin 32)) + (node (ref R28) (pin 2))) + (net (code 34) (name "Net-(U3-Pad34)") + (node (ref U3) (pin 34))) + (net (code 35) (name "Net-(U3-Pad37)") + (node (ref U3) (pin 37))) + (net (code 36) (name "Net-(U3-Pad38)") + (node (ref U3) (pin 38))) + (net (code 37) (name /ADC2) + (node (ref C4) (pin 2)) + (node (ref R6) (pin 2)) + (node (ref U3) (pin 12))) + (net (code 38) (name /ADC3) + (node (ref C5) (pin 2)) + (node (ref R8) (pin 2)) + (node (ref U3) (pin 13))) + (net (code 39) (name /AIN0) + (node (ref D7) (pin 1)) + (node (ref C14) (pin 1)) + (node (ref U3) (pin 14)) + (node (ref R25) (pin 1)) + (node (ref R24) (pin 2))) + (net (code 40) (name /AIN1) + (node (ref C16) (pin 1)) + (node (ref R27) (pin 1)) + (node (ref R26) (pin 2)) + (node (ref D8) (pin 1)) + (node (ref U3) (pin 15))) + (net (code 41) (name /TIM3_CH1) + (node (ref R19) (pin 1)) + (node (ref U3) (pin 16))) + (net (code 42) (name /TIM1_CH1) + (node (ref R21) (pin 1)) + (node (ref U3) (pin 29))) + (net (code 43) (name /TIM1_CH2) + (node (ref U3) (pin 30)) + (node (ref R20) (pin 1))) + (net (code 44) (name /Buzzer) + (node (ref U3) (pin 18)) + (node (ref R16) (pin 2)) + (node (ref R12) (pin 2))) + (net (code 45) (name /Relay0) + (node (ref R31) (pin 2)) + (node (ref U3) (pin 19))) + (net (code 46) (name /Cooler1) + (node (ref R10) (pin 2)) + (node (ref U3) (pin 22)) + (node (ref R13) (pin 2))) + (net (code 47) (name "Net-(U3-Pad25)") + (node (ref U3) (pin 25))) + (net (code 48) (name "Net-(U3-Pad26)") + (node (ref U3) (pin 26))) + (net (code 49) (name "Net-(U3-Pad27)") + (node (ref U3) (pin 27))) + (net (code 50) (name "Net-(J8-Pad1)") + (node (ref K1) (pin 1)) + (node (ref J8) (pin 1))) + (net (code 51) (name "Net-(J8-Pad2)") + (node (ref K1) (pin 3)) + (node (ref J8) (pin 2))) + (net (code 52) (name "Net-(J9-Pad2)") + (node (ref K2) (pin 3)) + (node (ref J9) (pin 2))) + (net (code 53) (name "Net-(J9-Pad1)") + (node (ref K2) (pin 1)) + (node (ref J9) (pin 1))) + (net (code 54) (name "Net-(J5-Pad3)") + (node (ref R18) (pin 2)) + (node (ref J5) (pin 3))) + (net (code 55) (name "Net-(J5-Pad4)") + (node (ref R20) (pin 2)) + (node (ref J5) (pin 4))) + (net (code 56) (name "Net-(C20-Pad1)") + (node (ref SW2) (pin 2)) + (node (ref C20) (pin 1)) + (node (ref R35) (pin 2))) + (net (code 57) (name "Net-(R35-Pad1)") + (node (ref U3) (pin 40)) + (node (ref R35) (pin 1))) + (net (code 58) (name "Net-(C19-Pad1)") + (node (ref SW1) (pin 2)) + (node (ref R34) (pin 2)) + (node (ref C19) (pin 1))) + (net (code 59) (name "Net-(K1-Pad4)") + (node (ref K1) (pin 4))) + (net (code 60) (name "Net-(K2-Pad4)") + (node (ref K2) (pin 4))) + (net (code 61) (name "Net-(P5-Pad1)") + (node (ref P5) (pin 1))) + (net (code 62) (name "Net-(P4-Pad1)") + (node (ref P4) (pin 1))) + (net (code 63) (name "Net-(P2-Pad1)") + (node (ref P2) (pin 1))) + (net (code 64) (name "Net-(P3-Pad1)") + (node (ref P3) (pin 1))) + (net (code 65) (name "Net-(R34-Pad1)") + (node (ref U3) (pin 39)) + (node (ref R34) (pin 1))) + (net (code 66) (name /Cooler0) + (node (ref R14) (pin 2)) + (node (ref R11) (pin 2)) + (node (ref U3) (pin 21))) + (net (code 67) (name "Net-(J6-Pad3)") + (node (ref J6) (pin 3)) + (node (ref R19) (pin 2))) + (net (code 68) (name "Net-(C10-Pad2)") + (node (ref C10) (pin 2)) + (node (ref J5) (pin 1)) + (node (ref Q2) (pin 3)) + (node (ref D4) (pin 2))) + (net (code 69) (name "Net-(Q2-Pad1)") + (node (ref Q2) (pin 1)) + (node (ref R10) (pin 1))) + (net (code 70) (name /NRST) + (node (ref U3) (pin 7)) + (node (ref J7) (pin 3))) + (net (code 71) (name +5V) + (node (ref D2) (pin 1)) + (node (ref TP1) (pin 1)) + (node (ref D1) (pin 1)) + (node (ref U1) (pin 3)) + (node (ref R26) (pin 1))) + (net (code 72) (name /5Vin) + (node (ref C9) (pin 1)) + (node (ref C8) (pin 1)) + (node (ref D1) (pin 2)) + (node (ref U2) (pin 3))) + (net (code 73) (name "Net-(D3-Pad2)") + (node (ref Q1) (pin 1)) + (node (ref R1) (pin 1)) + (node (ref D3) (pin 2))) + (net (code 74) (name +3V3) + (node (ref U3) (pin 48)) + (node (ref U3) (pin 36)) + (node (ref U3) (pin 24)) + (node (ref U3) (pin 1)) + (node (ref L1) (pin 1)) + (node (ref C7) (pin 1)) + (node (ref J2) (pin 1)) + (node (ref R23) (pin 2)) + (node (ref J2) (pin 5)) + (node (ref J2) (pin 3)) + (node (ref J2) (pin 7)) + (node (ref C13) (pin 2)) + (node (ref U1) (pin 2)) + (node (ref C15) (pin 2)) + (node (ref C17) (pin 2)) + (node (ref C6) (pin 1)) + (node (ref TP2) (pin 1))) + (net (code 75) (name "Net-(J7-Pad1)") + (node (ref R23) (pin 1)) + (node (ref J7) (pin 1))) + (net (code 76) (name /5Vusb) + (node (ref U4) (pin 5)) + (node (ref P1) (pin 1)) + (node (ref D2) (pin 2))) + (net (code 77) (name "Net-(R29-Pad2)") + (node (ref R29) (pin 2)) + (node (ref U3) (pin 33))) + (net (code 78) (name "Net-(J2-Pad2)") + (node (ref R9) (pin 2)) + (node (ref J2) (pin 2)) + (node (ref R8) (pin 1))) + (net (code 79) (name "Net-(J2-Pad4)") + (node (ref J2) (pin 4)) + (node (ref R7) (pin 2)) + (node (ref R6) (pin 1))) + (net (code 80) (name "Net-(J2-Pad8)") + (node (ref J2) (pin 8)) + (node (ref R2) (pin 1)) + (node (ref R3) (pin 2))) + (net (code 81) (name "Net-(J2-Pad6)") + (node (ref R4) (pin 1)) + (node (ref J2) (pin 6)) + (node (ref R5) (pin 2))) + (net (code 82) (name "Net-(C11-Pad2)") + (node (ref Q3) (pin 3)) + (node (ref J6) (pin 1)) + (node (ref C11) (pin 2)) + (node (ref D5) (pin 2))) + (net (code 83) (name "Net-(Q4-Pad1)") + (node (ref R12) (pin 1)) + (node (ref Q4) (pin 1))) + (net (code 84) (name "Net-(Q3-Pad1)") + (node (ref R11) (pin 1)) + (node (ref Q3) (pin 1))) + (net (code 85) (name "Net-(C18-Pad1)") + (node (ref C18) (pin 1)) + (node (ref L1) (pin 2)) + (node (ref U3) (pin 9))))) \ No newline at end of file diff --git a/F0-nolib/Socket_fans/kicad/stm32.pro b/F0-nolib/Socket_fans/kicad/stm32.pro new file mode 100644 index 0000000..b5f6402 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32.pro @@ -0,0 +1,276 @@ +update=Пн 03 фев 2020 17:18:45 +version=1 +last_client=kicad +[cvpcb] +version=1 +NetIExt=net +[general] +version=1 +[eeschema] +version=1 +LibDir= +[schematic_editor] +version=1 +PageLayoutDescrFile= +PlotDirectoryName= +SubpartIdSeparator=46 +SubpartFirstId=49 +NetFmtName=Pcbnew +SpiceAjustPassiveValues=0 +LabSize=50 +ERC_TestSimilarLabels=1 +[pcbnew] +version=1 +PageLayoutDescrFile= +LastNetListRead=stm32.net +CopperLayerCount=2 +BoardThickness=2.5 +AllowMicroVias=0 +AllowBlindVias=0 +RequireCourtyardDefinitions=0 +ProhibitOverlappingCourtyards=1 +MinTrackWidth=0.2 +MinViaDiameter=0.7999999999999999 +MinViaDrill=0.5 +MinMicroViaDiameter=0.2 +MinMicroViaDrill=0.09999999999999999 +MinHoleToHole=0.25 +TrackWidth1=0.2 +TrackWidth2=0.2 +TrackWidth3=0.3 +TrackWidth4=0.5 +TrackWidth5=1 +TrackWidth6=2 +ViaDiameter1=1 +ViaDrill1=0.6 +ViaDiameter2=1 +ViaDrill2=0.6 +ViaDiameter3=1.5 +ViaDrill3=0.8 +dPairWidth1=0.2 +dPairGap1=0.25 +dPairViaGap1=0.25 +SilkLineWidth=0.15 +SilkTextSizeV=1 +SilkTextSizeH=1 +SilkTextSizeThickness=0.15 +SilkTextItalic=0 +SilkTextUpright=1 +CopperLineWidth=0.2 +CopperTextSizeV=1.5 +CopperTextSizeH=1.5 +CopperTextThickness=0.3 +CopperTextItalic=0 +CopperTextUpright=1 +EdgeCutLineWidth=0.15 +CourtyardLineWidth=0.05 +OthersLineWidth=0.15 +OthersTextSizeV=1 +OthersTextSizeH=1 +OthersTextSizeThickness=0.15 +OthersTextItalic=0 +OthersTextUpright=1 +SolderMaskClearance=0.2 +SolderMaskMinWidth=0 +SolderPasteClearance=0 +SolderPasteRatio=-0 +[pcbnew/Layer.F.Cu] +Name=F.Cu +Type=0 +Enabled=1 +[pcbnew/Layer.In1.Cu] +Name=In1.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In2.Cu] +Name=In2.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In3.Cu] +Name=In3.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In4.Cu] +Name=In4.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In5.Cu] +Name=In5.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In6.Cu] +Name=In6.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In7.Cu] +Name=In7.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In8.Cu] +Name=In8.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In9.Cu] +Name=In9.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In10.Cu] +Name=In10.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In11.Cu] +Name=In11.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In12.Cu] +Name=In12.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In13.Cu] +Name=In13.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In14.Cu] +Name=In14.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In15.Cu] +Name=In15.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In16.Cu] +Name=In16.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In17.Cu] +Name=In17.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In18.Cu] +Name=In18.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In19.Cu] +Name=In19.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In20.Cu] +Name=In20.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In21.Cu] +Name=In21.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In22.Cu] +Name=In22.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In23.Cu] +Name=In23.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In24.Cu] +Name=In24.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In25.Cu] +Name=In25.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In26.Cu] +Name=In26.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In27.Cu] +Name=In27.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In28.Cu] +Name=In28.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In29.Cu] +Name=In29.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.In30.Cu] +Name=In30.Cu +Type=0 +Enabled=0 +[pcbnew/Layer.B.Cu] +Name=B.Cu +Type=0 +Enabled=1 +[pcbnew/Layer.B.Adhes] +Enabled=1 +[pcbnew/Layer.F.Adhes] +Enabled=1 +[pcbnew/Layer.B.Paste] +Enabled=1 +[pcbnew/Layer.F.Paste] +Enabled=1 +[pcbnew/Layer.B.SilkS] +Enabled=1 +[pcbnew/Layer.F.SilkS] +Enabled=1 +[pcbnew/Layer.B.Mask] +Enabled=1 +[pcbnew/Layer.F.Mask] +Enabled=1 +[pcbnew/Layer.Dwgs.User] +Enabled=1 +[pcbnew/Layer.Cmts.User] +Enabled=1 +[pcbnew/Layer.Eco1.User] +Enabled=1 +[pcbnew/Layer.Eco2.User] +Enabled=1 +[pcbnew/Layer.Edge.Cuts] +Enabled=1 +[pcbnew/Layer.Margin] +Enabled=1 +[pcbnew/Layer.B.CrtYd] +Enabled=1 +[pcbnew/Layer.F.CrtYd] +Enabled=1 +[pcbnew/Layer.B.Fab] +Enabled=1 +[pcbnew/Layer.F.Fab] +Enabled=1 +[pcbnew/Layer.Rescue] +Enabled=0 +[pcbnew/Netclasses] +[pcbnew/Netclasses/Default] +Name=Default +Clearance=0.2 +TrackWidth=0.2 +ViaDiameter=1 +ViaDrill=0.6 +uViaDiameter=0.3 +uViaDrill=0.1 +dPairWidth=0.2 +dPairGap=0.25 +dPairViaGap=0.25 +[pcbnew/Netclasses/1] +Name=0.5 +Clearance=0.3 +TrackWidth=0.5 +ViaDiameter=1 +ViaDrill=0.6 +uViaDiameter=0.3 +uViaDrill=0.1 +dPairWidth=0.2 +dPairGap=0.25 +dPairViaGap=0.25 +[pcbnew/Netclasses/2] +Name=1 +Clearance=0.5 +TrackWidth=1 +ViaDiameter=1.5 +ViaDrill=0.8 +uViaDiameter=0.3 +uViaDrill=0.1 +dPairWidth=0.2 +dPairGap=0.25 +dPairViaGap=0.25 diff --git a/F0-nolib/Socket_fans/kicad/stm32.sch b/F0-nolib/Socket_fans/kicad/stm32.sch new file mode 100644 index 0000000..0fc8cc2 --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/stm32.sch @@ -0,0 +1,2161 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr A3 16535 11693 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L Device:C C13 +U 1 1 58C42D39 +P 6845 7340 +F 0 "C13" H 6870 7440 50 0000 L CNN +F 1 "0.1" H 6870 7240 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 6883 7190 50 0001 C CNN +F 3 "" H 6845 7340 50 0000 C CNN + 1 6845 7340 + 1 0 0 -1 +$EndComp +$Comp +L Regulator_Linear:LM1117-3.3 U1 +U 1 1 58C431FC +P 2010 2240 +F 0 "U1" H 2110 1990 50 0000 C CNN +F 1 "LM1117-3.3" H 2010 2490 50 0000 C CNN +F 2 "TO_SOT_Packages_SMD:SOT-223-3_TabPin2" H 2010 2240 50 0001 C CNN +F 3 "" H 2010 2240 50 0000 C CNN + 1 2010 2240 + 1 0 0 -1 +$EndComp +$Comp +L Connector:USB_B P1 +U 1 1 58C433D0 +P 9885 6555 +F 0 "P1" H 10045 6215 50 0000 C CNN +F 1 "USB_A" H 9885 6905 50 0000 C CNN +F 2 "Connectors_USB:USB_B_OST_USB-B1HSxx_Horizontal" V 9835 6455 50 0001 C CNN +F 3 "" V 9835 6455 50 0000 C CNN + 1 9885 6555 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR07 +U 1 1 5F490D2B +P 2010 2590 +F 0 "#PWR07" H 2010 2340 50 0001 C CNN +F 1 "GND" H 2010 2440 50 0001 C CNN +F 2 "" H 2010 2590 50 0000 C CNN +F 3 "" H 2010 2590 50 0000 C CNN + 1 2010 2590 + 1 0 0 -1 +$EndComp +$Comp +L power:+3.3V #PWR010 +U 1 1 5F490D2C +P 2570 2240 +F 0 "#PWR010" H 2570 2090 50 0001 C CNN +F 1 "+3.3V" H 2570 2380 50 0000 C CNN +F 2 "" H 2570 2240 50 0000 C CNN +F 3 "" H 2570 2240 50 0000 C CNN + 1 2570 2240 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C15 +U 1 1 590935EA +P 7145 7340 +F 0 "C15" H 7170 7440 50 0000 L CNN +F 1 "0.1" H 7170 7240 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 7183 7190 50 0001 C CNN +F 3 "" H 7145 7340 50 0000 C CNN + 1 7145 7340 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C17 +U 1 1 59093675 +P 7445 7340 +F 0 "C17" H 7470 7440 50 0000 L CNN +F 1 "0.1" H 7470 7240 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 7483 7190 50 0001 C CNN +F 3 "" H 7445 7340 50 0000 C CNN + 1 7445 7340 + 1 0 0 -1 +$EndComp +Text Notes 660 1940 0 60 ~ 0 +3.3V MCU power source +$Comp +L power:+3.3V #PWR028 +U 1 1 590A0C2D +P 7445 7490 +F 0 "#PWR028" H 7445 7340 50 0001 C CNN +F 1 "+3.3V" H 7445 7630 50 0000 C CNN +F 2 "" H 7445 7490 50 0000 C CNN +F 3 "" H 7445 7490 50 0000 C CNN + 1 7445 7490 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR024 +U 1 1 590A1958 +P 6495 7190 +F 0 "#PWR024" H 6495 6940 50 0001 C CNN +F 1 "GND" H 6495 7040 50 0001 C CNN +F 2 "" H 6495 7190 50 0000 C CNN +F 3 "" H 6495 7190 50 0000 C CNN + 1 6495 7190 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR030 +U 1 1 590A6FD0 +P 9085 7010 +F 0 "#PWR030" H 9085 6760 50 0001 C CNN +F 1 "GND" H 9085 6860 50 0001 C CNN +F 2 "" H 9085 7010 50 0000 C CNN +F 3 "" H 9085 7010 50 0000 C CNN + 1 9085 7010 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R25 +U 1 1 590A6DDA +P 6465 1395 +F 0 "R25" V 6545 1395 50 0000 C CNN +F 1 "56k" V 6465 1395 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 6395 1395 50 0001 C CNN +F 3 "" H 6465 1395 50 0000 C CNN + 1 6465 1395 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R26 +U 1 1 590A6F68 +P 7405 985 +F 0 "R26" V 7485 985 50 0000 C CNN +F 1 "47k" V 7405 985 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 7335 985 50 0001 C CNN +F 3 "" H 7405 985 50 0000 C CNN + 1 7405 985 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R27 +U 1 1 590A6F6E +P 7405 1385 +F 0 "R27" V 7485 1385 50 0000 C CNN +F 1 "47k" V 7405 1385 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 7335 1385 50 0001 C CNN +F 3 "" H 7405 1385 50 0000 C CNN + 1 7405 1385 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR023 +U 1 1 590A7717 +P 6465 1595 +F 0 "#PWR023" H 6465 1345 50 0001 C CNN +F 1 "GND" H 6465 1445 50 0001 C CNN +F 2 "" H 6465 1595 50 0000 C CNN +F 3 "" H 6465 1595 50 0000 C CNN + 1 6465 1595 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR027 +U 1 1 590A77FA +P 7405 1585 +F 0 "#PWR027" H 7405 1335 50 0001 C CNN +F 1 "GND" H 7405 1435 50 0001 C CNN +F 2 "" H 7405 1585 50 0000 C CNN +F 3 "" H 7405 1585 50 0000 C CNN + 1 7405 1585 + 1 0 0 -1 +$EndComp +Text Label 6815 1195 0 60 ~ 0 +AIN0 +Text Label 7755 1185 0 60 ~ 0 +AIN1 +Text Notes 6425 1935 0 60 ~ 0 +V12 = 12Vin/4.93 +Text Notes 7425 1935 0 60 ~ 0 +V5 = U5/2 +Text Notes 6175 635 0 60 ~ 0 +ADC block (voltage) +Text Notes 4905 645 0 60 ~ 0 +Boot, reset +Text Label 6585 4260 2 60 ~ 0 +NRST +Text Label 6585 4460 2 60 ~ 0 +BOOT0 +Text Label 5365 1255 2 60 ~ 0 +BOOT0 +$Comp +L power:GND #PWR035 +U 1 1 590CF25B +P 10205 6155 +F 0 "#PWR035" H 10205 5905 50 0001 C CNN +F 1 "GND" H 10205 6005 50 0000 C CNN +F 2 "" H 10205 6155 50 0000 C CNN +F 3 "" H 10205 6155 50 0000 C CNN + 1 10205 6155 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x01 P5 +U 1 1 59143415 +P 10975 8925 +F 0 "P5" H 10975 9025 50 0000 C CNN +F 1 "Hole" V 11075 8925 50 0000 C CNN +F 2 "MountingHole:MountingHole_3.2mm_M3" H 10975 8925 50 0001 C CNN +F 3 "" H 10975 8925 50 0000 C CNN + 1 10975 8925 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x01 P4 +U 1 1 5914456D +P 10950 9150 +F 0 "P4" H 10950 9250 50 0000 C CNN +F 1 "Hole" V 11050 9150 50 0000 C CNN +F 2 "MountingHole:MountingHole_3.2mm_M3" H 10950 9150 50 0001 C CNN +F 3 "" H 10950 9150 50 0000 C CNN + 1 10950 9150 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x01 P2 +U 1 1 591446F3 +P 10850 9450 +F 0 "P2" H 10850 9550 50 0000 C CNN +F 1 "Hole" V 10950 9450 50 0000 C CNN +F 2 "MountingHole:MountingHole_3.2mm_M3" H 10850 9450 50 0001 C CNN +F 3 "" H 10850 9450 50 0000 C CNN + 1 10850 9450 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x01 P3 +U 1 1 591446F9 +P 10850 9800 +F 0 "P3" H 10850 9900 50 0000 C CNN +F 1 "Hole" V 10950 9800 50 0000 C CNN +F 2 "MountingHole:MountingHole_3.2mm_M3" H 10850 9800 50 0001 C CNN +F 3 "" H 10850 9800 50 0000 C CNN + 1 10850 9800 + 1 0 0 -1 +$EndComp +$Comp +L Device:D_Zener D7 +U 1 1 59684468 +P 6715 1395 +F 0 "D7" H 6715 1495 50 0000 C CNN +F 1 "MM3Z4V7" H 6715 1295 50 0000 C CNN +F 2 "Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 6715 1395 50 0001 C CNN +F 3 "" H 6715 1395 50 0000 C CNN + 1 6715 1395 + 0 1 1 0 +$EndComp +$Comp +L Device:R R28 +U 1 1 5968E385 +P 8435 6410 +F 0 "R28" V 8515 6410 50 0000 C CNN +F 1 "22" V 8435 6410 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 8365 6410 50 0001 C CNN +F 3 "" H 8435 6410 50 0001 C CNN + 1 8435 6410 + 0 1 1 0 +$EndComp +$Comp +L Device:R R29 +U 1 1 5968E83B +P 8435 6610 +F 0 "R29" V 8515 6610 50 0000 C CNN +F 1 "22" V 8435 6610 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 8365 6610 50 0001 C CNN +F 3 "" H 8435 6610 50 0001 C CNN + 1 8435 6610 + 0 1 1 0 +$EndComp +Text Label 9085 6010 2 60 ~ 0 +5Vusb +Text Label 960 2490 2 60 ~ 0 +5Vusb +Wire Wire Line + 2010 2590 2010 2540 +Wire Wire Line + 7885 6460 8235 6460 +Wire Wire Line + 8235 6460 8235 6410 +Wire Wire Line + 8235 6610 8235 6560 +Wire Wire Line + 8235 6560 7885 6560 +Connection ~ 7145 7190 +Wire Wire Line + 7405 1135 7405 1185 +Wire Wire Line + 7405 1535 7405 1585 +Wire Wire Line + 6465 1145 6465 1195 +Wire Wire Line + 6465 1545 6465 1595 +Wire Wire Line + 6465 1195 6715 1195 +Connection ~ 6465 1195 +Wire Wire Line + 7405 1185 7655 1185 +Connection ~ 7405 1185 +Wire Notes Line + 6025 1985 6025 535 +Wire Wire Line + 7655 1235 7655 1185 +Connection ~ 7655 1185 +Wire Wire Line + 7405 1585 7655 1585 +Wire Wire Line + 7655 1585 7655 1535 +Wire Wire Line + 6465 1595 6715 1595 +Wire Wire Line + 6715 1595 6715 1545 +Wire Wire Line + 6715 1245 6715 1195 +Connection ~ 6715 1195 +Wire Wire Line + 8235 6410 8285 6410 +Wire Wire Line + 8285 6610 8235 6610 +Wire Wire Line + 1460 2490 1460 2240 +Wire Wire Line + 1310 2490 1460 2490 +Wire Wire Line + 1010 2490 960 2490 +Wire Wire Line + 6465 1195 6465 1245 +Wire Wire Line + 7405 1185 7405 1235 +Wire Wire Line + 7655 1185 7755 1185 +Wire Wire Line + 6495 7190 6845 7190 +Wire Wire Line + 7145 7190 7235 7190 +Wire Wire Line + 6845 7490 7145 7490 +Text Label 9585 6755 3 60 ~ 0 +5Vusb +Wire Wire Line + 10205 6155 9985 6155 +Wire Wire Line + 9985 6155 9885 6155 +Connection ~ 9985 6155 +Connection ~ 7445 7490 +Connection ~ 6845 7190 +Wire Wire Line + 6845 7190 7145 7190 +Connection ~ 7145 7490 +Wire Wire Line + 7145 7490 7445 7490 +Wire Wire Line + 7235 7060 7235 7190 +Connection ~ 7235 7060 +Connection ~ 7235 7190 +Wire Wire Line + 7235 7190 7445 7190 +Connection ~ 6465 1595 +$Comp +L Connector:TestPoint TP1 +U 1 1 5E5DD8CB +P 1460 2490 +F 0 "TP1" H 1310 2570 50 0000 L CNN +F 1 "TestPoint" H 1518 2517 50 0001 L CNN +F 2 "Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical" H 1660 2490 50 0001 C CNN +F 3 "~" H 1660 2490 50 0001 C CNN + 1 1460 2490 + -1 0 0 1 +$EndComp +$Comp +L Device:D_Schottky D1 +U 1 1 5E615086 +P 1160 2240 +F 0 "D1" H 1160 2140 50 0000 C CNN +F 1 "1N5819" H 1160 2330 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 1160 2240 50 0001 C CNN +F 3 "" H 1160 2240 50 0001 C CNN + 1 1160 2240 + -1 0 0 1 +$EndComp +Wire Notes Line + 650 2790 650 1830 +$Comp +L Connector:TestPoint TP2 +U 1 1 5E672E87 +P 2780 2240 +F 0 "TP2" H 2790 2450 50 0000 R CNN +F 1 "TestPoint" H 2838 2267 50 0001 L CNN +F 2 "Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical" H 2980 2240 50 0001 C CNN +F 3 "~" H 2980 2240 50 0001 C CNN + 1 2780 2240 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C6 +U 1 1 5E7836BE +P 2350 2390 +F 0 "C6" H 2375 2490 50 0000 L CNN +F 1 "0.1" H 2375 2290 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 2388 2240 50 0001 C CNN +F 3 "" H 2350 2390 50 0000 C CNN + 1 2350 2390 + 1 0 0 -1 +$EndComp +Wire Wire Line + 2310 2240 2350 2240 +$Comp +L Device:CP C7 +U 1 1 5E794E88 +P 2570 2390 +F 0 "C7" H 2688 2436 50 0000 L CNN +F 1 "47uF, 10V" H 2590 2290 50 0000 L CNN +F 2 "Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder" H 2608 2240 50 0001 C CNN +F 3 "~" H 2570 2390 50 0001 C CNN + 1 2570 2390 + 1 0 0 -1 +$EndComp +Wire Wire Line + 2570 2240 2350 2240 +Connection ~ 2570 2240 +Connection ~ 2350 2240 +Wire Wire Line + 2570 2240 2780 2240 +Wire Notes Line + 2980 2790 650 2790 +Wire Wire Line + 2570 2540 2350 2540 +Wire Wire Line + 2010 2540 2350 2540 +Connection ~ 2010 2540 +Connection ~ 2350 2540 +$Comp +L Device:D_Zener D8 +U 1 1 5E7D7999 +P 7655 1385 +F 0 "D8" H 7655 1485 50 0000 C CNN +F 1 "MM3Z4V7" H 7655 1285 50 0000 C CNN +F 2 "Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 7655 1385 50 0001 C CNN +F 3 "" H 7655 1385 50 0000 C CNN + 1 7655 1385 + 0 1 1 0 +$EndComp +Wire Notes Line + 6025 535 7985 535 +Wire Notes Line + 7985 535 7985 1985 +Wire Notes Line + 7985 1985 6025 1985 +Text Notes 8145 5860 0 60 ~ 0 +External 5V voltage control +Text Notes 8145 5765 0 60 ~ 0 +External 12V voltage control +Text Label 7885 5860 0 60 ~ 0 +AIN1 +Text Label 7885 5760 0 60 ~ 0 +AIN0 +Text Notes 5595 1485 0 59 ~ 0 +VCC\nBOOT0\nNRST\nGND +Text Label 5365 1355 2 60 ~ 0 +NRST +$Comp +L Device:R R22 +U 1 1 590D30C8 +P 4975 1405 +F 0 "R22" V 5055 1405 50 0000 C CNN +F 1 "47k" V 4975 1405 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 4905 1405 50 0001 C CNN +F 3 "" H 4975 1405 50 0000 C CNN + 1 4975 1405 + 1 0 0 -1 +$EndComp +$Comp +L Connector:Conn_01x04_Female J7 +U 1 1 5EA0EDCD +P 5565 1255 +F 0 "J7" H 5380 1470 50 0000 L CNN +F 1 "Conn_01x04" H 5435 865 50 0001 L CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical" H 5565 1255 50 0001 C CNN +F 3 "~" H 5565 1255 50 0001 C CNN + 1 5565 1255 + 1 0 0 -1 +$EndComp +$Comp +L power:+3.3V #PWR020 +U 1 1 5EA60D82 +P 5320 855 +F 0 "#PWR020" H 5320 705 50 0001 C CNN +F 1 "+3.3V" H 5320 995 50 0000 C CNN +F 2 "" H 5320 855 50 0000 C CNN +F 3 "" H 5320 855 50 0000 C CNN + 1 5320 855 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R23 +U 1 1 5EA6930E +P 5320 1005 +F 0 "R23" V 5410 1005 50 0000 C CNN +F 1 "22" V 5320 1005 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 5250 1005 50 0001 C CNN +F 3 "~" H 5320 1005 50 0001 C CNN + 1 5320 1005 + -1 0 0 1 +$EndComp +Wire Notes Line + 4835 535 5915 535 +Wire Notes Line + 5915 535 5915 1715 +Wire Notes Line + 5915 1715 4835 1715 +Wire Notes Line + 4835 1715 4835 535 +Wire Wire Line + 870 2240 1010 2240 +Wire Wire Line + 1310 2240 1460 2240 +Connection ~ 1460 2240 +Wire Wire Line + 1460 2240 1600 2240 +$Comp +L power:PWR_FLAG #FLG01 +U 1 1 5EF9327C +P 1460 2240 +F 0 "#FLG01" H 1460 2335 50 0001 C CNN +F 1 "PWR_FLAG" H 1460 2420 50 0001 C CNN +F 2 "" H 1460 2240 50 0000 C CNN +F 3 "" H 1460 2240 50 0000 C CNN + 1 1460 2240 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C16 +U 1 1 5E417130 +P 7195 1375 +F 0 "C16" H 7220 1475 50 0000 L CNN +F 1 "0.1" H 7220 1275 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 7233 1225 50 0001 C CNN +F 3 "" H 7195 1375 50 0000 C CNN + 1 7195 1375 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C14 +U 1 1 5E42F960 +P 6935 1395 +F 0 "C14" H 6960 1495 50 0000 L CNN +F 1 "0.1" H 6960 1295 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 6973 1245 50 0001 C CNN +F 3 "" H 6935 1395 50 0000 C CNN + 1 6935 1395 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6715 1595 6935 1595 +Wire Wire Line + 6935 1595 6935 1545 +Connection ~ 6715 1595 +Wire Wire Line + 6935 1245 6935 1195 +Wire Wire Line + 6715 1195 6935 1195 +Wire Wire Line + 7195 1225 7195 1185 +Wire Wire Line + 7195 1185 7405 1185 +Connection ~ 1460 2490 +Connection ~ 1600 2240 +Wire Wire Line + 1600 2240 1710 2240 +Text Label 870 2240 2 50 ~ 0 +5Vin +$Comp +L power:+5V #PWR026 +U 1 1 5E5CAFF1 +P 7405 835 +F 0 "#PWR026" H 7405 685 50 0001 C CNN +F 1 "+5V" H 7405 975 50 0000 C CNN +F 2 "" H 7405 835 50 0000 C CNN +F 3 "" H 7405 835 50 0000 C CNN + 1 7405 835 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7405 1585 7195 1585 +Wire Wire Line + 7195 1525 7195 1585 +Connection ~ 7405 1585 +$Comp +L power:+5V #PWR04 +U 1 1 5E623E4A +P 1600 2240 +F 0 "#PWR04" H 1600 2090 50 0001 C CNN +F 1 "+5V" H 1600 2380 50 0000 C CNN +F 2 "" H 1600 2240 50 0000 C CNN +F 3 "" H 1600 2240 50 0000 C CNN + 1 1600 2240 + 1 0 0 -1 +$EndComp +Wire Notes Line + 2980 1830 2980 2790 +Wire Notes Line + 650 1830 2980 1830 +$Comp +L Device:C C18 +U 1 1 590A8102 +P 7895 4140 +F 0 "C18" H 7920 4240 50 0000 L CNN +F 1 "0.1" H 7920 4040 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 7933 3990 50 0001 C CNN +F 3 "" H 7895 4140 50 0000 C CNN + 1 7895 4140 + 1 0 0 -1 +$EndComp +Text Notes 1670 695 0 60 ~ 0 +5V power source +Wire Wire Line + 1485 1045 1485 1155 +Connection ~ 1485 1045 +Wire Wire Line + 1485 955 1485 1045 +$Comp +L Device:R R1 +U 1 1 5ED7FE5E +P 1335 1045 +F 0 "R1" V 1255 1045 50 0000 C CNN +F 1 "10k" V 1335 1045 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 1265 1045 50 0001 C CNN +F 3 "~" H 1335 1045 50 0001 C CNN + 1 1335 1045 + 0 1 1 0 +$EndComp +$Comp +L Device:D_Zener D3 +U 1 1 5ED78D2C +P 1635 1155 +F 0 "D3" H 1705 1075 50 0000 C CNN +F 1 "MM3Z7V5" H 1725 1255 50 0000 C CNN +F 2 "Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 1635 1155 50 0001 C CNN +F 3 "~" H 1635 1155 50 0001 C CNN + 1 1635 1155 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR03 +U 1 1 5A598436 +P 1185 1045 +F 0 "#PWR03" H 1185 795 50 0001 C CNN +F 1 "GND" H 1185 895 50 0001 C CNN +F 2 "" H 1185 1045 50 0000 C CNN +F 3 "" H 1185 1045 50 0000 C CNN + 1 1185 1045 + 1 0 0 -1 +$EndComp +$Comp +L Device:Q_PMOS_GSD Q1 +U 1 1 5910E2F2 +P 1685 955 +F 0 "Q1" H 1525 1010 50 0000 L CNN +F 1 "AO3401" H 1400 1085 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 1885 1055 50 0001 C CNN +F 3 "" H 1685 955 50 0000 C CNN + 1 1685 955 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:Conn_01x02-Chiller_control-rescue J1 +U 1 1 5A170C1F +P 985 755 +F 0 "J1" H 980 855 50 0000 C CNN +F 1 "12VIN" H 985 920 50 0000 C CNN +F 2 "Connectors_Terminal_Blocks:TerminalBlock_Pheonix_MKDS1.5-2pol" H 985 755 50 0001 C CNN +F 3 "" H 985 755 50 0001 C CNN + 1 985 755 + -1 0 0 -1 +$EndComp +Text Notes 675 920 0 79 ~ 0 ++12\nGND +$Comp +L stm32-rescue:R-Chiller_control-rescue R14 +U 1 1 5BEEBD18 +P 3945 2745 +F 0 "R14" V 4025 2745 50 0000 C CNN +F 1 "10k" V 3945 2745 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3875 2745 50 0001 C CNN +F 3 "" H 3945 2745 50 0001 C CNN + 1 3945 2745 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R11 +U 1 1 5BEEBD1E +P 3645 2545 +F 0 "R11" V 3725 2545 50 0000 C CNN +F 1 "510" V 3645 2545 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3575 2545 50 0001 C CNN +F 3 "" H 3645 2545 50 0001 C CNN + 1 3645 2545 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:Q_NMOS_GSD-Chiller_control-rescue Q3 +U 1 1 5BEEBD24 +P 3995 2545 +F 0 "Q3" H 4195 2595 50 0000 L CNN +F 1 "IRLML2502" H 3670 2695 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 4195 2645 50 0001 C CNN +F 3 "" H 3995 2545 50 0001 C CNN + 1 3995 2545 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR014 +U 1 1 5BEEBD2B +P 4095 2770 +F 0 "#PWR014" H 4095 2520 50 0001 C CNN +F 1 "GND" H 4095 2620 50 0000 C CNN +F 2 "" H 4095 2770 50 0000 C CNN +F 3 "" H 4095 2770 50 0000 C CNN + 1 4095 2770 + 1 0 0 -1 +$EndComp +Text Notes 3240 2045 0 60 ~ 0 +Cooler channels +Text Notes 700 3335 0 60 ~ 0 +Thermal +Connection ~ 4095 2745 +Wire Wire Line + 4095 2770 4095 2745 +Wire Wire Line + 4095 2345 4740 2345 +Wire Wire Line + 4200 1290 4200 1265 +Connection ~ 4200 1265 +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR016 +U 1 1 5BEE8828 +P 4200 1290 +F 0 "#PWR016" H 4200 1040 50 0001 C CNN +F 1 "GND" H 4200 1140 50 0000 C CNN +F 2 "" H 4200 1290 50 0000 C CNN +F 3 "" H 4200 1290 50 0000 C CNN + 1 4200 1290 + 1 0 0 -1 +$EndComp +Text Notes 3960 720 2 60 ~ 0 +Alarm Buzzer +$Comp +L stm32-rescue:Q_NMOS_GSD-Chiller_control-rescue Q4 +U 1 1 5BEEB585 +P 4100 1065 +F 0 "Q4" H 4300 1115 50 0000 L CNN +F 1 "IRLML2502" H 4300 1015 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 4300 1165 50 0001 C CNN +F 3 "" H 4100 1065 50 0001 C CNN + 1 4100 1065 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R12 +U 1 1 5BEEB37B +P 3750 1065 +F 0 "R12" V 3830 1065 50 0000 C CNN +F 1 "510" V 3750 1065 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3680 1065 50 0001 C CNN +F 3 "" H 3750 1065 50 0001 C CNN + 1 3750 1065 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R16 +U 1 1 5BEEB2E1 +P 4050 1265 +F 0 "R16" V 4130 1265 50 0000 C CNN +F 1 "10k" V 4050 1265 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3980 1265 50 0001 C CNN +F 3 "" H 4050 1265 50 0001 C CNN + 1 4050 1265 + 0 1 1 0 +$EndComp +Text Label 3600 1065 2 60 ~ 0 +Buzzer +$Comp +L stm32-rescue:CP-Chiller_control-rescue C11 +U 1 1 5C53FDA9 +P 4095 2195 +F 0 "C11" H 4195 2200 50 0000 L CNN +F 1 "100u, 25V" H 3665 2100 50 0000 L CNN +F 2 "Capacitor_THT:CP_Radial_D8.0mm_P3.50mm" H 4133 2045 50 0001 C CNN +F 3 "" H 4095 2195 50 0001 C CNN + 1 4095 2195 + 1 0 0 -1 +$EndComp +Connection ~ 4095 2345 +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR013 +U 1 1 5C54020D +P 4095 2045 +F 0 "#PWR013" H 4095 1895 50 0001 C CNN +F 1 "+12V" H 4095 2185 50 0000 C CNN +F 2 "" H 4095 2045 50 0001 C CNN +F 3 "" H 4095 2045 50 0001 C CNN + 1 4095 2045 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3495 2545 3495 2745 +Wire Wire Line + 3495 2745 3795 2745 +Wire Wire Line + 3600 1265 3900 1265 +Wire Wire Line + 3600 1065 3600 1265 +Text Label 2125 3400 0 60 ~ 0 +ADC3 +Text Label 1875 3400 0 60 ~ 0 +ADC2 +Text Label 1625 3400 0 60 ~ 0 +ADC1 +Text Label 1350 3400 0 60 ~ 0 +ADC0 +$Comp +L stm32-rescue:GND-socket-rescue #PWR034 +U 1 1 5A669258 +P 9165 1965 +F 0 "#PWR034" H 9165 1715 50 0001 C CNN +F 1 "GND" H 9165 1815 50 0000 C CNN +F 2 "" H 9165 1965 50 0001 C CNN +F 3 "" H 9165 1965 50 0001 C CNN + 1 9165 1965 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-socket-rescue R31 +U 1 1 5A66984A +P 8715 1665 +F 0 "R31" V 8795 1665 50 0000 C CNN +F 1 "330" V 8715 1665 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad0.84x1.00mm_HandSolder" V 8645 1665 50 0001 C CNN +F 3 "" H 8715 1665 50 0001 C CNN + 1 8715 1665 + 0 1 1 0 +$EndComp +Text Label 8565 1665 2 60 ~ 0 +Relay0 +Wire Wire Line + 9165 1465 9165 1415 +$Comp +L stm32-rescue:R-socket-rescue R33 +U 1 1 5B179FBF +P 8865 1815 +F 0 "R33" V 8945 1815 50 0000 C CNN +F 1 "47k" V 8865 1815 50 0000 C CNN +F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.50mm_HandSolder" V 8795 1815 50 0001 C CNN +F 3 "" H 8865 1815 50 0001 C CNN + 1 8865 1815 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:G5LE-1-socket-rescue K2 +U 1 1 5A66AAE1 +P 9365 1115 +F 0 "K2" H 9355 1010 50 0000 L CNN +F 1 "SRD-12VDC" V 9820 880 50 0000 L CNN +F 2 "Relay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_C" H 10815 1065 50 0001 C CNN +F 3 "" H 9365 1115 50 0001 C CNN + 1 9365 1115 + 1 0 0 1 +$EndComp +$Comp +L stm32-rescue:L-Chiller_control-rescue L1 +U 1 1 5F7F79F1 +P 7230 3965 +F 0 "L1" V 7180 3965 50 0000 C CNN +F 1 "BMBA 0.1mH" V 7305 3965 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0805_HandSoldering" H 7230 3965 50 0001 C CNN +F 3 "" H 7230 3965 50 0001 C CNN + 1 7230 3965 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 7285 4060 7285 4030 +Wire Wire Line + 7285 4030 7485 4030 +Wire Wire Line + 7485 4030 7485 4060 +$Comp +L power:+3.3V #PWR025 +U 1 1 5E441E44 +P 6900 3955 +F 0 "#PWR025" H 6900 3805 50 0001 C CNN +F 1 "+3.3V" H 6900 4095 50 0000 C CNN +F 2 "" H 6900 3955 50 0000 C CNN +F 3 "" H 6900 3955 50 0000 C CNN + 1 6900 3955 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR029 +U 1 1 5F84BD3A +P 7895 4290 +F 0 "#PWR029" H 7895 4040 50 0001 C CNN +F 1 "GND" H 7895 4140 50 0001 C CNN +F 2 "" H 7895 4290 50 0000 C CNN +F 3 "" H 7895 4290 50 0000 C CNN + 1 7895 4290 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7380 3965 7380 4060 +Wire Wire Line + 7380 4060 7385 4060 +Wire Wire Line + 6900 3955 7080 3955 +Wire Wire Line + 7080 3955 7080 3965 +Wire Wire Line + 7080 3965 7080 4060 +Connection ~ 7080 3965 +Wire Wire Line + 7380 3965 7605 3965 +Wire Wire Line + 7895 3965 7895 3990 +Connection ~ 7380 3965 +Wire Wire Line + 5320 1155 5365 1155 +Wire Wire Line + 4975 1255 5365 1255 +$Comp +L power:GND #PWR021 +U 1 1 5F928927 +P 5365 1455 +F 0 "#PWR021" H 5365 1205 50 0001 C CNN +F 1 "GND" H 5365 1305 50 0001 C CNN +F 2 "" H 5365 1455 50 0000 C CNN +F 3 "" H 5365 1455 50 0000 C CNN + 1 5365 1455 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR019 +U 1 1 5F928D68 +P 4975 1555 +F 0 "#PWR019" H 4975 1305 50 0001 C CNN +F 1 "GND" H 4975 1405 50 0001 C CNN +F 2 "" H 4975 1555 50 0000 C CNN +F 3 "" H 4975 1555 50 0000 C CNN + 1 4975 1555 + 1 0 0 -1 +$EndComp +Connection ~ 2695 1155 +Wire Wire Line + 2695 1155 2945 1155 +Text Label 2945 1155 0 50 ~ 0 +5Vin +$Comp +L Regulator_Linear:L7805 U2 +U 1 1 5F943ABE +P 2295 1155 +F 0 "U2" H 2295 1397 50 0000 C CNN +F 1 "L7805" H 2295 1306 50 0000 C CNN +F 2 "TO_SOT_Packages_THT:TO-220-3_Vertical" H 2320 1005 50 0001 L CIN +F 3 "http://www.st.com/content/ccc/resource/technical/document/datasheet/41/4f/b3/b0/12/d4/47/88/CD00000444.pdf/files/CD00000444.pdf/jcr:content/translations/en.CD00000444.pdf" H 2295 1105 50 0001 C CNN + 1 2295 1155 + 1 0 0 -1 +$EndComp +Wire Wire Line + 2295 1455 2295 1505 +$Comp +L power:GND #PWR08 +U 1 1 58C43B9F +P 2035 1505 +F 0 "#PWR08" H 2035 1255 50 0001 C CNN +F 1 "GND" H 2035 1355 50 0001 C CNN +F 2 "" H 2035 1505 50 0000 C CNN +F 3 "" H 2035 1505 50 0000 C CNN + 1 2035 1505 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C3 +U 1 1 596772D4 +P 1785 1355 +F 0 "C3" H 1810 1455 50 0000 L CNN +F 1 "0.1" H 1810 1255 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 1823 1205 50 0001 C CNN +F 3 "" H 1785 1355 50 0000 C CNN + 1 1785 1355 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR09 +U 1 1 5A586C06 +P 2295 1555 +F 0 "#PWR09" H 2295 1305 50 0001 C CNN +F 1 "GND" H 2295 1405 50 0001 C CNN +F 2 "" H 2295 1555 50 0000 C CNN +F 3 "" H 2295 1555 50 0000 C CNN + 1 2295 1555 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C8 +U 1 1 5A586F5C +P 2695 1305 +F 0 "C8" H 2720 1405 50 0000 L CNN +F 1 "0.1" H 2720 1205 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 2733 1155 50 0001 C CNN +F 3 "" H 2695 1305 50 0000 C CNN + 1 2695 1305 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1785 1205 1785 1155 +Wire Wire Line + 1785 1505 2035 1505 +Connection ~ 2295 1505 +Wire Wire Line + 2295 1505 2695 1505 +Connection ~ 2695 1505 +Wire Wire Line + 2695 1505 2695 1455 +Wire Wire Line + 1785 1155 1990 1155 +Wire Wire Line + 2295 1505 2295 1555 +$Comp +L Device:CP C9 +U 1 1 5E5E1875 +P 2945 1305 +F 0 "C9" H 2975 1410 50 0000 L CNN +F 1 "10uF, 10V" V 3000 860 50 0000 L CNN +F 2 "Capacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolder" H 2983 1155 50 0001 C CNN +F 3 "~" H 2945 1305 50 0001 C CNN + 1 2945 1305 + 1 0 0 -1 +$EndComp +Wire Wire Line + 2695 1505 2945 1505 +Wire Wire Line + 2945 1505 2945 1455 +Wire Wire Line + 2595 1155 2695 1155 +Connection ~ 1785 1155 +$Comp +L Connector_Generic:Conn_02x04_Odd_Even J2 +U 1 1 5F9F47CC +P 1035 3840 +F 0 "J2" H 1085 4060 50 0000 C CNN +F 1 "thermal" H 1070 3550 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_Vertical" H 1035 3840 50 0001 C CNN +F 3 "~" H 1035 3840 50 0001 C CNN + 1 1035 3840 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:+3.3V-Chiller_control-rescue #PWR01 +U 1 1 5F9F5571 +P 835 3740 +F 0 "#PWR01" H 835 3590 50 0001 C CNN +F 1 "+3.3V" H 850 3913 50 0000 C CNN +F 2 "" H 835 3740 50 0001 C CNN +F 3 "" H 835 3740 50 0001 C CNN + 1 835 3740 + 1 0 0 -1 +$EndComp +Wire Wire Line + 835 4040 835 3940 +Wire Wire Line + 835 3940 835 3840 +Connection ~ 835 3940 +Wire Wire Line + 835 3740 835 3840 +Connection ~ 835 3740 +Connection ~ 835 3840 +$Comp +L stm32-rescue:C-Chiller_control-rescue C5 +U 1 1 5FA122F0 +P 2125 3150 +F 0 "C5" H 2150 3250 50 0000 L CNN +F 1 "0.1" H 2150 3050 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder" H 2163 3000 50 0001 C CNN +F 3 "" H 2125 3150 50 0000 C CNN + 1 2125 3150 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R2 +U 1 1 5FA12E95 +P 1350 3550 +F 0 "R2" V 1275 3550 50 0000 C CNN +F 1 "10k" V 1350 3550 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 1280 3550 50 0001 C CNN +F 3 "" H 1350 3550 50 0001 C CNN + 1 1350 3550 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R9 +U 1 1 5FA11765 +P 2125 4250 +F 0 "R9" V 2205 4250 50 0000 C CNN +F 1 "4k7, 1%" V 2040 4255 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0805_HandSoldering" V 2055 4250 50 0001 C CNN +F 3 "" H 2125 4250 50 0001 C CNN + 1 2125 4250 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R7 +U 1 1 5FA113CB +P 1875 4250 +F 0 "R7" V 1955 4250 50 0000 C CNN +F 1 "4k7, 1%" V 1790 4255 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0805_HandSoldering" V 1805 4250 50 0001 C CNN +F 3 "" H 1875 4250 50 0001 C CNN + 1 1875 4250 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R5 +U 1 1 5FA110F3 +P 1625 4250 +F 0 "R5" V 1705 4250 50 0000 C CNN +F 1 "4k7, 1%" V 1540 4255 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0805_HandSoldering" V 1555 4250 50 0001 C CNN +F 3 "" H 1625 4250 50 0001 C CNN + 1 1625 4250 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R3 +U 1 1 5BEF45BA +P 1375 4250 +F 0 "R3" V 1455 4250 50 0000 C CNN +F 1 "4k7, 1%" V 1290 4255 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0805_HandSoldering" V 1305 4250 50 0001 C CNN +F 3 "" H 1375 4250 50 0001 C CNN + 1 1375 4250 + -1 0 0 1 +$EndComp +Wire Wire Line + 2125 4400 1875 4400 +Wire Wire Line + 1625 4400 1760 4400 +Connection ~ 1875 4400 +Wire Wire Line + 1625 4400 1375 4400 +Connection ~ 1625 4400 +Wire Wire Line + 1760 4400 1760 4435 +Connection ~ 1760 4400 +Wire Wire Line + 1760 4400 1875 4400 +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR05 +U 1 1 5FA3B5C0 +P 1760 4435 +F 0 "#PWR05" H 1760 4185 50 0001 C CNN +F 1 "GND" H 1765 4262 50 0000 C CNN +F 2 "" H 1760 4435 50 0001 C CNN +F 3 "" H 1760 4435 50 0001 C CNN + 1 1760 4435 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1335 4040 1350 4040 +Wire Wire Line + 1375 4040 1375 4100 +Wire Wire Line + 1335 3940 1625 3940 +Wire Wire Line + 1625 3940 1625 4100 +Wire Wire Line + 1335 3840 1875 3840 +Wire Wire Line + 1875 3840 1875 4100 +Wire Wire Line + 1335 3740 2125 3740 +Wire Wire Line + 2125 3740 2125 4100 +$Comp +L stm32-rescue:R-Chiller_control-rescue R4 +U 1 1 5FA5AE90 +P 1625 3550 +F 0 "R4" V 1550 3550 50 0000 C CNN +F 1 "10k" V 1625 3550 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 1555 3550 50 0001 C CNN +F 3 "" H 1625 3550 50 0001 C CNN + 1 1625 3550 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R6 +U 1 1 5FA5BA50 +P 1875 3550 +F 0 "R6" V 1800 3550 50 0000 C CNN +F 1 "10k" V 1875 3550 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 1805 3550 50 0001 C CNN +F 3 "" H 1875 3550 50 0001 C CNN + 1 1875 3550 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R8 +U 1 1 5FA5BCFF +P 2125 3550 +F 0 "R8" V 2050 3550 50 0000 C CNN +F 1 "10k" V 2125 3550 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 2055 3550 50 0001 C CNN +F 3 "" H 2125 3550 50 0001 C CNN + 1 2125 3550 + -1 0 0 1 +$EndComp +Wire Wire Line + 1350 3700 1350 4040 +Connection ~ 1350 4040 +Wire Wire Line + 1350 4040 1375 4040 +Wire Wire Line + 1625 3700 1625 3940 +Connection ~ 1625 3940 +Wire Wire Line + 1875 3700 1875 3840 +Connection ~ 1875 3840 +Wire Wire Line + 2125 3700 2125 3740 +Connection ~ 2125 3740 +$Comp +L stm32-rescue:C-Chiller_control-rescue C4 +U 1 1 5FA120D2 +P 1875 3150 +F 0 "C4" H 1900 3250 50 0000 L CNN +F 1 "0.1" H 1900 3050 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder" H 1913 3000 50 0001 C CNN +F 3 "" H 1875 3150 50 0000 C CNN + 1 1875 3150 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:C-Chiller_control-rescue C2 +U 1 1 5FA11F4D +P 1625 3150 +F 0 "C2" H 1650 3250 50 0000 L CNN +F 1 "0.1" H 1650 3050 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder" H 1663 3000 50 0001 C CNN +F 3 "" H 1625 3150 50 0000 C CNN + 1 1625 3150 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:C-Chiller_control-rescue C1 +U 1 1 5C5D51AF +P 1350 3150 +F 0 "C1" H 1375 3250 50 0000 L CNN +F 1 "0.1" H 1375 3050 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad0.99x1.00mm_HandSolder" H 1388 3000 50 0001 C CNN +F 3 "" H 1350 3150 50 0000 C CNN + 1 1350 3150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1350 3300 1350 3400 +Wire Wire Line + 1625 3300 1625 3400 +Wire Wire Line + 1875 3300 1875 3400 +Wire Wire Line + 2125 3400 2125 3300 +Wire Wire Line + 1350 3000 1625 3000 +Connection ~ 1625 3000 +Wire Wire Line + 1625 3000 1875 3000 +Connection ~ 1875 3000 +Wire Wire Line + 1875 3000 2125 3000 +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR02 +U 1 1 5FABA508 +P 1140 3000 +F 0 "#PWR02" H 1140 2750 50 0001 C CNN +F 1 "GND" H 1145 2827 50 0000 C CNN +F 2 "" H 1140 3000 50 0001 C CNN +F 3 "" H 1140 3000 50 0001 C CNN + 1 1140 3000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1140 3000 1350 3000 +Connection ~ 1350 3000 +Wire Notes Line + 650 2900 2425 2900 +Wire Notes Line + 2425 2900 2425 4675 +Wire Notes Line + 2425 4675 650 4675 +Wire Notes Line + 650 4675 650 2900 +Text Label 7885 5360 0 60 ~ 0 +ADC0 +Text Label 7885 5460 0 60 ~ 0 +ADC1 +Text Label 7885 5560 0 60 ~ 0 +ADC2 +Text Label 7885 5660 0 60 ~ 0 +ADC3 +Wire Wire Line + 7385 7060 7285 7060 +Wire Wire Line + 7235 7060 7285 7060 +Connection ~ 7285 7060 +Wire Wire Line + 7085 7060 7185 7060 +Wire Wire Line + 7185 7060 7235 7060 +Connection ~ 7185 7060 +Connection ~ 7285 4060 +Wire Wire Line + 7185 4060 7285 4060 +Connection ~ 7185 4060 +Wire Wire Line + 7080 4060 7085 4060 +Wire Wire Line + 7085 4060 7185 4060 +Connection ~ 7085 4060 +$Comp +L MCU_ST_STM32F0:STM32F072CBTx U3 +U 1 1 5E89EA8D +P 7285 5560 +F 0 "U3" H 7325 6400 50 0000 C CNN +F 1 "STM32F072CBTx" H 7335 6260 50 0000 C CNN +F 2 "Package_QFP:LQFP-48_7x7mm_P0.5mm" H 6685 4160 50 0001 R CNN +F 3 "http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00090510.pdf" H 7285 5560 50 0001 C CNN + 1 7285 5560 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1785 755 1185 755 +Wire Wire Line + 1185 855 1185 1045 +Connection ~ 1185 1045 +Wire Notes Line + 650 525 3150 525 +Wire Notes Line + 3150 525 3150 1775 +Wire Notes Line + 3150 1775 650 1775 +Wire Notes Line + 650 1775 650 525 +Text Label 6585 5360 2 60 ~ 0 +Buzzer +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR06 +U 1 1 5FB6855B +P 1990 1155 +F 0 "#PWR06" H 1990 1005 50 0001 C CNN +F 1 "+12V" H 2005 1328 50 0000 C CNN +F 2 "" H 1990 1155 50 0001 C CNN +F 3 "" H 1990 1155 50 0001 C CNN + 1 1990 1155 + 1 0 0 -1 +$EndComp +Connection ~ 1990 1155 +Wire Wire Line + 1990 1155 1995 1155 +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR033 +U 1 1 5FB68FD6 +P 9165 815 +F 0 "#PWR033" H 9165 665 50 0001 C CNN +F 1 "+12V" H 9180 988 50 0000 C CNN +F 2 "" H 9165 815 50 0001 C CNN +F 3 "" H 9165 815 50 0001 C CNN + 1 9165 815 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8870 965 8870 815 +Wire Wire Line + 8870 815 9165 815 +Wire Wire Line + 9165 1415 8870 1415 +Wire Wire Line + 8870 1415 8870 1265 +Connection ~ 9165 1415 +Connection ~ 9165 815 +$Comp +L stm32-rescue:Q_NMOS_GSD-socket-rescue Q7 +U 1 1 5A668F1E +P 9065 1665 +F 0 "Q7" H 9265 1715 50 0000 L CNN +F 1 "IRLML2502" H 9265 1615 50 0000 L CNN +F 2 "Package_TO_SOT_SMD:SOT-23_Handsoldering" H 9265 1765 50 0001 C CNN +F 3 "" H 9065 1665 50 0001 C CNN + 1 9065 1665 + 1 0 0 -1 +$EndComp +Connection ~ 8865 1665 +Wire Wire Line + 8865 1965 9165 1965 +Wire Wire Line + 9165 1965 9165 1865 +Connection ~ 9165 1965 +Text Label 7885 6160 0 50 ~ 0 +TIM1_CH1 +Text Label 7885 6260 0 50 ~ 0 +TIM1_CH2 +Text Label 7885 6360 0 50 ~ 0 +TIM1_CH3 +Text Label 4865 2985 0 50 ~ 0 +TIM1_CH1 +Text Label 7885 6060 0 50 ~ 0 +TIM14_CH1 +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR022 +U 1 1 5F403CDC +P 6465 845 +F 0 "#PWR022" H 6465 695 50 0001 C CNN +F 1 "+12V" H 6480 1018 50 0000 C CNN +F 2 "" H 6465 845 50 0001 C CNN +F 3 "" H 6465 845 50 0001 C CNN + 1 6465 845 + 1 0 0 -1 +$EndComp +$Comp +L Device:R R24 +U 1 1 590A6DD4 +P 6465 995 +F 0 "R24" V 6545 995 50 0000 C CNN +F 1 "220k" V 6465 995 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolder" V 6395 995 50 0001 C CNN +F 3 "" H 6465 995 50 0000 C CNN + 1 6465 995 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R17 +U 1 1 5F4074BF +P 4250 5150 +F 0 "R17" V 4330 5150 50 0000 C CNN +F 1 "10k" V 4250 5150 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 4180 5150 50 0001 C CNN +F 3 "" H 4250 5150 50 0001 C CNN + 1 4250 5150 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R15 +U 1 1 5F4074C5 +P 3950 4950 +F 0 "R15" V 4030 4950 50 0000 C CNN +F 1 "510" V 3950 4950 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3880 4950 50 0001 C CNN +F 3 "" H 3950 4950 50 0001 C CNN + 1 3950 4950 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:Q_NMOS_GSD-Chiller_control-rescue Q5 +U 1 1 5F4074CB +P 4300 4950 +F 0 "Q5" H 4500 5000 50 0000 L CNN +F 1 "IRLML2502" H 4500 4900 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 4500 5050 50 0001 C CNN +F 3 "" H 4300 4950 50 0001 C CNN + 1 4300 4950 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR017 +U 1 1 5F4074D1 +P 4400 5175 +F 0 "#PWR017" H 4400 4925 50 0001 C CNN +F 1 "GND" H 4400 5025 50 0000 C CNN +F 2 "" H 4400 5175 50 0000 C CNN +F 3 "" H 4400 5175 50 0000 C CNN + 1 4400 5175 + 1 0 0 -1 +$EndComp +Connection ~ 4400 5150 +Wire Wire Line + 4400 5175 4400 5150 +$Comp +L stm32-rescue:CP-Chiller_control-rescue C12 +U 1 1 5F4074E2 +P 4400 4600 +F 0 "C12" H 4195 4610 50 0000 L CNN +F 1 "100u, 25V" H 3970 4505 50 0000 L CNN +F 2 "Capacitor_THT:CP_Radial_D8.0mm_P3.50mm" H 4438 4450 50 0001 C CNN +F 3 "" H 4400 4600 50 0001 C CNN + 1 4400 4600 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR018 +U 1 1 5F4074E9 +P 4530 4450 +F 0 "#PWR018" H 4530 4300 50 0001 C CNN +F 1 "+12V" H 4530 4590 50 0000 C CNN +F 2 "" H 4530 4450 50 0001 C CNN +F 3 "" H 4530 4450 50 0001 C CNN + 1 4530 4450 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3800 4950 3800 5150 +Wire Wire Line + 3800 5150 4100 5150 +Text Label 3800 4950 2 50 ~ 0 +TIM1_CH3 +$Comp +L Power_Protection:USBLC6-2SC6 U4 +U 1 1 5F40EDD5 +P 9085 6510 +F 0 "U4" H 9085 7191 50 0000 C CNN +F 1 "USBLC6-2SC6" H 9425 6890 50 0000 C CNN +F 2 "Package_TO_SOT_SMD:SOT-23-6" H 8335 6910 50 0001 C CNN +F 3 "http://www2.st.com/resource/en/datasheet/CD00050750.pdf" H 9285 6860 50 0001 C CNN + 1 9085 6510 + 1 0 0 -1 +$EndComp +Wire Wire Line + 9585 6610 9585 6555 +Wire Wire Line + 9585 6455 9585 6410 +$Comp +L Device:D_Schottky D2 +U 1 1 5F44DDD5 +P 1160 2490 +F 0 "D2" H 1160 2390 50 0000 C CNN +F 1 "1N5819" H 1160 2580 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 1160 2490 50 0001 C CNN +F 3 "" H 1160 2490 50 0001 C CNN + 1 1160 2490 + -1 0 0 1 +$EndComp +$Comp +L Device:D_Schottky D10 +U 1 1 5F44DFC0 +P 8870 1115 +F 0 "D10" V 8855 1285 50 0000 C CNN +F 1 "1N5819" H 8870 1205 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 8870 1115 50 0001 C CNN +F 3 "" H 8870 1115 50 0001 C CNN + 1 8870 1115 + 0 -1 -1 0 +$EndComp +$Comp +L Connector:Conn_01x02_Male J4 +U 1 1 5F4058DC +P 5035 4650 +F 0 "J4" H 5105 4715 50 0000 R CNN +F 1 "cooler3" H 5265 4510 50 0000 R CNN +F 2 "Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_Vertical" H 5035 4650 50 0001 C CNN +F 3 "~" H 5035 4650 50 0001 C CNN + 1 5035 4650 + -1 0 0 -1 +$EndComp +Wire Wire Line + 4400 4750 4655 4750 +Connection ~ 4400 4750 +$Comp +L Connector:Conn_01x04_Male J6 +U 1 1 5F424D72 +P 5065 2445 +F 0 "J6" H 5155 2630 50 0000 R CNN +F 1 "FAN" H 5190 2185 50 0000 R CNN +F 2 "Connector:FanPinHeader_1x04_P2.54mm_Vertical" H 5065 2445 50 0001 C CNN +F 3 "~" H 5065 2445 50 0001 C CNN + 1 5065 2445 + -1 0 0 -1 +$EndComp +$Comp +L Connector:Conn_01x02_Male J3 +U 1 1 5F4397CD +P 4400 865 +F 0 "J3" H 4460 710 50 0000 R CNN +F 1 "Buzzer" H 4490 910 50 0000 R CNN +F 2 "Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_Vertical" H 4400 865 50 0001 C CNN +F 3 "~" H 4400 865 50 0001 C CNN + 1 4400 865 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR015 +U 1 1 5F439EB9 +P 4200 765 +F 0 "#PWR015" H 4200 615 50 0001 C CNN +F 1 "+12V" H 4215 938 50 0000 C CNN +F 2 "" H 4200 765 50 0001 C CNN +F 3 "" H 4200 765 50 0001 C CNN + 1 4200 765 + 1 0 0 -1 +$EndComp +Wire Notes Line + 3250 525 4725 525 +Wire Notes Line + 4725 525 4725 1500 +Wire Notes Line + 4725 1500 3250 1500 +Wire Notes Line + 3250 1500 3250 525 +Text Label 7885 5960 0 50 ~ 0 +TIM3_CH1 +Text Label 4615 2970 2 50 ~ 0 +TIM3_CH1 +Text Label 6585 5460 2 60 ~ 0 +Relay0 +$Comp +L stm32-rescue:GND-socket-rescue #PWR032 +U 1 1 5F45885F +P 9150 3605 +F 0 "#PWR032" H 9150 3355 50 0001 C CNN +F 1 "GND" H 9150 3455 50 0000 C CNN +F 2 "" H 9150 3605 50 0001 C CNN +F 3 "" H 9150 3605 50 0001 C CNN + 1 9150 3605 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-socket-rescue R30 +U 1 1 5F458865 +P 8700 3305 +F 0 "R30" V 8780 3305 50 0000 C CNN +F 1 "330" V 8700 3305 50 0000 C CNN +F 2 "Resistor_SMD:R_0603_1608Metric_Pad0.84x1.00mm_HandSolder" V 8630 3305 50 0001 C CNN +F 3 "" H 8700 3305 50 0001 C CNN + 1 8700 3305 + 0 1 1 0 +$EndComp +Text Label 8550 3305 2 60 ~ 0 +Relay1 +Wire Wire Line + 9150 3105 9150 3055 +$Comp +L stm32-rescue:R-socket-rescue R32 +U 1 1 5F45886D +P 8850 3455 +F 0 "R32" V 8930 3455 50 0000 C CNN +F 1 "47k" V 8850 3455 50 0000 C CNN +F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.50mm_HandSolder" V 8780 3455 50 0001 C CNN +F 3 "" H 8850 3455 50 0001 C CNN + 1 8850 3455 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:G5LE-1-socket-rescue K1 +U 1 1 5F458873 +P 9350 2755 +F 0 "K1" H 9340 2650 50 0000 L CNN +F 1 "SRD-12VDC" V 9805 2520 50 0000 L CNN +F 2 "Relay_THT:Relay_SPDT_SANYOU_SRD_Series_Form_C" H 10800 2705 50 0001 C CNN +F 3 "" H 9350 2755 50 0001 C CNN + 1 9350 2755 + 1 0 0 1 +$EndComp +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR031 +U 1 1 5F458879 +P 9150 2455 +F 0 "#PWR031" H 9150 2305 50 0001 C CNN +F 1 "+12V" H 9165 2628 50 0000 C CNN +F 2 "" H 9150 2455 50 0001 C CNN +F 3 "" H 9150 2455 50 0001 C CNN + 1 9150 2455 + 1 0 0 -1 +$EndComp +Wire Wire Line + 8855 2605 8855 2455 +Wire Wire Line + 8855 2455 9150 2455 +Wire Wire Line + 9150 3055 8855 3055 +Wire Wire Line + 8855 3055 8855 2905 +Connection ~ 9150 3055 +Connection ~ 9150 2455 +$Comp +L stm32-rescue:Q_NMOS_GSD-socket-rescue Q6 +U 1 1 5F458885 +P 9050 3305 +F 0 "Q6" H 9250 3355 50 0000 L CNN +F 1 "IRLML2502" H 9250 3255 50 0000 L CNN +F 2 "Package_TO_SOT_SMD:SOT-23_Handsoldering" H 9250 3405 50 0001 C CNN +F 3 "" H 9050 3305 50 0001 C CNN + 1 9050 3305 + 1 0 0 -1 +$EndComp +Connection ~ 8850 3305 +Wire Wire Line + 8850 3605 9150 3605 +Wire Wire Line + 9150 3605 9150 3505 +Connection ~ 9150 3605 +$Comp +L Device:D_Schottky D9 +U 1 1 5F45888F +P 8855 2755 +F 0 "D9" V 8840 2925 50 0000 C CNN +F 1 "1N5819" H 8855 2845 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 8855 2755 50 0001 C CNN +F 3 "" H 8855 2755 50 0001 C CNN + 1 8855 2755 + 0 -1 -1 0 +$EndComp +Text Label 6585 5560 2 60 ~ 0 +Relay1 +Text Label 3495 2545 2 50 ~ 0 +Cooler0 +Text Label 6585 6360 2 50 ~ 0 +Cooler0 +Text Label 6585 6460 2 50 ~ 0 +Cooler1 +$Comp +L Device:D_Schottky D5 +U 1 1 5F48E038 +P 4590 2045 +F 0 "D5" H 4595 1955 50 0000 C CNN +F 1 "1N5819" H 4590 2135 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 4590 2045 50 0001 C CNN +F 3 "" H 4590 2045 50 0001 C CNN + 1 4590 2045 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4140 2745 4095 2745 +Wire Wire Line + 4440 2445 4865 2445 +Wire Wire Line + 4440 2445 4440 2045 +Wire Wire Line + 4440 2045 4095 2045 +Connection ~ 4095 2045 +$Comp +L stm32-rescue:R-Chiller_control-rescue R19 +U 1 1 5F4CEB3C +P 4615 2695 +F 0 "R19" V 4695 2695 50 0000 C CNN +F 1 "510" V 4615 2695 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 4545 2695 50 0001 C CNN +F 3 "" H 4615 2695 50 0001 C CNN + 1 4615 2695 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R21 +U 1 1 5F4CF586 +P 4865 2795 +F 0 "R21" V 4945 2795 50 0000 C CNN +F 1 "510" V 4865 2795 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 4795 2795 50 0001 C CNN +F 3 "" H 4865 2795 50 0001 C CNN + 1 4865 2795 + -1 0 0 1 +$EndComp +Wire Wire Line + 4615 2545 4865 2545 +Wire Wire Line + 4865 2985 4865 2945 +Wire Wire Line + 4615 2970 4615 2845 +$Comp +L Device:D_Schottky D6 +U 1 1 5F4E7DE3 +P 4655 4600 +F 0 "D6" H 4660 4510 50 0000 C CNN +F 1 "1N5819" H 4655 4690 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 4655 4600 50 0001 C CNN +F 3 "" H 4655 4600 50 0001 C CNN + 1 4655 4600 + 0 1 1 0 +$EndComp +Connection ~ 4655 4750 +Wire Wire Line + 4400 4450 4530 4450 +Connection ~ 4530 4450 +Wire Wire Line + 4530 4450 4655 4450 +Wire Wire Line + 4655 4750 4835 4750 +Wire Wire Line + 4835 4650 4835 4450 +Wire Wire Line + 4835 4450 4655 4450 +Connection ~ 4655 4450 +$Comp +L stm32-rescue:R-Chiller_control-rescue R13 +U 1 1 5F506974 +P 3935 3940 +F 0 "R13" V 4015 3940 50 0000 C CNN +F 1 "10k" V 3935 3940 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3865 3940 50 0001 C CNN +F 3 "" H 3935 3940 50 0001 C CNN + 1 3935 3940 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R10 +U 1 1 5F50697A +P 3635 3740 +F 0 "R10" V 3715 3740 50 0000 C CNN +F 1 "510" V 3635 3740 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 3565 3740 50 0001 C CNN +F 3 "" H 3635 3740 50 0001 C CNN + 1 3635 3740 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:Q_NMOS_GSD-Chiller_control-rescue Q2 +U 1 1 5F506980 +P 3985 3740 +F 0 "Q2" H 4185 3790 50 0000 L CNN +F 1 "IRLML2502" H 3660 3890 50 0000 L CNN +F 2 "TO_SOT_Packages_SMD:SOT-23_Handsoldering" H 4185 3840 50 0001 C CNN +F 3 "" H 3985 3740 50 0001 C CNN + 1 3985 3740 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:GND-Chiller_control-rescue #PWR012 +U 1 1 5F506986 +P 4085 3965 +F 0 "#PWR012" H 4085 3715 50 0001 C CNN +F 1 "GND" H 4085 3815 50 0000 C CNN +F 2 "" H 4085 3965 50 0000 C CNN +F 3 "" H 4085 3965 50 0000 C CNN + 1 4085 3965 + 1 0 0 -1 +$EndComp +Connection ~ 4085 3940 +Wire Wire Line + 4085 3965 4085 3940 +Wire Wire Line + 4085 3540 4730 3540 +$Comp +L stm32-rescue:CP-Chiller_control-rescue C10 +U 1 1 5F50698F +P 4085 3390 +F 0 "C10" H 4185 3395 50 0000 L CNN +F 1 "100u, 25V" H 3655 3295 50 0000 L CNN +F 2 "Capacitor_THT:CP_Radial_D8.0mm_P3.50mm" H 4123 3240 50 0001 C CNN +F 3 "" H 4085 3390 50 0001 C CNN + 1 4085 3390 + 1 0 0 -1 +$EndComp +Connection ~ 4085 3540 +$Comp +L stm32-rescue:+12V-Chiller_control-rescue #PWR011 +U 1 1 5F506996 +P 4085 3240 +F 0 "#PWR011" H 4085 3090 50 0001 C CNN +F 1 "+12V" H 4085 3380 50 0000 C CNN +F 2 "" H 4085 3240 50 0001 C CNN +F 3 "" H 4085 3240 50 0001 C CNN + 1 4085 3240 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3485 3740 3485 3940 +Wire Wire Line + 3485 3940 3785 3940 +Text Label 4855 4180 0 50 ~ 0 +TIM1_CH2 +Text Label 4605 4165 2 50 ~ 0 +TIM14_CH1 +$Comp +L Connector:Conn_01x04_Male J5 +U 1 1 5F5069A0 +P 5055 3640 +F 0 "J5" H 5145 3825 50 0000 R CNN +F 1 "FAN" H 5180 3380 50 0000 R CNN +F 2 "Connector:FanPinHeader_1x04_P2.54mm_Vertical" H 5055 3640 50 0001 C CNN +F 3 "~" H 5055 3640 50 0001 C CNN + 1 5055 3640 + -1 0 0 -1 +$EndComp +Text Label 3485 3740 2 50 ~ 0 +Cooler1 +$Comp +L Device:D_Schottky D4 +U 1 1 5F5069A8 +P 4580 3240 +F 0 "D4" H 4585 3150 50 0000 C CNN +F 1 "1N5819" H 4580 3330 50 0000 C CNN +F 2 "Diode_SMD:D_SOD-323_HandSoldering" H 4580 3240 50 0001 C CNN +F 3 "" H 4580 3240 50 0001 C CNN + 1 4580 3240 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4130 3940 4085 3940 +Wire Wire Line + 4430 3640 4855 3640 +Wire Wire Line + 4430 3640 4430 3240 +Wire Wire Line + 4430 3240 4085 3240 +Connection ~ 4085 3240 +$Comp +L stm32-rescue:R-Chiller_control-rescue R18 +U 1 1 5F5069B5 +P 4605 3890 +F 0 "R18" V 4685 3890 50 0000 C CNN +F 1 "510" V 4605 3890 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 4535 3890 50 0001 C CNN +F 3 "" H 4605 3890 50 0001 C CNN + 1 4605 3890 + -1 0 0 1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R20 +U 1 1 5F5069BB +P 4855 3990 +F 0 "R20" V 4935 3990 50 0000 C CNN +F 1 "510" V 4855 3990 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 4785 3990 50 0001 C CNN +F 3 "" H 4855 3990 50 0001 C CNN + 1 4855 3990 + -1 0 0 1 +$EndComp +Wire Wire Line + 4605 3740 4855 3740 +Wire Wire Line + 4855 4180 4855 4140 +Wire Wire Line + 4605 4165 4605 4040 +Connection ~ 4440 2045 +Wire Wire Line + 4740 2045 4740 2345 +Connection ~ 4740 2345 +Wire Wire Line + 4740 2345 4865 2345 +Connection ~ 4430 3240 +Wire Wire Line + 4730 3240 4730 3540 +Connection ~ 4730 3540 +Wire Wire Line + 4730 3540 4855 3540 +Wire Notes Line + 3175 1825 5275 1825 +Wire Notes Line + 5275 1825 5275 5400 +Wire Notes Line + 5275 5400 3175 5400 +Wire Notes Line + 3175 5400 3175 1825 +NoConn ~ 6585 4660 +NoConn ~ 6585 4760 +NoConn ~ 6585 4960 +NoConn ~ 6585 5060 +NoConn ~ 6585 5160 +NoConn ~ 7885 6660 +NoConn ~ 7885 6760 +NoConn ~ 7885 6860 +NoConn ~ 6585 5860 +NoConn ~ 6585 5960 +NoConn ~ 6585 6060 +NoConn ~ 6585 6160 +NoConn ~ 6585 6260 +NoConn ~ 6585 6560 +NoConn ~ 6585 6660 +NoConn ~ 6585 6760 +NoConn ~ 6585 6860 +$Comp +L Connector:Conn_01x02_Female J8 +U 1 1 5F6401DC +P 10090 2700 +F 0 "J8" H 9995 2775 50 0000 L CNN +F 1 "MKDS" H 9950 2520 50 0000 L CNN +F 2 "TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal" H 10090 2700 50 0001 C CNN +F 3 "~" H 10090 2700 50 0001 C CNN + 1 10090 2700 + 1 0 0 -1 +$EndComp +$Comp +L Connector:Conn_01x02_Female J9 +U 1 1 5F640927 +P 10115 1060 +F 0 "J9" H 10020 1135 50 0000 L CNN +F 1 "MKDS" H 9975 880 50 0000 L CNN +F 2 "TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal" H 10115 1060 50 0001 C CNN +F 3 "~" H 10115 1060 50 0001 C CNN + 1 10115 1060 + 1 0 0 -1 +$EndComp +Wire Wire Line + 9665 1415 9915 1415 +Wire Wire Line + 9915 1415 9915 1160 +Wire Wire Line + 9565 815 9915 815 +Wire Wire Line + 9915 815 9915 1060 +Wire Wire Line + 9890 2700 9890 2455 +Wire Wire Line + 9890 2455 9550 2455 +Wire Wire Line + 9890 2800 9890 3055 +Wire Wire Line + 9890 3055 9650 3055 +Wire Notes Line + 8175 550 10250 550 +Wire Notes Line + 10250 550 10250 3825 +Wire Notes Line + 10250 3825 8175 3825 +Wire Notes Line + 8175 3825 8175 550 +NoConn ~ 9450 3055 +NoConn ~ 9465 1415 +NoConn ~ 10775 8925 +NoConn ~ 10750 9150 +NoConn ~ 10650 9450 +NoConn ~ 10650 9800 +$Comp +L power:PWR_FLAG #FLG0101 +U 1 1 5F6E5259 +P 7605 3965 +F 0 "#FLG0101" H 7605 4040 50 0001 C CNN +F 1 "PWR_FLAG" H 7605 4138 50 0001 C CNN +F 2 "" H 7605 3965 50 0001 C CNN +F 3 "~" H 7605 3965 50 0001 C CNN + 1 7605 3965 + 1 0 0 -1 +$EndComp +Connection ~ 7605 3965 +Wire Wire Line + 7605 3965 7895 3965 +$Comp +L power:PWR_FLAG #FLG0102 +U 1 1 5F6E57E8 +P 1990 1155 +F 0 "#FLG0102" H 1990 1230 50 0001 C CNN +F 1 "PWR_FLAG" H 1990 1328 50 0001 C CNN +F 2 "" H 1990 1155 50 0001 C CNN +F 3 "~" H 1990 1155 50 0001 C CNN + 1 1990 1155 + -1 0 0 1 +$EndComp +$Comp +L Switch:SW_Push SW1 +U 1 1 5F40AE40 +P 5850 5480 +F 0 "SW1" H 5850 5765 50 0000 C CNN +F 1 "SW_Push" H 5850 5674 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical" H 5850 5680 50 0001 C CNN +F 3 "~" H 5850 5680 50 0001 C CNN + 1 5850 5480 + 1 0 0 -1 +$EndComp +$Comp +L Switch:SW_Push SW2 +U 1 1 5F40BE17 +P 5850 6115 +F 0 "SW2" H 5850 5980 50 0000 C CNN +F 1 "SW_Push" H 5855 6055 50 0000 C CNN +F 2 "Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical" H 5850 6315 50 0001 C CNN +F 3 "~" H 5850 6315 50 0001 C CNN + 1 5850 6115 + 1 0 0 -1 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R34 +U 1 1 5F4227FB +P 6200 5660 +F 0 "R34" V 6280 5660 50 0000 C CNN +F 1 "510" V 6200 5660 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 6130 5660 50 0001 C CNN +F 3 "" H 6200 5660 50 0001 C CNN + 1 6200 5660 + 0 1 1 0 +$EndComp +Wire Wire Line + 6350 5660 6585 5660 +$Comp +L Device:C C19 +U 1 1 5F43976C +P 5900 5660 +F 0 "C19" V 5830 5705 50 0000 L CNN +F 1 "0.1" V 5840 5500 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 5938 5510 50 0001 C CNN +F 3 "" H 5900 5660 50 0000 C CNN + 1 5900 5660 + 0 1 1 0 +$EndComp +$Comp +L Device:C C20 +U 1 1 5F43A352 +P 5900 5855 +F 0 "C20" V 5830 5900 50 0000 L CNN +F 1 "0.1" V 5840 5700 50 0000 L CNN +F 2 "Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolder" H 5938 5705 50 0001 C CNN +F 3 "" H 5900 5855 50 0000 C CNN + 1 5900 5855 + 0 1 1 0 +$EndComp +$Comp +L stm32-rescue:R-Chiller_control-rescue R35 +U 1 1 5F423117 +P 6200 5855 +F 0 "R35" V 6280 5855 50 0000 C CNN +F 1 "510" V 6200 5855 50 0000 C CNN +F 2 "Resistors_SMD.pretty:R_0603_HandSoldering" V 6130 5855 50 0001 C CNN +F 3 "" H 6200 5855 50 0001 C CNN + 1 6200 5855 + 0 1 1 0 +$EndComp +Wire Wire Line + 6350 5855 6350 5760 +Wire Wire Line + 6350 5760 6585 5760 +Wire Wire Line + 6050 5855 6050 6115 +Wire Wire Line + 6050 5660 6050 5480 +Connection ~ 6050 5660 +Connection ~ 6050 5855 +$Comp +L power:GND #PWR036 +U 1 1 5F467758 +P 5650 6115 +F 0 "#PWR036" H 5650 5865 50 0001 C CNN +F 1 "GND" H 5655 5942 50 0000 C CNN +F 2 "" H 5650 6115 50 0001 C CNN +F 3 "" H 5650 6115 50 0001 C CNN + 1 5650 6115 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5650 6115 5650 5855 +Wire Wire Line + 5650 5855 5750 5855 +Connection ~ 5650 6115 +Wire Wire Line + 5750 5660 5750 5855 +Connection ~ 5750 5855 +Wire Wire Line + 5750 5660 5650 5660 +Wire Wire Line + 5650 5480 5650 5660 +Connection ~ 5750 5660 +$EndSCHEMATC diff --git a/F0-nolib/Socket_fans/kicad/sym-lib-table b/F0-nolib/Socket_fans/kicad/sym-lib-table new file mode 100644 index 0000000..419463c --- /dev/null +++ b/F0-nolib/Socket_fans/kicad/sym-lib-table @@ -0,0 +1,4 @@ +(sym_lib_table + (lib (name elements)(type Legacy)(uri ${KIPRJMOD}/elements.lib)(options "")(descr "")) + (lib (name stm32-rescue)(type Legacy)(uri ${KIPRJMOD}/stm32-rescue.lib)(options "")(descr "")) +) diff --git a/F1-nolib/BUGS b/F1-nolib/BUGS new file mode 100644 index 0000000..6c6aaa3 --- /dev/null +++ b/F1-nolib/BUGS @@ -0,0 +1,49 @@ + 1. Ðепонимание что такое "атомарный доÑтуп" и Ð´Ð»Ñ Ñ‡ÐµÐ³Ð¾ нужно "volatile" при ÑовмеÑтной работе разных процеÑÑов/ISR Ñ Ð¾Ð´Ð½Ð¸Ð¼Ð¸ данными. + +Смотрим например на usart2_getline() вызывающуюÑÑ Ð² фоне и usart2_isr() (видимо - ISR), и думаем что будет еÑли прерывание usart2_isr() произойдёт между Ñтрокой + +int L = linerdy; + +и Ñтрокой + +linerdy = 0; + + + +2. Ðлгоритм работы Ñ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð½Ñ‹Ð¼ потоком UART - в корне ущербный. ДоÑтаточно подумать, что будет еÑли на большой ÑкороÑти UART два Ñимвола '\n' подрÑд и в Ñто Ð²Ñ€ÐµÐ¼Ñ Ñ„Ð¾Ð½Ð¾Ð²Ð°Ñ Ð·Ð°Ð´Ð°Ñ‡Ð° будет занÑта какой-то более-менее длительной работой (а ведь мы знаем что автор Ñего - ненавиÑтник РТОС, и у него не будет повышен приоритет задаче, разгребающей UART-RX поток ;). + + + +3. Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ UART (usart2_setup()) - криваÑ. Сначала автор программирует DMA на работу Ñ UART, включает его, и только затем включает тактирование UART и инициализирует его. + +Также - мультиплекÑор пинов переключает ноги Ñ GPIO на UART ещё до инициализации Ñамого UART (глитчи обеÑпечены). + +Правильный порÑдок: 1) инит DMA; 2) инит UART; 3) разрешение DMA; 4) разрешение прерываний; 5) переключение мультиплекÑора ног GPIO->UART. И не забывать иÑпользовать __DMB() где надо. + + + +4. Зачем в main() такое?: + +const char dummy[] = "dummy text\n", err[] = "Error!\n"; + +Видимо чтобы получить как можно более Ñ‚Ñжёлый код и занÑть побольше Ñтека. Ðвтор видимо не знает Ð´Ð»Ñ Ñ‡ÐµÐ³Ð¾ нужно "static". :unknw: + + + +5. Ðвтор не читает мануал на иÑпользуемый МК. ЕÑли бы читал, не пиÑал бы такое: + +USART2_ICR |= USART_ISR_CMF; // clear flag + +Читаем опиÑание региÑтра USART2_ICR и думаем: Что будет Ñ Ð¾Ñтальными флагами кроме CMF поÑле такой операции? Да и вообще - зачем читать из региÑтра еÑли Ð´Ð»Ñ ÑброÑа флага нужна запиÑÑŒ в него "1"??? Тема Ñта уже 100500 раз обÑаÑывалаÑÑŒ здеÑÑŒ на форуме. + +То же Ñамое здеÑÑŒ: + +DMA1_IFCR |= DMA_IFCR_CIF4; // clear TC flag + +и в других подобных меÑтах. РегиÑтр DMA1_IFCR - write-only! ОпÑть же - RTFM. + +ÐавернÑка ещё куча подобных багов еÑть - Ñмотрел по диагонали. + + + +6. ИÑходник проÑто наполнен "магичеÑкими" чиÑлами - Ñтиль Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÑŽÑ‰ÐµÐ³Ð¾. Плохой Ñтиль.  diff --git a/F1-nolib/chronometer_v3/Difference b/F1-nolib/chronometer_v3/Difference new file mode 100644 index 0000000..130c62f --- /dev/null +++ b/F1-nolib/chronometer_v3/Difference @@ -0,0 +1,2 @@ +Difference from previous version: +- LED screen with different modes diff --git a/F1-nolib/chronometer_v3/GPS.c b/F1-nolib/chronometer_v3/GPS.c new file mode 100644 index 0000000..9e15ad0 --- /dev/null +++ b/F1-nolib/chronometer_v3/GPS.c @@ -0,0 +1,179 @@ +/* + * GPS.c + * + * Copyright 2015 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include "GPS.h" +#include "hardware.h" +#include "time.h" +#include "usart.h" +#include "str.h" +#include "usb.h" +#include // memcpy + +#define GPS_send_string(str) do{usart_send(GPS_USART, str);}while(0) + +gps_status GPS_status = GPS_NOTFOUND; +int need2startseq = 1; + +static uint8_t hex(uint8_t n){ + return ((n < 10) ? (n+'0') : (n+'A'-10)); +} + +/** + * Check checksum + */ +static int checksum_true(const char *buf){ + char *eol; + uint8_t checksum = 0, cs[3]; + if(*buf != '$' || !(eol = getchr(buf, '*'))){ + return 0; + } + while(++buf != eol) + checksum ^= (uint8_t)*buf; + ++buf; + cs[0] = hex(checksum >> 4); + cs[1] = hex(checksum & 0x0f); + if(buf[0] == cs[0] && buf[1] == cs[1]) + return 1; + return 0; +} + +static void send_chksum(uint8_t chs){ + usart_putchar(GPS_USART, hex(chs >> 4)); + usart_putchar(GPS_USART, hex(chs & 0x0f)); +} + +/** + * Calculate checksum & write message to port + * @param buf - command to write (without leading $ and trailing *) + * return 0 if fails + */ +static void write_with_checksum(const char *buf){ + /* + for(int i = 0; i < 10000; ++i){ + char *txt = NULL; + if(usartrx(GPS_USART)){ + usart_getline(GPS_USART, &txt); + DBG("Old data"); + GPS_parse_answer(txt); + break; + } + }*/ + uint8_t checksum = 0; + usart_putchar(GPS_USART, '$'); + GPS_send_string(buf); + do{ + checksum ^= *buf++; + }while(*buf); + usart_putchar(GPS_USART, '*'); + send_chksum(checksum); + newline(GPS_USART); +} + + +/* + * MTK fields format: + * $PMTKxxx,yyy,zzz*2E + * P - proprietary, MTK - always this, xxx - packet type, yyy,zzz - packet data + * Packet types: + * 220 - PMTK_SET_POS_FIX, data - position fix interval (msec, > 200) + * 255 - PMTK_SET_SYNC_PPS_NMEA - turn on/off (def - off) PPS, data = 0/1 -> "$PMTK255,1" turn ON + * 285 - PMTK_SET_PPS_CONFIG - set PPS configuration, data fields: + * 1st - 0-disable, 1-after 1st fix, 2-3D only, 3-2D/3D only, 4-always + * 2nd - 2..998 - pulse width + * 314 - PMTK_API_SET_NMEA_OUTPUT - set output messages, N== N fixes per output, + * order of messages: GLL,RMC,VTG,GGA,GSA,GSV,GRS,GST, only RMC per every pos fix: + * $PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + * 386 - PMTK_API_SET_STATIC_NAV_THD speed threshold (m/s) for static navigation + * $PMTK386,1.5 + * ; + */ + +/** + * Send starting sequences (get only RMC messages) + */ +void GPS_send_start_seq(){ + DBG("Send start seq"); + // turn ON PPS: + write_with_checksum("PMTK255,1"); + // set pulse width to 10ms with working after 1st fix + write_with_checksum("PMTK285,1,10"); + // set only RMC: + write_with_checksum("PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"); + // set static speed threshold + write_with_checksum("PMTK386,1.5"); + need2startseq = 0; +} + +// send "full cold start" command to clear all almanach & location data +void GPS_send_FullColdStart(){ + write_with_checksum("PMTK104"); +} + +/** + * Parse answer from GPS module + * + * Recommended minimum specific GPS/Transit data + * $GPRMC,hhmmss.sss,status,latitude,N,longitude,E,spd,cog,ddmmyy,mv,mvE,mode*cs + * 1 = UTC of position fix + * 2 = Data status (V=valid, A=invalid) + * 3 = Latitude (ddmm.mmmm) + * 4 = N or S + * 5 = Longitude (dddmm.mmmm) + * 6 = E or W + * 7 = Speed over ground in knots + * 8 = Cource over ground in degrees + * 9 = UT date (ddmmyy) + * 10 = Magnetic variation degrees (Easterly var. subtracts from true course) + * 11 = E or W + * 12 = Mode: N(bad), E(approx), A(auto), D(diff) + * 213457.00,A,4340.59415,N,04127.47560,E,2.494,,290615,,,A*7B + */ +void GPS_parse_answer(const char *buf){ + char *ptr; + if(buf[1] == 'P') return; // answers to proprietary messages + if(cmpstr(buf+3, "RMC", 3)){ // not RMC message + //need2startseq = 1; + return; + } + if(!checksum_true(buf)){ + return; // wrong checksum + } + if(showGPSstr){ + showGPSstr = 0; + sendstring(buf); + } + buf += 7; // skip header + if(*buf == ','){ // time unknown + GPS_status = GPS_WAIT; + return; + } + ptr = getchr(buf, ','); + if(!ptr ) return; + *ptr++ = 0; + if(*ptr == 'A'){ + GPS_status = GPS_VALID; + set_time(buf); + }else{ + uint8_t goth = (buf[0]-'0')*10 + buf[1]-'0'; + if(current_time.H != goth) set_time(buf); // set time once per hour even if it's not valid + GPS_status = GPS_NOT_VALID; + } +} diff --git a/F1-nolib/chronometer_v3/GPS.h b/F1-nolib/chronometer_v3/GPS.h new file mode 100644 index 0000000..33cf025 --- /dev/null +++ b/F1-nolib/chronometer_v3/GPS.h @@ -0,0 +1,43 @@ +/* + * GPS.h + * + * Copyright 2015 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#pragma once +#ifndef __GPS_H__ +#define __GPS_H__ + +#include "stm32f1.h" + +extern int need2startseq; + +typedef enum{ + GPS_NOTFOUND // default status before first RMC message + ,GPS_WAIT // wait for satellites + ,GPS_NOT_VALID // time known, but not valid + ,GPS_VALID +} gps_status; + +extern gps_status GPS_status; + +void GPS_parse_answer(const char *string); +void GPS_send_start_seq(); +void GPS_send_FullColdStart(); + +#endif // __GPS_H__ diff --git a/F1-nolib/chronometer_v3/Makefile b/F1-nolib/chronometer_v3/Makefile new file mode 100644 index 0000000..1b59311 --- /dev/null +++ b/F1-nolib/chronometer_v3/Makefile @@ -0,0 +1,159 @@ +# make debug adds -DEBUG -Werror +# make ADDEFS="additional defs" +BINARY = chrono +BOOTPORT ?= /dev/ttyUSB0 +BOOTSPEED ?= 115200 +# MCU FAMILY +FAMILY ?= F1 +# MCU code +MCU ?= F103x8 +# density (stm32f10x.h, lines 70-84) +DENSITY ?= MD +# change this linking script depending on particular MCU model, +LDSCRIPT ?= stm32F103xB.ld +DEFS = ${ADDEFS} -DVERSION=\"0.2.0\" +TARGET := RELEASE +# proxy GPS output over USART1 +#DEFS += -DUSART1PROXY + +FP_FLAGS ?= -msoft-float -mfloat-abi=soft +ASM_FLAGS ?= -mthumb -mcpu=cortex-m3 -mfix-cortex-m3-ldrd +ARCH_FLAGS = $(ASM_FLAGS) $(FP_FLAGS) + +############################################################################### +# Executables +#PREFIX ?= arm-none-eabi +# gcc from arm web site +PREFIX ?= /opt/bin/arm-none-eabi +TOOLCHLIB ?= /opt/arm-none-eabi/lib +RM := rm -f +RMDIR := rmdir +CC := $(PREFIX)-gcc +# don't replace ld with gcc: the binary size would be much greater!! +LD := $(PREFIX)-ld +AR := $(PREFIX)-ar +AS := $(PREFIX)-as +SIZE := $(PREFIX)-size +OBJCOPY := $(PREFIX)-objcopy +OBJDUMP := $(PREFIX)-objdump +GDB := $(PREFIX)-gdb +STFLASH := $(shell which st-flash) +STBOOT := $(shell which stm32flash) +DFUUTIL := $(shell which dfu-util) + +############################################################################### +# Source files +OBJDIR = mk +SRC := $(wildcard *.c) +OBJS := $(addprefix $(OBJDIR)/, $(SRC:%.c=%.o)) +STARTUP = $(OBJDIR)/startup.o +OBJS += $(STARTUP) +# dependencies: we need them to recompile files if their headers-dependencies changed +DEPS := $(OBJS:.o=.d) + +INC_DIR ?= ../inc + +INCLUDE := -I$(INC_DIR)/Fx -I$(INC_DIR)/cm +LIB_DIR := $(INC_DIR)/ld + +############################################################################### +# C flags +CFLAGS += -O2 -g -D__thumb2__=1 -MD +CFLAGS += -Wall -Wextra -Wshadow +CFLAGS += -fno-common -ffunction-sections -fdata-sections -fno-stack-protector +CFLAGS += $(ARCH_FLAGS) + +############################################################################### +# Linker flags +LDFLAGS += --static -nostartfiles -nostdlibs +LDFLAGS += -L$(LIB_DIR) -L$(TOOLCHLIB) +LDFLAGS += -T$(LDSCRIPT) + +############################################################################### +# Used libraries +LDLIBS += -lc $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) + +DEFS += -DSTM32$(FAMILY) -DSTM32$(MCU) -DSTM32F10X_$(DENSITY) + +ELF := $(OBJDIR)/$(BINARY).elf +LIST := $(OBJDIR)/$(BINARY).list +BIN := $(BINARY).bin +HEX := $(BINARY).hex + +all: $(OBJDIR)/RELEASE bin list size +release: all + +debug: CFLAGS += -DEBUG -Werror +debug: $(OBJDIR)/DEBUG bin list size + +$(OBJDIR)/DEBUG: + @rm -rf $(OBJDIR) + @mkdir $(OBJDIR) + @> $(OBJDIR)/DEBUG + @echo "TARGET: DEBUG" + echo "CFLAGS += -DEBUG -Werror" > $(OBJDIR)/CFLAGS +$(OBJDIR)/RELEASE: + @rm -rf $(OBJDIR) + @mkdir $(OBJDIR) + @> $(OBJDIR)/RELEASE + @echo "TARGET: RELEASE" + echo "" > $(OBJDIR)/CFLAGS + +elf: $(ELF) +bin: $(BIN) +hex: $(HEX) +list: $(LIST) + +ifneq ($(MAKECMDGOALS),clean) +-include $(DEPS) +-include $(OBJDIR)/CFLAGS +endif + +$(OBJDIR): + mkdir $(OBJDIR) + +$(STARTUP): $(INC_DIR)/startup/vector.c + $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) -o $@ -c $< + +$(OBJDIR)/%.o: %.c + @echo " CC $<" + $(CC) $(CFLAGS) $(DEFS) $(INCLUDE) -o $@ -c $< + +$(BIN): $(ELF) + @echo " OBJCOPY $(BIN)" + $(OBJCOPY) -Obinary $(ELF) $(BIN) + +$(HEX): $(ELF) + @echo " OBJCOPY $(HEX)" + $(OBJCOPY) -Oihex $(ELF) $(HEX) + +$(LIST): $(ELF) + @echo " OBJDUMP $(LIST)" + $(OBJDUMP) -S $(ELF) > $(LIST) + +$(ELF): $(OBJDIR) $(OBJS) $(LDSCRIPT) + @echo " LD $(ELF)" + $(LD) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $(ELF) + +size: $(ELF) + $(SIZE) $(ELF) + +clean: + @echo " CLEAN" + @$(RM) $(HEX) + @$(RM) -rf $(OBJDIR) 2>/dev/null || true + + +flash: $(BIN) + @echo " FLASH $(BIN)" + $(STFLASH) --reset write $(BIN) 0x8000000 + +boot: $(BIN) + @echo " LOAD $(BIN) through bootloader" + $(STBOOT) -b$(BOOTSPEED) $(BOOTPORT) -w $(BIN) + +dfuboot: $(BIN) + @echo " LOAD $(BIN) THROUGH DFU" + $(DFUUTIL) -a0 -D $(BIN) -s 0x08000000 + +.PHONY: clean flash boot diff --git a/F1-nolib/chronometer_v3/Readme.md b/F1-nolib/chronometer_v3/Readme.md new file mode 100644 index 0000000..3479cdf --- /dev/null +++ b/F1-nolib/chronometer_v3/Readme.md @@ -0,0 +1,42 @@ +Chronometer for downhill competitions +===================================== + +The binary have two models: DEBUG (make debug) and RELEASE (make release or just make). +DEBUGGing model use USART1 as debugging console, showing many messages. + +When typing commands you can fix them using backspace key. ESC-sequences don't work. + +## Pinout + +### Interfaces + +- PA11/12 -- USB +- PA9(Tx), PA10 (Rx) -- USART1 (debug console / Bluetooth / GPS proxy) +- PA2(Tx), PA3 -- USART2 (GPS) +- PB10(Tx), PB11 -- USART3 (LIDAR / console) + +- PA13/14 - SWDIO + +### Other + +- PA1 -- PPS signal from GPS (EXTI) +- PA8 -- Bluetooth "State" pin (not implemented yet) +- PA15 -- USB pullup + +- PB0/1 -- TRIG0/1 +- PB3 -- TRIG2 +- PB8, PB9 -- onboard LEDs (PB8 - LED1, PB9 - LED0) + +- PC13 -- buzzer + +### LED screen: + +- PA5,6,7 (SCK, MISO, MOSI) -- SPI for LED screen: PA5/7 - SCK/MOSI, PA6 - SCLK/nOE (connected together) +- PB6/7 -- A/B for LED screen + +## LEDS + +- LED0 -- shining when there's no PPS signal, fades for 0.25s on PPS +- LED1 -- don't shines if no GPS found, shines when time not valid, blinks when time valid + + diff --git a/F1-nolib/chronometer_v3/Readme_rus.txt b/F1-nolib/chronometer_v3/Readme_rus.txt new file mode 100644 index 0000000..6e97ee8 --- /dev/null +++ b/F1-nolib/chronometer_v3/Readme_rus.txt @@ -0,0 +1,244 @@ +äÏÐÏÌÎÅÎÏ ×Ù×ÏÄÏÍ ×ÒÅÍÅÎÉ ÎÁ LED screen. + +****** òÁÓÐÉÎÏ×ËÁ ****** + +=== éÎÔÅÒÆÅÊÓÙ I/O === +- PA11/12 - USB +- PA9(Tx), PA10(Rx) - USART1 - ËÏÎÓÏÌØ ÏÔÌÁÄËÉ / ÐÒÏËÓÉ RMC-ÓÏÏÂÝÅÎÉÊ GPS (ÏÐÔ. - bluetooth). +- PA2(Tx), PA3(Rx) - USART2 - ÐÏÄËÌÀÞÅÎÉÅ GPS-ÐÒÉÅÍÎÉËÁ. +- PB10(Tx), PB11(Rx) - USART3 - ÐÏÄËÌÀÞÅÎÉÅ ÌÉÄÁÒÁ ÉÌÉ ÄÒÕÇÏÊ ËÏÎÓÏÌÉ. + +=== ïÓÔÁÌØÎÙÅ ÐÏÒÔÙ === +- PA1 - PPS ÓÉÇÎÁÌ ÏÔ GPS; ÓÀÄÁ ÍÏÖÎÏ ÐÏÄËÌÀÞÁÔØ ÌÀÂÏÊ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ×ÙÓÏËÏÏÍÎÙÊ ×ÈÏÄ ÎÁÐÒÑÍÕÀ. +- PB0 - TRIG0 - (ÚÁÍÙËÁÔØ ÎÁ ÚÅÍÌÀ). +- PB1 - TRIG1 - ÐÏÄËÌÀÞÅÎ Ë 12÷. +- PB3 - TRIG2 - (ÚÁÍÙËÁÔØ ÎÁ ÚÅÍÌÀ). +- PA15 - ÐÏÄÔÑÖËÁ USB. +- PA8 - (ÎÅ ÒÅÁÌÉÚÏ×ÁÎÏ) - bluetooth "state" +- PB8, PB9 - ÉÎÄÉËÁÔÏÒÎÙÅ Ó×ÅÔÏÄÉÏÄÙ (LED1, LED0 ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ). +- PC13 - ÐÉÝÁÌËÁ. + +=== ó×ÅÔÏÄÉÏÄÙ === +- LED0 - ÐÒÉ ÏÔÓÕÔÓÔ×ÉÉ ÓÉÇÎÁÌÁ PPS ÐÒÏÓÔÏ ÇÏÒÉÔ, ÅÓÌÉ PPS ÐÏÑ×ÌÑÅÔÓÑ - ÍÉÇÁÅÔ (ÚÁÔÕÈÁÅÔ ÎÁ 0.25Ó ÎÁ ËÁÖÄÙÊ ÓÉÇÎÁÌ). +- LED1 - ÉÎÄÉËÁÔÏÒ GPS: ÎÅ ÇÏÒÉÔ, ÅÓÌÉ ÐÒÉÅÍÎÉË ÎÅ ÏÂÎÁÒÕÖÅÎ; ÇÏÒÉÔ ÐÏÓÔÏÑÎÎÏ, ÅÓÌÉ ÎÅÕ×ÅÒÅÎÎÙÊ ÐÒÉÅÍ ×ÒÅÍÅÎÉ +(ÂÕË×Á "V" ×Ï ×ÔÏÒÏÊ ÐÏÚÉÃÉÉ RMC-ÓÏÏÂÝÅÎÉÑ); ÍÉÇÁÅÔ ÐÒÉ Õ×ÅÒÅÎÎÏÍ ÐÒÉÅÍÅ (ÂÕË×Á "A" ×Ï ×ÔÏÒÏÊ ÐÏÚÉÃÉÉ). +îÁÞÉÎÁÔØ ÒÁÂÏÔÕ ÍÏÖÎÏ ÓÒÁÚÕ, ËÁË ÔÏÌØËÏ ÚÁÍÉÇÁÅÔ LED0. + + +****** ôÒÉÇÇÅÒÙ ****** +ë TRIG0/TRIG2 ÐÏÄËÌÀÞÁÅÔÓÑ ËÎÏÐËÁ, ÐÅÄÁÌØ, ÉÎÏÊ ÓÔ×ÏÒ, ÚÁÍÙËÁÀÝÉÊ ËÏÎÔÁËÔÙ. îÉËÁËÏÇÏ ×ÎÅÛÎÅÇÏ ÎÁÐÒÑÖÅÎÉÑ ÚÄÅÓØ ÂÙÔØ ÎÅ ÄÏÌÖÎÏ! ðÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÀÞ ÎÁ ÐÏÌÅ×ÏÍ ÔÒÁÎÚÉÓÔÏÒÅ ÉÌÉ ÏÐÔÏÒÁÚ×ÑÚËÅ, ÚÁÍÙËÁÀÝÉÊ ÓÉÇÎÁÌØÎÙÊ ËÏÎÔÁËÔ ÎÁ ÚÅÍÌÀ. +ë TRIG1 ÎÕÖÎÏ ÐÏÄËÌÀÞÁÔØ 12-×ÏÌØÔÎÙÊ ÓÉÇÎÁÌ, ÔÏË ÎÅ ÍÅÎØÛÅ 10Íá. åÓÌÉ ÓÔ×ÏÒ ÉÍÅÅÔ ÏÔËÒÙÔÙÊ ËÏÌÌÅËÔÏÒ, ÔÏ ×ÙÈÏÄ ÓÔ×ÏÒÁ ÐÏÄËÌÀÞÁÅÔÓÑ Ë ÍÉÎÕÓÕ TRIG2, Á Ë ÐÌÀÓÕ ÐÏÄËÌÀÞÁÅÔÓÑ 12÷ Ó ÉÓÔÏÞÎÉËÁ ÐÉÔÁÎÉÑ. +÷ ÓÌÕÞÁÅ ÌÏÖÎÙÈ ÓÒÁÂÁÔÙ×ÁÎÉÊ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÚÁÚÅÍÌÉÔØ ËÁÔÏÄ ÉÓÔÏÞÎÉËÁ ÐÉÔÁÎÉÑ ÈÒÏÎÏÍÅÔÒÁ. + +ðÒÉ ÐÏÄËÌÀÞÅÎÉÉ ×ÎÅÛÎÅÊ ËÎÏÐËÉ ÖÅÌÁÔÅÌØÎÏ, ÞÔÏÂÙ ÏÎÁ ÉÍÅÌÁ ÎÏÒÍÁÌØÎÏ ÚÁÍËÎÕÔÙÅ ËÏÎÔÁËÔÙ - ÜÔÏ ÐÒÅÄÏÔ×ÒÁÔÉÔ ÌÏÖÎÙÅ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÉÚ-ÚÁ ÜÌÅËÔÒÏÍÁÇÎÉÔÎÙÈ ÐÏÍÅÈ. + + +****** ðÏÄËÌÀÞÅÎÉÅ ****** +èÒÏÎÏÍÅÔÒ ÜÍÕÌÉÒÕÅÔ "ËÉÔÁÊÓËÉÊ" ÐÒÅÏÂÒÁÚÏ×ÁÔÅÌØ PL2303. + +ë ×ÙÈÏÄÁÍ PA9/PA10 ÍÏÖÎÏ ÐÏÄËÌÀÞÉÔØ ÐÒÅÏÂÒÁÚÏ×ÁÔÅÌØ USART<>USB, ÎÁËÉÎÕÔØ ÉÈ ÎÁÐÒÑÍÕÀ ÎÁ ÎÏÇÉ Rx/Tx "ÍÁÌÉÎËÉ" (PA9(Tx) ÓÏÅÄÉÎÉÔØ Ó Rx, PA10(Rx) - Ó Tx) ÉÌÉ ÐÏÄËÌÀÞÉÔØ Ë bluetooth-ÍÏÄÕÌÀ. üÔÏÔ USART ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ (× ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÎÁÓÔÒÏÅË) ËÁË ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÕÐÒÁ×ÌÑÀÝÉÊ ÔÅÒÍÉÎÁÌ ÉÌÉ ÐÒÏËÓÉ RMC-ÓÏÏÂÝÅÎÉÊ GPS-ÐÒÉÅÍÎÉËÁ (ÕÖÅ ÐÏÓÌÅ ÏÂÒÁÂÏÔËÉ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÏÍ, ÐÏÜÔÏÍÕ ÅÓÌÉ íë ×ÙËÌÀÞÅÎ, Á ÐÒÉÅÍÎÉË ×ËÌÀÞÅÎ, ÓÉÇÎÁÌÁ ×ÓÅ ÒÁ×ÎÏ ÎÅ ÂÕÄÅÔ). + +ë ÒÁÚßÅÍÕ LIDAR ÍÏÖÎÏ ÐÏÄËÌÀÞÉÔØ ÌÉÄÁÒ, ÌÉÂÏ ÎÁÓÔÒÏÉÔØ ÅÇÏ ÎÁ ÅÝÅ ÏÄÉÎ ÕÐÒÁ×ÌÑÀÝÉÊ ÔÅÒÍÉÎÁÌ. óËÏÒÏÓÔØ ÏÂÏÉÈ ÎÁÓÔÒÁÉ×ÁÅÔÓÑ × ËÏÎÆÉÇÕÒÁÃÉÉ. + +äÌÑ ÐÏÄËÌÀÞÅÎÉÑ PPS ÓÉÇÎÁÌÁ Ë "ÍÁÌÉÎËÅ" ×Ù×ÅÄÅÎ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÒÁÚßÅÍ (ÔÁÍ ÉÓÐÏÌØÚÕÅÔÓÑ ÜÍÉÔÔÅÒÎÙÊ ÐÏ×ÔÏÒÉÔÅÌØ, ÐÏÜÔÏÍÕ ÕÒÏ×ÅÎØ ÌÏÇÉÞÅÓËÏÊ ÅÄÉÎÉÃÙ ÎÁ ÅÇÏ ×ÙÈÏÄÅ ÏËÏÌÏ 2.6÷, ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÂÕÆÅÒ, ÓÏÇÌÁÓÕÀÝÉÊ ÕÒÏ×ÎÉ). + +òÁÚßÅÍÙ I2C É SPI ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë Ó×ÅÔÏÄÉÏÄÎÏÊ ÐÁÎÅÌÉ. +"SPI": +- MOSI - Ë ÐÉÎÕ DATA (12) +- SCK - Ë ÐÉÎÕ CLK (10) +- MISO - Ë ÐÉÎÁÍ SCLK (10) É ENABLE (1) +"I2C": +- SCL - Ë ÐÉÎÕ A (2) +- SDA - Ë ÐÉÎÕ B (4) +- ÓÏÅÄÉÎÉÔØ ÚÅÍÌÉ ÐÁÎÅÌÉ É ÈÒÏÎÏÍÅÔÒÁ. + +îÅÖÅÌÁÔÅÌØÎÏ ÐÏÄËÌÀÞÁÔØ ÐÉÎÙ ÎÁÐÒÑÍÕÀ, ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÂÕÆÅÒ ÄÌÑ ÒÁÚ×ÑÚËÉ, ÉÎÁÞÅ ÅÓÔØ ÛÁÎÓ ÓÖÅÔØ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒ, ÅÓÌÉ ÐÒÉÂÏÒ ÂÕÄÅÔ ×ËÌÀÞÅÎ ÂÅÚ ÐÏÄÁÞÉ ÐÉÔÁÎÉÑ ÎÁ ÐÁÎÅÌØ. + + +****** ëÏÎÆÉÇÕÒÁÃÉÑ ****** +èÒÏÎÏÍÅÔÒ ËÏÎÆÉÇÕÒÉÒÕÅÔÓÑ ÞÅÒÅÚ ÌÀÂÏÊ ÁËÔÉ×ÎÙÊ ÕÐÒÁ×ÌÑÀÝÉÊ ÔÅÒÍÉÎÁÌ (USB, USART1-Bluetooth, USART3-LIDAR). ðÒÉ ÎÁÂÏÒÅ ËÏÍÁÎÄ Ó ËÌÁ×ÉÁÔÕÒÙ × USB-ÔÅÒÍÉÎÁÌÅ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÕ Backspace ÄÌÑ ÕÄÁÌÅÎÉÑ ÎÅÐÒÁ×ÉÌØÎÏ ××ÅÄÅÎÎÙÈ ÓÉÍ×ÏÌÏ×. +þÔÏÂÙ Õ×ÉÄÅÔØ ÐÏÄÓËÁÚËÕ, ÄÏÓÔÁÔÏÞÎÏ ÏÔÐÒÁ×ÉÔØ ÌÀÂÕÀ ÓÔÒÏËÕ, ÎÁÞÉÎÁÀÝÕÀÓÑ Ó ×ÏÐÒÏÓÉÔÅÌØÎÏÇÏ ÚÎÁËÁ. ðÏÑ×ÉÔÓÑ ÓÐÒÁ×ËÁ: + +btnstate - show triggers state +buzzerS - turn buzzer ON/OFF +cls - turn LED display off +curdist - show current LIDAR distance +deletelogs - delete logs from flash memory +distmin - min distance threshold (cm) +distmax - max distance threshold (cm) +dumpN - dump 20 last stored events (no x), all (x<1) or x +evtlenN - duration of the trigger event display (ms) +flash - FLASH info +gateS - check/not check triggers (1/0) +gpsproxyS - GPS proxy over USART1 on/off +gpsrestart - send Full Cold Restart to GPS +gpsstat - get GPS status +gpsstring - current GPS data string +ledsS - turn leds on/off (1/0) +lidarS - switch between LIDAR (1) or command TTY (0) +lidspdN - set LIDAR speed to N +mcutemp - MCU temperature +mesg str - show 'str' at display (no more than 7 chars) +ndumpN - dump Nth log & show on screen (-N - Nth from last) +nfree - warn when free logs space less than this number (0 - not warn) +reset - reset MCU +seS - save/don't save (1/0) trigger events into flash +showconf - show current configuration +showshutterS - show/not show trigger events +showtime - show current time +stautoX - auto start every X minutes (0 or absent - cancel, +/- - increase/decrease by 1min) +stonceX - delayed start after X minutes (like auto) +store - store new configuration in flash +stortest - add test trigger event record into flash +strendC - string ends with \n (C=n) or \r\n (C=r) +time - print current time +triglevelNS - working trigger N level S +trigpauseNP - pause (P, ms) after trigger N shots +trigtimeN - show last trigger N time +usartspdN - set USART1 speed to N +usbreset - reset USB connectioin +vdd - Vdd value + + +ðÏÄÒÏÂÎÅÅ (S ÐÏÓÌÅ ËÏÍÁÎÄÙ ÏÚÎÁÞÁÅÔ 1 ÉÌÉ 0, âåú ðòïâåìá! N - ÞÉÓÌÏ, ÐÒÏÂÅÌ ÍÏÖÎÏ ÓÔÁ×ÉÔØ): +- btnstate - ÏÔÏÂÒÁÖÅÎÉÅ ÓÏÓÔÏÑÎÉÑ ÔÒÉÇÇÅÒÏ× É ÕÒÏ×ÎÑ PPS, ÎÁÐÒÉÍÅÒ: + BTN0=0, BTN1=0, BTN2=0, PPS=0 + ÏÚÎÁÞÁÅÔ, ÞÔÏ ÎÁ ×ÓÅÈ ×ÈÏÄÁÈ ÓÉÇÎÁÌÁ ÎÅÔ. íÏÖÎÏ ÐÒÉÍÅÎÑÔØ ÜÔÕ ËÏÍÁÎÄÕ ÄÌÑ ÁÎÁÌÉÚÁ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÏ×, ÅÓÌÉ ÐÉÝÁÌËÁ ×ÙËÌÀÞÅÎÁ. + +- buzzer - buzzer1 ÒÁÚÒÅÛÁÅÔ ÐÉÝÁÔØ ×ÓÔÒÏÅÎÎÏÊ ÐÉÝÁÌËÅ, buzzer0 - ÚÁÐÒÅÝÁÅÔ. ðÏÓÌÅ ËÏÍÁÎÄÙ ÐÏÑ×ÌÑÅÔÓÑ ÏÔ×ÅÔ ×ÒÏÄÅ + BUZZER=ON + +- cls - ×ÙËÌÀÞÉÔØ ÜËÒÁÎ. + +- curdist - ÔÅËÕÝÅÅ ÒÁÓÓÔÏÑÎÉÅ, ÉÚÍÅÒÑÅÍÏÅ ÌÉÄÁÒÏÍ. + +- deletelogs - ÏÞÉÓÔÉÔØ ÉÚ ÆÌÅÛ-ÐÁÍÑÔÉ ×ÓÅ ÚÁÐÉÓÉ Ï ×ÒÅÍÅÎÉ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÏ×. + +- distmin, distmax - ÐÒÅÄÅÌÙ ÏÂÎÁÒÕÖÅÎÉÑ ÄÌÑ ÌÉÄÁÒÁ. + +- dump - ×Ù×ÅÓÔÉ ÎÁ ÔÅÒÍÉÎÁÌÅ ÄÁÍÐ ÐÏÓÌÅÄÎÉÈ 20 ÓÏÂÙÔÉÊ (ÂÅÚ ÐÁÒÁÍÅÔÒÁ N), ÐÏÓÌÅÄÎÉÈ N ÓÏÂÙÔÉÊ (N>0) ÉÌÉ ×ÓÅÈ. + +- evtlen - ×ÒÅÍÑ (× ÍÉÌÌÉÓÅËÕÎÄÁÈ, ÐÏ ÕÍÏÌÞÁÎÉÀ 5000), × ÔÅÞÅÎÉÅ ËÏÔÏÒÏÇÏ ÎÁ ÜËÒÁÎÅ ÂÕÄÅÔ ÏÔÏÂÒÁÖÁÔØÓÑ ×ÒÅÍÑ ÐÅÒÅÓÅÞÅÎÉÑ ÓÔ×ÏÒÁ ÉÌÉ ÄÁÍÐÁ. + +- flash - ÉÎÆÏÒÍÁÃÉÑ Ï ÆÌÅÛ-ÐÁÍÑÔÉ, ÎÁÐÒÉÍÅÒ: + FLASHSIZE=128kB - ÏÂÝÉÊ ÏÂßÅÍ ÐÁÍÑÔÉ + FLASH_BASE=0x08000000 - ÂÁÚÏ×ÙÊ ÁÄÒÅÓ ÈÒÁÎÅÎÉÑ ÐÒÏÛÉ×ËÉ + Flash_Data=0x08007000 - ÁÄÒÅÓ, Ó ËÏÔÏÒÏÇÏ ÎÁÞÉÎÁÅÔÓÑ ÈÒÁÎÉÌÉÝÅ ÎÁÓÔÒÏÅË + varslen=2048 - ÒÁÚÍÅÒ (× ÂÁÊÔÁÈ) ÆÌÅÛ-ÐÁÍÑÔÉ, ×ÙÄÅÌÑÅÍÏÊ ÐÏÄ ÈÒÁÎÅÎÉÅ ËÏÎÆÉÇÕÒÁÃÉÉ + CONFsize=28 - ÒÁÚÍÅÒ (× ÂÁÊÔÁÈ) ÏÄÎÏÊ "ÑÞÅÊËÉ" Ó ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÍÉ ÄÁÎÎÙÍÉ + Nconf_records=72 - ËÏÌÉÞÅÓÔ×Ï "ÑÞÅÅË" ËÏÎÆÉÇÕÒÁÃÉÉ, ËÏÔÏÒÙÅ ÍÏÖÎÏ ÓÏÈÒÁÎÉÔØ, ÎÅ ÓÔÉÒÁÑ ÆÌÅÛ + logsstart=0x08007800 - ÁÄÒÅÓ, Ó ËÏÔÏÒÏÇÏ ÎÁÞÉÎÁÅÔÓÑ ÏÂÌÁÓÔØ ÈÒÁÎÅÎÉÑ ÌÏÇÏ× (ÄÁÍÐ ÓÏÂÙÔÉÊ) + LOGsize=16 - ÒÁÚÍÅÒ ÏÄÎÏÊ "ÑÞÅÊËÉ" ÌÏÇÁ + Nlogs_records=6271 - ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÌÏÇÏ× + +- gate - ÒÅÁÇÉÒÏ×ÁÔØ ÎÁ ÓÏÂÙÔÉÑ ÓÔ×ÏÒÏ× (ÐÁÒÁÍÅÔÒÁ ÎÅÔ, ÌÉÂÏ ÐÁÒÁÍÅÔÒ != '0') ÉÌÉ ÎÅÔ. + +- gpsproxy - ÐÒÏËÓÉÒÏ×ÁÔØ ×ÓÅ ÓÏÏÂÝÅÎÉÑ GPS ÎÁ USART1 (ÒÁÚßÅÍ Bluetooth), ÌÉÂÏ ÎÅ ÐÒÏËÓÉÒÏ×ÁÔØ (ÅÓÌÉ ÐÁÒÁÍÅÔÒ == '0'). + +- gpsrestart - ÐÅÒÅÚÁÐÕÓË GPS, ÄÅÌÁÅÔ "ÈÏÌÏÄÎÙÊ" ÒÅÓÔÁÒÔ. + +- gpsstat - ÓÏÓÔÏÑÎÉÅ GPS: "not found", ÅÓÌÉ ÎÅ ÏÂÎÁÒÕÖÅÎÏ ÎÉËÁËÉÈ ÐÒÉÅÍÎÉËÏ× GPS; "waiting" ×Ï ×ÒÅÍÑ ÐÏÉÓËÁ ÓÐÕÔÎÉËÏ×; "no satellites" × ÓÌÕÞÁÅ ÐÏÔÅÒÉ ÓÐÕÔÎÉËÏ× (GPRMC ÉÍÅÅÔ ÓÔÁÔÕÓ "not valid"); "valid time", ÅÓÌÉ ×ÓÅ ÈÏÒÏÛÏ. + +- gpsstring - ×Ù×ÏÄ ÏÞÅÒÅÄÎÏÇÏ ÓÏÏÂÝÅÎÉÑ ÏÔ GPS. åÓÌÉ ×ÓÅ ÎÏÒÍÁÌØÎÏ, ÔÏ ÐÏÑ×ÉÔÓÑ ÓÔÒÏËÁ RMC ×ÒÏÄÅ + $GPRMC,124001.000,A,4340.9369,N,04127.5034,E,0.00,33.26,150819,,,A*5C + ÄÌÑ ×ÎÅÛÎÅÇÏ GPS ÐÏÑ×ÉÔÓÑ ÐÅÒ×ÁÑ ÐÏÐÁ×ÛÁÑÓÑ ÓÔÒÏËÁ. + +- leds - ×ËÌÀÞÉÔØ/×ÙËÌÀÞÉÔØ ÄÉÁÇÎÏÓÔÉÞÅÓËÉÅ Ó×ÅÔÏÄÉÏÄÙ (×ÁÌÉÄÎÙ ÔÏÌØËÏ ÐÁÒÁÍÅÔÒÙ 1 ÉÌÉ 0). + +- lidar - ÎÁÓÔÒÏÊËÁ ÐÏÒÔÁ USART3 (LIDAR): ÅÓÌÉ ÐÁÒÁÍÅÔÒ ÏÔÓÕÔÓÔ×ÕÅÔ ÉÌÉ ÎÅ ÒÁ×ÅÎ '0', ÔÏ ÐÏÒÔ ÒÁÂÏÔÁÅÔ Ó ÌÉÄÁÒÏÍ, ÉÎÁÞÅ USART3 ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÄÉÁÇÎÏÓÔÉÞÅÓËÉÊ ÐÏÒÔ. åÓÌÉ ÎÁ ÜÔÏÍ ÐÏÒÔÕ ÎÉÞÅÇÏ ÎÅÔ, ×ÙÂÏÒ ÒÅÖÉÍÁ ÎÉËÁË ÎÅ ÓËÁÚÙ×ÁÅÔÓÑ ÎÁ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÉ. + +- lidspd - ÕÓÔÁÎÏ×ËÁ ÓËÏÒÏÓÔÉ ÐÏÒÔÁ USART3 (LIDAR). + +- mcutemp - ÕÓÌÏ×ÎÁÑ ÔÅÍÐÅÒÁÔÕÒÁ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁ (degrC). + +- mesg - ÏÔÏÂÒÁÚÉÔØ ÎÁ Ó×ÅÔÏÄÉÏÄÎÏÊ ÐÁÎÅÌÉ ËÏÒÏÔËÏÅ (ÍÁËÓÉÍÕÍ 7-8 ÓÉÍ×ÏÌÏ×) ÓÏÏÂÝÅÎÉÅ. åÓÌÉ ÄÏ ×ÙÚÏ×Á ÜÔÏÊ ËÏÍÁÎÄÙ ÜËÒÁÎ ÏÔÏÂÒÁÖÁÌ ×ÒÅÍÑ, ÔÏ ÏÎ ×ÙÈÏÄÉÔ ÉÚ ÒÅÖÉÍÁ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ É ÐÏÓÔÏÑÎÎÏ ÐÏËÁÚÙ×ÁÅÔ ÓÏÏÂÝÅÎÉÅ. äÌÑ ×ÏÚ×ÒÁÝÅÎÉÑ × ÒÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ ÎÕÖÎÏ ××ÅÓÔÉ ËÏÍÁÎÄÕ showtime. äÌÑ ×Ù×ÏÄÁ ÓÏÏÂÝÅÎÉÊ ËÉÒÉÌÌÉÃÅÊ ÔÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ËÏÄÉÒÏ×ËÕ ëïé8-ò. + +- ndump - ÏÔÏÂÒÁÚÉÔØ N-À ÚÁÐÉÓØ × ÌÏÇÅ ÓÏÂÙÔÉÊ (ÅÓÌÉ N<0, ÔÏ ÏÔÓÞÅÔ ÉÄÅÔ ÏÔ ËÏÎÃÁ ÌÏÇÁ: N==-1 - ÐÏÓÌÅÄÎÑÑ ÚÁÐÉÓØ, N==-2 - ÐÒÅÄÐÏÓÌÅÄÎÑÑ É ÔÁË ÄÁÌÅÅ), ÐÒÉ N ×ÎÅ ÄÉÁÐÁÚÏÎÁ ÏÔÏÂÒÁÖÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ. åÓÌÉ Ó×ÅÔÏÄÉÏÄÎÁÑ ÐÁÎÅÌØ ÎÁÈÏÄÉÔÓÑ × ÒÅÖÉÍÅ showtime, ÄÁÎÎÏÅ ×ÒÅÍÑ ÏÔÏÂÒÁÚÉÔÓÑ É ÎÁ ÎÅÊ × ÔÅÞÅÎÉÅ eventlen ÍÉÌÌÉÓÅËÕÎÄ. + +- nfree - ÐÏÚ×ÏÌÑÅÔ ÕÓÔÁÎÏ×ÉÔØ ËÏÌÉÞÅÓÔ×Ï ÚÁÐÉÓÅÊ ÄÏ ÏËÏÎÞÁÎÉÑ ÆÌÅÛÁ, ËÏÇÄÁ ÈÒÏÎÏÍÅÔÒ ÓÔÁÎÅÔ ×ÙÄÁ×ÁÔØ × ËÏÎÓÏÌØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ ÐÒÉ ËÁÖÄÏÍ ÓÏÈÒÁÎÅÎÉÉ ÓÏÂÙÔÉÑ ÓÔ×ÏÒÁ. ÷ ÓÌÕÞÁÅ, ÅÓÌÉ Ó×ÏÂÏÄÎÏÊ ÐÁÍÑÔÉ ×Ï ÆÌÅÛÅ ÎÅ ÏÓÔÁÎÅÔÓÑ, ÐÏÐÙÔËÉ ÓÏÈÒÁÎÅÎÉÑ ÓÏÂÙÔÉÊ ÂÕÄÕÔ ÚÁ×ÅÒÛÁÔØÓÑ ÓÏÏÂÝÅÎÉÑÍÉ Ï ÏÛÉÂËÅ. á×ÔÏÍÁÔÉÞÅÓËÏÊ ÏÞÉÓÔËÉ ÆÌÅÛÁ ÎÅ ÐÒÏÉÓÈÏÄÉÔ, ÎÅÏÂÈÏÄÉÍÏ ×ÒÕÞÎÕ ×ÙÚ×ÁÔØ ËÏÍÁÎÄÕ deletelogs. + +- reset - ÐÅÒÅÚÁÇÒÕÚËÁ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁ. + +- se - Ó ÐÁÒÁÍÅÔÒÏÍ '0' ÚÁÐÒÅÝÁÅÔ ÓÏÈÒÁÎÅÎÉÅ ÓÏÂÙÔÉÊ ÓÔ×ÏÒÏ× ×Ï ÆÌÅÛ-ÐÁÍÑÔØ, ÂÅÚ ÐÁÒÁÍÅÔÒÁ ÉÌÉ Ó ÌÀÂÙÍ ÐÁÒÁÍÅÔÒÏÍ ÒÁÚÒÅÛÁÅÔ ÜÔÏ. + +- showconf - ÏÔÏÂÒÁÖÅÎÉÅ ÔÅËÕÝÅÊ ËÏÎÆÉÇÕÒÁÃÉÉ, ÎÁÐÒÉÍÅÒ: + DISTMIN=50 + DISTMAX=1000 + TRIGLVL=0 + TRIGPAUSE={400, 400, 400, 300} + USART1SPD=115200 + LIDARSPD=115200 + NFREE=100 + STREND=N + SAVE_EVENTS=0 + GPSPROXY=0 + LIDAR=1 + EVTLEN=5000 + + ðÕÎËÔÙ ËÏÎÆÉÇÕÒÁÃÉÉ DISTMIN/DISTMAX ÏÔÎÏÓÑÔÓÑ Ë ÌÉÄÁÒÕ. + TRIGLVL - ËÏÎÆÉÇÕÒÁÃÉÑ ÕÒÏ×ÎÅÊ ÓÒÁÂÁÔÙ×ÁÎÉÑ, ËÁÖÄÙÊ ÂÉÔ, ÎÁÞÉÎÁÑ Ó ÍÌÁÄÛÅÇÏ (×ÓÅÇÏ ÔÒÉ ÍÌÁÄÛÉÈ ÂÉÔÁ), ÒÁ×ÅÎ ÎÕÌÀ, ÅÓÌÉ ÄÌÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÔÒÉÇÇÅÒÁ ÓÒÁÂÁÔÙ×ÁÎÉÅ ÐÒÉ ÐÅÒÅÈÏÄÅ 1->0; ÒÁ×ÅÎ ÅÄÉÎÉÃÅ, ÅÓÌÉ ÐÒÉ ÐÅÒÅÈÏÄÅ 0->1. + TRIGPAUSE - ÐÁÕÚÁ ÍÅÖÄÕ ÓÒÁÂÁÔÙ×ÁÎÉÑÍÉ ÓÔ×ÏÒÁ: ÅÓÌÉ ÐÏÓÌÅ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÐÒÏÉÚÏÊÄÅÔ ÓÌÅÄÕÀÝÅÅ ÓÏÂÙÔÉÅ ÚÁ ÉÎÔÅÒ×ÁÌ, ÍÅÎØÛÉÊ ÚÁÄÁÎÎÏÇÏ, ÜÔÏ ÓÏÂÙÔÉÅ ÕÞÉÔÙ×ÁÔØÓÑ ÎÅ ÂÕÄÅÔ. + USART1SPD, LIDARSPD - ÓËÏÒÏÓÔÉ × ÂÏÄÁÈ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÐÏÒÔÏ× (ÒÁÚßÅÍÙ "Bluetooth" É "LIDAR"). + NFREE - ËÏÌÉÞÅÓÔ×Ï Ó×ÏÂÏÄÎÙÈ ÑÞÅÅË ÆÌÅÛ-ÐÁÍÑÔÉ, ÎÁÞÉÎÁÑ Ó ËÏÔÏÒÏÇÏ ÂÕÄÕÔ ×ÙÄÁ×ÁÔØÓÑ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ × ÔÅÒÍÉÎÁÌ ÐÒÉ ÓÏÈÒÁÎÅÎÉÉ ÓÏÂÙÔÉÊ ÓÔ×ÏÒÁ. + STREND - ÏËÏÎÞÁÎÉÅ ÓÔÒÏËÉ: N - "\n", RN - "\r\n". + SAVE_EVENTS - ÓÏÈÒÁÎÑÔØ ÌÉ ÓÏÂÙÔÉÑ ÓÔ×ÏÒÏ× ×Ï ÆÌÅÛ-ÐÁÍÑÔÉ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁ. + GPSPROXY - ÐÒÏËÓÉÒÏ×ÁÔØ ÌÉ ÓÏÏÂÝÅÎÉÑ GPS ÎÁ USART1. + LIDAR - ÞÔÏ ÎÁÈÏÄÉÔÓÑ ÎÁ ÒÁÚßÅÍÅ "LIDAR": ÌÉÄÁÒ (1) ÉÌÉ ÕÐÒÁ×ÌÑÀÝÉÊ ÔÅÒÍÉÎÁÌ (0). + EVTLEN - ÓËÏÌØËÏ ÍÉÌÌÉÓÅËÕÎÄ ÏÔÏÂÒÁÖÁÅÔÓÑ ×ÒÅÍÑ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÁ ÎÁ ÜËÒÁÎÅ. + + ðÒÉ ÉÚÍÅÎÅÎÉÉ ÏÐÒÅÄÅÌÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ËÏÎÆÉÇÕÒÁÃÉÉ ËÏÍÁÎÄÁ showconf ÐÏÚ×ÏÌÑÅÔ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ×ÓÅ ÐÒÏÛÌÏ ÎÏÒÍÁÌØÎÏ. + ÷ÓÅ ÉÚÍÅÎÅÎÉÑ, ËÒÏÍÅ ÓËÏÒÏÓÔÉ ÐÏÒÔÏ×, ×ÓÔÕÐÁÀÔ × ÓÉÌÕ ÎÅÍÅÄÌÅÎÎÏ. äÌÑ ÉÚÍÅÎÅÎÉÑ ÓËÏÒÏÓÔÉ ÐÏÒÔÏ× ÎÅÏÂÈÏÄÉÍÏ ÓÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ×Ï ÆÌÅÛ-ÐÁÍÑÔÉ ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄÙ store, Á ÚÁÔÅÍ ×ÙÐÏÌÎÉÔØ ÐÅÒÅÚÁÇÒÕÚËÕ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁ. ðÅÒÅÚÁÇÒÕÚËÁ ÎÅ ÏÔÒÁÖÁÅÔÓÑ ÎÁ ÓÏÓÔÏÑÎÉÉ GPS: ÅÓÌÉ ÏÎ ÕÖÅ ÐÏÊÍÁÌ ÓÐÕÔÎÉËÉ, ÔÏ ÔÏÞÎÁÑ ÓÉÎÈÒÏÎÉÚÁÃÉÑ íë ÂÕÄÅÔ ÄÌÉÔØÓÑ ÎÅ ÂÏÌÅÅ 11-12 ÓÅËÕÎÄ, Á ×ÒÅÍÑ Ó ÐÏÇÒÅÛÎÏÓÔØÀ × 1-2ÍÓ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎÏ ÞÅÒÅÚ 2-3 ÓÅËÕÎÄÙ ÐÏÓÌÅ ×ËÌÀÞÅÎÉÑ. + +- showshutter - ÐÒÉ ×ÙÚÏ×Å ËÏÍÁÎÄÙ Ó ÐÁÒÁÍÅÔÒÏÍ '0' ÓÏÂÙÔÉÑ ÓÔ×ÏÒÁ ÎÅ ÏÔÏÂÒÁÖÁÀÔÓÑ ÎÁ Ó×ÅÔÏÄÉÏÄÎÏÊ ÐÁÎÅÌÉ, ÅÓÌÉ ÖÅ ÐÁÒÁÍÅÔÒ ÉÍÅÅÔ ÄÒÕÇÏÅ ÚÎÁÞÅÎÉÅ ÉÌÉ ÏÐÕÝÅÎ, ÓÏÂÙÔÉÑ ÏÔÏÂÒÁÖÁÀÔÓÑ. + +- showtime - ÐÅÒÅ×ÅÓÔÉ Ó×ÅÔÏÄÉÏÄÎÕÀ ÐÁÎÅÌØ × ÒÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ (Ô.Å. ÏÔÏÂÒÁÖÁÅÔÓÑ ÔÅËÕÝÅÅ ×ÒÅÍÑ, ÓÏÂÙÔÉÑ ÓÔ×ÏÒÏ×, ÏÂÒÁÔÎÙÊ ÏÔÓÞÅÔ ÐÅÒÅÄ ÓÔÁÒÔÏÍ). ðÏ ÕÍÏÌÞÁÎÉÀ ÐÒÉ ×ËÌÀÞÅÎÉÉ ÜËÒÁÎ ÐÏËÁÚÙ×ÁÅÔ ÓÏÏÂÝÅÎÉÅ "Chrono", ËÏÔÏÒÏÅ ÍÏÖÎÏ ÉÚÍÅÎÉÔØ ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄÙ mesg, ÏÔËÌÀÞÉÔØ ÜËÒÁÎ ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄÙ cls, ÌÉÂÏ ÐÅÒÅÊÔÉ × ÒÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ ÜÔÏÊ ËÏÍÁÎÄÏÊ. + +- stauto - ÐÅÒÅÊÔÉ × ÒÅÖÉÍ ÏÔÌÏÖÅÎÎÏÇÏ Á×ÔÏÓÔÁÒÔÁ Ó ÉÎÔÅÒ×ÁÌÏÍ × N ÍÉÎÕÔ. ÷ ÒÅÖÉÍÅ ÁËÔÉ×ÁÃÉÉ Á×ÔÏÓÔÁÒÔÁ ÐÁÒÁÍÅÔÒ N ÄÏÌÖÅÎ ÉÍÅÔØ ÚÎÁÞÅÎÉÅ ÏÔ 1 ÄÏ 5. åÓÌÉ ÖÅ ÈÒÏÎÏÍÅÔÒ ÕÖÅ ÎÁÈÏÄÉÔÓÑ × ÒÅÖÉÍÅ Á×ÔÏÓÔÁÒÔÁ, ÍÏÖÎÏ ÉÚÍÅÎÑÔØ ÏÂÝÉÊ ÉÎÔÅÒ×ÁÌ, ÚÁÄÁ×ÁÑ ÄÒÕÇÏÅ ÚÎÁÞÅÎÉÅ N, ÌÉÂÏ ×ÙÐÏÌÎÑÔØ ÅÇÏ ÉÎËÒÅÍÅÎÔ/ÄÅËÒÅÍÅÎÔ, ×ÙÚÙ×ÁÑ ÜÔÕ ËÏÍÁÎÄÕ Ó N == '+' ÉÌÉ '-'. åÓÌÉ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÐÁÕÚÙ ÓÏÓÔÁ×ÌÑÅÔ 1 ÍÉÎÕÔÕ É ×ÙÚ×ÁÎÁ ËÏÍÁÎÄÁ stauto-, ÒÅÖÉÍ Á×ÔÏÓÔÁÒÔÁ ÏÔËÌÀÞÁÅÔÓÑ. áÎÁÌÏÇÉÞÎÏ ÏÔËÌÀÞÉÔØ Á×ÔÏÓÔÁÒÔ ÍÏÖÎÏ, ×ÙÚ×Á× stauto Ó ÌÀÂÙÍ ÄÒÕÇÉÍ ÐÁÒÁÍÅÔÒÏÍ, ËÒÏÍÅ +/- ÉÌÉ 1..5. ÷ ÔÅÒÍÉÎÁÌ ÐÏÓÌÅ ×ÙÚÏ×Á ËÏÍÁÎÄÙ ×ÙÄÁÀÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÏÏÂÝÅÎÉÑ. éÚÍÅÎÅÎÉÅ ÐÅÒÉÏÄÁ Á×ÔÏÓÔÁÒÔÁ ÎÅ ÓËÁÚÙ×ÁÅÔÓÑ ÎÁ ×ÒÅÍÅÎÉ ÄÏ ÂÌÉÖÁÊÛÅÇÏ ÏÔÌÏÖÅÎÎÏÇÏ ÓÔÁÒÔÁ, ÄÌÑ ÅÇÏ ÉÚÍÅÎÅÎÉÑ ÎÅÏÂÈÏÄÉÍÏ ×ÙÚÙ×ÁÔØ ËÏÍÁÎÄÕ stonce. + +- stonce - ÐÅÒÅÊÔÉ × ÒÅÖÉÍ ÏÄÉÎÏÞÎÏÇÏ ÏÔÌÏÖÅÎÎÏÇÏ ÓÔÁÒÔÁ ÞÅÒÅÚ N ÍÉÎÕÔ. äÅËÒÅÍÅÎÔ ÍÉÎÕÔ ÄÏ ÏÔÌÏÖÅÎÎÏÇÏ ÓÔÁÒÔÁ ×ÙÐÏÌÎÑÅÔÓÑ ÎÁ 28 ÓÅËÕÎÄÅ ËÁÖÄÏÊ ÍÉÎÕÔÙ. åÓÌÉ ÐÒÉ ÄÅËÒÅÍÅÎÔÅ ×ÒÅÍÑ ÄÏ ÓÔÁÒÔÁ ÓÔÁÎÏ×ÉÔÓÑ ÒÁ×ÎÙÍ ÎÕÌÀ, ÎÁ 29 ÓÅËÕÎÄÅ ÚÁÐÕÓËÁÅÔÓÑ ÏÂÒÁÔÎÙÊ ÏÔÓÞÅÔ (ÎÁÞÉÎÁÑ Ó 30 ÓÅËÕÎÄ), Á ÎÁ 59 ÓÅËÕÎÄÅ ÏÔÏÂÒÁÖÁÅÔÓÑ ÓÏÏÂÝÅÎÉÅ "óôáòô!". ïÂÁ ÒÅÖÉÍÁ - Á×ÔÏÍÁÔÉÞÅÓËÉÊ É ÏÄÉÎÏÞÎÙÊ ÏÔÌÏÖÅÎÎÙÊ ÓÔÁÒÔ - ÉÎÄÉÃÉÒÕÀÔÓÑ ÎÁ ÔÁÂÌÏ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ × ËÒÁÊÎÅÍ ÐÒÁ×ÏÍ ÓÔÏÌÂÃÅ: × ÎÉÖÎÅÊ ÐÏÌÏ×ÉÎÅ ÕËÁÚÙ×ÁÅÔÓÑ ×ÒÅÍÑ (× ÍÉÎÕÔÁÈ) ÄÏ ÓÔÁÒÔÁ, × ×ÅÒÈÎÅÊ - ÂÕË×Á "A" ÄÌÑ Á×ÔÏÓÔÁÒÔÁ É "O" ÄÌÑ ÏÄÉÎÏÞÎÏÇÏ ÓÔÁÒÔÁ. + +- store - ÓÏÈÒÁÎÉÔØ ÎÏ×ÕÀ ËÏÎÆÉÇÕÒÁÃÉÀ ×Ï ÆÌÅÛ-ÐÁÍÑÔÉ íë. åÓÌÉ ÎÉÞÅÇÏ × ËÏÎÆÉÇÕÒÁÃÉÉ ÎÅ ÍÅÎÑÌÏÓØ, ËÏÍÁÎÄÁ ÐÒÏÊÄÅÔ ÂÅÚ ÏÔËÌÉËÁ. åÓÌÉ ÖÅ ÂÙÌÉ ÉÚÍÅÎÅÎÉÑ, ÔÏ × ÓÌÕÞÁÅ ÕÓÐÅÛÎÏÇÏ ÓÏÈÒÁÎÅÎÉÑ ÐÏÑ×ÉÔÓÑ ÓÏÏÂÝÅÎÉÅ "Success!", ÉÎÁÞÅ ÂÕÄÅÔ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ "Error: can't save data!". + +- stortest - ÓÏÈÒÁÎÉÔØ ×Ï ÆÌÅÛ-ÐÁÍÑÔÉ ÔÅÓÔÏ×ÕÀ ÚÁÐÉÓØ Ó ÔÅËÕÝÉÍ ×ÒÅÍÅÎÅÍ. + +- strend - ×ÙÂÏÒ ÏËÏÎÞÁÎÉÑ ÓÔÒÏËÉ: "\r\n" (Ó ÐÁÒÁÍÅÔÒÏÍ R ÉÌÉ r) ÉÌÉ "\n" (Ó ÐÁÒÁÍÅÔÒÏÍ N ÉÌÉ n). + +- time - ÏÔÏÂÒÁÖÁÅÔ ÔÅËÕÝÅÅ ×ÒÅÍÑ ÔÁË, ËÁË ÏÎÏ ÂÙ ÏÔÏÂÒÁÚÉÌÏÓØ ÐÒÉ ÓÒÁÂÁÔÙ×ÁÎÉÉ ÓÔ×ÏÒÁ, ÎÁÐÒÉÍÅÒ, 55725.961 (15:28:45). ÷òåíñ ÷ UTC!!! ðÅÒ×ÏÅ ÞÉÓÌÏ - ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ É ÍÉÌÌÉÓÅËÕÎÄ Ó ÎÁÞÁÌÁ ÓÕÔÏË ÐÏ UTC, × ÓËÏÂËÁÈ ÕËÁÚÙ×ÁÅÔÓÑ ÞÅÌÏ×ÅËÏÞÉÔÁÅÍÏÅ ×ÒÅÍÑ. + +- triglevel - ÒÁÂÏÞÉÊ ÕÒÏ×ÅÎØ ÔÒÉÇÇÅÒÁ. úÄÅÓØ N - ÎÏÍÅÒ ÓÔ×ÏÒÁ (0..2), S - ÕÒÏ×ÅÎØ (0/1). óËÁÖÅÍ, ÞÔÏÂÙ ÔÒÉÇÇÅÒ 0 ÓÒÁÂÁÔÙ×ÁÌ ÐÒÉ ÐÅÒÅÐÁÄÅ 1->0, ÎÕÖÎÏ ÎÁÐÉÓÁÔØ ËÏÍÁÎÄÕ + triglevel00 +Á ÞÔÏÂÙ ÔÒÉÇÇÅÒ 2 ÓÒÁÂÁÔÙ×ÁÌ ÐÒÉ ÐÅÒÅÐÁÄÅ 0->1, + triglevel21 + +- trigpause - ÚÁÄÁÔØ ÐÁÕÚÕ ÄÌÑ ÔÒÉÇÇÅÒÁ N, ÐÁÕÚÁ × ÍÉÌÌÉÓÅËÕÎÄÁÈ. åÓÌÉ ÎÁÐÉÓÁÔØ 0, ÐÁÕÚÙ ÎÅ ÂÕÄÅÔ, É ËÁÖÄÏÅ ÓÒÁÂÁÔÙ×ÁÎÉÅ ÂÕÄÅÔ ×ÙÚÙ×ÁÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ ÓÏÏÂÝÅÎÉÅ. üÔÁ ÐÁÕÚÁ ÎÕÖÎÁ ÄÌÑ ÚÁÝÉÔÙ ÏÔ "Ú×ÏÎÁ" É ÎÅÓËÏÌØËÉÈ ÓÒÁÂÁÔÙ×ÁÎÉÊ ÎÁ "ÄÙÒËÁÈ" × ÏÂßÅËÔÅ. íÅÎØÛÅ 50ÍÓ ÌÕÞÛÅ ÎÅ ÄÅÌÁÔØ. + +- trigtimeN - ÏÔÏÂÒÁÖÅÎÉÅ ÐÏÓÌÅÄÎÅÇÏ ×ÒÅÍÅÎÉ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÔÒÉÇÇÅÒÁ N, ÎÁÐÒÉÍÅÒ, ÎÁ ÚÁÐÒÏÓ trigtime0, ÍÏÖÅÔ ÂÙÔØ ×Ù×ÅÄÅÎÏ: + TRIG0=45212.930 (12:33:32) +åÓÌÉ ÓÒÁÂÁÔÙ×ÁÎÉÊ Ó ÍÏÍÅÎÔÁ ×ËÌÀÞÅÎÉÑ ÎÅ ÂÙÌÏ, ×Ù×ÅÄÕÔÓÑ ÎÕÌÉ: + TRIG2=0.000 (00:00:00) + +- usartspd - ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÐÏÒÔÁ USART1 ("Bluetooth"). + +- usbreset - ÒÅÉÎÉÃÉÉÒÏ×ÁÔØ ÓÏÅÄÉÎÅÎÉÅ ÐÏ USB (ÐÏÄÔÑÖËÁ DP Ë +3.3÷ ÏÔËÌÀÞÁÅÔÓÑ É ×ËÌÀÞÁÅÔÓÑ ÓÎÏ×Á). + +- vdd - ÎÁÐÒÑÖÅÎÉÅ ÐÉÔÁÎÉÑ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÁ É GPS (3.3÷). + + +****** òÅÖÉÍÙ ****** + +óÒÁÚÕ ÐÏÓÌÅ ×ËÌÀÞÅÎÉÑ ÈÒÏÎÏÍÅÔÒ ÏÔÏÂÒÁÖÁÅÔ ÎÁ ÜËÒÁÎÅ ÓÏÏÂÝÅÎÉÅ "Chrono", ÒÅÁÇÉÒÕÅÔ ÎÁ ÓÏÂÙÔÉÑ ÓÔ×ÏÒÁ (× ÔÅÒÍÉÎÁÌÅ ÏÔÏÂÒÁÖÁÅÔÓÑ ×ÒÅÍÑ É ÄÌÉÔÅÌØÎÏÓÔØ, ×ÓÅ ×ÒÅÍÑ ÁËÔÉ×ÎÏÓÔÉ ÓÔ×ÏÒÁ ÐÉÝÉÔ buzzer). óÏÈÒÁÎÅÎÉÅ ÓÏÂÙÔÉÊ ×Ï ×ÎÕÔÒÅÎÎÅÊ ÆÌÅÛ-ÐÁÍÑÔÉ ÚÁ×ÉÓÉÔ ÏÔ ËÏÎÆÉÇÕÒÁÃÉÉ (SAVE_EVENTS). óËÏÒÏÓÔÉ ÐÏÒÔÏ× UART1 É UART3 ÏÐÒÅÄÅÌÑÀÔÓÑ ÎÁÓÔÒÏÊËÁÍÉ (USART1SPD É LIDARSPD). õÒÏ×ÅÎØ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÏ× (1->0 ÉÌÉ 0->1) ÔÏÖÅ ÏÐÒÅÄÅÌÑÅÔÓÑ ÎÁÓÔÒÏÊËÁÍÉ (TRIGLVL). + +ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÔÏ, ÞÔÏ ÐÅÒÅÍÅÎÎÁÑ TRIGLVL (ÔÁË ÖÅ, ËÁË É USART1SPD É LIDARSPD) ×ÌÉÑÅÔ ÎÁ ËÏÎÆÉÇÕÒÁÃÉÀ ÕÓÔÒÏÊÓÔ×Á ÌÉÛØ ÐÒÉ ÚÁÇÒÕÚËÅ, ÐÏÜÔÏÍÕ ÐÒÉ ÉÚÍÅÎÅÎÉÉ ÐÁÒÁÍÅÔÒÏ× ÎÅÏÂÈÏÄÉÍÏ ÓÏÈÒÁÎÉÔØ ÎÁÓÔÒÏÊËÉ ËÏÍÁÎÄÏÊ store É ÐÅÒÅÚÁÇÒÕÚÉÔØ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒ ËÏÍÁÎÄÏÊ reset ÉÌÉ ÐÅÒÅÐÏÄËÌÀÞÅÎÉÅÍ ÐÉÔÁÎÉÑ. + +ðÒÏÞÉÅ ÐÁÒÁÍÅÔÒÙ ËÏÎÆÉÇÕÒÁÃÉÉ ×ÓÔÕÐÁÀÔ × ÓÉÌÕ ÓÒÁÚÕ ÐÏÓÌÅ ÓÏÈÒÁÎÅÎÉÑ, Ô.Å. ÉÈ ÍÏÖÎÏ ÍÅÎÑÔØ "ÎÁ ÌÅÔÕ". + +äÌÑ ÐÅÒÅËÌÀÞÅÎÉÑ × ÒÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ ÎÅÏÂÈÏÄÉÍÏ ÚÁÄÁÔØ ËÏÍÁÎÄÕ "showtime". ôÏÌØËÏ ÐÏÓÌÅ ÜÔÏÇÏ ÂÕÄÅÔ ×ÏÚÍÏÖÎÏ ÏÔÏÂÒÁÖÅÎÉÅ ÔÅËÕÝÅÇÏ ×ÒÅÍÅÎÉ, ×ÒÅÍÅÎÉ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÁ, ÏÂÒÁÔÎÏÇÏ ÏÔÓÞÅÔÁ ÐÅÒÅÄ ÏÔÌÏÖÅÎÎÙÍ ÓÔÁÒÔÏÍ. + +ðÁÒÁÍÅÔÒÙ ÏÔÌÏÖÅÎÎÏÇÏ ÓÔÁÒÔÁ ÚÁÄÁÀÔÓÑ ËÏÍÁÎÄÁÍÉ "stonce" É "stauto". ÷ ÜÔÉÈ ÒÅÖÉÍÁÈ ÏÔÏÂÒÁÖÅÎÉÅ ×ÒÅÍÅÎÉ ÓÏÐÒÏ×ÏÖÄÁÅÔÓÑ ÕËÁÚÁÎÉÅÍ ÒÅÖÉÍÁ ÒÁÂÏÔÙ É ×ÒÅÍÅÎÅÍ × ÍÉÎÕÔÁÈ ÄÏ ÓÌÅÄÕÀÝÅÇÏ ÓÔÁÒÔÁ. úÁ 30 ÓÅËÕÎÄ ÄÏ ÓÔÁÒÔÁ ÎÁÞÉÎÁÅÔÓÑ ÏÂÒÁÔÎÙÊ ÏÔÓÞÅÔ, ÚÁ×ÅÒÛÁÀÝÉÊÓÑ ÏÔÏÂÒÁÖÅÎÉÅÍ × ÔÅÞÅÎÉÅ 1 ÓÅËÕÎÄÙ ÓÏÏÂÝÅÎÉÑ "óôáòô!". +á×ÔÏÓÔÁÒÔ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÏÄÉÎÏÞÎÏÇÏ ÓÔÁÒÔÁ ÔÅÍ, ÞÔÏ ÐÏÓÌÅ ÓÏÏÂÝÅÎÉÑ "óôáòô!" ×ÙÐÏÌÎÑÅÔÓÑ ÏÂÎÏ×ÌÅÎÉÅ ÓÞÅÔÞÉËÁ "stonce", × ÏÄÉÎÏÞÎÏÍ ÖÅ ÒÅÖÉÍÅ ÐÏÓÌÅ ÓÔÁÒÔÁ ÐÒÉÂÏÒ ×ÈÏÄÉÔ × ÐÒÏÓÔÏÊ ÒÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ. + +ëÏÍÁÎÄÁ "showshutter" ÐÏÚ×ÏÌÑÅÔ ÒÁÚÒÅÛÁÔØ/ÚÁÐÒÅÝÁÔØ ÏÔÏÂÒÁÖÅÎÉÅ ×ÒÅÍÅÎÉ ÓÒÁÂÁÔÙ×ÁÎÉÑ ÓÔ×ÏÒÁ ÎÁ ÐÁÎÅÌÉ. ëÏÍÁÎÄÁ "gate" ÄÁÅÔ ×ÏÚÍÏÖÎÏÓÔØ ×ËÌÀÞÉÔØ ÉÌÉ ÏÔËÌÀÞÉÔØ ÒÅÁËÃÉÀ ÎÁ ÓÔ×ÏÒÙ. óÏÈÒÁÎÑÔØ ÓÏÂÙÔÉÑ ÓÔ×ÏÒÏ× ×Ï ÆÌÅÛ-ÐÁÍÑÔÉ ÉÌÉ ÎÅÔ, ÒÅÛÁÅÔ ËÏÍÁÎÄÁ "se". + +îÁ ×ÒÅÍÑ ÂÅÚÄÅÊÓÔ×ÉÑ ÍÏÖÎÏ ÏÔËÌÀÞÉÔØ ÜËÒÁÎ ËÏÍÁÎÄÏÊ "cls", ÌÉÂÏ ÏÔÏÂÒÁÚÉÔØ ËÏÒÏÔËÏÅ (7-8 ÓÉÍ×ÏÌÏ×) ÓÏÏÂÝÅÎÉÅ ËÏÍÁÎÄÏÊ "mesg". + +ðÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÐÒÏÓÍÏÔÒÅÔØ ÌÏÇ ÓÏÂÙÔÉÊ ÓÔ×ÏÒÏ× ÍÏÖÎÏ ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄ "dump" (ÏÔÏÂÒÁÖÁÅÔ N ÐÏÓÌÅÄÎÉÈ ÚÁÐÉÓÅÊ) ÉÌÉ "ndump" (ÏÔÏÂÒÁÖÁÅÔ N-À ÚÁÐÉÓØ, ÅÓÌÉ N<0 - ÏÔÏÂÒÁÖÁÅÔ |N|-À ÚÁÐÉÓØ Ó ËÏÎÃÁ ÌÏÇÁ). ëÏÍÁÎÄÁ "ndump" ÔÁËÖÅ ÏÔÏÂÒÁÖÁÅÔ ×ÒÅÍÑ ÎÁ Ó×ÅÔÏÄÉÏÄÎÏÊ ÐÁÎÅÌÉ (ÅÓÌÉ ×ËÌÀÞÅÎ ÒÅÖÉÍ "showtime"). diff --git a/F1-nolib/chronometer_v3/adc.c b/F1-nolib/chronometer_v3/adc.c new file mode 100644 index 0000000..31c2530 --- /dev/null +++ b/F1-nolib/chronometer_v3/adc.c @@ -0,0 +1,72 @@ +/* + * This file is part of the chronometer project. + * Copyright 2018 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "adc.h" +#include "flash.h" +#include "hardware.h" + +/** + * @brief ADC_array - array for ADC channels with median filtering: + * 0 - Rvar + * 1 - internal Tsens + * 2 - Vref + */ +uint16_t ADC_array[NUMBER_OF_ADC_CHANNELS*9]; + +/** + * @brief getADCval - calculate median value for `nch` channel + * @param nch - number of channel + * @return + */ +uint16_t getADCval(int nch){ + int i, addr = nch; + register uint16_t temp; +#define PIX_SORT(a,b) do{ if ((a)>(b)) PIX_SWAP((a),(b)); }while(0) +#define PIX_SWAP(a,b) do{ temp=(a);(a)=(b);(b)=temp; }while(0) + uint16_t p[9]; + for(i = 0; i < 9; ++i, addr += NUMBER_OF_ADC_CHANNELS) // first we should prepare array for optmed + p[i] = ADC_array[addr]; + PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ; + PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[4]) ; PIX_SORT(p[6], p[7]) ; + PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ; + PIX_SORT(p[0], p[3]) ; PIX_SORT(p[5], p[8]) ; PIX_SORT(p[4], p[7]) ; + PIX_SORT(p[3], p[6]) ; PIX_SORT(p[1], p[4]) ; PIX_SORT(p[2], p[5]) ; + PIX_SORT(p[4], p[7]) ; PIX_SORT(p[4], p[2]) ; PIX_SORT(p[6], p[4]) ; + PIX_SORT(p[4], p[2]) ; + return p[4]; +#undef PIX_SORT +#undef PIX_SWAP +} + +// return MCU temperature (degrees of celsius * 10) +int32_t getMCUtemp(){ + // Temp = (V25 - Vsense)/Avg_Slope + 25 + // V_25 = 1.45V, Slope = 4.3e-3 + uint32_t Vsense = getVdd() * getADCval(ADC_TMCU_CHANNEL); + int32_t temperature = 593920 - (int32_t)Vsense; // 593920 == 145*4096 + temperature /= 172; // == /(4096*10*4.3e-3), 10 - to convert from *100 to *10 + temperature += 250; + return(temperature); +} + +// return Vdd * 100 (V) +uint32_t getVdd(){ + uint32_t vdd = 120 * 4096; // 1.2V + vdd /= getADCval(ADC_VDD_CHANNEL); + return vdd; +} diff --git a/F1-nolib/chronometer_v3/adc.h b/F1-nolib/chronometer_v3/adc.h new file mode 100644 index 0000000..7b1715e --- /dev/null +++ b/F1-nolib/chronometer_v3/adc.h @@ -0,0 +1,32 @@ +/* + * This file is part of the chronometer project. + * Copyright 2018 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef ADC_H +#define ADC_H +#include "stm32f1.h" + +// interval of trigger's shot (>min && + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +/** + ATTENTION!! + This things works only if you will add next section: + + .myvars : + { + . = ALIGN(1024); + KEEP(*(.myvars)) + } > rom + + after section .data +*/ + +#include "stm32f1.h" + +#include "adc.h" +#include "flash.h" +#include "lidar.h" +#include "str.h" +#include "usart.h" // DBG +#include "usb.h" // printout +#include // memcpy + +// max amount of records stored: Config & Logs +uint32_t maxCnum = FLASH_BLOCK_SIZE / sizeof(user_conf); +uint32_t maxLnum = FLASH_BLOCK_SIZE / sizeof(user_conf); + +// common structure for all datatypes stored +/*typedef struct { + uint16_t userconf_sz; +} flash_storage;*/ + +#define USERCONF_INITIALIZER { \ + .userconf_sz = sizeof(user_conf) \ + ,.dist_min = LIDAR_MIN_DIST \ + ,.dist_max = LIDAR_MAX_DIST \ + ,.trigstate = 0 \ + ,.trigpause = {400, 400, 400, 300} \ + ,.USART_speed = USART1_DEFAULT_SPEED \ + ,.LIDAR_speed = LIDAR_DEFAULT_SPEED \ + ,.defflags = 0 \ + ,.NLfreeWarn = 100 \ + ,.ledshow_time = 5000 \ + } + +// change to placement +/* +__attribute__ ((section(".logs"))) const uint32_t *logsstart; +__attribute__ ((section(".myvars"))) const user_conf *Flash_Data; +*/ + +static int erase_flash(const void*, const void*); +static int write2flash(const void*, const void*, uint32_t); + +const user_conf *Flash_Data = (const user_conf *)&__varsstart; +const event_log *logsstart = (event_log*) &__logsstart; +TODO("Add to event_log a comment - up to 8 chars") + +user_conf the_conf = USERCONF_INITIALIZER; + +static int currentconfidx = -1; // index of current configuration +static int currentlogidx = -1; // index of current logs record + +/** + * @brief binarySearch - binary search in flash for last non-empty cell + * any struct searched should have its sizeof() @ the first field!!! + * @param l - left index + * @param r - right index (should be @1 less than last index!) + * @param start - starting address + * @param stor_size - size of structure to search + * @return index of non-empty cell or -1 + */ +static int binarySearch(int r, const uint8_t *start, int stor_size){ + int l = 0; +#ifdef EBUG + SEND("stor_size="); + SEND(u2str(stor_size)); + newline(1); +#endif + while(r >= l){ + int mid = l + (r - l) / 2; +#ifdef EBUG + SEND("r="); + SEND(u2str(r)); + SEND(", l="); + SEND(u2str(l)); + SEND(", mid="); + SEND(u2str(mid)); + newline(1); +#endif + const uint8_t *s = start + mid * stor_size; +#ifdef EBUG + SEND("data="); + SEND(u2hex(*((const uint16_t*)s))); + newline(1); +#endif + if(*((const uint16_t*)s) == stor_size){ + if(*((const uint16_t*)(s + stor_size)) == 0xffff){ +#ifdef EBUG + SEND("\nindex="); + SEND(u2str(mid)); + newline(1); +#endif + return mid; + }else{ // element is to the right + l = mid + 1; + } + }else{ // element is to the left + r = mid - 1; + } + } + return -1; // not found +} + +/** + * @brief flashstorage_init - initialization of user conf & logs storage + * run in once @ start + */ +void flashstorage_init(){ + maxCnum = ((uint32_t)&_varslen) / sizeof(user_conf); +//SEND("maxCnum="); printu(1, maxCnum); + if(FLASH_SIZE > 0 && FLASH_SIZE < 20000){ + uint32_t flsz = FLASH_SIZE * 1024; // size in bytes + flsz -= (uint32_t)logsstart - FLASH_BASE; + maxLnum = flsz / sizeof(event_log); +//SEND("\nmaxLnum="); printu(1, maxLnum); + } + // -1 if there's no data at all & flash is clear; maxnum-1 if flash is full + currentconfidx = binarySearch((int)maxCnum-2, (const uint8_t*)Flash_Data, sizeof(user_conf)); + if(currentconfidx > -1){ + memcpy(&the_conf, &Flash_Data[currentconfidx], sizeof(user_conf)); + } + currentlogidx = binarySearch((int)maxLnum-2, (const uint8_t*)logsstart, sizeof(event_log)); +} + +// store new configuration +// @return 0 if all OK +int store_userconf(){ + // maxnum - 3 means that there always should be at least one empty record after last data + // for binarySearch() checking that there's nothing more after it! + if(currentconfidx > (int)maxCnum - 3){ // there's no more place + currentconfidx = 0; + DBG("Need to erase flash!"); + if(erase_flash(Flash_Data, logsstart)) return 1; + }else ++currentconfidx; // take next data position (0 - within first run after firmware flashing) + return write2flash((const void*)&Flash_Data[currentconfidx], &the_conf, sizeof(the_conf)); +} + +/** + * @brief store_log - save log record L into flash memory + * @param L - event log (or NULL to delete flash) + * @return 0 if all OK + */ +int store_log(event_log *L){ + if(!L){ + currentlogidx = -1; + return erase_flash(logsstart, NULL); + } +#ifdef EBUG + SEND("currentlogidx="); + SEND(u2str(currentlogidx)); + newline(1); +#endif + if(currentlogidx > (int)maxLnum - 3){ // there's no more place + /*currentlogidx = 0; + DBG("Need to erase flash!"); + if(erase_flash(logsstart, NULL)) return 1;*/ + // prevent automatic logs erasing! + sendstring("\n\nERROR!\nCan't save logs: delete old manually!!!\n"); + return 1; + }else ++currentlogidx; // take next data position (0 - within first run after firmware flashing) + // put warning if there's little space + if(currentlogidx + the_conf.NLfreeWarn > (int)maxLnum - 3){ + uint32_t nfree = maxLnum - 2 - (uint32_t)currentlogidx; + sendstring("\n\nWARNING!\nCan store only "); + sendstring(u2str(nfree)); + sendstring(" logs!\n\n"); + } + L->evtlog_sz = sizeof(event_log); + return write2flash(&logsstart[currentlogidx], L, sizeof(event_log)); +} + +/** + * @brief dump_log - dump N log records + * @param start - first record to show (if start<0, then first=last+1-start) + * @param Nlogs - amount of logs to show (if Nlogs<=0, then show all logs) + * @return 0 if all OK, 1 if there's no logs in flash + */ +int dump_log(int start, int Nlogs){ + if(currentlogidx < 0) return 1; +#ifdef EBUG + SEND("currentlogidx="); + SEND(u2str(currentlogidx)); + SEND("\nstart="); + SEND(u2str(start)); + SEND("\nNlogs="); + SEND(u2str(Nlogs)); + newline(1); +#endif + if(start < 0){ + start += currentlogidx + 1; + if(start < 0){ + if(Nlogs == 1) return 1; // out of range + else start = 0; // show all + } + } + if(start > currentlogidx) return 1; + int nlast; + if(Nlogs > 0){ + nlast = start + Nlogs - 1; + if(nlast > currentlogidx) nlast = currentlogidx; + }else nlast = currentlogidx; + ++nlast; + const event_log *l = logsstart + start; + for(int i = start; i < nlast; ++i, ++l){ + IWDG->KR = IWDG_REFRESH; + sendstring(get_trigger_shot(i, l)); + if(Nlogs == 1){ // show on LED + lastTtrig = Tms; + lastLog.shottime = l->shottime; + } + } + return 0; +} + +static int write2flash(const void *start, const void *wrdata, uint32_t stor_size){ + int ret = 0; + if (FLASH->CR & FLASH_CR_LOCK){ // unloch flash + FLASH->KEYR = FLASH_KEY1; + FLASH->KEYR = FLASH_KEY2; + } + while (FLASH->SR & FLASH_SR_BSY); + if(FLASH->SR & FLASH_SR_WRPRTERR){ + DBG("Can't remove write protection"); + return 1; // write protection + } + FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPRTERR; // clear all flags + FLASH->CR |= FLASH_CR_PG; + const uint16_t *data = (const uint16_t*) wrdata; + volatile uint16_t *address = (volatile uint16_t*) start; + uint32_t i, count = (stor_size + 1) / 2; + for (i = 0; i < count; ++i){ + IWDG->KR = IWDG_REFRESH; + *(volatile uint16_t*)(address + i) = data[i]; + while (FLASH->SR & FLASH_SR_BSY); + if(FLASH->SR & FLASH_SR_PGERR){ + ret = 1; // program error - meet not 0xffff + DBG("FLASH_SR_PGERR"); + break; + }else while (!(FLASH->SR & FLASH_SR_EOP)); + FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPRTERR; + } + FLASH->CR &= ~(FLASH_CR_PG); + DBG("Flash stored"); + return ret; +} + +/** + * @brief erase_flash - erase N pages of flash memory + * @param start - first address + * @param end - last address (or NULL if need to erase all flash remaining) + * @return 0 if succeed + */ +static int erase_flash(const void *start, const void *end){ + int ret = 0; + uint32_t nblocks = 1, flsz = 0; + if(!end){ // erase all remaining + if(FLASH_SIZE > 0 && FLASH_SIZE < 20000){ + flsz = FLASH_SIZE * 1024; // size in bytes + flsz -= (uint32_t)start - FLASH_BASE; + } + }else{ // erase a part + flsz = (uint32_t)end - (uint32_t)start; + } + nblocks = flsz / FLASH_BLOCK_SIZE; + if(nblocks == 0 || nblocks >= FLASH_SIZE) return 1; + for(uint32_t i = 0; i < nblocks; ++i){ +#ifdef EBUG + SEND("Try to erase page #"); printu(1,i); newline(1); +#endif + IWDG->KR = IWDG_REFRESH; + /* (1) Wait till no operation is on going */ + /* (2) Clear error & EOP bits */ + /* (3) Check that the Flash is unlocked */ + /* (4) Perform unlock sequence */ + while ((FLASH->SR & FLASH_SR_BSY) != 0){} /* (1) */ + FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPRTERR; /* (2) */ + /* if (FLASH->SR & FLASH_SR_EOP){ + FLASH->SR |= FLASH_SR_EOP; + }*/ + if ((FLASH->CR & FLASH_CR_LOCK) != 0){ /* (3) */ + FLASH->KEYR = FLASH_KEY1; /* (4) */ + FLASH->KEYR = FLASH_KEY2; + } + /* (1) Set the PER bit in the FLASH_CR register to enable page erasing */ + /* (2) Program the FLASH_AR register to select a page to erase */ + /* (3) Set the STRT bit in the FLASH_CR register to start the erasing */ + /* (4) Wait until the EOP flag in the FLASH_SR register set */ + /* (5) Clear EOP flag by software by writing EOP at 1 */ + /* (6) Reset the PER Bit to disable the page erase */ + FLASH->CR |= FLASH_CR_PER; /* (1) */ + FLASH->AR = (uint32_t)Flash_Data + i*FLASH_BLOCK_SIZE; /* (2) */ + FLASH->CR |= FLASH_CR_STRT; /* (3) */ + while(!(FLASH->SR & FLASH_SR_EOP)); + FLASH->SR |= FLASH_SR_EOP; /* (5)*/ + if(FLASH->SR & FLASH_SR_WRPRTERR){ /* Check Write protection error */ + ret = 1; + DBG("Write protection error!"); + FLASH->SR |= FLASH_SR_WRPRTERR; /* Clear the flag by software by writing it at 1*/ + break; + } + FLASH->CR &= ~FLASH_CR_PER; /* (6) */ + } + return ret; +} + +#ifdef EBUG +void dump_userconf(){ + SEND("userconf_sz="); printu(1, the_conf.userconf_sz); + SEND("\ndist_min="); printu(1, the_conf.dist_min); + SEND("\ndist_max="); printu(1, the_conf.dist_max); + SEND("\ntrigstate="); printuhex(1, the_conf.trigstate); + SEND("\ntrigpause={"); + for(int i = 0; i < TRIGGERS_AMOUNT; ++i){ + if(i) SEND(", "); + printu(1, the_conf.trigpause[i]); + } + SEND("}\n"); + transmit_tbuf(1); +} + +void addNrecs(int N){ + SEND("Try to store userconf for "); printu(1, N); SEND(" times\n"); + for(int i = 0; i < N; ++i){ + if(store_userconf()){ + SEND("Error @ "); printu(1, i); newline(1); + return; + } + } + SEND("Curr idx: "); printu(1, currentconfidx); newline(1); +} + +#endif diff --git a/F1-nolib/chronometer_v3/flash.h b/F1-nolib/chronometer_v3/flash.h new file mode 100644 index 0000000..9c72d3b --- /dev/null +++ b/F1-nolib/chronometer_v3/flash.h @@ -0,0 +1,89 @@ +/* + * flash.h + * + * Copyright 2017 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#pragma once +#ifndef __FLASH_H__ +#define __FLASH_H__ + +#include +#include "hardware.h" + +#define FLASH_BLOCK_SIZE (1024) +#define FLASH_SIZE_REG ((uint32_t)0x1FFFF7E0) +#define FLASH_SIZE *((uint16_t*)FLASH_SIZE_REG) + +/* + * struct to save user configurations + */ +typedef struct __attribute__((packed, aligned(4))){ + uint16_t userconf_sz; // "magick number" + uint16_t NLfreeWarn; // warn user when there's less free log records than NLfreeWarn + uint8_t trigstate; // level in `triggered` state + uint8_t defflags; // default flags + uint16_t dist_min; // minimal distance for LIDAR + uint16_t dist_max; // maximal -//- + uint32_t USART_speed; // USART1 speed (115200 by default) + uint32_t LIDAR_speed; // USART3 speed (115200 by default) + uint16_t trigpause[TRIGGERS_AMOUNT]; // pause (ms) for false shots + uint16_t ledshow_time; // shutter events display time (ms) +} user_conf; + +// values for user_conf.defflags: +// save events in flash +#define FLAG_SAVE_EVENTS (1 << 0) +// strings ends with "\r\n" instead of normal "\n" +#define FLAG_STRENDRN (1 << 1) +// proxy GPS messages over USART1 +#define FLAG_GPSPROXY (1 << 2) +// USART3 works as regular TTY instead of LIDAR +#define FLAG_NOLIDAR (1 << 3) + +/* + * struct to save events logs + */ +typedef struct __attribute__((packed, aligned(4))){ + uint16_t evtlog_sz; + uint8_t trigno; + trigtime shottime; + int16_t triglen; + uint16_t lidar_dist; +} event_log; + +extern user_conf the_conf; +extern const user_conf *Flash_Data; +extern const event_log *logsstart; +extern uint32_t maxCnum, maxLnum; +// data from ld-file +extern uint32_t _varslen, __varsstart, __logsstart; + + +void flashstorage_init(); +int store_userconf(); +int store_log(event_log *L); +int dump_log(int start, int Nlogs); + +#ifdef EBUG +void dump_userconf(); +void addNrecs(int N); +#endif + +#endif // __FLASH_H__ diff --git a/F1-nolib/chronometer_v3/font14.h b/F1-nolib/chronometer_v3/font14.h new file mode 100644 index 0000000..5785b27 --- /dev/null +++ b/F1-nolib/chronometer_v3/font14.h @@ -0,0 +1,3168 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// this file should be included JUST ONCE! +// only in fonts.c + +// font14: matrix 16x16 bits -> 32 bytes per symbol +#define FONT14BYTES 32 +#define FONT14HEIGHT 16 +#define FONT14BASELINE 2 + +//------------------------------------------------------------------------------ +// Font author: Nadyrshin Ruslan, +// https://www.youtube.com/channel/UChButpZaL5kUUl_zTyIDFkQ +//------------------------------------------------------------------------------ + +// this array shows position of every koi8-r symbol in font14_table +const uint8_t font14_encoding[256] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, // 47 + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, // 63 + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, // 79 + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, // 95 + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, // 111 + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, // 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159 + 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175 + 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191 + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, // 207 + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, // 223 + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, // 239 + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, // 255 +}; + +// Font 14px height, full matrix is 32x32px +// first number is symbol width, another are symbol data +// the 0th element substitutes all absent characters +const uint8_t font14_table[] = { + // 0x00 - empty + 0, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x20 - ' ' + , + 4, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x21 + , + 3, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x22 + , + 7, + ________,________, + ________,________, + XX__XX__,________, + XX__XX__,________, + XX__XX__,________, + XX__XX__,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x23 + , + 8, + ________,________, + ________,________, + __XX_XX_,________, + __XX_XX_,________, + __XX_XX_,________, + XXXXXXX_,________, + XXXXXXX_,________, + _XX_XX__,________, + _XX_XX__,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX_XX___,________, + XX_XX___,________, + ________,________, + ________,________, + ________,________ + // 0x24 + , + 8, + ________,________, + ___X____,________, + __XXX___,________, + _XXXXX__,________, + XX_X_XX_,________, + XX_X____,________, + XXXX____,________, + _XXXX___,________, + __XXXX__,________, + ___XXXX_,________, + XX_X_XX_,________, + XX_X_XX_,________, + _XXXXX__,________, + __XXX___,________, + ___X____,________, + ________,________ + // 0x25 + , + 16, + ________,________, + ________,________, + _XXXX___,__XX____, + XX__XX__,_XX_____, + XX__XX__,_XX_____, + XX__XX__,XX______, + XX__XX_X,X_______, + _XXXX__X,X_______, + ______XX,__XXXX__, + ______XX,_XX__XX_, + _____XX_,_XX__XX_, + _____XX_,_XX__XX_, + ____XX__,_XX__XX_, + ___XX___,__XXXX__, + ________,________, + ________,________ + // 0x26 + , + 12, + ________,________, + ________,________, + __XXXXX_,________, + _XXXXXXX,________, + _XX___XX,________, + _XX___XX,________, + __XXXXX_,________, + __XXXX__,________, + _XX_XX__,X_______, + XX__XXX_,XX______, + XX___XXX,X_______, + XX____XX,XX______, + _XXXXXXX,XXX_____, + __XXXX__,_X______, + ________,________, + ________,________ + // 0x27 + , + 3, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x28 + , + 5, + __XX____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + __XX____,________, + ________,________ + // 0x29 + , + 5, + XX______,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + XX______,________, + ________,________ + // 0x2A + , + 8, + ________,________, + _X_X_X__,________, + __XXX___,________, + XXXXXXX_,________, + __XXX___,________, + _X_X_X__,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x2B + , + 9, + ________,________, + ________,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + XXXXXXXX,________, + XXXXXXXX,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x2C + , + 3, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + _X______,________, + _X______,________, + X_______,________ + // 0x2D + , + 6, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXX___,________, + XXXXX___,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x2E + , + 3, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________ + // 0x2F + , + 5, + ________,________, + ________,________, + __XX____,________, + __XX____,________, + __XX____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________ + // 0x30 + , + 9, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x31 + , + 6, + ________,________, + ________,________, + ___XX___,________, + __XXX___,________, + _XXXX___,________, + XX_XX___,________, + X__XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ________,________, + ________,________ + // 0x32 + , + 9, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX___XX,________, + XX____XX,________, + ______XX,________, + _____XX_,________, + ____XXX_,________, + ___XXX__,________, + __XXX___,________, + _XX_____,________, + XXXXXXXX,________, + XXXXXXXX,________, + ________,________, + ________,________ + // 0x33 + , + 9, + ________,________, + ________,________, + __XXXXX_,________, + _XXXXXXX,________, + XX____XX,________, + ______XX,________, + ___XXXX_,________, + ___XXXX_,________, + _____XXX,________, + ______XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x34 + , + 9, + ________,________, + ________,________, + _____XX_,________, + ____XXX_,________, + ____XXX_,________, + ___XXXX_,________, + __XX_XX_,________, + __XX_XX_,________, + _XX__XX_,________, + XX___XX_,________, + XXXXXXXX,________, + XXXXXXXX,________, + _____XX_,________, + _____XX_,________, + ________,________, + ________,________ + // 0x35 + , + 9, + ________,________, + ________,________, + _XXXXXX_,________, + _XXXXXX_,________, + _XX_____,________, + XXX_____,________, + XXXXXX__,________, + XXXXXXX_,________, + XX___XXX,________, + ______XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x36 + , + 9, + ________,________, + ________,________, + __XXXXX_,________, + _XXXXXXX,________, + _XX___XX,________, + XX______,________, + XX_XXX__,________, + XXXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + _XX___XX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x37 + , + 9, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,________, + _____XX_,________, + ____XX__,________, + ____XX__,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + __XXX___,________, + __XX____,________, + __XX____,________, + __XX____,________, + ________,________, + ________,________ + // 0x38 + , + 9, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + _XXXXXX_,________, + _XXXXXX_,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x39 + , + 9, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XX___XX_,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXXX,________, + __XXX_XX,________, + ______XX,________, + XX___XX_,________, + XXXXXXX_,________, + _XXXXX__,________, + ________,________, + ________,________ + // 0x3A + , + 3, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x3B + , + 3, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + _X______,________, + _X______,________, + X_______,________, + ________,________ + // 0x3C + , + 9, + ________,________, + ________,________, + ________,________, + _______X,________, + _____XXX,________, + ___XXXX_,________, + _XXXX___,________, + XXX_____,________, + _XXXX___,________, + ___XXXX_,________, + _____XXX,________, + _______X,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x3D + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXX_,________, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXX_,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x3E + , + 9, + ________,________, + ________,________, + ________,________, + X_______,________, + XXX_____,________, + _XXXX___,________, + ___XXXX_,________, + _____XXX,________, + ___XXXX_,________, + _XXXX___,________, + XXX_____,________, + X_______,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x3F + , + 9, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX___XX,________, + XX____XX,________, + _____XXX,________, + ____XXX_,________, + ___XXX__,________, + ___XX___,________, + ___XX___,________, + ________,________, + ___XX___,________, + ___XX___,________, + ________,________, + ________,________ + // 0x40 + , + 16, + _____XXX,XXX_____, + ___XXXXX,XXXXX___, + __XXX___,___XXX__, + _XXX__XX,X_XXXX__, + _XX_XXXX,XXXX_XX_, + XXX_XX__,_XXX_XX_, + XX_XX___,_XX__XX_, + XX_XX___,_XX__XX_, + XX_XX___,_XX__XX_, + XX_XX___,XXX_XX__, + XX_XXXXX,XXXXX___, + _XX_XXXX,_XXX____, + _XXX____,_____XX_, + __XXX___,___XXX__, + ___XXXXX,XXXXX___, + _____XXX,XXX_____ + // 0x41 + , + 12, + ________,________, + ________,________, + ____XXX_,________, + ____XXX_,________, + ___XX_XX,________, + ___XX_XX,________, + ___XX_XX,________, + __XX___X,X_______, + __XX___X,X_______, + __XXXXXX,X_______, + _XXXXXXX,XX______, + _XX_____,XX______, + _XX_____,XX______, + XX______,_XX_____, + ________,________, + ________,________ + // 0x42 + , + 11, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,XX______, + XX______,XX______, + XX______,XX______, + XXXXXXXX,X_______, + XXXXXXXX,________, + ________,________, + ________,________ + // 0x43 + , + 11, + ________,________, + ________,________, + ___XXXXX,________, + _XXXXXXX,X_______, + _XX____X,XX______, + XX______,X_______, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,X_______, + _XX____X,XX______, + _XXXXXXX,X_______, + ___XXXXX,________, + ________,________, + ________,________ + // 0x44 + , + 11, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXXX,X_______, + XX_____X,X_______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX_____X,X_______, + XXXXXXXX,X_______, + XXXXXXX_,________, + ________,________, + ________,________ + // 0x45 + , + 10, + ________,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + ________,________, + ________,________ + // 0x46 + , + 9, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,________, + XX______,________, + XX______,________, + XX______,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x47 + , + 11, + ________,________, + ________,________, + ___XXXXX,________, + _XXXXXXX,X_______, + _XX____X,XX______, + XX______,X_______, + XX______,________, + XX______,________, + XX___XXX,XX______, + XX___XXX,XX______, + XX______,XX______, + _XX____X,XX______, + _XXXXXXX,X_______, + ___XXXXX,________, + ________,________, + ________,________ + // 0x48 + , + 10, + ________,________, + ________,________, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0x49 + , + 3, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x4A + , + 9, + ________,________, + ________,________, + ______XX,________, + ______XX,________, + ______XX,________, + ______XX,________, + ______XX,________, + ______XX,________, + ______XX,________, + ______XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x4B + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX_____X,X_______, + XX____XX,________, + XX___XX_,________, + XX__XX__,________, + XX_XXXX_,________, + XXXX_XX_,________, + XXX___XX,________, + XX____XX,________, + XX_____X,X_______, + XX_____X,XX______, + XX______,XX______, + ________,________, + ________,________ + // 0x4C + , + 9, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,________, + XXXXXXXX,________, + ________,________, + ________,________ + // 0x4D + , + 12, + ________,________, + ________,________, + XXX_____,XXX_____, + XXX_____,XXX_____, + XXXX___X,XXX_____, + XXXX___X,XXX_____, + XX_X___X,_XX_____, + XX_XX_XX,_XX_____, + XX_XX_XX,_XX_____, + XX_XX_XX,_XX_____, + XX__XXX_,_XX_____, + XX__XXX_,_XX_____, + XX__XXX_,_XX_____, + XX___X__,_XX_____, + ________,________, + ________,________ + // 0x4E + , + 11, + ________,________, + ________,________, + XX______,XX______, + XXX_____,XX______, + XXXX____,XX______, + XXXX____,XX______, + XX_XX___,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX___XX_,XX______, + XX____XX,XX______, + XX____XX,XX______, + XX_____X,XX______, + XX______,XX______, + ________,________, + ________,________ + // 0x4F + , + 11, + ________,________, + ________,________, + ___XXXX_,________, + _XXXXXXX,X_______, + _XX____X,X_______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + _XX____X,X_______, + _XXXXXXX,X_______, + ___XXXX_,________, + ________,________, + ________,________ + // 0x50 + , + 10, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXXX,________, + XX____XX,X_______, + XX_____X,X_______, + XX____XX,X_______, + XXXXXXXX,________, + XXXXXXX_,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x51 + , + 11, + ________,________, + ________,________, + ___XXXX_,________, + _XXXXXXX,X_______, + _XX____X,X_______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX__XX__,XX______, + _XX__XXX,X_______, + _XXXXXXX,X_______, + ___XXX_X,X_______, + ________,XX______, + ________,________ + // 0x52 + , + 12, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,XX______, + XX______,XX______, + XX_____X,XX______, + XXXXXXXX,X_______, + XXXXXXX_,________, + XX___XXX,________, + XX____XX,X_______, + XX_____X,X_______, + XX_____X,XX______, + XX______,XXX_____, + ________,________, + ________,________ + // 0x53 + , + 10, + ________,________, + ________,________, + __XXXXX_,________, + _XXXXXXX,________, + XX____XX,X_______, + XX_____X,X_______, + XXXX____,________, + _XXXXXX_,________, + ___XXXXX,________, + ______XX,X_______, + XX_____X,X_______, + XXX___XX,X_______, + _XXXXXXX,________, + __XXXXX_,________, + ________,________, + ________,________ + // 0x54 + , + 11, + ________,________, + ________,________, + XXXXXXXX,XX______, + XXXXXXXX,XX______, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ________,________, + ________,________ + // 0x55 + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XXX____X,XX______, + _XXXXXXX,X_______, + __XXXXXX,________, + ________,________, + ________,________ + // 0x56 + , + 12, + ________,________, + ________,________, + XX______,_XX_____, + XX______,_XX_____, + _XX_____,XX______, + _XX_____,XX______, + __XX___X,X_______, + __XX___X,X_______, + __XX___X,X_______, + ___XX_XX,________, + ___XX_XX,________, + ____XXX_,________, + ____XXX_,________, + ____XXX_,________, + ________,________, + ________,________ + // 0x57 + , + 16, + ________,________, + ________,________, + XX____XX,X____XX_, + XXX___XX,X____XX_, + _XX___XX,X___XX__, + _XX__XX_,XX__XX__, + _XX__XX_,XX__XX__, + __XX_XX_,XX_XX___, + __XX_XX_,XX_XX___, + __XX_XX_,XX_XX___, + ___XXX__,_XXXX___, + ___XXX__,_XXX____, + ___XXX__,_XXX____, + ___XXX__,_XXX____, + ________,________, + ________,________ + // 0x58 + , + 10, + ________,________, + ________,________, + XX_____X,X_______, + XXX___XX,X_______, + _XX___XX,________, + __XX_XX_,________, + __XXXXX_,________, + ___XXX__,________, + ___XXX__,________, + __XXXXX_,________, + __XX_XX_,________, + _XX___XX,________, + XXX___XX,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0x59 + , + 11, + ________,________, + ________,________, + XX______,XX______, + XXX____X,XX______, + _XX____X,X_______, + __XX__XX,________, + __XX__XX,________, + ___XXXX_,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ________,________, + ________,________ + // 0x5A + , + 10, + ________,________, + ________,________, + _XXXXXXX,X_______, + _XXXXXXX,X_______, + ______XX,________, + _____XX_,________, + ____XXX_,________, + ____XX__,________, + ___XX___,________, + __XXX___,________, + __XX____,________, + _XX_____,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + ________,________, + ________,________ + // 0x5B + , + 5, + ________,________, + XXXX____,________, + XXXX____,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XXXX____,________, + XXXX____,________, + ________,________ + // 0x5C + , + 5, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + __XX____,________, + __XX____,________, + __XX____,________, + ________,________, + ________,________ + // 0x5D + , + 5, + ________,________, + XXXX____,________, + XXXX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + XXXX____,________, + XXXX____,________, + ________,________ + // 0x5E + , + 9, + ________,________, + ________,________, + ___XX___,________, + __XXXX__,________, + __XXXX__,________, + _XX__XX_,________, + _XX__XX_,________, + XX____XX,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x5F + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,________, + ________,________ + // 0x60 + , + 4, + ________,________, + XXX_____,________, + _XX_____,________, + __XX____,________, + ____X___,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x61 + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXX__,________, + XXXXXXX_,________, + XX___XX_,________, + ___XXXX_,________, + _XXXXXX_,________, + XXX__XX_,________, + XX___XX_,________, + XXXXXXX_,________, + _XXXX_XX,________, + ________,________, + ________,________ + // 0x62 + , + 9, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX_XXX__,________, + XXXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + XXXXXXX_,________, + XX_XXX__,________, + ________,________, + ________,________ + // 0x63 + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX__XX_,________, + XX______,________, + XX______,________, + XX______,________, + XXX__XX_,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x64 + , + 9, + ________,________, + ________,________, + ______XX,________, + ______XX,________, + ______XX,________, + __XXX_XX,________, + _XXXXXXX,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXXX,________, + __XXX_XX,________, + ________,________, + ________,________ + // 0x65 + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXX___,________, + _XXXXX__,________, + XX___XX_,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX______,________, + XXX__XX_,________, + _XXXXX__,________, + __XXX___,________, + ________,________, + ________,________ + // 0x66 + , + 7, + ________,________, + ________,________, + __XXXX__,________, + _XXXXX__,________, + _XX_____,________, + XXXXX___,________, + XXXXX___,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + ________,________, + ________,________ + // 0x67 + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + __XXX_XX,________, + _XXXXXXX,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXXX,________, + __XXX_XX,________, + XX____XX,________, + XXXXXXXX,________, + _XXXXXX_,________ + // 0x68 + , + 9, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX_XXXX_,________, + XXXXXXXX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0x69 + , + 3, + ________,________, + ________,________, + XX______,________, + XX______,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x6A + , + 4, + ________,________, + ________,________, + _XX_____,________, + _XX_____,________, + ________,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + XXX_____,________, + XX______,________ + // 0x6B + , + 8, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX___XX_,________, + XX__XX__,________, + XX_XX___,________, + XXXXX___,________, + XXXXX___,________, + XXX_XX__,________, + XX__XX__,________, + XX___XX_,________, + XX___XX_,________, + ________,________, + ________,________ + // 0x6C + , + 3, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x6D + , + 13, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_XXX__,XXX_____, + XXXXXXXX,XXXX____, + XXX__XXX,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + ________,________, + ________,________ + // 0x6E + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_XXXX_,________, + XXXXXXXX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0x6F + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0x70 + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_XXXX_,________, + XXXXXXXX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + XXXXXXX_,________, + XX_XXX__,________, + XX______,________, + XX______,________ + // 0x71 + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + __XXX_XX,________, + _XXXXXXX,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXXX,________, + __XXX_XX,________, + ______XX,________, + ______XX,________, + ______XX,________ + // 0x72 + , + 6, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_XX___,________, + XXXXX___,________, + XXX_____,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0x73 + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXX__,________, + XXXXXXX_,________, + XX___XX_,________, + XXXX____,________, + _XXXXX__,________, + ___XXXX_,________, + XX___XX_,________, + XXXXXXX_,________, + _XXXXX__,________, + ________,________, + ________,________ + // 0x74 + , + 6, + ________,________, + ________,________, + __X_____,________, + _XX_____,________, + _XX_____,________, + XXXXX___,________, + XXXXX___,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XX_____,________, + _XXXX___,________, + __XXX___,________, + ________,________, + ________,________ + // 0x75 + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX___XXX,________, + XXXXXXXX,________, + _XXXX_XX,________, + ________,________, + ________,________ + // 0x76 + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XX_,________, + XX___XX_,________, + XX___XX_,________, + _XX_XX__,________, + _XX_XX__,________, + _XX_XX__,________, + __XXX___,________, + __XXX___,________, + __XXX___,________, + ________,________, + ________,________ + // 0x77 + , + 14, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XXX,___XX___, + XX___XXX,___XX___, + _XX__XXX,__XX____, + _XX_XX_X,X_XX____, + _XX_XX_X,X_XX____, + _XX_XX_X,X_XX____, + __XXX___,XXX_____, + __XXX___,XXX_____, + __XXX___,XXX_____, + ________,________, + ________,________ + // 0x78 + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XX_,________, + XXX_XXX_,________, + _XX_XX__,________, + __XXX___,________, + __XXX___,________, + __XXX___,________, + _XX_XX__,________, + XXX_XXX_,________, + XX___XX_,________, + ________,________, + ________,________ + // 0x79 + , + 10, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_____X,X_______, + _XX___XX,________, + _XX___XX,________, + __XX_XX_,________, + __XX_XX_,________, + __XXXXX_,________, + ___XXX__,________, + ___XXX__,________, + ___XX___,________, + _XXXX___,________, + _XXX____,________ + // 0x7A + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXX_,________, + ____XX__,________, + ___XXX__,________, + __XXX___,________, + _XXX____,________, + _XX_____,________, + XXXXXXX_,________, + XXXXXXX_,________, + ________,________, + ________,________ + // 0x7B + , + 7, + ________,________, + ___XXX__,________, + __XXXX__,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + XXX_____,________, + XXX_____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XXXX__,________, + ___XXX__,________, + ________,________ + // 0x7C + , + 3, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________ + // 0x7D + , + 7, + ________,________, + XXX_____,________, + XXXX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + ___XXX__,________, + ___XXX__,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + XXXX____,________, + XXX_____,________, + ________,________ + // 0x7E + , + 9, + ________,________, + ________,________, + _XXX___X,________, + XXXXXXXX,________, + X___XXX_,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0xA3 - £ + , + 8, + ________,________, + ________,________, + _XX_XX__,________, + _XX_XX__,________, + ________,________, + __XXX___,________, + _XXXXX__,________, + XX___XX_,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX______,________, + XXX__XX_,________, + _XXXXX__,________, + __XXX___,________, + ________,________, + ________,________ + // 0xB3 - ³ + , + 10, + __XX_XX_,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + ________,________, + ________,________ + // 0xC0 - À + , + 12, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XXX,X_______, + XX__XXXX,XX______, + XX_XXX__,XXX_____, + XXXXX___,_XX_____, + XXXXX___,_XX_____, + XX_XX___,_XX_____, + XX_XXX__,XXX_____, + XX__XXXX,XX______, + XX___XXX,X_______, + ________,________, + ________,________ + // 0xC1 - Á + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXX__,________, + XXXXXXX_,________, + XX___XX_,________, + ___XXXX_,________, + _XXXXXX_,________, + XXX__XX_,________, + XX___XX_,________, + XXXXXXX_,________, + _XXXX_XX,________, + ________,________, + ________,________ + // 0xC2 -  + , + 9, + ________,________, + ______X_,________, + _XXXXXX_,________, + XXXXXX__,________, + XX______,________, + XXXXXX__,________, + XXXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0xC3 - à + , + 10, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + _______X,X_______, + _______X,X_______ + // 0xC4 - Ä + , + 12, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ___XXXXX,X_______, + __XXXXXX,X_______, + __XX___X,X_______, + __XX___X,X_______, + __XX___X,X_______, + __XX___X,X_______, + _XX____X,X_______, + XXXXXXXX,XXX_____, + XXXXXXXX,XXX_____, + XX______,_XX_____, + XX______,_XX_____ + // 0xC5 - Å + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXX___,________, + _XXXXX__,________, + XX___XX_,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX______,________, + XXX__XX_,________, + _XXXXX__,________, + __XXX___,________, + ________,________, + ________,________ + // 0xC6 - Æ + , + 13, + ________,________, + ________,________, + ________,________, + _____XX_,________, + _____XX_,________, + __XXXXXX,XX______, + _XXXXXXX,XXX_____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + _XXXXXXX,XXX_____, + __XXXXXX,XX______, + _____XX_,________, + _____XX_,________ + // 0xC7 - Ç + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXX_,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0xC8 - È + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XX_,________, + XXX_XXX_,________, + _XX_XX__,________, + __XXX___,________, + __XXX___,________, + __XXX___,________, + _XX_XX__,________, + XXX_XXX_,________, + XX___XX_,________, + ________,________, + ________,________ + // 0xC9 - É + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX____XX,________, + XX___XXX,________, + XX__XXXX,________, + XX_XXXXX,________, + XXXXX_XX,________, + XXXX__XX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xCA - Ê + , + 9, + ________,________, + __X__X__,________, + __XXXX__,________, + ___XX___,________, + ________,________, + XX____XX,________, + XX___XXX,________, + XX__XXXX,________, + XX_XXXXX,________, + XXXXX_XX,________, + XXXX__XX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xCB - Ë + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XX_,________, + XX___XX_,________, + XX__XX__,________, + XXXX____,________, + XXXX____,________, + XX__XX__,________, + XX___XX_,________, + XX___XX_,________, + XX___XX_,________, + ________,________, + ________,________ + // 0xCC - Ì + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXXXXX,________, + _XXXXXXX,________, + _XX___XX,________, + _XX___XX,________, + _XX___XX,________, + _XX___XX,________, + _XX___XX,________, + XXX___XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xCD - Í + , + 12, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXX_____,XXX_____, + XXX_____,XXX_____, + XXXX___X,XXX_____, + XXXX___X,XXX_____, + XX_XX_XX,_XX_____, + XX_XX_XX,_XX_____, + XX__XXX_,_XX_____, + XX__XXX_,_XX_____, + XX___X__,_XX_____, + ________,________, + ________,________ + // 0xCE - Î + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXXXXXXX,________, + XXXXXXXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xCF - Ï + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX__XXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0xD0 - Ð + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xD1 - Ñ + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXXXX,________, + XXXXXXXX,________, + XX____XX,________, + XX____XX,________, + XXXXXXXX,________, + _XXXXXXX,________, + __XX__XX,________, + _XX___XX,________, + XX____XX,________, + ________,________, + ________,________ + // 0xD2 - Ò + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX_XXXX_,________, + XXXXXXXX,________, + XXX___XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXX__XXX,________, + XXXXXXX_,________, + XX_XXX__,________, + XX______,________, + XX______,________ + // 0xD3 - Ó + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + __XXXX__,________, + _XXXXXX_,________, + XXX__XX_,________, + XX______,________, + XX______,________, + XX______,________, + XXX__XX_,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0xD4 - Ô + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ___XX___,________, + ________,________, + ________,________ + // 0xD5 - Õ + , + 11, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,XX______, + XX______,XX______, + _XX____X,X_______, + _XX____X,X_______, + __XX__XX,________, + __XX__XX,________, + ___XXXX_,________, + ___XXXX_,________, + ____XX__,________, + _XXXX___,________, + _XXX____,________ + // 0xD6 - Ö + , + 13, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX___XX_,__XX____, + _XX__XX_,_XX_____, + __XX_XX_,XX______, + __XX_XX_,XX______, + ____XXXX,________, + __XX_XX_,XX______, + _XX__XX_,_XX_____, + XX___XX_,__XX____, + XX___XX_,__XX____, + ________,________, + ________,________ + // 0xD7 - × + , + 8, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXXXX__,________, + XXXXXXX_,________, + XX___XX_,________, + XXXXXX__,________, + XXXXXX__,________, + XX___XX_,________, + XX___XX_,________, + XXXXXXX_,________, + XXXXXX__,________, + ________,________, + ________,________ + // 0xD8 - Ø + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XXXXXXX_,________, + XXXXXXXX,________, + XX____XX,________, + XX____XX,________, + XXXXXXXX,________, + XXXXXXX_,________, + ________,________, + ________,________ + // 0xD9 - Ù + , + 12, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX______,_XX_____, + XX______,_XX_____, + XX______,_XX_____, + XXXXXXX_,_XX_____, + XXXXXXXX,_XX_____, + XX____XX,_XX_____, + XX____XX,_XX_____, + XXXXXXXX,_XX_____, + XXXXXXX_,_XX_____, + ________,________, + ________,________ + // 0xDA - Ú + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXXX_,________, + XXXXXXXX,________, + ______XX,________, + ____XXX_,________, + ____XXXX,________, + ______XX,________, + XX____XX,________, + XXXXXXXX,________, + _XXXXXX_,________, + ________,________, + ________,________ + // 0xDB - Û + , + 11, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XXXXXXXX,XX______, + XXXXXXXX,XX______, + ________,________, + ________,________ + // 0xDC - Ü + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + _XXXXXX_,________, + XXXXXXXX,________, + XX____XX,________, + ____XXXX,________, + ____XXXX,________, + ______XX,________, + XX____XX,________, + XXXXXXXX,________, + _XXXXXX_,________, + ________,________, + ________,________ + // 0xDD - Ý + , + 12, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XXXXXXXX,XX______, + XXXXXXXX,XXX_____, + ________,_XX_____, + ________,_XX_____ + // 0xDE - Þ + , + 9, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XX____XX,________, + XXXXXXXX,________, + _XXXXXXX,________, + ______XX,________, + ______XX,________, + ______XX,________, + ________,________, + ________,________ + // 0xDF - ß + , + 11, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + XXXX____,________, + XXXX____,________, + __XX____,________, + __XXXXXX,X_______, + __XXXXXX,XX______, + __XX____,XX______, + __XX____,XX______, + __XXXXXX,XX______, + __XXXXXX,X_______, + ________,________, + ________,________ + // 0xE0 - à + , + 14, + ________,________, + ________,________, + XX_____X,XX______, + XX___XXX,XXXX____, + XX___XX_,__XX____, + XX__XX__,___XX___, + XX__XX__,___XX___, + XXXXXX__,___XX___, + XXXXXX__,___XX___, + XX__XX__,___XX___, + XX__XX__,___XX___, + XX___XX_,__XX____, + XX___XXX,XXXX____, + XX_____X,XX______, + ________,________, + ________,________ + // 0xE1 - á + , + 12, + ________,________, + ________,________, + ____XXX_,________, + ____XXX_,________, + ___XX_XX,________, + ___XX_XX,________, + ___XX_XX,________, + __XX___X,X_______, + __XX___X,X_______, + __XXXXXX,X_______, + _XXXXXXX,XX______, + _XX_____,XX______, + _XX_____,XX______, + XX______,_XX_____, + ________,________, + ________,________ + // 0xE2 - â + , + 11, + ________,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,XX______, + XX______,XX______, + XX______,XX______, + XXXXXXXX,X_______, + XXXXXXXX,________, + ________,________, + ________,________ + // 0xE3 - ã + , + 11, + ________,________, + ________,________, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XXXXXXXX,XX______, + XXXXXXXX,XX______, + ________,XX______, + ________,XX______ + // 0xE4 - ä + , + 13, + ________,________, + ________,________, + ____XXXX,XX______, + ___XXXXX,XX______, + ___XX___,XX______, + ___XX___,XX______, + ___XX___,XX______, + __XX____,XX______, + __XX____,XX______, + __XX____,XX______, + __XX____,XX______, + _XX_____,XX______, + XXXXXXXX,XXXX____, + XXXXXXXX,XXXX____, + XX______,__XX____, + XX______,__XX____ + // 0xE5 - å + , + 10, + ________,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + ________,________, + ________,________ + // 0xE6 - æ + , + 15, + ________,________, + ________,________, + ______XX,________, + ___XXXXX,XXX_____, + _XXXXXXX,XXXXX___, + _XX___XX,___XX___, + XX____XX,____XX__, + XX____XX,____XX__, + XX____XX,____XX__, + XX____XX,____XX__, + _XX___XX,___XX___, + _XXXXXXX,XXXXX___, + ___XXXXX,XXX_____, + ______XX,________, + ________,________, + ________,________ + // 0xD5 + // 0xE7 - ç + , + 10, + ________,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0xE8 - è + , + 10, + ________,________, + ________,________, + XX_____X,X_______, + XXX___XX,X_______, + _XX___XX,________, + __XX_XX_,________, + __XXXXX_,________, + ___XXX__,________, + ___XXX__,________, + __XXXXX_,________, + __XX_XX_,________, + _XX___XX,________, + XXX___XX,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0xE9 - é + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX_____X,XX______, + XX____XX,XX______, + XX____XX,XX______, + XX___XX_,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX_XX___,XX______, + XXXX____,XX______, + XXXX____,XX______, + XXX_____,XX______, + XX______,XX______, + ________,________, + ________,________ + // 0xEA - ê + , + 11, + ___XXXX_,________, + ____XX__,________, + XX______,XX______, + XX_____X,XX______, + XX____XX,XX______, + XX____XX,XX______, + XX___XX_,XX______, + XX__XX__,XX______, + XX__XX__,XX______, + XX_XX___,XX______, + XXXX____,XX______, + XXXX____,XX______, + XXX_____,XX______, + XX______,XX______, + ________,________, + ________,________ + // 0xEB - ë + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX_____X,X_______, + XX____XX,________, + XX___XX_,________, + XX__XX__,________, + XX_XXXX_,________, + XXXX_XX_,________, + XXX___XX,________, + XX____XX,________, + XX_____X,X_______, + XX_____X,XX______, + XX______,XX______, + ________,________, + ________,________ + // 0xEC - ì + , + 10, + ________,________, + ________,________, + ___XXXXX,X_______, + __XXXXXX,X_______, + __XX___X,X_______, + _XX____X,X_______, + _XX____X,X_______, + _XX____X,X_______, + _XX____X,X_______, + _XX____X,X_______, + _XX____X,X_______, + _XX____X,X_______, + XXX____X,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0xED - í + , + 12, + ________,________, + ________,________, + XXX_____,XXX_____, + XXX_____,XXX_____, + XXXX___X,XXX_____, + XXXX___X,XXX_____, + XX_X___X,_XX_____, + XX_XX_XX,_XX_____, + XX_XX_XX,_XX_____, + XX_XX_XX,_XX_____, + XX__XXX_,_XX_____, + XX__XXX_,_XX_____, + XX__XXX_,_XX_____, + XX___X__,_XX_____, + ________,________, + ________,________ + // 0xEE - î + , + 10, + ________,________, + ________,________, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0xEF - ï + , + 11, + ________,________, + ________,________, + ___XXXX_,________, + _XXXXXXX,X_______, + _XX____X,X_______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + _XX____X,X_______, + _XXXXXXX,X_______, + ___XXXX_,________, + ________,________, + ________,________ + // 0xF0 - ð + , + 10, + ________,________, + ________,________, + XXXXXXXX,X_______, + XXXXXXXX,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + ________,________, + ________,________ + // 0xF1 - ñ + , + 12, + ________,________, + ________,________, + ___XXXXX,XXX_____, + __XXXXXX,XXX_____, + _XXX____,_XX_____, + _XX_____,_XX_____, + _XXX____,_XX_____, + __XXXXXX,XXX_____, + ____XXXX,XXX_____, + ___XXX__,_XX_____, + __XXX___,_XX_____, + __XX____,_XX_____, + _XXX____,_XX_____, + XXX_____,_XX_____, + ________,________, + ________,________ + // 0xF2 - ò + , + 10, + ________,________, + ________,________, + XXXXXXX_,________, + XXXXXXXX,________, + XX____XX,X_______, + XX_____X,X_______, + XX____XX,X_______, + XXXXXXXX,________, + XXXXXXX_,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + ________,________, + ________,________ + // 0xF3 - ó + , + 11, + ________,________, + ________,________, + ___XXXXX,________, + _XXXXXXX,X_______, + _XX____X,XX______, + XX______,X_______, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,X_______, + _XX____X,XX______, + _XXXXXXX,X_______, + ___XXXXX,________, + ________,________, + ________,________ + // 0xF4 - ô + , + 11, + ________,________, + ________,________, + XXXXXXXX,XX______, + XXXXXXXX,XX______, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ____XX__,________, + ________,________, + ________,________ + // 0xF5 - õ + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX______,XX______, + _XX____X,X_______, + _XX____X,X_______, + __XX__XX,________, + __XX__XX,________, + ___XXXX_,________, + ___XXXX_,________, + ____XX__,________, + ____XX__,________, + _XXXX___,________, + _XXX____,________, + ________,________, + ________,________ + // 0xF6 - ö + , + 13, + ________,________, + ________,________, + XX___XX_,__XX____, + _XX__XX_,_XX_____, + _XX__XX_,_XX_____, + _XX__XX_,_XX_____, + __XX_XX_,XX______, + ____XXXX,________, + __XX_XX_,XX______, + __XX_XX_,XX______, + _XX__XX_,_XX_____, + _XX__XX_,_XX_____, + XX___XX_,__XX____, + XX___XX_,__XX____, + ________,________, + ________,________ + // 0xF7 - ÷ + , + 11, + ________,________, + ________,________, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,X_______, + XX_____X,X_______, + XX_____X,X_______, + XXXXXXXX,________, + XXXXXXXX,X_______, + XX_____X,XX______, + XX______,XX______, + XX______,XX______, + XXXXXXXX,X_______, + XXXXXXXX,________, + ________,________, + ________,________ + // 0xF8 - ø + , + 10, + ________,________, + ________,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XX______,________, + XXXXXXX_,________, + XXXXXXXX,________, + XX____XX,X_______, + XX_____X,X_______, + XX____XX,X_______, + XXXXXXXX,________, + XXXXXXX_,________, + ________,________, + ________,________ + // 0xF9 - ù + , + 13, + ________,________, + ________,________, + XX______,__XX____, + XX______,__XX____, + XX______,__XX____, + XX______,__XX____, + XX______,__XX____, + XXXXXXX_,__XX____, + XXXXXXXX,__XX____, + XX____XX,X_XX____, + XX_____X,X_XX____, + XX____XX,X_XX____, + XXXXXXXX,__XX____, + XXXXXXX_,__XX____, + ________,________, + ________,________ + // 0xFA - ú + , + 9, + ________,________, + ________,________, + __XXXXX_,________, + _XXXXXXX,________, + XX____XX,________, + ______XX,________, + ___XXXX_,________, + ___XXXX_,________, + _____XXX,________, + ______XX,________, + XX____XX,________, + XXX__XXX,________, + _XXXXXX_,________, + __XXXX__,________, + ________,________, + ________,________ + // 0xFB - û + , + 13, + ________,________, + ________,________, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XXXXXXXX,XXXX____, + XXXXXXXX,XXXX____, + ________,________, + ________,________ + // 0xFC - ü + , + 11, + ________,________, + ________,________, + ___XXXX_,________, + _XXXXXXX,X_______, + XXX____X,X_______, + XX______,XX______, + ________,XX______, + ____XXXX,XX______, + ____XXXX,XX______, + ________,XX______, + XX______,XX______, + XXX____X,X_______, + _XXXXXXX,X_______, + ___XXXX_,________, + ________,________, + ________,________ + // 0xFD - ý + , + 14, + ________,________, + ________,________, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XX___XX_,__XX____, + XXXXXXXX,XXXXX___, + XXXXXXXX,XXXXX___, + ________,___XX___, + ________,___XX___ + // 0xFE - þ + , + 11, + ________,________, + ________,________, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XX______,XX______, + XXX_____,XX______, + _XXXXXXX,XX______, + __XXXXXX,XX______, + ________,XX______, + ________,XX______, + ________,XX______, + ________,XX______, + ________,________, + ________,________ + // 0xFF - ÿ + , + 12, + ________,________, + ________,________, + XXXX____,________, + XXXX____,________, + __XX____,________, + __XX____,________, + __XX____,________, + __XXXXXX,X_______, + __XXXXXX,XX______, + __XX____,XXX_____, + __XX____,_XX_____, + __XX____,XXX_____, + __XXXXXX,XX______, + __XXXXXX,X_______, + ________,________, + ________,________ +}; + +/* +32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à +33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á +34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - ‚ 162 (0xa2) - ¢ 194 (0xc2) -  226 (0xe2) - â +35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - à 227 (0xe3) - ã +36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä +37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å +38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ +39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç +40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è +41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é +42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê +43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - ‹ 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë +44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì +45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í +46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î +47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï +48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð +49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - ‘ 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ +50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - ’ 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò +51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó +52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô +53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ +54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - – 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö +55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷ +56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø +57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù +58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú +59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - › 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û +60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü +61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý +62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ +63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ +*/ diff --git a/F1-nolib/chronometer_v3/fontNumb10.h b/F1-nolib/chronometer_v3/fontNumb10.h new file mode 100644 index 0000000..956dc69 --- /dev/null +++ b/F1-nolib/chronometer_v3/fontNumb10.h @@ -0,0 +1,249 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// this file should be included JUST ONCE! +// only in fonts.c + +#define FONTNUMB10BYTES 10 +#define FONTNUMB10HEIGHT 10 +#define FONTNUMB10BASELINE 0 + +// this array shows position of every koi8-r symbol in font10_table +const uint8_t fontNumb10_encoding[256] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31 + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, // 47 + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, // 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 111 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 223 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 239 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 255 +}; + +const uint8_t fontNumb10_table[] = { + // 0x00 - empty + 0, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 0x20 - ' ' + 4, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 0x30 - '0' + 7, + __XX____, + _X__X___, + X____X__, + X____X__, + X____X__, + X____X__, + X____X__, + X____X__, + _X__X___, + __XX____, + // 0x31 - '1' + 4, + __X_____, + _XX_____, + X_X_____, + __X_____, + __X_____, + __X_____, + __X_____, + __X_____, + __X_____, + __X_____, + // 0x32 - '2' + 6, + _XXX____, + X__XX___, + ____X___, + ____X___, + ____X___, + ___X____, + __X_____, + _X______, + XX______, + XXXXX___, + // 0x33 - '3' + 6, + _XX_____, + X__X____, + ___X____, + ___X____, + _XX_____, + ___XX___, + ____X___, + ____X___, + X__X____, + _XX_____, + // 0x34 - '4' + 6, + ____X___, + ___XX___, + ___XX___, + __X_X___, + _X__X___, + _X__X___, + X___X___, + XXXXX___, + ____X___, + ____X___, + // 0x35 - '5' + 6, + XXXXX___, + X_______, + X_______, + X_______, + XXXX____, + ___XX___, + ____X___, + ____X___, + X__XX___, + _XXX____, + // 0x36 - '6' + 6, + __XX____, + _X__X___, + X_______, + X_______, + X_XX____, + XX_XX___, + X___X___, + X___X___, + XX_XX___, + _XXX____, + // 0x37 - '7' + 6, + XXXXX___, + ____X___, + ___X____, + ___X____, + __X_____, + __X_____, + __X_____, + _X______, + _X______, + _X______, + // 0x38 - '8' + 7, + __XXX___, + _X___X__, + _X___X__, + _XX_X___, + __XX____, + _X__X___, + X____X__, + X____X__, + XX__XX__, + _XXXX___, + // 0x39 - '9' + 6, + _XXX____, + XX_XX___, + X___X___, + X___X___, + XX_XX___, + _XX_X___, + ____X___, + ____X___, + X__X____, + _XX_____, + // 0x3A - ':' + 3, + ________, + ________, + XX______, + XX______, + ________, + ________, + XX______, + XX______, + ________, + ________, + // 0x2e - '.' + 3, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + XX______, + XX______, +}; + +/* +32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à +33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á +34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - ‚ 162 (0xa2) - ¢ 194 (0xc2) -  226 (0xe2) - â +35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - à 227 (0xe3) - ã +36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä +37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å +38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ +39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç +40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è +41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é +42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê +43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - ‹ 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë +44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì +45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í +46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î +47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï +48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð +49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - ‘ 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ +50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - ’ 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò +51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó +52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô +53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ +54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - – 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö +55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷ +56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø +57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù +58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú +59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - › 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û +60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü +61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý +62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ +63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ +*/ diff --git a/F1-nolib/chronometer_v3/fontNumb16.h b/F1-nolib/chronometer_v3/fontNumb16.h new file mode 100644 index 0000000..6b6c787 --- /dev/null +++ b/F1-nolib/chronometer_v3/fontNumb16.h @@ -0,0 +1,315 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// this file should be included JUST ONCE! +// only in fonts.c + +#define FONTNUMB16BYTES 16 +#define FONTNUMB16HEIGHT 16 +#define FONTNUMB16BASELINE 0 + +// this array shows position of every koi8-r symbol in font16_table +const uint8_t fontNumb16_encoding[256] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31 + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 47 + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, // 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 111 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 223 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 239 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 255 +}; + +const uint8_t fontNumb16_table[] = { + // 0x00 - empty + 0, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 0x20 - ' ' + 4, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 0x30 - '0' + 8, + __XXX___, + _XX_XX__, + _X__XX__, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XX___XX_, + XXX__X__, + _XX_XX__, + __XXX___, + // 0x31 - '1' + 6, + ___X____, + __XX____, + _XXX____, + XXXX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + __XX____, + _XXXX___, + // 0x32 - '2' + 7, + __XX____, + _XXXX___, + XX_XXX__, + X___XX__, + ____XX__, + ____XX__, + ____XX__, + ____XX__, + ___XX___, + ___X____, + __XX____, + __X_____, + _XX_____, + XX______, + XX___X__, + XXXXXX__, + // 0x33 - '3' + 7, + _XXX____, + XX_X____, + X__XX___, + ___XX___, + ___XX___, + ___XX___, + __XX____, + _XXX____, + ___XX___, + ____XX__, + ____XX__, + ____XX__, + ____XX__, + X__XXX__, + XX_XX___, + _XXX____, + // 0x34 - '4' + 8, + _____X__, + ____XX__, + ____XX__, + ___XXX__, + __XX_X__, + __X__X__, + _XX_XX__, + _XX_XX__, + _X__XX__, + XX__XX__, + XX__XX__, + XXXXXXX_, + ____XX__, + ____XX__, + ____XX__, + ____XX__, + // 0x35 - '5' + 6, + XXXXX___, + XX______, + XX______, + XX______, + XX______, + XXXX____, + XXXXX___, + ___XX___, + ___XX___, + ___XX___, + ___XX___, + ___XX___, + ___XX___, + X__XX___, + XXXX____, + _XX_____, + // 0x36 - '6' + 7, + ___XX___, + __X__X__, + _XX_____, + _X______, + XX______, + XX______, + XX_X____, + XXXXX___, + XX__XX__, + XX__XX__, + XX___X__, + XX___X__, + XX__XX__, + _X__XX__, + _XX_XX__, + __XXX___, + // 0x37 - '7' + 7, + XXXXXX__, + _____X__, + ____XX__, + ____XX__, + ____X___, + ___XX___, + ___XX___, + ___X____, + __XX____, + __XX____, + _XX_____, + _XX_____, + _XX_____, + XX______, + XX______, + XX______, + // 0x38 - '8' + 7, + __XX____, + _XX_X___, + XX__XX__, + XX___X__, + XX___X__, + XX__XX__, + _XX_X___, + __XX____, + _XXXX___, + XX__XX__, + X___XX__, + X____X__, + XX___X__, + XX__XX__, + _XXXXX__, + __XX____, + // 0x39 - '9' + 7, + _XXX____, + XX_XX___, + X___X___, + X___XX__, + X___XX__, + X___XX__, + X___XX__, + X___XX__, + XX_XXX__, + _XX_XX__, + ____XX__, + ____XX__, + ____X___, + X__XX___, + XXXX____, + _XX_____, + // 0x3A - ':' + 3, + ________, + ________, + XX______, + XX______, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + XX______, + XX______, + ________, + ________ +}; + +/* +32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à +33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á +34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - ‚ 162 (0xa2) - ¢ 194 (0xc2) -  226 (0xe2) - â +35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - à 227 (0xe3) - ã +36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä +37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å +38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ +39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç +40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è +41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é +42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê +43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - ‹ 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë +44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì +45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í +46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î +47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï +48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð +49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - ‘ 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ +50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - ’ 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò +51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó +52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô +53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ +54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - – 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö +55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷ +56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø +57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù +58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú +59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - › 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û +60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü +61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý +62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ +63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ +*/ diff --git a/F1-nolib/chronometer_v3/fontNumb8.h b/F1-nolib/chronometer_v3/fontNumb8.h new file mode 100644 index 0000000..5108de7 --- /dev/null +++ b/F1-nolib/chronometer_v3/fontNumb8.h @@ -0,0 +1,221 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// this file should be included JUST ONCE! +// only in fonts.c + +#define FONTNUMB8BYTES 8 +#define FONTNUMB8HEIGHT 8 +#define FONTNUMB8BASELINE 0 + +// this array shows position of every koi8-r symbol in font10_table +const uint8_t fontNumb8_encoding[256] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31 + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 47 + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, // 63 + 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, // 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 111 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 223 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 239 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 255 +}; + +const uint8_t fontNumb8_table[] = { + // 0 0x00 - empty + 0, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 1 0x20 - ' ' + 4, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + ________, + // 2 0x30 - '0' + 6, + _XXX____, + XX_XX___, + X___X___, + X___X___, + X___X___, + X___X___, + XX_XX___, + _XXX____, + // 3 0x31 - '1' + 6, + _XX_____, + X_X_____, + __X_____, + __X_____, + __X_____, + __X_____, + __X_____, + XXXXX___, + // 4 0x32 - '2' + 6, + _XXX____, + X___X___, + ____X___, + ____X___, + ___X____, + __X_____, + _X______, + XXXXX___, + // 5 0x33 - '3' + 6, + XXXX____, + ____X___, + ____X___, + _XXX____, + ____X___, + ____X___, + ____X___, + XXXX____, + // 6 0x34 - '4' + 7, + ___XX___, + ___XX___, + __X_X___, + _X__X___, + _X__X___, + XXXXXX__, + ____X___, + ____X___, + // 7 0x35 - '5' + 5, + XXXX____, + X_______, + X_______, + XXX_____, + ___X____, + ___X____, + ___X____, + XXX_____, + // 8 0x36 - '6' + 6, + _XXX____, + X___X___, + X_______, + XXXX____, + X___X___, + X___X___, + X___X___, + _XXX____, + // 9 0x37 - '7' + 5, + XXXX____, + ___X____, + __X_____, + __X_____, + __X_____, + _X______, + _X______, + _X______, + // 10 0x38 - '8' + 6, + _XXX____, + X___X___, + X___X___, + _XXX____, + X___X___, + X___X___, + X___X___, + _XXX____, + // 11 0x39 - '9' + 6, + _XXX____, + X___X___, + X___X___, + X___X___, + _XXXX___, + ____X___, + X___X___, + _XXX____, + // 12 0x41 - 'A' + 6, + __X_____, + _X_X____, + _X_X____, + _X_X____, + X___X___, + XXXXX___, + X___X___, + X___X___, + // 13 0x4f - 'O' + 7, + __XX____, + _X__X___, + X____X__, + X____X__, + X____X__, + X____X__, + _X__X___, + __XX____, +}; + +/* +32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à +33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á +34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - ‚ 162 (0xa2) - ¢ 194 (0xc2) -  226 (0xe2) - â +35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - à 227 (0xe3) - ã +36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä +37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å +38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ +39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç +40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è +41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é +42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê +43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - ‹ 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë +44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì +45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í +46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î +47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï +48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð +49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - ‘ 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ +50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - ’ 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò +51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó +52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô +53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ +54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - – 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö +55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷ +56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø +57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù +58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú +59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - › 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û +60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü +61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý +62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ +63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ +*/ diff --git a/F1-nolib/chronometer_v3/font_EMPTY.h b/F1-nolib/chronometer_v3/font_EMPTY.h new file mode 100644 index 0000000..0d93265 --- /dev/null +++ b/F1-nolib/chronometer_v3/font_EMPTY.h @@ -0,0 +1,118 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// this file should be included JUST ONCE! +// only in fonts.c + +#define FONTNUMB16BYTES 32 +#define FONTNUMB16HEIGHT 16 +#define FONTNUMB16BASELINE 0 + +// this array shows position of every koi8-r symbol in font14_table +const uint8_t font14_encoding[256] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31 + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 47 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 63 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 79 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 95 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 111 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 127 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 207 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 223 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 239 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 255 +}; + +const uint8_t fontNumb16_table[] = { + // 0x00 - empty + 0, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ + // 0x20 - ' ' + , + 4, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________, + ________,________ +}; + +/* +32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à +33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á +34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - ‚ 162 (0xa2) - ¢ 194 (0xc2) -  226 (0xe2) - â +35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - à 227 (0xe3) - ã +36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä +37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å +38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ +39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç +40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è +41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é +42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê +43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - ‹ 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë +44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì +45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í +46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î +47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï +48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð +49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - ‘ 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ +50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - ’ 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò +51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó +52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô +53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ +54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - – 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö +55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷ +56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø +57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù +58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú +59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - › 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û +60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü +61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý +62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ +63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ +*/ diff --git a/F1-nolib/chronometer_v3/fonts.c b/F1-nolib/chronometer_v3/fonts.c new file mode 100644 index 0000000..65cf401 --- /dev/null +++ b/F1-nolib/chronometer_v3/fonts.c @@ -0,0 +1,330 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include +#include "fonts.h" +#include "usart.h" + +/* Bash-script to generate the symbols + +#!/bin/bash + +function bits(){ + Ans="" + for x in $(seq 7 -1 0); do + B=$((1<<$x)) + if [ $(($1&$B)) -ne 0 ]; then Ans="${Ans}X" + else Ans="${Ans}_" + fi + done + echo $Ans +} + +for x in $(seq 0 255); do + printf "#define $(bits $x)\t0x%02x\n" $x +done + +*/ + +#define ________ 0x00 +#define _______X 0x01 +#define ______X_ 0x02 +#define ______XX 0x03 +#define _____X__ 0x04 +#define _____X_X 0x05 +#define _____XX_ 0x06 +#define _____XXX 0x07 +#define ____X___ 0x08 +#define ____X__X 0x09 +#define ____X_X_ 0x0a +#define ____X_XX 0x0b +#define ____XX__ 0x0c +#define ____XX_X 0x0d +#define ____XXX_ 0x0e +#define ____XXXX 0x0f +#define ___X____ 0x10 +#define ___X___X 0x11 +#define ___X__X_ 0x12 +#define ___X__XX 0x13 +#define ___X_X__ 0x14 +#define ___X_X_X 0x15 +#define ___X_XX_ 0x16 +#define ___X_XXX 0x17 +#define ___XX___ 0x18 +#define ___XX__X 0x19 +#define ___XX_X_ 0x1a +#define ___XX_XX 0x1b +#define ___XXX__ 0x1c +#define ___XXX_X 0x1d +#define ___XXXX_ 0x1e +#define ___XXXXX 0x1f +#define __X_____ 0x20 +#define __X____X 0x21 +#define __X___X_ 0x22 +#define __X___XX 0x23 +#define __X__X__ 0x24 +#define __X__X_X 0x25 +#define __X__XX_ 0x26 +#define __X__XXX 0x27 +#define __X_X___ 0x28 +#define __X_X__X 0x29 +#define __X_X_X_ 0x2a +#define __X_X_XX 0x2b +#define __X_XX__ 0x2c +#define __X_XX_X 0x2d +#define __X_XXX_ 0x2e +#define __X_XXXX 0x2f +#define __XX____ 0x30 +#define __XX___X 0x31 +#define __XX__X_ 0x32 +#define __XX__XX 0x33 +#define __XX_X__ 0x34 +#define __XX_X_X 0x35 +#define __XX_XX_ 0x36 +#define __XX_XXX 0x37 +#define __XXX___ 0x38 +#define __XXX__X 0x39 +#define __XXX_X_ 0x3a +#define __XXX_XX 0x3b +#define __XXXX__ 0x3c +#define __XXXX_X 0x3d +#define __XXXXX_ 0x3e +#define __XXXXXX 0x3f +#define _X______ 0x40 +#define _X_____X 0x41 +#define _X____X_ 0x42 +#define _X____XX 0x43 +#define _X___X__ 0x44 +#define _X___X_X 0x45 +#define _X___XX_ 0x46 +#define _X___XXX 0x47 +#define _X__X___ 0x48 +#define _X__X__X 0x49 +#define _X__X_X_ 0x4a +#define _X__X_XX 0x4b +#define _X__XX__ 0x4c +#define _X__XX_X 0x4d +#define _X__XXX_ 0x4e +#define _X__XXXX 0x4f +#define _X_X____ 0x50 +#define _X_X___X 0x51 +#define _X_X__X_ 0x52 +#define _X_X__XX 0x53 +#define _X_X_X__ 0x54 +#define _X_X_X_X 0x55 +#define _X_X_XX_ 0x56 +#define _X_X_XXX 0x57 +#define _X_XX___ 0x58 +#define _X_XX__X 0x59 +#define _X_XX_X_ 0x5a +#define _X_XX_XX 0x5b +#define _X_XXX__ 0x5c +#define _X_XXX_X 0x5d +#define _X_XXXX_ 0x5e +#define _X_XXXXX 0x5f +#define _XX_____ 0x60 +#define _XX____X 0x61 +#define _XX___X_ 0x62 +#define _XX___XX 0x63 +#define _XX__X__ 0x64 +#define _XX__X_X 0x65 +#define _XX__XX_ 0x66 +#define _XX__XXX 0x67 +#define _XX_X___ 0x68 +#define _XX_X__X 0x69 +#define _XX_X_X_ 0x6a +#define _XX_X_XX 0x6b +#define _XX_XX__ 0x6c +#define _XX_XX_X 0x6d +#define _XX_XXX_ 0x6e +#define _XX_XXXX 0x6f +#define _XXX____ 0x70 +#define _XXX___X 0x71 +#define _XXX__X_ 0x72 +#define _XXX__XX 0x73 +#define _XXX_X__ 0x74 +#define _XXX_X_X 0x75 +#define _XXX_XX_ 0x76 +#define _XXX_XXX 0x77 +#define _XXXX___ 0x78 +#define _XXXX__X 0x79 +#define _XXXX_X_ 0x7a +#define _XXXX_XX 0x7b +#define _XXXXX__ 0x7c +#define _XXXXX_X 0x7d +#define _XXXXXX_ 0x7e +#define _XXXXXXX 0x7f +#define X_______ 0x80 +#define X______X 0x81 +#define X_____X_ 0x82 +#define X_____XX 0x83 +#define X____X__ 0x84 +#define X____X_X 0x85 +#define X____XX_ 0x86 +#define X____XXX 0x87 +#define X___X___ 0x88 +#define X___X__X 0x89 +#define X___X_X_ 0x8a +#define X___X_XX 0x8b +#define X___XX__ 0x8c +#define X___XX_X 0x8d +#define X___XXX_ 0x8e +#define X___XXXX 0x8f +#define X__X____ 0x90 +#define X__X___X 0x91 +#define X__X__X_ 0x92 +#define X__X__XX 0x93 +#define X__X_X__ 0x94 +#define X__X_X_X 0x95 +#define X__X_XX_ 0x96 +#define X__X_XXX 0x97 +#define X__XX___ 0x98 +#define X__XX__X 0x99 +#define X__XX_X_ 0x9a +#define X__XX_XX 0x9b +#define X__XXX__ 0x9c +#define X__XXX_X 0x9d +#define X__XXXX_ 0x9e +#define X__XXXXX 0x9f +#define X_X_____ 0xa0 +#define X_X____X 0xa1 +#define X_X___X_ 0xa2 +#define X_X___XX 0xa3 +#define X_X__X__ 0xa4 +#define X_X__X_X 0xa5 +#define X_X__XX_ 0xa6 +#define X_X__XXX 0xa7 +#define X_X_X___ 0xa8 +#define X_X_X__X 0xa9 +#define X_X_X_X_ 0xaa +#define X_X_X_XX 0xab +#define X_X_XX__ 0xac +#define X_X_XX_X 0xad +#define X_X_XXX_ 0xae +#define X_X_XXXX 0xaf +#define X_XX____ 0xb0 +#define X_XX___X 0xb1 +#define X_XX__X_ 0xb2 +#define X_XX__XX 0xb3 +#define X_XX_X__ 0xb4 +#define X_XX_X_X 0xb5 +#define X_XX_XX_ 0xb6 +#define X_XX_XXX 0xb7 +#define X_XXX___ 0xb8 +#define X_XXX__X 0xb9 +#define X_XXX_X_ 0xba +#define X_XXX_XX 0xbb +#define X_XXXX__ 0xbc +#define X_XXXX_X 0xbd +#define X_XXXXX_ 0xbe +#define X_XXXXXX 0xbf +#define XX______ 0xc0 +#define XX_____X 0xc1 +#define XX____X_ 0xc2 +#define XX____XX 0xc3 +#define XX___X__ 0xc4 +#define XX___X_X 0xc5 +#define XX___XX_ 0xc6 +#define XX___XXX 0xc7 +#define XX__X___ 0xc8 +#define XX__X__X 0xc9 +#define XX__X_X_ 0xca +#define XX__X_XX 0xcb +#define XX__XX__ 0xcc +#define XX__XX_X 0xcd +#define XX__XXX_ 0xce +#define XX__XXXX 0xcf +#define XX_X____ 0xd0 +#define XX_X___X 0xd1 +#define XX_X__X_ 0xd2 +#define XX_X__XX 0xd3 +#define XX_X_X__ 0xd4 +#define XX_X_X_X 0xd5 +#define XX_X_XX_ 0xd6 +#define XX_X_XXX 0xd7 +#define XX_XX___ 0xd8 +#define XX_XX__X 0xd9 +#define XX_XX_X_ 0xda +#define XX_XX_XX 0xdb +#define XX_XXX__ 0xdc +#define XX_XXX_X 0xdd +#define XX_XXXX_ 0xde +#define XX_XXXXX 0xdf +#define XXX_____ 0xe0 +#define XXX____X 0xe1 +#define XXX___X_ 0xe2 +#define XXX___XX 0xe3 +#define XXX__X__ 0xe4 +#define XXX__X_X 0xe5 +#define XXX__XX_ 0xe6 +#define XXX__XXX 0xe7 +#define XXX_X___ 0xe8 +#define XXX_X__X 0xe9 +#define XXX_X_X_ 0xea +#define XXX_X_XX 0xeb +#define XXX_XX__ 0xec +#define XXX_XX_X 0xed +#define XXX_XXX_ 0xee +#define XXX_XXXX 0xef +#define XXXX____ 0xf0 +#define XXXX___X 0xf1 +#define XXXX__X_ 0xf2 +#define XXXX__XX 0xf3 +#define XXXX_X__ 0xf4 +#define XXXX_X_X 0xf5 +#define XXXX_XX_ 0xf6 +#define XXXX_XXX 0xf7 +#define XXXXX___ 0xf8 +#define XXXXX__X 0xf9 +#define XXXXX_X_ 0xfa +#define XXXXX_XX 0xfb +#define XXXXXX__ 0xfc +#define XXXXXX_X 0xfd +#define XXXXXXX_ 0xfe +#define XXXXXXXX 0xff + +// here are fonts themself +#include "font14.h" +#include "fontNumb16.h" +#include "fontNumb10.h" +#include "fontNumb8.h" + +static const afont FONTS[] = { + [FONT14] = {font14_table, font14_encoding, FONT14HEIGHT, FONT14BYTES, FONT14BASELINE}, + [FONTN16] = {fontNumb16_table, fontNumb16_encoding, FONTNUMB16HEIGHT, FONTNUMB16BYTES, FONTNUMB16BASELINE}, + [FONTN10] = {fontNumb10_table, fontNumb10_encoding, FONTNUMB10HEIGHT, FONTNUMB10BYTES, FONTNUMB10BASELINE}, + [FONTN8] = {fontNumb8_table, fontNumb8_encoding, FONTNUMB8HEIGHT, FONTNUMB8BYTES, FONTNUMB8BASELINE}, +}; + +const afont *curfont = &FONTS[FONT14]; + +/** + * @brief choose_font - font selector + * @param newfont - font to choose + * @return 0 if all OK + */ +int choose_font(font_t newfont){ + if(newfont >= FONT_T_MAX || newfont <= FONT_T_MIN) return 1; + curfont = &FONTS[newfont]; + return 0; +} + +const uint8_t *font_char(uint8_t Char){ + uint8_t idx = curfont->enctable[Char]; + if(!idx) return NULL; // no this character in font + return &(curfont->font[idx*(curfont->bytes+1)]); +} diff --git a/F1-nolib/chronometer_v3/fonts.h b/F1-nolib/chronometer_v3/fonts.h new file mode 100644 index 0000000..3d78dd9 --- /dev/null +++ b/F1-nolib/chronometer_v3/fonts.h @@ -0,0 +1,48 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#ifndef FONTS_H__ +#define FONTS_H__ + +#include + +// type for font choosing +typedef enum{ + FONT_T_MIN = -1, // no fonts <= this + FONT14, // 16x16, font height near 14px + FONTN16, // numbers 16x8, font height 16px + FONTN10, // numbers 10x8, font height 10px + FONTN8, // numbers and 'A'/'O', height 8px + FONT_T_MAX // no fonts >= this +} font_t; + +int choose_font(font_t newfont); +const uint8_t *font_char(uint8_t Char); + +typedef struct{ + const uint8_t *font; // font inself + const uint8_t *enctable; // font encoding table + uint8_t height; // full font matrix height + uint8_t bytes; // amount of bytes in font matrix + uint8_t baseline; // baseline position (coordinate from bottom line) +} afont; + +extern const afont *curfont; + +#endif // FONTS_H__ diff --git a/F1-nolib/chronometer_v3/hardware.c b/F1-nolib/chronometer_v3/hardware.c new file mode 100644 index 0000000..975c63a --- /dev/null +++ b/F1-nolib/chronometer_v3/hardware.c @@ -0,0 +1,281 @@ +/* + * geany_encoding=koi8-r + * hardware.c - hardware-dependent macros & functions + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#include "adc.h" +#include "hardware.h" +#include "flash.h" +#include "lidar.h" +#include "str.h" +#include "time.h" +#include "usart.h" + +#include // memcpy + +uint8_t buzzer_on = 1; // buzzer ON by default +uint8_t LEDSon = 1; // LEDS are working +// ports of triggers: PB0, PB1, PB3 +static GPIO_TypeDef *trigport[DIGTRIG_AMOUNT] = {GPIOB, GPIOB, GPIOB}; +// pins of triggers: 0, 1, 3 +static uint16_t trigpin[DIGTRIG_AMOUNT] = {1<<0, 1<<1, 1<<3}; +// value of pin in `triggered` state +static uint8_t trigstate[DIGTRIG_AMOUNT]; +// time of triggers shot +trigtime shottime[TRIGGERS_AMOUNT]; +// Tms value when they shot +uint32_t shotms[TRIGGERS_AMOUNT]; +// trigger length (-1 if > MAX_TRIG_LEN) +int16_t triglen[TRIGGERS_AMOUNT]; +// if trigger[N] shots, the bit N will be 1 +uint8_t trigger_shot = 0; + +static inline void gpio_setup(){ + BUZZER_OFF(); // turn off buzzer @start + LED_on(); // turn ON LED0 @start + LED1_off(); // turn off LED1 @start + USBPU_OFF(); // turn off USB pullup @start + // Enable clocks to the GPIO subsystems (PB for ADC), turn on AFIO clocking enable EXTI & so on + RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_AFIOEN; + // turn off JTAG (PA15, PB3) + AFIO->MAPR = AFIO_MAPR_SWJ_CFG_JTAGDISABLE; + // AFIO->MAPR = AFIO_MAPR_SWJ_CFG_DISABLE; +// PORTA + // pullups: PA1 - PPS, PA15 - USB pullup + GPIOA->ODR = (1<<1)|(1<<15); + // PPS pin (PA1) - input with weak pullup, PA6 - SCLK of LED screen + GPIOA->CRL = CRL(1, CNF_PUDINPUT|MODE_INPUT) | CRL(6, CNF_PPOUTPUT|MODE_SLOW); + EXTI->IMR = EXTI_IMR_MR1; // mask PA1 + // interrupt on pulse front: buttons - 1->0, PPS - 0->1 + EXTI->RTSR = EXTI_RTSR_TR1; // rising trigger for PPS + NVIC_EnableIRQ(EXTI1_IRQn); // enable PPS interrupt + // Set USB pullup (PA15) - opendrain output + GPIOA->CRH = CRH(15, CNF_ODOUTPUT|MODE_SLOW); +// PORTB + // Set leds (PB8/9) as opendrain output + GPIOB->CRH = CRH(8, CNF_ODOUTPUT|MODE_SLOW) | CRH(9, CNF_ODOUTPUT|MODE_SLOW); + // TRIGGERS: PB0,1,3; SCREEN pins: A,B - PB6,PB7; + GPIOB->CRL = CRL(0, CNF_PUDINPUT|MODE_INPUT) | CRL(1, CNF_PUDINPUT|MODE_INPUT) | CRL(3, CNF_PUDINPUT|MODE_INPUT) | + CRL(6, CNF_PPOUTPUT|MODE_SLOW) | CRL(7, CNF_PPOUTPUT|MODE_SLOW); +// PORTC + // buzzer (PC13): pushpull output + GPIOC->CRH = CRH(13, CNF_PPOUTPUT|MODE_SLOW); + // exti: PB0, 3; PA1 + AFIO->EXTICR[0] = AFIO_EXTICR1_EXTI0_PB | AFIO_EXTICR1_EXTI1_PA | AFIO_EXTICR1_EXTI3_PB; + // PB0/1/3 - triggers + for(int i = 0; i < DIGTRIG_AMOUNT; ++i){ + uint16_t pin = trigpin[i]; + if(pin == 1<<1) continue; // omit PB1 + // fill trigstate array + uint8_t trgs = (the_conf.trigstate & (1<ODR |= pin; // turn on pullups + if(i != 1){ // turn interrupts on + EXTI->IMR |= pin; + if(trgs){ // triggered @1 -> rising interrupt + EXTI->RTSR |= pin; + }else{ // falling interrupt + EXTI->FTSR |= pin; + } + } + } + // ---------------------> config-depengent block, interrupts & pullup inputs: + // !!! change AFIO_EXTICRx if some triggers not @GPIOA + NVIC_EnableIRQ(EXTI0_IRQn); // PB0 + NVIC_EnableIRQ(EXTI3_IRQn); // PB3 + // <--------------------- +} + +static inline void adc_setup(){ + GPIOB->CRL |= CRL(0, CNF_ANALOG|MODE_INPUT); + uint32_t ctr = 0; + // Enable clocking + RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; + RCC->CFGR &= ~(RCC_CFGR_ADCPRE); + RCC->CFGR |= RCC_CFGR_ADCPRE_DIV8; // ADC clock = RCC / 8 + // sampling time - 239.5 cycles for channels 16 and 17 + ADC1->SMPR1 = ADC_SMPR1_SMP16 | ADC_SMPR1_SMP17; + // we have three conversions in group -> ADC1->SQR1[L] = 2, order: 16->17 + // Tsens == 16, Vdd == 17 + ADC1->SQR3 = (16<<0) | (17<<5); + ADC1->SQR1 = ADC_SQR1_L_0; // 2 conversions + ADC1->CR1 |= ADC_CR1_SCAN; // scan mode + // DMA configuration + RCC->AHBENR |= RCC_AHBENR_DMA1EN; + DMA1_Channel1->CPAR = (uint32_t) (&(ADC1->DR)); + DMA1_Channel1->CMAR = (uint32_t)(ADC_array); + DMA1_Channel1->CNDTR = NUMBER_OF_ADC_CHANNELS * 9; + DMA1_Channel1->CCR |= DMA_CCR_MINC | DMA_CCR_MSIZE_0 | DMA_CCR_PSIZE_0 + | DMA_CCR_CIRC | DMA_CCR_PL | DMA_CCR_EN; + // continuous mode & DMA; enable vref & Tsens; wake up ADC + ADC1->CR2 |= ADC_CR2_DMA | ADC_CR2_TSVREFE | ADC_CR2_CONT | ADC_CR2_ADON; + // wait for Tstab - at least 1us + while(++ctr < 0xff) nop(); + // calibration + ADC1->CR2 |= ADC_CR2_RSTCAL; + ctr = 0; while((ADC1->CR2 & ADC_CR2_RSTCAL) && ++ctr < 0xfffff); + ADC1->CR2 |= ADC_CR2_CAL; + ctr = 0; while((ADC1->CR2 & ADC_CR2_CAL) && ++ctr < 0xfffff); + // turn ON ADC + ADC1->CR2 |= ADC_CR2_ADON; +} + +void hw_setup(){ + gpio_setup(); + adc_setup(); +} + +static trigtime trgtm; +void savetrigtime(){ + trgtm.millis = Timer; + memcpy(&trgtm.Time, ¤t_time, sizeof(curtime)); +} + +/** + * @brief fillshotms - save trigger shot time + * @param i - trigger number + */ +void fillshotms(int i){ + if(i < 0 || i >= TRIGGERS_AMOUNT) return; + if(Tms - shotms[i] > (uint32_t)the_conf.trigpause[i] || i == LIDAR_TRIGGER){ + memcpy(&shottime[i], &trgtm, sizeof(trigtime)); + shotms[i] = Tms; + trigger_shot |= 1<KR = IWDG_REFRESH; + // check whether trigger is OFF but shot recently + if(trigger_shot & X){ + uint32_t len = Tms - shotms[i]; + uint8_t rdy = 0; + if(len > MAX_TRIG_LEN){ + triglen[i] = -1; + rdy = 1; + }else triglen[i] = (int16_t) len; + if(i == LIDAR_TRIGGER){ + if(!parse_lidar_data(NULL)) rdy = 1; + }else{ + uint8_t pinval = (trigport[i]->IDR & trigpin[i]) ? 1 : 0; + if(pinval != trigstate[i]) rdy = 1; // trigger is OFF + } + if(rdy){ + if(i != LIDAR_TRIGGER) shotms[i] = Tms; + show_trigger_shot(X); + trigger_shot &= ~X; + // now trigger data is in lastLog -> store it in flash + if(the_conf.defflags & FLAG_SAVE_EVENTS){ + if(store_log(&lastLog)) sendstring("\n\nError saving event!\n\n"); + } + } + } + } +} + +void exti0_isr(){ // PB0 - trig0 + EXTI->PR = EXTI_PR_PR0; + if(!chkshtr) return; + savetrigtime(); + fillshotms(0); +} + +void exti1_isr(){ // PPS - PA1 + systick_correction(); + LED_off(); // turn off LED0 @ each PPS + EXTI->PR = EXTI_PR_PR1; +} + +void chkTrig1(){ + // ================> HARD HARDWARE DEPENDENT: PB1 trigger + if(!chkshtr) return; + static uint8_t oldstate = 0; + uint8_t curstate = GPIOB->IDR & 2; + if(Tms < 100){ // don't mind for first 100ms + oldstate = curstate; + return; + } + if(curstate == oldstate){ // state didn't changed + return; + } + oldstate = curstate; + if(curstate != (the_conf.trigstate & 2)) return; // relax from trigger + savetrigtime(); + fillshotms(1); + // <================ +} + +void exti3_isr(){ // PB3 - trig2 + EXTI->PR = EXTI_PR_PR3; + if(!chkshtr) return; + savetrigtime(); + fillshotms(2); +} + +/** + * @brief gettrig - get trigger state + * @return 1 if trigger active or 0 + */ +uint8_t gettrig(uint8_t N){ + if(N >= TRIGGERS_AMOUNT) return 0; + uint8_t curval = (trigport[N]->IDR & trigpin[N]) ? 1 : 0; + if(curval == trigstate[N]) return 1; + else return 0; +} + +static uint32_t Ton = 0; // Time of first buzzer check +void chk_buzzer(){ + if(!BUZZER_GET()) return; // buzzer if OFF + if(!trigger_shot){ // should we turn off buzzer? + uint8_t notrg = 1; + for(int i = 0; i < DIGTRIG_AMOUNT; ++i){ + uint8_t curval = (trigport[i]->IDR & trigpin[i]) ? 1 : 0; + if(curval == trigstate[i]){ + notrg = 0; // cheep while digital trigger is ON + break; + } + } + if(notrg){ // turn off buzzer when there's no trigger events & timeout came + if(Tms - Ton < BUZZER_CHEEP_TIME) return; + Ton = 0; + BUZZER_OFF(); + } + }else{ // buzzer is ON - check timer + if(Ton == 0){ + Ton = Tms; + if(!Ton) Ton = 1; + } + } +} + +// make a short squeak +void buzzer_squeak(){ + Ton = Tms; + if(!Ton) Ton = 1; + BUZZER_ON(); +} diff --git a/F1-nolib/chronometer_v3/hardware.h b/F1-nolib/chronometer_v3/hardware.h new file mode 100644 index 0000000..a0f35b0 --- /dev/null +++ b/F1-nolib/chronometer_v3/hardware.h @@ -0,0 +1,131 @@ +/* + * geany_encoding=koi8-r + * hardware.h + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ +#pragma once +#ifndef __HARDWARE_H__ +#define __HARDWARE_H__ + +#include "stm32f1.h" +#include "time.h" + +#ifdef EBUG +#define DO_PRAGMA(x) _Pragma (#x) +#define TODO(x) DO_PRAGMA(message #x) +#else +#define TODO(x) +#endif + +// only 2 ADC channels used: Tmcu and Vdd +#define NUMBER_OF_ADC_CHANNELS (2) +#define ADC_TMCU_CHANNEL (0) +#define ADC_VDD_CHANNEL (1) + +// onboard LEDs - PB8/PB9 +#define LED0_port GPIOB +#define LED0_pin (1<<9) +#define LED1_port GPIOB +#define LED1_pin (1<<8) + +// buzzer (1 - active) - PC13 +extern uint8_t buzzer_on; +#define BUZZER_port GPIOC +#define BUZZER_pin (1<<13) +#define BUZZER_ON() do{if(buzzer_on)pin_set(BUZZER_port, BUZZER_pin);}while(0) +#define BUZZER_OFF() pin_clear(BUZZER_port, BUZZER_pin) +#define BUZZER_GET() (pin_read(BUZZER_port, BUZZER_pin)) +// minimal cheeping time of buzzer (ms) +#define BUZZER_CHEEP_TIME 500 + +// PPS pin - PA1 +#define PPS_port GPIOA +#define PPS_pin (1<<1) + +// PPS and triggers state +// amount of triggers, should be less than 9; 4 - 0..2 - switches, 3 - LIDAR +#define TRIGGERS_AMOUNT 4 +// number of LIDAR trigger +#define LIDAR_TRIGGER 3 +// amount of digital triggers (on interrupts) +#define DIGTRIG_AMOUNT 3 +// max length of trigger event (ms) +#define MAX_TRIG_LEN 1000 + +uint8_t gettrig(uint8_t N); +void fillshotms(int i); +void fillunshotms(); +void savetrigtime(); +#define GET_PPS() ((GPIOA->IDR & (1<<1)) ? 1 : 0) + +// USB pullup - PA15 +#define USBPU_port GPIOA +#define USBPU_pin (1<<15) +#define USBPU_ON() pin_clear(USBPU_port, USBPU_pin) +#define USBPU_OFF() pin_set(USBPU_port, USBPU_pin) + +#define LED_blink() do{if(LEDSon)pin_toggle(LED0_port, LED0_pin);}while(0) +#define LED_on() do{if(LEDSon)pin_clear(LED0_port, LED0_pin);}while(0) +#define LED_off() do{pin_set(LED0_port, LED0_pin);}while(0) +#define LED1_blink() do{if(LEDSon)pin_toggle(LED1_port, LED1_pin);}while(0) +#define LED1_on() do{if(LEDSon)pin_clear(LED1_port, LED1_pin);}while(0) +#define LED1_off() do{pin_set(LED1_port, LED1_pin);}while(0) + +// GPS USART == USART2, LIDAR USART == USART3 +#define GPS_USART (2) +#define LIDAR_USART (3) + +// SPI DMA channel +#define DMA_SPI_Channel DMA1_Channel3 +// SCREEN PINs: A,B - PB6,PB7; SCLK - PA6 +#define A_port GPIOB +#define A_pin (1<<6) +#define B_port GPIOB +#define B_pin (1<<7) +// SCLK/nOE connected together +#define SCLK_port GPIOA +#define SCLK_pin (1<<6) +#define SET(x) pin_set(x ## _port, x ## _pin) +#define CLEAR(x) pin_clear(x ## _port, x ## _pin) +#define TOGGLE(x) pin_toggle(x ## _port, x ## _pin) + +typedef struct{ + uint32_t millis; + curtime Time; +} trigtime; + +// turn on/off LEDs: +extern uint8_t LEDSon; +// time of triggers shot +extern trigtime shottime[TRIGGERS_AMOUNT]; +// length (in ms) of trigger event (-1 if > MAX_TRIG_LEN +extern int16_t triglen[TRIGGERS_AMOUNT]; +// if trigger[N] shots, the bit N will be 1 +extern uint8_t trigger_shot; +// Tms value when they shot +extern uint32_t shotms[TRIGGERS_AMOUNT]; + +void chk_buzzer(); +void buzzer_squeak(); +void hw_setup(); + +void chkTrig1(); + +#endif // __HARDWARE_H__ diff --git a/F1-nolib/chronometer_v3/lidar.c b/F1-nolib/chronometer_v3/lidar.c new file mode 100644 index 0000000..5f4598b --- /dev/null +++ b/F1-nolib/chronometer_v3/lidar.c @@ -0,0 +1,81 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "flash.h" +#include "lidar.h" +#include "usart.h" + +uint16_t last_lidar_dist = 0; +uint16_t last_lidar_stren = 0; +uint16_t lidar_triggered_dist = 0; + +extern uint32_t shotms[]; + +/** + * @brief parse_lidar_data - parsing of string from lidar + * @param txt - the string or NULL (if you want just check trigger state) + * @return trigger state + */ +uint8_t parse_lidar_data(char *txt){ + static uint8_t triggered = 0; + if(!txt){ + // clear trigger state after timeout -> need to monitor lidar + uint32_t len = Tms - shotms[LIDAR_TRIGGER]; + //if(len > MAX_TRIG_LEN || len > (uint32_t)the_conf.trigpause[LIDAR_TRIGGER]){ + if(len > MAX_TRIG_LEN){ + triggered = 0; + DBG("MAX time gone, untrigger!"); + } + return triggered; + } + last_lidar_dist = txt[2] | (txt[3] << 8); + last_lidar_stren = txt[4] | (txt[5] << 8); + if(last_lidar_stren < LIDAR_LOWER_STREN) return 0; // weak signal + if(!lidar_triggered_dist){ // first run + lidar_triggered_dist = last_lidar_dist; + return 0; + } + IWDG->KR = IWDG_REFRESH; + if(triggered){ // check if body gone + if(last_lidar_dist < the_conf.dist_min || last_lidar_dist > the_conf.dist_max || last_lidar_dist > lidar_triggered_dist + LIDAR_DIST_THRES){ + triggered = 0; +#ifdef EBUG + SEND("Untriggered! distance="); + printu(1, last_lidar_dist); + SEND(" signal="); + printu(1, last_lidar_stren); + newline(1); +#endif + } + }else{ + if(last_lidar_dist > the_conf.dist_min && last_lidar_dist < the_conf.dist_max){ + savetrigtime(); + triggered = 1; + lidar_triggered_dist = last_lidar_dist; + fillshotms(LIDAR_TRIGGER); +#ifdef EBUG + SEND("Triggered! distance="); + printu(1, last_lidar_dist); + SEND(" signal="); + printu(1, last_lidar_stren); + newline(1); +#endif + } + } + return triggered; +} diff --git a/F1-nolib/chronometer_v3/lidar.h b/F1-nolib/chronometer_v3/lidar.h new file mode 100644 index 0000000..903feee --- /dev/null +++ b/F1-nolib/chronometer_v3/lidar.h @@ -0,0 +1,39 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#ifndef LIDAR_H__ +#define LIDAR_H__ +#include + +#define LIDAR_FRAME_LEN (9) +// frame header +#define LIDAR_FRAME_HEADER (0x59) +// lower strength limit +#define LIDAR_LOWER_STREN (10) +// triggered distance threshold - 1 meter +#define LIDAR_DIST_THRES (100) +#define LIDAR_MIN_DIST (50) +#define LIDAR_MAX_DIST (1000) + +extern uint16_t last_lidar_dist; +extern uint16_t lidar_triggered_dist; +extern uint16_t last_lidar_stren; + +uint8_t parse_lidar_data(char *txt); + +#endif // LIDAR_H__ diff --git a/F1-nolib/chronometer_v3/main.c b/F1-nolib/chronometer_v3/main.c new file mode 100644 index 0000000..b443ebc --- /dev/null +++ b/F1-nolib/chronometer_v3/main.c @@ -0,0 +1,337 @@ +/* + * main.c + * + * Copyright 2017 Edward V. Emelianoff + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include "adc.h" +#include "GPS.h" +#include "flash.h" +#include "fonts.h" +#include "hardware.h" +#include "lidar.h" +#include "screen.h" +#include "spi.h" +#include "str.h" +#include "time.h" +#include "usart.h" +#include "usb.h" +#include "usb_lib.h" + +#ifndef VERSION +#define VERSION "0.0.0" +#endif + +// global pseudo-milliseconds counter +volatile uint32_t Tms = 0; + +/* Called when systick fires */ +void sys_tick_handler(void){ + ++Tms; // increment pseudo-milliseconds counter + if(++Timer == 1000){ // increment milliseconds counter + time_increment(); + } +} + +void iwdg_setup(){ + uint32_t tmout = 16000000; + /* Enable the peripheral clock RTC */ + /* (1) Enable the LSI (40kHz) */ + /* (2) Wait while it is not ready */ + RCC->CSR |= RCC_CSR_LSION; /* (1) */ + while((RCC->CSR & RCC_CSR_LSIRDY) != RCC_CSR_LSIRDY){if(--tmout == 0) break;} /* (2) */ + /* Configure IWDG */ + /* (1) Activate IWDG (not needed if done in option bytes) */ + /* (2) Enable write access to IWDG registers */ + /* (3) Set prescaler by 64 (1.6ms for each tick) */ + /* (4) Set reload value to have a rollover each 2s */ + /* (5) Check if flags are reset */ + /* (6) Refresh counter */ + IWDG->KR = IWDG_START; /* (1) */ + IWDG->KR = IWDG_WRITE_ACCESS; /* (2) */ + IWDG->PR = IWDG_PR_PR_1; /* (3) */ + IWDG->RLR = 1250; /* (4) */ + tmout = 16000000; + while(IWDG->SR){if(--tmout == 0) break;} /* (5) */ + IWDG->KR = IWDG_REFRESH; /* (6) */ +} + +#define USBBUF 63 +// usb getline +static char *get_USB(){ + static char tmpbuf[USBBUF+1], *curptr = tmpbuf; + static int rest = USBBUF; + int x = USB_receive(curptr, rest); + if(!x) return NULL; + curptr[x] = 0; + if(x == 1 && *curptr == 0x7f){ // backspace + if(curptr > tmpbuf){ + --curptr; + USB_send("\b \b"); + } + return NULL; + } + USB_send(curptr); // echo + if(curptr[x-1] == '\n'){ // || curptr[x-1] == '\r'){ + curptr = tmpbuf; + rest = USBBUF; + // omit empty lines + if(tmpbuf[0] == '\n') return NULL; + // and wrong empty lines + if(tmpbuf[0] == '\r' && tmpbuf[1] == '\n') return NULL; + return tmpbuf; + } + curptr += x; rest -= x; + if(rest <= 0){ // buffer overflow + sendstring("\nUSB buffer overflow!\n"); + curptr = tmpbuf; + rest = USBBUF; + } + return NULL; +} + +void linecoding_handler(usb_LineCoding __attribute__((unused)) *lc){ // get/set line coding +#ifdef EBUG + SEND("Change speed to "); + printu(1, lc->dwDTERate); + newline(1); +#endif +} + + +static volatile uint8_t USBconn = 0; +uint8_t USB_connected = 0; // need for usb.c +void clstate_handler(uint16_t __attribute__((unused)) val){ // lesser bits of val: RTS|DTR + USBconn = 1; // if == 1 -> send welcome message + USB_connected = 1; +#if 0 + if(val & 2){ + DBG("RTS set"); + sendstring("RTS set\n"); + } + if(val & 1){ + DBG("DTR set"); + sendstring("DTR set\n"); + } +#endif +} + +void break_handler(){ // client disconnected + DBG("Disconnected"); + USB_connected = 0; +} + +int main(void){ + uint32_t lastT = 0, lastTshow = 0; // last time of status check, last time of time displayed + uint8_t evtDisp = 0; // last event was displayed + sysreset(); + StartHSE(); + SysTick_Config(SYSTICK_DEFCONF); // function SysTick_Config decrements argument! + // read data stored in flash - before all pins/ports setup!!! + flashstorage_init(); + // !!! hw_setup() should be the first in setup stage + hw_setup(); + USB_setup(); + USBPU_ON(); +#ifdef EBUG + SEND("This is chronometer version " VERSION ".\n"); + if(RCC->CSR & RCC_CSR_IWDGRSTF){ // watchdog reset occured + SEND("WDGRESET=1\n"); + } + if(RCC->CSR & RCC_CSR_SFTRSTF){ // software reset occured + SEND("SOFTRESET=1\n"); + } +#endif + RCC->CSR |= RCC_CSR_RMVF; // remove reset flags +#ifdef EBUG + usarts_setup(); // setup usarts for debug console +#endif + usarts_setup(); // setup usarts after reading configuration + spi_setup(); + ScreenOFF(); // clear screen + PutStringAt(0, SCREEN_HEIGHT-1-curfont->baseline, "Chrono"); + ConvertScreenBuf(); + ShowScreen(); + iwdg_setup(); + + while (1){ + IWDG->KR = IWDG_REFRESH; // refresh watchdog + if(Timer > 499) LED_on(); // turn ON LED0 over 0.25s after PPS pulse + if(USBconn && Tms > 100){ // USB connection + USBconn = 0; + sendstring("Chronometer version " VERSION ".\n"); + } + // check if triggers that was recently shot are off now + fillunshotms(); + if(Tms - lastT > 499){ + if(need2startseq) GPS_send_start_seq(); + IWDG->KR = IWDG_REFRESH; + switch(GPS_status){ + case GPS_VALID: + LED1_blink(); // blink LED1 @ VALID time + break; + case GPS_NOT_VALID: + LED1_on(); // shine LED1 @ NON-VALID time + break; + default: + LED1_off(); // turn off LED1 if GPS not found or time unknown + } + lastT = Tms; + IWDG->KR = IWDG_REFRESH; + transmit_tbuf(1); // non-blocking transmission of data from UART buffer every 0.5s + transmit_tbuf(GPS_USART); + transmit_tbuf(LIDAR_USART); +#if 0 +#ifdef EBUG + static int32_t oldctr = 0; + if(timecntr && timecntr != oldctr){ + oldctr = timecntr; + SEND("ticksdiff="); + if(ticksdiff < 0){ + SEND("-"); + printu(1, -ticksdiff); + }else printu(1, ticksdiff); + SEND(", timecntr="); + printu(1, timecntr); + SEND("\nlast_corr_time="); + printu(1, last_corr_time); + SEND(", Tms="); + printu(1, Tms1); + SEND("\nTimer="); + printu(1, timerval); + SEND(", LOAD="); + printu(1, SysTick->LOAD); + usart_putchar(1, '\n'); + newline(1); + } +#endif +#endif + } + IWDG->KR = IWDG_REFRESH; + if(showtime){ // show current time (HH:MM:SS.S) every 100ms + if(Tms - lastTtrig < the_conf.ledshow_time && showshtr){ // show last event on screen + if(!evtDisp){ + evtDisp = 1; + FillScreen(0); + choose_font(FONTN10); + char *tm = get_scrntime(&lastLog.shottime.Time, lastLog.shottime.millis); + tm[11] = 0; // throw out thousands + uint16_t w = GetStrWidth(tm); + PutStringAt((SCREEN_WIDTH-w-1)/2, SCREEN_HEIGHT-4-curfont->baseline, tm); + ConvertScreenBuf(); + ShowScreen(); + } + }else if(Tms - lastTshow > 99 && Timer < 5){ // change time value + lastTshow = Tms; + evtDisp = 0; + FillScreen(0); + choose_font(FONTN16); + if(startflags && timetostartO == 0){ // countdown + char s[3] = {0,0,0}, *buf=s; + uint8_t N = 59 - current_time.S; // show "0" @ 59 seconds! + if(N == 0){ // countdown ends + sendstring("START!!!\n"); + if(startflags & ST_FLAG_AUTO){ // rewind for autostart + timetostartO = timetostartA; + }else{ // clear autostart + timetostartA = 0; + startflags = 0; + } + choose_font(FONT14); + const char *strt = "óôáòô!"; + uint16_t w = GetStrWidth(strt); + PutStringAt((SCREEN_WIDTH-w-1)/2, SCREEN_HEIGHT-1-curfont->baseline, strt); + }else{ + if(N >= 10){ + *buf++ = N/10 + '0'; + N %= 10; + } + *buf++ = (char)(N + '0'); + uint16_t w = GetStrWidth(s); + PutStringAt((SCREEN_WIDTH-w-1)/2, SCREEN_HEIGHT-1-curfont->baseline, s); + } + }else{ + char *tm = get_scrntime(¤t_time, get_millis()); + tm[8] = 0; // throw out fractional parts + PutStringAt(5, SCREEN_HEIGHT-1-curfont->baseline, tm); + if(startflags){ + if(current_time.S == 28){ // decrease timetostartO, prepare to countdown + --timetostartO; + } + char ltr = 'O'; + if(startflags & ST_FLAG_AUTO) ltr = 'A'; + choose_font(FONTN8); + DrawCharAt(SCREEN_WIDTH-8, SCREEN_HEIGHT-9, ltr); + DrawCharAt(SCREEN_WIDTH-8, SCREEN_HEIGHT-1, timetostartO + '0'); + } + } + ConvertScreenBuf(); + ShowScreen(); + } + } + process_screen(); + IWDG->KR = IWDG_REFRESH; + usb_proc(); + int r = 0; + char *txt = NULL; + if((txt = get_USB())){ + IWDG->KR = IWDG_REFRESH; + parse_CMD(txt); + } + if(usartrx(1)){ // usart1 received data, store it in buffer + r = usart_getline(1, &txt); + IWDG->KR = IWDG_REFRESH; + if(r){ + txt[r] = 0; + if(the_conf.defflags & FLAG_GPSPROXY){ + usart_send(GPS_USART, txt); + }else{ // UART1 is additive serial/bluetooth console + usart_send(1, txt); + if(*txt != '\n'){ + parse_CMD(txt); + } + } + } + } + if(usartrx(GPS_USART)){ + IWDG->KR = IWDG_REFRESH; + r = usart_getline(GPS_USART, &txt); + if(r){ + txt[r] = 0; + if(the_conf.defflags & FLAG_GPSPROXY) usart_send(1, txt); + GPS_parse_answer(txt); + } + } + if(usartrx(LIDAR_USART)){ + IWDG->KR = IWDG_REFRESH; + r = usart_getline(LIDAR_USART, &txt); + if(r){ + if(the_conf.defflags & FLAG_NOLIDAR){ + usart_send(LIDAR_USART, txt); + if(*txt != '\n'){ + parse_CMD(txt); + } + }else + parse_lidar_data(txt); + } + } + chk_buzzer(); // should we turn off buzzer? + chkTrig1(); // check trigger without interrupt + } + return 0; +} diff --git a/F1-nolib/chronometer_v3/screen.c b/F1-nolib/chronometer_v3/screen.c new file mode 100644 index 0000000..bc8040d --- /dev/null +++ b/F1-nolib/chronometer_v3/screen.c @@ -0,0 +1,238 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include // memset, memcpy +#include +#include "fonts.h" +#include "hardware.h" +#include "screen.h" +#include "spi.h" +#include "usart.h" + +#undef DBG +#define DBG(x) + +// !!!FOR LITTLE-ENDIAN!!! + +// X coordinate - from left to right! +// Y coordinate - from top to bottom! +// (0,0) is top left corner + +// all-screen buffer +static uint8_t screenbuf[SCREENBUF_SZ]; +// buffers for DMA - for each of four parts +static uint8_t dmabuf[4][DMABUF_SZ]; + +/** + * @brief FillScreen - fill screen buffer with 0 or 1 + * @param setclear - !=1 to set & ==0 to reset + */ +void FillScreen(uint8_t setclear){ + uint8_t pattern = 0; + if(setclear) pattern = 0xff; + if(SCREEN_IS_NEGATIVE) pattern = ~pattern; + for(int i = 0; i < SCREENBUF_SZ; ++i) screenbuf[i] = pattern; + // memset -> halt + //memset(screenbuf, pattern, SCREENBUF_SZ); +} + +/** + * @brief DrawPix - set or clear pixel + * @param X, Y - pixel coordinates (could be outside of screen) + * @param pix - == 1 to set and 0 to clear + */ +void DrawPix(int16_t X, int16_t Y, uint8_t pix){ + if(X < 0 || X > SCREEN_WIDTH-1 || Y < 0 || Y > SCREEN_HEIGHT-1) return; // outside of screen + // now calculate coordinate of pixel + uint8_t *ptr = &screenbuf[Y*SCREEN_WIDTH/8 + X/8]; + if(SCREEN_IS_NEGATIVE)pix = !pix; + if(pix) *ptr |= 1 << (7 - (X%8)); // only for little-endian + else *ptr &= ~(1 << (7 - (X%8))); // only for little-endian +} + +/** + * @brief DrawCharAt - draws character @ position X,Y (this point is left baseline corner of char!) + * @param X, Y - started point + * @param Char - char to draw + * @return char width + */ +uint8_t DrawCharAt(int16_t X, int16_t Y, uint8_t Char){ + const uint8_t *curchar = font_char(Char); + if(!curchar) return 0; + // now change Y coordinate to left upper corner of font + Y += 1 - curfont->height + curfont->baseline; + // height and width of letter in pixels + uint8_t h = curfont->height, w = *curchar++; // now curchar is pointer to bits array + uint8_t lw = curfont->bytes / h; // width of letter in bytes + for(uint8_t row = 0; row < h; ++row){ + for(uint8_t col = 0; col < w; ++col){ + DrawPix(X + col, Y + row, curchar[row*lw + (col/8)] & (1 << (7 - (col%8)))); // only for little-endian + } + } + return w; +} + +/** + * @brief GetStrWidth - get width of string (in pixels) + * @param str - text string + * @return amount of pixels + */ +uint16_t GetStrWidth(const char *str){ + uint16_t w = 0; + while(*str){ + const uint8_t *curchar = font_char(*str); + if(curchar){ + w += *curchar; + } + ++str; + } + return w; +} + +/** + * @brief ConvertScreenBuf - convert scscreenbuf into dmabuf + * + */ +void ConvertScreenBuf(){ + for(uint8_t partNo = 0; partNo < 4; ++ partNo){ // cycle by strings + uint8_t *dmaptr = dmabuf[partNo]; + for(int X = 0; X < SCREEN_WIDTH/8; ++X){ + for(int Y = SCREEN_HEIGHT-4+partNo; Y >= 0; Y -= 4){ // and cycle by Y + *dmaptr++ = screenbuf[X + Y*(SCREEN_WIDTH/8)]; + } + } + } +} + +/** + * @brief PutStringAt - draw text string @ screen + * @param X, Y - base coordinates + * @param str - string to draw + * @return - text width in pixels + */ +uint8_t PutStringAt(int16_t X, int16_t Y, const char *str){ + if(!str) return 0; + int16_t Xold = X; + while(*str){ + X += DrawCharAt(X, Y, *str++); + } + return X - Xold; +} + +uint8_t *getScreenBuf(){return screenbuf;} +uint8_t *getDmaBuf(uint8_t N){ + if(N > 3) return NULL; + return dmabuf[N]; +} + +extern volatile uint32_t Tms; +typedef enum{ // screen states + SCREEN_RELAX, // nothing to do (screen is off) + SCREEN_SPIACTIVE, // SPI transmission active + SCREEN_WAIT, // pause - current quarter is ON + SCREEN_UPDATENXT // update next quarter +} screen_state; + +static screen_state ScrnState = SCREEN_RELAX; + +/** + * @brief process_screen - screen state machine processing + */ +void process_screen(){ + static uint32_t Tscr_last = 0; + static uint8_t currentQ = 0; // current quarter + switch(ScrnState){ + case SCREEN_SPIACTIVE: // SPI transmission active + if(SPI_status == SPI_READY){ + DBG("SPI ready\n"); + Tscr_last = Tms; + ScrnState = SCREEN_WAIT; + SET(SCLK); // lock data + } + break; + case SCREEN_WAIT: // wait + if(Tms - Tscr_last > SCREEN_PAUSE){ + DBG("Pause ends\n"); + ScrnState = SCREEN_UPDATENXT; + } + break; + case SCREEN_UPDATENXT: + if(SPI_status == SPI_NOTREADY){ + DBG("SPI not ready - setup"); + spi_setup(); + return; + } + if(SPI_status != SPI_READY){ + DBG("SPI busy"); + return; // SPI not ready - try next time + } + if(SPI_transmit(dmabuf[currentQ], DMABUF_SZ)){ + DBG("SPI error"); + return; // transmission error - try next time + } + DBG("Send next"); + ScrnState = SCREEN_SPIACTIVE; + // now prepare selectors + CLEAR(SCLK); + switch(currentQ){ // set address bits + case 0: + CLEAR(A); + CLEAR(B); + break; + case 1: + SET(A); + CLEAR(B); + break; + case 2: + CLEAR(A); + SET(B); + break; + case 3: + SET(A); + SET(B); + break; + } + if(++currentQ > 3) currentQ = 0; // roll next + break; + default: + return; + } +} + +/** + * @brief ShowScreen - turn on data transmission + */ +void ShowScreen(){ + if(ScrnState == SCREEN_RELAX) ScrnState = SCREEN_UPDATENXT; +} + +/** + * @brief ScreenOFF - turn off screen & clear screen buffer + */ +void ScreenOFF(){ + DBG("Screen off"); + CLEAR(SCLK); + CLEAR(A); + CLEAR(B); + FillScreen(0); + ScrnState = SCREEN_RELAX; +} + +void setdmabuf0(uint8_t pattern, uint8_t N){ + for(int i = 0; i < N; ++i) dmabuf[0][i] = pattern; +} diff --git a/F1-nolib/chronometer_v3/screen.h b/F1-nolib/chronometer_v3/screen.h new file mode 100644 index 0000000..38e47fc --- /dev/null +++ b/F1-nolib/chronometer_v3/screen.h @@ -0,0 +1,54 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#ifndef SCREEN_H__ +#define SCREEN_H__ + +#include + +// display size in px +// PANEL_WIDTH is width of one panel +#define PANEL_WIDTH 32 +// SCREEN_WIDTH is total screen width +#define SCREEN_WIDTH 64 +#define SCREEN_HEIGHT 16 +#define SCREENBUF_SZ (SCREEN_WIDTH*SCREEN_HEIGHT/8) +#define DMABUF_SZ (SCREENBUF_SZ/4) + +// pause to show a quater of screen - 10ms (25Hz framerate) +#define SCREEN_PAUSE 2 + +// screen is positive (1->on, 0->off) +#define SCREEN_IS_NEGATIVE 1 + +void FillScreen(uint8_t setclear); +void DrawPix(int16_t X, int16_t Y, uint8_t pix); +uint8_t DrawCharAt(int16_t X, int16_t Y, uint8_t Char); +void ConvertScreenBuf(); +uint8_t PutStringAt(int16_t X, int16_t Y, const char *str); +uint8_t *getScreenBuf(); +uint8_t *getDmaBuf(uint8_t N); +void process_screen(); +void ShowScreen(); +void ScreenOFF(); +uint16_t GetStrWidth(const char *str); + +void setdmabuf0(uint8_t pattern, uint8_t N); + +#endif // SCREEN_H__ diff --git a/F1-nolib/chronometer_v3/spi.c b/F1-nolib/chronometer_v3/spi.c new file mode 100644 index 0000000..3b38a33 --- /dev/null +++ b/F1-nolib/chronometer_v3/spi.c @@ -0,0 +1,77 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "spi.h" +#include "hardware.h" + +spiStatus SPI_status = SPI_NOTREADY; + +void spi_setup(){ + // setup SPI GPIO - alternate function PP (PA5 - SCK, PA7 - MOSI) + GPIOA->CRL |= CRL(5, CNF_AFPP|MODE_FAST) | CRL(7, CNF_AFPP|MODE_FAST); + // configure SPI (transmit only) + /* Enable the peripheral clock SPI1 */ + RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; + /* Configure SPI1 in master */ + /* (1) Master selection, BR: Fpclk/16 + CPOL and CPHA at zero (rising first edge) */ + /* (2) TX with DMA, slave select output disabled (software managed) */ + /* (3) Enable SPI1 */ + SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_BR_0 | SPI_CR1_BR_1 | SPI_CR1_SSM | SPI_CR1_SSI; /* (1) */ + SPI1->CR2 = SPI_CR2_TXDMAEN; /* (2) */ + // setup SPI1 DMA + /* Enable the peripheral clock DMA11 */ + RCC->AHBENR |= RCC_AHBENR_DMA1EN; + /* DMA1 Channel3 SPI1_TX config */ + /* (5) Peripheral address */ + /* (7) Memory increment */ + /* Memory to peripheral */ + /* 8-bit transfer */ + /* Transfer complete IRQ enable */ + DMA_SPI_Channel->CPAR = (uint32_t)&(SPI1->DR); /* (5) */ + DMA_SPI_Channel->CCR |= DMA_CCR_MINC | DMA_CCR_DIR | DMA_CCR_TCIE; /* (7) */ + NVIC_SetPriority(DMA1_Channel3_IRQn, 0); + NVIC_EnableIRQ(DMA1_Channel3_IRQn); + SPI_status = SPI_READY; + SPI1->CR1 |= SPI_CR1_SPE; /* (3) */ +} + +/** + * @brief SPI_transmit - transmit data over SPI DMA + * @param buf - data to transmit + * @param len - its length + * @return 0 if all OK + */ +uint8_t SPI_transmit(const uint8_t *buf, uint8_t len){ + if(!buf || !len) return 1; // bad data format + if(SPI_status != SPI_READY) return 2; // spi not ready to transmit data + DMA_SPI_Channel->CMAR = (uint32_t)buf; + DMA_SPI_Channel->CNDTR = len; + SPI_status = SPI_BUSY; + DMA_SPI_Channel->CCR |= DMA_CCR_EN; + return 0; +} + +// SPI1 DMA Tx interrupt +void dma1_channel3_isr(){ + if(DMA1->ISR & DMA_ISR_TCIF3){ + DMA1->IFCR |= DMA_IFCR_CTCIF3; /* Clear TC flag */ + SPI_status = SPI_READY; + DMA_SPI_Channel->CCR &=~ DMA_CCR_EN; // turn off DMA for further reconfiguration + } +} diff --git a/F1-nolib/chronometer_v3/spi.h b/F1-nolib/chronometer_v3/spi.h new file mode 100644 index 0000000..17a2a14 --- /dev/null +++ b/F1-nolib/chronometer_v3/spi.h @@ -0,0 +1,36 @@ +/* + * This file is part of the LED_screen project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#ifndef SPI_H__ +#define SPI_H__ + +#include "stm32f1.h" + +typedef enum{ + SPI_NOTREADY, + SPI_READY, + SPI_BUSY +} spiStatus; + +extern spiStatus SPI_status; + +void spi_setup(); +uint8_t SPI_transmit(const uint8_t *buf, uint8_t len); + +#endif // SPI_H__ diff --git a/F1-nolib/chronometer_v3/stm32F103xB.ld b/F1-nolib/chronometer_v3/stm32F103xB.ld new file mode 100644 index 0000000..d5d0449 --- /dev/null +++ b/F1-nolib/chronometer_v3/stm32F103xB.ld @@ -0,0 +1,109 @@ +/* +******************************************************************************** +* * +* Copyright (c) 2017 Andrea Loi * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included * +* in all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * +* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +******************************************************************************** +*/ + +MEMORY +{ + rom (rx) : ORIGIN = 0x08000000, LENGTH = 128K + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K +} + +/******************************************************************************/ +/* DON'T EDIT THIS FILE UNLESS YOU KNOW WHAT YOU'RE DOING! */ +/******************************************************************************/ + +/* _isrvectors_tend = 0x00000150; - different for different series */ + +ENTRY(reset_handler) + +SECTIONS { + .vector_table 0x08000000 : + { + _sisrvectors = .; + KEEP(*(.vector_table)) + /* ASSERT(. == _isrvectors_tend, "The vector table needs to be 84 elements long!"); */ + _eisrvectors = .; + } >rom + + .text : + { + . = ALIGN(4); + _stext = .; + *(.text*) + *(.rodata*) + . = ALIGN(4); + _etext = .; + } >rom + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } >rom + + .ARM : { + *(.ARM.exidx*) + } >rom + + .data : + { + . = ALIGN(4); + _sdata = .; + *(.data*) + . = ALIGN(4); + _edata = .; + } >ram AT >rom + + .myvars : + { + . = ALIGN(1024); + __varsstart = ABSOLUTE(.); + KEEP(*(.myvars)); + . = . + 2000; + . = ALIGN(1024); + __varsend = ABSOLUTE(.); + } > rom + + .logs : + { + . = ALIGN(1024); + __logsstart = ABSOLUTE(.); + KEEP(*(.logs)) + } > rom + + _ldata = LOADADDR(.data); + + .bss : + { + . = ALIGN(4); + _sbss = .; + *(.bss*) + *(COMMON) + . = ALIGN(4); + _ebss = .; + } >ram +} + +PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram)); +PROVIDE(_varslen = __varsend - __varsstart); diff --git a/F1-nolib/chronometer_v3/str.c b/F1-nolib/chronometer_v3/str.c new file mode 100644 index 0000000..3abe831 --- /dev/null +++ b/F1-nolib/chronometer_v3/str.c @@ -0,0 +1,734 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Commands parser + +#include "adc.h" +#include "GPS.h" +#include "fonts.h" +#include "hardware.h" +#include "lidar.h" +#include "screen.h" +#include "str.h" +#include "time.h" +#include "usart.h" +#include "usb.h" + +// flag to show new GPS message over USB +uint8_t showGPSstr = 0; +// check/not check shutter +uint8_t chkshtr = 1; +// show/not show shutter events +uint8_t showshtr = 1; +// show time or message; starting types; time to next start (once/auto) +uint8_t showtime = 0, startflags = 0, timetostartO = 0, timetostartA = 0; + +extern uint32_t shotms[]; + +/** + * @brief cmpstr - the same as strncmp + * @param s1,s2 - strings to compare + * @param n - max symbols amount + 1 (!!!!) + * @return 0 if strings equal or 1/-1 + */ +int cmpstr(const char *s1, const char *s2, int n){ + int ret = 0; + while(--n){ + ret = *s1 - *s2; + if(ret == 0 && *s1 && *s2){ + ++s1; ++s2; + continue; + } + break; + } + return ret; +} + +/** + * @brief getchr - analog of strchr + * @param str - string to search + * @param symbol - searching symbol + * @return pointer to symbol found or NULL + */ +char *getchr(const char *str, char symbol){ + do{ + if(*str == symbol) return (char*)str; + }while(*(++str)); + return NULL; +} + +#define sendu(x) do{sendstring(u2str(x));}while(0) + +/* +static void sendi(int32_t I){ + if(I < 0){ + sendchar('-'); + I = -I; + } + sendstring(u2str((uint32_t)I)); +}*/ + +// echo '1' if true or '0' if false +static void checkflag(uint8_t f){ + if(f) sendchar('1'); + else sendchar('0'); +} + +/** + * @brief showuserconf - show configuration over USB + */ +static void showuserconf(){ + sendstring("DISTMIN="); sendu(the_conf.dist_min); + sendstring("\nDISTMAX="); sendu(the_conf.dist_max); + sendstring("\nTRIGLVL="); sendu(the_conf.trigstate); + sendstring("\nTRIGPAUSE={"); + for(int i = 0; i < TRIGGERS_AMOUNT; ++i){ + if(i) sendstring(", "); + sendu(the_conf.trigpause[i]); + } + sendstring("}\nUSART1SPD="); sendu(the_conf.USART_speed); + sendstring("\nLIDARSPD="); sendu(the_conf.LIDAR_speed); + sendstring("\nNFREE="); + sendu(the_conf.NLfreeWarn); + sendstring("\nSTREND="); + if(the_conf.defflags & FLAG_STRENDRN) sendstring("RN"); + else sendchar('N'); + uint8_t f = the_conf.defflags; + sendstring("\nSAVE_EVENTS="); + checkflag(f & FLAG_SAVE_EVENTS); + sendstring("\nGPSPROXY="); + checkflag(f & FLAG_GPSPROXY); + sendstring("\nLIDAR="); + checkflag(!(f & FLAG_NOLIDAR)); + sendstring("\nEVTLEN="); sendu(the_conf.ledshow_time); + sendstring("\n"); // <-- sendstring @ the end to initialize data transmission +} + +extern uint8_t USB_connected; // need to reset USB +/** + * @brief parse_USBCMD - parsing of string buffer got by USB + * @param cmd - buffer with commands + * @return 0 if got command, 1 if command not recognized + */ +void parse_CMD(char *cmd){ + char *oldcmd = cmd; +#define CMP(a,b) cmpstr(a, b, sizeof(b)) +#define GETNUM(x) do{if(getnum(cmd+sizeof(x)-1, &N)) goto bad_number;}while(0) + static uint8_t conf_modified = 0; + uint8_t succeed = 0; + int32_t N; + if(!cmd || !*cmd) return; + IWDG->KR = IWDG_REFRESH; + if(*cmd == '?' || CMP(cmd, "help") == 0){ // help + sendstring("Commands:\n" + CMD_BTNSTATE " - show triggers state\n" + CMD_BUZZER "S - turn buzzer ON/OFF\n" + CMD_CLEARSCRN " - turn LED display off\n" + CMD_CURDIST " - show current LIDAR distance\n" + CMD_DELLOGS " - delete logs from flash memory\n" + CMD_DISTMIN " - min distance threshold (cm)\n" + CMD_DISTMAX " - max distance threshold (cm)\n" + CMD_DUMP "N - dump 20 last stored events (no x), all (x<1) or x\n" + CMD_EVTLEN "N - duration of the trigger event display (ms)\n" + CMD_FLASH " - FLASH info\n" + CMD_GATE "S - check/not check triggers (1/0)\n" + CMD_GPSPROXY "S - GPS proxy over USART1 on/off\n" + CMD_GPSRESTART " - send Full Cold Restart to GPS\n" + CMD_GPSSTAT " - get GPS status\n" + CMD_GPSSTR " - current GPS data string\n" + CMD_LEDS "S - turn leds on/off (1/0)\n" + CMD_LIDAR "S - switch between LIDAR (1) or command TTY (0)\n" + CMD_LIDARSPEED "N - set LIDAR speed to N\n" + CMD_GETMCUTEMP " - MCU temperature\n" + CMD_MESG " str - show 'str' at display (no more than 7 chars)\n" + CMD_DUMPN "N - dump Nth log & show on screen (-N - Nth from last)\n" + CMD_NFREE " - warn when free logs space less than this number (0 - not warn)\n" + CMD_RESET " - reset MCU\n" + CMD_SAVEEVTS "S - save/don't save (1/0) trigger events into flash\n" + CMD_SHOWCONF " - show current configuration\n" + CMD_SHOWSHTR "S - show/not show trigger events\n" + CMD_SHOWTIME " - show current time\n" + CMD_SQUEAK " - make a short buzzer chirp\n" + CMD_STARTAUTO "X - auto start every X minutes (0 or absent - cancel, +/- - increase/decrease by 1min)\n" + CMD_STARTONCE "X - delayed start after X minutes (like auto)\n" + CMD_STORECONF " - store new configuration in flash\n" + CMD_STORTEST " - add test trigger event record into flash\n" + CMD_STREND "C - string ends with \\n (C=n) or \\r\\n (C=r)\n" + CMD_PRINTTIME " - print current time\n" + CMD_TRIGLVL "NS - working trigger N level S\n" + CMD_TRGPAUSE "NP - pause (P, ms) after trigger N shots\n" + CMD_TRGTIME "N - show last trigger N time\n" + CMD_USARTSPD "N - set USART1 speed to N\n" + CMD_USBRST " - reset USB connectioin\n" + CMD_GETVDD " - Vdd value\n" + ); + }else if(CMP(cmd, CMD_PRINTTIME) == 0){ // print current time + sendstring(get_time(¤t_time, get_millis())); + sendstring("\n"); + }else if(CMP(cmd, CMD_DISTMIN) == 0){ // set low LIDAR limit + GETNUM(CMD_DISTMIN); + if(N < 0 || N > 0xffff) goto bad_number; + if(the_conf.dist_min != (uint16_t)N){ + conf_modified = 1; + the_conf.dist_min = (uint16_t) N; + } + succeed = 1; + }else if(CMP(cmd, CMD_DISTMAX) == 0){ // set high LIDAR limit + GETNUM(CMD_DISTMAX); + if(N < 0 || N > 0xffff) goto bad_number; + if(the_conf.dist_max != (uint16_t)N){ + conf_modified = 1; + the_conf.dist_max = (uint16_t) N; + } + succeed = 1; + }else if(CMP(cmd, CMD_STORECONF) == 0){ // store everything in flash + if(conf_modified){ + if(store_userconf()){ + sendstring("Error: can't save data!\n"); + }else{ + conf_modified = 0; + succeed = 1; + } + } + }else if(CMP(cmd, CMD_GPSSTR) == 0){ // show GPS status string + showGPSstr = 1; + }else if(CMP(cmd, CMD_TRIGLVL) == 0){ // trigger levels: 0->1 or 1->0 + cmd += sizeof(CMD_TRIGLVL) - 1; + uint8_t Nt = (uint8_t)(*cmd++ - '0'); + if(Nt > TRIGGERS_AMOUNT - 1) goto bad_number; + uint8_t state = (uint8_t)(*cmd -'0'); + if(state > 1) goto bad_number; + uint8_t oldval = the_conf.trigstate; + if(!state) the_conf.trigstate = oldval & ~(1< TRIGGERS_AMOUNT - 1) goto bad_number; + if(getnum(cmd, &N)) goto bad_number; + if(N < 0 || N > 10000) goto bad_number; + if(the_conf.trigpause[Nt] != (uint16_t)N){ + conf_modified = 1; + the_conf.trigpause[Nt] = (uint16_t)N; + } + succeed = 1; + }else if(CMP(cmd, CMD_TRGTIME) == 0){ // last trigger time + cmd += sizeof(CMD_TRGTIME) - 1; + uint8_t Nt = (uint8_t)(*cmd++ - '0'); + if(Nt > TRIGGERS_AMOUNT - 1) goto bad_number; + show_trigger_shot((uint8_t)(1< 1) goto bad_number; + sendstring("LEDS="); + if(Nt){ + LEDSon = 1; + sendstring("ON\n"); + }else{ + LED_off(); // turn off LEDS + LED1_off(); // by user request + LEDSon = 0; + sendstring("OFF\n"); + } + }else if(CMP(cmd, CMD_GPSRESTART) == 0){ // restart GPS + sendstring("Send full cold restart to GPS\n"); + GPS_send_FullColdStart(); + }else if(CMP(cmd, CMD_BUZZER) == 0){ + uint8_t Nt = (uint8_t)(cmd[sizeof(CMD_BUZZER) - 1] - '0'); + if(Nt > 1) goto bad_number; + sendstring("BUZZER="); + if(Nt){ + buzzer_on = 1; + sendstring("ON\n"); + }else{ + buzzer_on = 0; + sendstring("OFF\n"); + } + }else if(CMP(cmd, CMD_GPSSTAT) == 0){ // GPS status + sendstring("GPS status: "); + const char *str = "unknown"; + switch(GPS_status){ + case GPS_NOTFOUND: + str = "not found"; + break; + case GPS_WAIT: + str = "waiting"; + break; + case GPS_NOT_VALID: + str = "no satellites"; + break; + case GPS_VALID: + str = "valid time"; + break; + } + sendstring(str); + if(Tms - last_corr_time < 1500) + sendstring(", PPS working\n"); + else + sendstring(", no PPS\n"); + }else if(CMP(cmd, CMD_USARTSPD) == 0){ // USART speed + GETNUM(CMD_USARTSPD); + if(N < 400 || N > 3000000) goto bad_number; + if(the_conf.USART_speed != (uint32_t)N){ + the_conf.USART_speed = (uint32_t)N; + conf_modified = 1; + } + succeed = 1; + }else if(CMP(cmd, CMD_LIDARSPEED) == 0){ // LIDAR speed + GETNUM(CMD_LIDARSPEED); + if(N < 400 || N > 3000000) goto bad_number; + if(the_conf.LIDAR_speed != (uint32_t)N){ + the_conf.LIDAR_speed = (uint32_t)N; + conf_modified = 1; + } + succeed = 1; + }else if(CMP(cmd, CMD_RESET) == 0){ // Reset MCU + sendstring("Soft reset\n"); + NVIC_SystemReset(); + }else if(CMP(cmd, CMD_STREND) == 0){ // string ends in '\n' or "\r\n" + char c = cmd[sizeof(CMD_STREND) - 1]; + succeed = 1; + if(c == 'n' || c == 'N'){ + if(the_conf.defflags & FLAG_STRENDRN){ + conf_modified = 1; + the_conf.defflags &= ~FLAG_STRENDRN; + } + }else if(c == 'r' || c == 'R'){ + if(!(the_conf.defflags & FLAG_STRENDRN)){ + conf_modified = 1; + the_conf.defflags |= FLAG_STRENDRN; + } + }else{ + succeed = 0; + sendstring("Bad letter, should be 'n' or 'r'\n"); + } + }else if(CMP(cmd, CMD_FLASH) == 0){ // show flash size + sendstring("FLASHSIZE="); + sendu(FLASH_SIZE); + sendstring("kB\nFLASH_BASE="); + sendstring(u2hex(FLASH_BASE)); + sendstring("\nFlash_Data="); + sendstring(u2hex((uint32_t)Flash_Data)); + sendstring("\nvarslen="); + sendu((uint32_t)&_varslen); + sendstring("\nCONFsize="); + sendu(sizeof(user_conf)); + sendstring("\nNconf_records="); + sendu(maxCnum - 1); + sendstring("\nlogsstart="); + sendstring(u2hex((uint32_t)logsstart)); + sendstring("\nLOGsize="); + sendu(sizeof(event_log)); + sendstring("\nNlogs_records="); + sendu(maxLnum - 1); + sendstring("\n"); + }else if(CMP(cmd, CMD_SAVEEVTS) == 0){ // save all events + if('0' == cmd[sizeof(CMD_SAVEEVTS) - 1]){ + if(the_conf.defflags & FLAG_SAVE_EVENTS){ + conf_modified = 1; + the_conf.defflags &= ~FLAG_SAVE_EVENTS; + } + }else{ + if(!(the_conf.defflags & FLAG_SAVE_EVENTS)){ + conf_modified = 1; + the_conf.defflags |= FLAG_SAVE_EVENTS; + } + } + succeed = 1; + }else if(CMP(cmd, CMD_DUMP) == 0){ // dump N last events + if(getnum(cmd+sizeof(CMD_DUMP)-1, &N)) N = -20; // default - without N + else N = -N; + if(N > 0) N = 0; + if(dump_log(N, -1)) sendstring("Event log empty!\n"); + }else if(CMP(cmd, CMD_NFREE) == 0){ // warn if there's less than N free cells for logs in flash + GETNUM(CMD_NFREE); + if(N < 0 || N > 0xffff) goto bad_number; + if(the_conf.NLfreeWarn != (uint16_t)N){ + conf_modified = 1; + the_conf.NLfreeWarn = (uint16_t)N; + } + succeed = 1; + }else if(CMP(cmd, CMD_DELLOGS) == 0){ // delete all logs + if(store_log(NULL)) sendstring("Error during erasing flash\n"); + else sendstring("All logs erased\n"); + }else if(CMP(cmd, CMD_GPSPROXY) == 0){ // proxy GPS data over USART1 + if(cmd[sizeof(CMD_GPSPROXY) - 1] == '0'){ + if(the_conf.defflags & FLAG_GPSPROXY){ + conf_modified = 1; + the_conf.defflags &= ~FLAG_GPSPROXY; + } + }else{ + if(!(the_conf.defflags & FLAG_GPSPROXY)){ + conf_modified = 1; + the_conf.defflags |= FLAG_GPSPROXY; + } + } + succeed = 1; + }else if(CMP(cmd, CMD_CURDIST) == 0){ // current LIDAR distance + sendstring("DIST="); + sendu(last_lidar_dist); + sendstring("\nSTREN="); + sendu(last_lidar_stren); + sendstring("\nTRIGDIST="); + sendu(lidar_triggered_dist); + sendstring("\nTms="); + sendu(Tms); + sendstring("\nshotms="); + sendu(shotms[LIDAR_TRIGGER]); + sendstring("\n"); + }else if(CMP(cmd, CMD_LIDAR) == 0){ // turn LIDAR on/off + if(cmd[sizeof(CMD_LIDAR) - 1] == '0'){ + if(!(the_conf.defflags & FLAG_NOLIDAR)){ + conf_modified = 1; + the_conf.defflags |= FLAG_NOLIDAR; + } + }else{ + if(the_conf.defflags & FLAG_NOLIDAR){ + conf_modified = 1; + the_conf.defflags &= ~FLAG_NOLIDAR; + } + } + succeed = 1; + }else if(CMP(cmd, CMD_CLEARSCRN) == 0){ // turn display off + sendstring("Clear screen\n"); + showtime = 0; + ScreenOFF(); + }else if(CMP(cmd, CMD_MESG) == 0){ // show short message instead of time + char *m = &cmd[sizeof(CMD_MESG) - 1]; + while(*m == ' ' || *m == '\t') ++m; + showtime = 0; + ScreenOFF(); + choose_font(FONT14); + uint16_t w = GetStrWidth(m); + PutStringAt((SCREEN_WIDTH-w-1)/2, SCREEN_HEIGHT-1-curfont->baseline, m); + ConvertScreenBuf(); + ShowScreen(); + }else if(CMP(cmd, CMD_SHOWTIME) == 0){ // show current time @ LED display + ScreenOFF(); + showtime = 1; + }else if(CMP(cmd, CMD_STORTEST) == 0){ // test storing event log + event_log l; + l.trigno = 1; + l.shottime.Time = current_time; + l.shottime.millis = Timer; + l.triglen = 10; + DBG("Try to store test"); + if(store_log(&l)) sendstring("Error storing\n"); + else succeed = 1; + }else if(CMP(cmd, CMD_BTNSTATE) == 0){ // show gates/buttons state + char btns[] = "BTN0=0, BTN1=0, BTN2=0, PPS=0\n"; + btns[5] = gettrig(0) + '0'; + btns[13] = gettrig(1) + '0'; + btns[21] = gettrig(2) + '0'; + btns[28] = GET_PPS() + '0'; + sendstring(btns); + }else if(CMP(cmd, CMD_USBRST) == 0){ // reset USB pullup + USBPU_OFF(); + USB_connected = 0; + sendstring("Reset USB\n"); + USBPU_ON(); + }else if(CMP(cmd, CMD_STARTAUTO) == 0){ // set/clear 'start auto' mode + char c = cmd[sizeof(CMD_STARTAUTO) - 1]; + if(c == '+'){ + if(timetostartA && timetostartA < MAX_TIMETOSTART) ++timetostartA; // increase + }else if(c == '-'){ // decrease or cancel + if(timetostartA > 1) --timetostartA; + else{ // cancel + timetostartO = timetostartA = 0; + startflags = 0; + } + }else if(c >= '1' && c <= MAX_TIMETOSTART + '0'){ // set time to start + timetostartO = timetostartA = c - '0'; + startflags = ST_FLAG_AUTO | ST_FLAG_ONCE; + }else{ // cancel + timetostartO = timetostartA = 0; + startflags = 0; + } + sendstring("Autostart "); + if(startflags){ + sendstring("every "); + sendchar('0' + timetostartA); + sendstring(" minutes\n"); + }else{ + sendstring("canceled\n"); + } + }else if(CMP(cmd, CMD_STARTONCE) == 0){ // set/clear 'start once' mode & modify time to next start (including nearest autostart) + char c = cmd[sizeof(CMD_STARTAUTO) - 1]; + if(c == '+'){ + if(timetostartO && timetostartO < MAX_TIMETOSTART) ++timetostartO; + }else if(c == '-'){ + if(timetostartO > 1) --timetostartO; + else{ + timetostartO = timetostartA = 0; + startflags = 0; + } + }else if(c >= '1' && c <= MAX_TIMETOSTART + '0'){ // set time to start + timetostartO = c - '0'; + startflags |= ST_FLAG_ONCE; + }else{ // cancel + timetostartO = timetostartA = 0; + startflags = 0; + } + sendstring("Single start "); + if(startflags){ + sendstring("after "); + sendchar('0' + timetostartO); + sendstring(" minutes\n"); + }else{ + sendstring("canceled\n"); + } + }else if(CMP(cmd, CMD_GATE) == 0){ // gate0 - don't check shutters; otherwise - check + if(cmd[sizeof(CMD_GATE-1)] == '0'){ + sendstring("Don't "); + chkshtr = 0; + }else chkshtr = 1; + sendstring("check gate\n"); + }else if(CMP(cmd, CMD_SHOWSHTR) == 0){ // showshutter0 - not show shutter events + if(cmd[sizeof(CMD_SHOWSHTR)-1] == '0'){ + sendstring("Don't "); + showshtr = 0; + }else showshtr = 1; + sendstring("show shutter events on LED\n"); + }else if(CMP(cmd, CMD_EVTLEN) == 0){ // USART speed + GETNUM(CMD_EVTLEN); + if(N < 1000 || N > 60000) goto bad_number; + if(the_conf.ledshow_time != (uint16_t)N){ + the_conf.ledshow_time = (uint16_t)N; + conf_modified = 1; + } + succeed = 1; + }else if(CMP(cmd, CMD_DUMPN) == 0){ // dump Nth event + if(getnum(cmd+sizeof(CMD_DUMPN)-1, &N)) N = -1; // default - last + if(dump_log(N, 1)) sendstring("Wrong index!\n"); + }else if(CMP(cmd, CMD_SQUEAK) == 0){ // make a short squeak + buzzer_squeak(); + }else{ + sendstring("Bad command: "); + sendstring(oldcmd); + sendstring("\n"); + return; + } + /*else if(CMP(cmd, CMD_) == 0){ + ; + }*/ + + IWDG->KR = IWDG_REFRESH; + if(succeed) sendstring("Success!\n"); + return; + bad_number: + sendstring("Error: bad number!\n"); +} + +/** + * @brief get_trigger_shot - print on USB message about last trigger shot time + * @param number - number of event (if > -1) + * @param logdata - record from event log + * @return string with data + */ +char *get_trigger_shot(int number, const event_log *logdata){ + static char buf[64]; + char *bptr = buf; + if(number > -1){ + bptr = strcp(bptr, u2str(number)); + bptr = strcp(bptr, ": "); + } + if(logdata->trigno == LIDAR_TRIGGER){ + bptr = strcp(bptr, "LIDAR, dist="); + bptr = strcp(bptr, u2str(logdata->lidar_dist)); + bptr = strcp(bptr, ", TRIG" STR(LIDAR_TRIGGER)); + }else{ + bptr = strcp(bptr, "TRIG"); + *bptr++ = '0' + logdata->trigno; + } + *bptr++ = '='; + IWDG->KR = IWDG_REFRESH; + bptr = strcp(bptr, get_time(&logdata->shottime.Time, logdata->shottime.millis)); + bptr = strcp(bptr, ", len="); + if(logdata->triglen < 0) bptr = strcp(bptr, ">1s"); + else bptr = strcp(bptr, u2str((uint32_t) logdata->triglen)); + *bptr++ = '\n'; *bptr++ = 0; + return buf; +} + +// time (Tms) of last trigger event +uint32_t lastTtrig; +// data of last trigger event +event_log lastLog; +/** + * @brief show_trigger_shot printout @ USB data with all triggers shot recently (+ save it in flash) + * @param tshot - each bit consists information about trigger + */ +void show_trigger_shot(uint8_t tshot){ + uint8_t X = 1; + for(uint8_t i = 0; i < TRIGGERS_AMOUNT && tshot; ++i, X <<= 1){ + IWDG->KR = IWDG_REFRESH; + if(tshot & X) tshot &= ~X; + else continue; + lastTtrig = Tms; + lastLog.trigno = i; + if(i == LIDAR_TRIGGER) lastLog.lidar_dist = lidar_triggered_dist; + lastLog.shottime = shottime[i]; + lastLog.triglen = triglen[i]; + sendstring(get_trigger_shot(-1, &lastLog)); + } +} + +/** + * @brief strln == strlen + * @param s - string + * @return length + */ +int strln(const char *s){ + int i = 0; + while(*s++) ++i; + return i; +} + +/** + * @brief strcp - strcpy (be carefull: it doesn't checks destination length!) + * @param dst - destination + * @param src - source + * @return pointer to '\0' @ dst`s end + */ +char *strcp(char* dst, const char *src){ + int l = strln(src); + if(l < 1) return dst; + while((*dst++ = *src++)); + return dst - 1; +} + + +// read `buf` and get first integer `N` in it +// @return 0 if all OK or 1 if there's not a number; omit spaces and '=' +int getnum(const char *buf, int32_t *N){ + char c; + int positive = -1; + int32_t val = 0; + while((c = *buf++)){ + if(c == '\t' || c == ' ' || c == '='){ + if(positive < 0) continue; // beginning spaces + else break; // spaces after number + } + if(c == '-'){ + if(positive < 0){ + positive = 0; + continue; + }else break; // there already was `-` or number + } + if(c < '0' || c > '9') break; + if(positive < 0) positive = 1; + val = val * 10 + (int32_t)(c - '0'); + } + if(positive != -1){ + if(positive == 0){ + if(val == 0) return 1; // single '-' + val = -val; + } + *N = val; + }else return 1; + return 0; +} + +static char strbuf[11]; +// return string buffer (strbuf) with val +char *u2str(uint32_t val){ + char *bufptr = &strbuf[10]; + *bufptr = 0; + if(!val){ + *(--bufptr) = '0'; + }else{ + while(val){ + *(--bufptr) = val % 10 + '0'; + val /= 10; + } + } + return bufptr; +} + +// return strbuf filled with hex +char *u2hex(uint32_t val){ + char *bufptr = strbuf; + *bufptr++ = '0'; + *bufptr++ = 'x'; + uint8_t *ptr = (uint8_t*)&val + 3; + int i, j; + IWDG->KR = IWDG_REFRESH; + for(i = 0; i < 4; ++i, --ptr){ + for(j = 1; j > -1; --j){ + register uint8_t half = (*ptr >> (4*j)) & 0x0f; + if(half < 10) *bufptr++ = half + '0'; + else *bufptr++ = half - 10 + 'a'; + } + } + *bufptr = 0; + return strbuf; +} + +static char localbuffer[LOCBUFSZ]; +static uint8_t bufidx = 0; +static void transmitlocbuf(){ + localbuffer[bufidx] = 0; + USB_send(localbuffer); + if(!(the_conf.defflags & FLAG_GPSPROXY)){ // USART1 isn't a GPS proxy + usart_send(1, localbuffer); + transmit_tbuf(1); + } + if(the_conf.defflags & FLAG_NOLIDAR){ // USART3 isn't a LIDAR + usart_send(LIDAR_USART, localbuffer); + transmit_tbuf(LIDAR_USART); + } + bufidx = 0; +} +// add char to buf +void sendchar(char ch){ + localbuffer[bufidx++] = ch; + if(bufidx >= LOCBUFSZ-1) transmitlocbuf(); +} +/** + * @brief addtobuf - add to local buffer any zero-terminated substring + * @param str - string to add + * it sends data to USB and (due to setup) USART1 when buffer will be full or when meet '\n' at the end of str + */ +void sendstring(const char *str){ + while(*str) sendchar(*str++); + if(str[-1] == '\n') transmitlocbuf(); +} diff --git a/F1-nolib/chronometer_v3/str.h b/F1-nolib/chronometer_v3/str.h new file mode 100644 index 0000000..5a2d63c --- /dev/null +++ b/F1-nolib/chronometer_v3/str.h @@ -0,0 +1,93 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#ifndef STR_H__ +#define STR_H__ + +#include "stm32f1.h" +#include "flash.h" +#include "hardware.h" + +// local buffer size (chars) +#define LOCBUFSZ 128 + +// TTY commands +#define CMD_BTNSTATE "btnstate" +#define CMD_BUZZER "buzzer" +#define CMD_CLEARSCRN "cls" +#define CMD_CURDIST "curdist" +#define CMD_DELLOGS "deletelogs" +#define CMD_DISTMAX "distmax" +#define CMD_DISTMIN "distmin" +#define CMD_DUMP "dump" +#define CMD_DUMPN "ndump" +#define CMD_EVTLEN "evtlen" +#define CMD_FLASH "flash" +#define CMD_GETMCUTEMP "mcutemp" +#define CMD_GETVDD "vdd" +#define CMD_GATE "gate" +#define CMD_GPSPROXY "gpsproxy" +#define CMD_GPSRESTART "gpsrestart" +#define CMD_GPSSTAT "gpsstat" +#define CMD_GPSSTR "gpsstring" +#define CMD_LEDS "leds" +#define CMD_LIDAR "lidar" +#define CMD_LIDARSPEED "lidspd" +#define CMD_MESG "mesg" +#define CMD_NFREE "nfree" +#define CMD_PRINTTIME "time" +#define CMD_RESET "reset" +#define CMD_SAVEEVTS "se" +#define CMD_SHOWCONF "showconf" +#define CMD_SHOWSHTR "showshutter" +#define CMD_SHOWTIME "showtime" +#define CMD_STARTAUTO "stauto" +#define CMD_STARTONCE "stonce" +#define CMD_STORECONF "store" +#define CMD_STORTEST "stortest" +#define CMD_STREND "strend" +#define CMD_SQUEAK "squeak" +#define CMD_TRGPAUSE "trigpause" +#define CMD_TRGTIME "trigtime" +#define CMD_TRIGLVL "triglevel" +#define CMD_USARTSPD "usartspd" +#define CMD_USBRST "usbreset" + +// starting flags: once, every N seconds +#define ST_FLAG_ONCE (1<<0) +#define ST_FLAG_AUTO (1<<1) +// max delayed time = 5 min (2..9) +#define MAX_TIMETOSTART 5 +extern uint8_t showGPSstr, showtime, startflags, timetostartO, timetostartA, chkshtr, showshtr; +extern uint32_t lastTtrig; +extern event_log lastLog; + +int getnum(const char *buf, int32_t *N); +char *u2str(uint32_t val); +char *u2hex(uint32_t val); + +int strln(const char *s); +char *strcp(char* dst, const char *src); +int cmpstr(const char *s1, const char *s2, int n); +char *getchr(const char *str, char symbol); +void parse_CMD(char *cmd); +char *get_trigger_shot(int number, const event_log *logdata); +void show_trigger_shot(uint8_t trigger_shot); +void sendstring(const char *str); +void sendchar(char ch); +#endif // STR_H__ diff --git a/F1-nolib/chronometer_v3/time.c b/F1-nolib/chronometer_v3/time.c new file mode 100644 index 0000000..2c44b04 --- /dev/null +++ b/F1-nolib/chronometer_v3/time.c @@ -0,0 +1,212 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "GPS.h" +#include "time.h" +#ifdef EBUG +#include "usart.h" +#endif +#include "usb.h" +#include + +volatile uint32_t Timer; // milliseconds counter +curtime current_time = TMNOTINI; + +// convert two-digit decimal string into number +static inline uint8_t atou(const char *b){ + return (uint8_t)((b[0]-'0')*10 + b[1]-'0'); +} + +/** + * @brief set_time - set current time from GPS data + * @param buf - buffer with time data (HHMMSS) + */ +void set_time(const char *buf){ + uint8_t H = atou(buf);// + TIMEZONE_GMT_PLUS; + if(H > 23) H -= 24; + current_time.H = H; + current_time.M = atou(&buf[2]); + current_time.S = atou(&buf[4]); +/* +#ifdef EBUG + SEND("set_time, Tms: "); printu(1, Tms); + SEND("; Timer: "); printu(1, Timer); + newline(1); +#endif +*/ +} + +/** + * @brief time_increment - increment system timer by systick + */ +void time_increment(){ + Timer = 0; + if(current_time.H == 25) return; // Time not initialized + if(++current_time.S == 60){ + current_time.S = 0; + if(++current_time.M == 60){ + current_time.M = 0; + if(++current_time.H == 24) + current_time.H = 0; + } + } +} + +static char *puttwo(uint8_t N, char *buf){ + if(N < 10){ + *buf++ = '0'; + }else{ + *buf++ = N/10 + '0'; + N %= 10; + } + *buf++ = (char)(N + '0'); + return buf; +} + +/** + * @brief ms2str - fill buffer str with milliseconds ms + * @param str (io) - pointer to buffer + * @param T - milliseconds + */ +static void ms2str(char **str, uint32_t T){ + char *bptr = *str; + *bptr++ = '.'; + if(T > 99){ + *bptr++ = (char)(T/100 + '0'); + T %= 100; + }else *bptr++ = '0'; + if(T > 9){ + *bptr++ = (char)(T/10 + '0'); + T %= 10; + }else *bptr++ = '0'; + *bptr++ = (char)(T + '0'); + *str = bptr; +} + +/** + * print time: Tm - time structure, T - milliseconds + */ +char *get_time(const curtime *Tm, uint32_t T){ + static char buf[64]; + char *bstart = &buf[5], *bptr = bstart; + int S = 0; + if(T > 999) return "Wrong time"; + if(Tm->S < 60 && Tm->M < 60 && Tm->H < 24) + S = Tm->S + Tm->H*3600 + Tm->M*60; // seconds from day beginning + if(!S) *(--bstart) = '0'; + while(S){ + *(--bstart) = S%10 + '0'; + S /= 10; + } + // now bstart is buffer starting index; bptr points to decimal point + ms2str(&bptr, T); + // put current time in HH:MM:SS format into buf + *bptr++ = ' '; *bptr++ = '('; + bptr = puttwo(Tm->H, bptr); *bptr++ = ':'; + bptr = puttwo(Tm->M, bptr); *bptr++ = ':'; + bptr = puttwo(Tm->S, bptr); + ms2str(&bptr, T); + *bptr++ = ')'; + if(GPS_status == GPS_NOTFOUND){ + strcpy(bptr, " GPS not found"); + bptr += 14; + } + *bptr = 0; + return bstart; +} + +/** + * @brief get_scrntime - the same as get_time, but for screen (HH:MM:SS.S) + * @param T - time structure + * @param m - milliseconds + * @return string allocated here + */ +char *get_scrntime(const curtime *T, uint32_t m){ + static char buf[15]; + char *bptr = buf; + if(m > 999) return "Wrong time"; + // put current time in HH:MM:SS format into buf + bptr = puttwo(T->H, bptr); *bptr++ = ':'; + bptr = puttwo(T->M, bptr); *bptr++ = ':'; + bptr = puttwo(T->S, bptr); + ms2str(&bptr, m); + *bptr = 0; + return buf; +} + +#ifdef EBUG +uint32_t timerval, Tms1; +int32_t timecntr=0, ticksdiff=0; +#else +static int32_t timecntr=0, ticksdiff=0; +#endif +uint32_t last_corr_time = 0; + +/** + * @brief systick_correction + * Makes correction of system timer + * The default frequency of timer is 1kHz - 72000 clocks per interrupt + * So we check how much ticks there was for last one second - between PPS interrupts + * Their amount equal to M = `Timer` value x (SysTick->LOAD+1) + (SysTick->LOAD+1 - SysTick->VAL) + * if `Timer` is very small, add 1000 to its value. + * We need 1000xN ticks instead of M + * if L = LOAD+1, then + * M = Timer*L + L - VAL; newL = L + D = M/1000 + * 1000*D = M - 1000*L = L(Timer+1-1000) - VAL -> + * D = [L*(Timer-999) - VAL]/1000 + * So correction equal to + * [ (SysTick->LOAD + 1) * (Timer - 999) - SysTick->VAL ] / 1000 + */ +void systick_correction(){ + SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; // stop systick for a while + int32_t systick_val = (int32_t)SysTick->VAL, L = (int32_t)SysTick->LOAD + 1; + uint32_t timer_val = Timer; +#ifdef EBUG + timerval = Timer; + Tms1 = Tms; +#endif + Timer = 0; + SysTick->VAL = SysTick->LOAD; + SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; // start it again +// if(systick_val != SysTick->LOAD) ++Tms; + if(timer_val > 500) time_increment(); // counter greater than 500 -> need to increment time + if(last_corr_time){ + uint32_t Tdiff = Tms - last_corr_time; + if(Tdiff < 1500 && Tdiff > 700){ // there was perevious PPS signal ~1s ago + int32_t D = L * ((int32_t)(Tms - 1000 - last_corr_time)) + ((int32_t)SysTick->LOAD - systick_val); // amount of spare ticks + ++timecntr; + ticksdiff += D; + uint32_t ticksabs = (ticksdiff < 0) ? (uint32_t)-ticksdiff : (uint32_t)ticksdiff; + // 30000 == 30 seconds * 1000 interrupts per second + if(ticksabs > 30000 && timecntr > 10){ // need correction (not more often than each 10s) + ticksdiff /= timecntr * 1000; // correction per one interrupt + SysTick->LOAD = (uint32_t)(ticksdiff + (int32_t)SysTick->LOAD); + timecntr = 0; + ticksdiff = 0; +#ifdef EBUG + SEND("Correction\n"); +#endif + } + }else{ + timecntr = 0; + ticksdiff = 0; + } + } + last_corr_time = Tms; +} + diff --git a/F1-nolib/chronometer_v3/time.h b/F1-nolib/chronometer_v3/time.h new file mode 100644 index 0000000..b535fa5 --- /dev/null +++ b/F1-nolib/chronometer_v3/time.h @@ -0,0 +1,66 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once +#ifndef TIME_H__ +#define TIME_H__ + +#include + +// default value for systick_config +#define SYSTICK_DEFCONF (72000) +// defaul for systick->load +#define SYSTICK_DEFLOAD (SYSTICK_DEFCONF - 1) +#define TIMEZONE_GMT_PLUS (3) + +#define DIDNT_TRIGGERED (2000) + +// debounce delay: .4s +#define TRIGGER_DELAY (400) + +#define TMNOTINI {25,61,61} + +// current milliseconds +#define get_millis() (Timer) + +typedef struct{ + uint8_t H; + uint8_t M; + uint8_t S; +} curtime; + +#ifdef EBUG +extern int32_t ticksdiff, timecntr; +extern uint32_t timerval, Tms1; +#endif +extern volatile uint32_t Tms; +extern volatile uint32_t Timer; +extern curtime current_time; +extern uint32_t last_corr_time; + +extern curtime trigger_time[]; +extern uint32_t trigger_ms[]; + +extern volatile int need_sync; + +char *get_time(const curtime *T, uint32_t m); +char *get_scrntime(const curtime *T, uint32_t m); +void set_time(const char *buf); +void time_increment(); +void systick_correction(); + +#endif // TIME_H__ diff --git a/F1-nolib/chronometer_v3/usart.c b/F1-nolib/chronometer_v3/usart.c new file mode 100644 index 0000000..66187a3 --- /dev/null +++ b/F1-nolib/chronometer_v3/usart.c @@ -0,0 +1,309 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#include "stm32f1.h" +#include "flash.h" +#include "lidar.h" +#include "str.h" +#include "usart.h" + +extern volatile uint32_t Tms; +static volatile uint8_t idatalen[4][2] = {{0}}; // received data line length (including '\n') +static volatile uint8_t odatalen[4][2] = {{0}}; + +static volatile uint8_t dlen[4] = {0}; // length of data (including '\n') in current buffer + +volatile uint8_t linerdy[4] = {0}, // received data ready + bufovr[4] = {0}, // input buffer overfull + txrdy[4] = {0,1,1,1} // transmission done +; + + +static uint8_t rbufno[4] = {0}, tbufno[4] = {0}; // current rbuf/tbuf numbers +static char rbuf[4][2][UARTBUFSZ], tbuf[4][2][UARTBUFSZ]; // receive & transmit buffers +static char *recvdata[4] = {0}; + +/** + * return length of received data (without trailing zero) + */ +int usart_getline(int n, char **line){ + if(bufovr[n]){ + bufovr[n] = 0; + linerdy[n] = 0; + return 0; + } + *line = recvdata[n]; + linerdy[n] = 0; + return dlen[n]; +} + +// transmit current tbuf and swap buffers +void transmit_tbuf(uint8_t n){ + DMA_Channel_TypeDef *DMA; + switch(n){ // also check if n wrong + case 1: + DMA = DMA1_Channel4; + break; + case 2: + DMA = DMA1_Channel7; + break; + case 3: + DMA = DMA1_Channel2; + break; + default: return; + } + uint32_t tmout = 72000; + while(!txrdy[n]){if(--tmout == 0) return;} // wait for previos buffer transmission + register uint32_t l = odatalen[n][tbufno[n]]; + if(!l) return; + txrdy[n] = 0; + odatalen[n][tbufno[n]] = 0; + IWDG->KR = IWDG_REFRESH; + DMA->CCR &= ~DMA_CCR_EN; + DMA->CMAR = (uint32_t) tbuf[n][tbufno[n]]; // mem + DMA->CNDTR = l; + DMA->CCR |= DMA_CCR_EN; + tbufno[n] = !tbufno[n]; +} + +void usart_putchar(uint8_t n, char ch){ + if(!n || n > USART_LAST+1) return; + for(int i = 0; odatalen[n][tbufno[n]] == UARTBUFSZ && i < 1024; ++i) transmit_tbuf(n); + tbuf[n][tbufno[n]][odatalen[n][tbufno[n]]++] = ch; +} + +void usart_send(uint8_t n, const char *str){ + if(!n || n > USART_LAST+1) return; + uint32_t x = 512; + while(*str && --x){ + if(odatalen[n][tbufno[n]] == UARTBUFSZ){ + transmit_tbuf(n); + continue; + } + tbuf[n][tbufno[n]][odatalen[n][tbufno[n]]++] = *str++; + } +} + +// send newline ("\r" or "\r\n") and transmit whole buffer +// for GPS_USART endline always is "\r\n" +// @param n - USART number +void newline(uint8_t n){ + if((the_conf.defflags & FLAG_STRENDRN) || n == GPS_USART) usart_putchar(n, '\r'); + usart_putchar(n, '\n'); + transmit_tbuf(n); +} + +/* + * USART speed: baudrate = Fck/(USARTDIV) + * USARTDIV stored in USART->BRR + * + * for 72MHz USARTDIV=72000/f(kboud); so for 115200 USARTDIV=72000/115.2=625 -> BRR=0x271 + * 9600: BRR = 7500 (0x1D4C) + */ +static void usart_setup(uint8_t n, uint16_t BRR){ + DMA_Channel_TypeDef *DMA; + IRQn_Type DMAirqN, USARTirqN; + USART_TypeDef *USART; + switch(n){ + case 1: + // USART1 Tx DMA - Channel4 (Rx - channel 5) + DMA = DMA1_Channel4; + DMAirqN = DMA1_Channel4_IRQn; + USARTirqN = USART1_IRQn; + // PA9 - Tx, PA10 - Rx + RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN; + GPIOA->CRH |= CRH(9, CNF_AFPP|MODE_NORMAL) | CRH(10, CNF_FLINPUT|MODE_INPUT); + USART = USART1; + break; + case 2: + // USART2 Tx DMA - Channel7 + DMA = DMA1_Channel7; + DMAirqN = DMA1_Channel7_IRQn; + USARTirqN = USART2_IRQn; + // PA2 - Tx, PA3 - Rx + RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; + RCC->APB1ENR |= RCC_APB1ENR_USART2EN; + GPIOA->CRL |= CRL(2, CNF_AFPP|MODE_NORMAL) | CRL(3, CNF_FLINPUT|MODE_INPUT); + USART = USART2; + break; + case 3: + // USART3 Tx DMA - Channel2 + DMA = DMA1_Channel2; + DMAirqN = DMA1_Channel2_IRQn; + USARTirqN = USART3_IRQn; + // PB10 - Tx, PB11 - Rx + RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; + RCC->APB1ENR |= RCC_APB1ENR_USART3EN; + GPIOB->CRH |= CRH(10, CNF_AFPP|MODE_NORMAL) | CRH(11, CNF_FLINPUT|MODE_INPUT); + USART = USART3; + break; + default: + return; + } + DMA->CPAR = (uint32_t) &USART->DR; // periph + DMA->CCR |= DMA_CCR_MINC | DMA_CCR_DIR | DMA_CCR_TCIE; // 8bit, mem++, mem->per, transcompl irq + // setup usart(n) + USART->BRR = BRR; + USART->CR1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; // 1start,8data,nstop; enable Rx,Tx,USART + uint32_t tmout = 16000000; + while(!(USART->SR & USART_SR_TC)){if(--tmout == 0) break;} // polling idle frame Transmission + USART->SR = 0; // clear flags + USART->CR1 |= USART_CR1_RXNEIE; // allow Rx IRQ + USART->CR3 = USART_CR3_DMAT; // enable DMA Tx + // Tx CNDTR set @ each transmission due to data size + NVIC_SetPriority(DMAirqN, n); + NVIC_EnableIRQ(DMAirqN); + NVIC_SetPriority(USARTirqN, n); + NVIC_EnableIRQ(USARTirqN); +} + +void usarts_setup(){ + RCC->AHBENR |= RCC_AHBENR_DMA1EN; + usart_setup(1, 72000000 / the_conf.USART_speed); // debug console or GPS proxy + usart_setup(GPS_USART, 36000000 / GPS_DEFAULT_SPEED); // GPS + usart_setup(LIDAR_USART, 36000000 / the_conf.LIDAR_speed); // LIDAR +} + + +static void usart_isr(uint8_t n, USART_TypeDef *USART){ + #ifdef CHECK_TMOUT + static uint32_t tmout[n] = 0; + #endif + IWDG->KR = IWDG_REFRESH; + if(USART->SR & USART_SR_RXNE){ // RX not emty - receive next char + #ifdef CHECK_TMOUT + if(tmout[n] && Tms >= tmout[n]){ // set overflow flag + bufovr[n] = 1; + idatalen[n][rbufno[n]] = 0; + } + tmout[n] = Tms + TIMEOUT_MS; + if(!tmout[n]) tmout[n] = 1; // prevent 0 + #endif + char rb = (char)USART->DR; + if(idatalen[n][rbufno[n]] < UARTBUFSZ){ // put next char into buf + if(rb != '\r') rbuf[n][rbufno[n]][idatalen[n][rbufno[n]]++] = rb; // omit '\r' + if(rb == '\n'){ // got newline - line ready + linerdy[n] = 1; + dlen[n] = idatalen[n][rbufno[n]]; + rbuf[n][rbufno[n]][dlen[n]] = 0; + recvdata[n] = rbuf[n][rbufno[n]]; + // prepare other buffer + rbufno[n] = !rbufno[n]; + idatalen[n][rbufno[n]] = 0; + #ifdef CHECK_TMOUT + // clear timeout at line end + tmout[n] = 0; + #endif + } + }else{ // buffer overrun + bufovr[n] = 1; + idatalen[n][rbufno[n]] = 0; + #ifdef CHECK_TMOUT + tmout[n] = 0; + #endif + } + } +} + +void usart1_isr(){ + usart_isr(1, USART1); +} + +// GPS_USART +void usart2_isr(){ + usart_isr(2, USART2); +} + +// LIDAR_USART +void usart3_isr(){ + if(the_conf.defflags & FLAG_NOLIDAR){ // regular TTY + usart_isr(3, USART3); + return; + } + // LIDAR - check for different things + IWDG->KR = IWDG_REFRESH; + if(USART3->SR & USART_SR_RXNE){ // RX not emty - receive next char + char rb = (char)USART3->DR; + uint8_t L = idatalen[3][rbufno[3]]; + if(rb != LIDAR_FRAME_HEADER && (L == 0 || L == 1)){ // bad starting sequence + idatalen[3][rbufno[3]] = 0; + return; + } + if(L < LIDAR_FRAME_LEN){ // put next char into buf + rbuf[3][rbufno[3]][idatalen[3][rbufno[3]]++] = rb; + if(L == LIDAR_FRAME_LEN-1){ // got LIDAR_FRAME_LEN bytes - line ready + linerdy[3] = 1; + dlen[3] = idatalen[3][rbufno[3]]; + recvdata[3] = rbuf[3][rbufno[3]]; + // prepare other buffer + rbufno[3] = !rbufno[3]; + idatalen[3][rbufno[3]] = 0; + } + }else{ // buffer overrun + idatalen[3][rbufno[3]] = 0; + } + } +} + +// print 32bit unsigned int +void printu(uint8_t n, uint32_t val){ + usart_send(n, u2str(val)); +} + +// print 32bit unsigned int as hex +void printuhex(uint8_t n, uint32_t val){ + usart_send(n, u2hex(val)); +} + +#ifdef EBUG +// dump memory buffer +void hexdump(uint8_t *arr, uint16_t len){ + for(uint16_t l = 0; l < len; ++l, ++arr){ + IWDG->KR = IWDG_REFRESH; + for(int16_t j = 1; j > -1; --j){ + register uint8_t half = (*arr >> (4*j)) & 0x0f; + if(half < 10) usart_putchar(1, half + '0'); + else usart_putchar(1, half - 10 + 'a'); + } + if(l % 16 == 15) usart_putchar(1, '\n'); + else if((l & 3) == 3) usart_putchar(1, ' '); + } +} +#endif + +void dma1_channel4_isr(){ // USART1 + if(DMA1->ISR & DMA_ISR_TCIF4){ // Tx + DMA1->IFCR = DMA_IFCR_CTCIF4; // clear TC flag + txrdy[1] = 1; + } +} + +void dma1_channel7_isr(){ // USART2 + if(DMA1->ISR & DMA_ISR_TCIF7){ // Tx + DMA1->IFCR = DMA_IFCR_CTCIF7; // clear TC flag + txrdy[2] = 1; + } +} + +void dma1_channel2_isr(){ // USART3 + if(DMA1->ISR & DMA_ISR_TCIF2){ // Tx + DMA1->IFCR = DMA_IFCR_CTCIF2; // clear TC flag + txrdy[3] = 1; + } +} diff --git a/F1-nolib/chronometer_v3/usart.h b/F1-nolib/chronometer_v3/usart.h new file mode 100644 index 0000000..958d3f0 --- /dev/null +++ b/F1-nolib/chronometer_v3/usart.h @@ -0,0 +1,73 @@ +/* + * This file is part of the chronometer project. + * Copyright 2019 Edward V. Emelianov . + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#ifndef __USART_H__ +#define __USART_H__ + +#include + +// input and output buffers size (should be less than 256!!!) +#define UARTBUFSZ (128) +// timeout between data bytes +#ifndef TIMEOUT_MS +#define TIMEOUT_MS (1500) +#endif + +// number of last USART used +#define USART_LAST 3 + +// USART1 default speed +#define USART1_DEFAULT_SPEED (115200) +// LIDAR default speed +#define LIDAR_DEFAULT_SPEED (115200) +// GPS default speed +#define GPS_DEFAULT_SPEED (9600) + +#define STR_HELPER(s) #s +#define STR(s) STR_HELPER(s) + +#ifdef EBUG +#define SEND(str) usart_send(1, str) +#define MSG(str) do{SEND(__FILE__ " (L" STR(__LINE__) "): " str);}while(0) +#define DBG(str) do{SEND(str); newline(1); }while(0) +#else +#define SEND(str) +#define MSG(str) +#define DBG(str) +#endif + +#define usartrx(n) (linerdy[n]) +#define usartovr(n) (bufovr[n]) + +extern volatile uint8_t linerdy[], bufovr[], txrdy[]; + +void transmit_tbuf(uint8_t n); +void usarts_setup(); +int usart_getline(int n, char **line); +void usart_send(uint8_t n, const char *str); +void usart_putchar(uint8_t n, char ch); +void printu(uint8_t n, uint32_t val); +void printuhex(uint8_t n, uint32_t val); +void newline(uint8_t n); + +#ifdef EBUG +void hexdump(uint8_t *arr, uint16_t len); +#endif + +#endif // __USART_H__ diff --git a/F1-nolib/chronometer_v3/usb.c b/F1-nolib/chronometer_v3/usb.c new file mode 100644 index 0000000..467902c --- /dev/null +++ b/F1-nolib/chronometer_v3/usb.c @@ -0,0 +1,212 @@ +/* + * geany_encoding=koi8-r + * usb.c - base functions for different USB types + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ +#include "flash.h" +#include "usb.h" +#include "usb_lib.h" +#include "usart.h" + +// incoming buffer size +#define IDATASZ (256) +static uint8_t incoming_data[IDATASZ]; +static uint8_t ovfl = 0; +static uint16_t idatalen = 0; +static volatile uint8_t tx_succesfull = 0; +static int8_t usbON = 0; // ==1 when USB fully configured + +// interrupt IN handler (never used?) +static uint16_t EP1_Handler(ep_t ep){ + if (ep.rx_flag){ + ep.status = SET_VALID_TX(ep.status); + ep.status = KEEP_STAT_RX(ep.status); + }else if (ep.tx_flag){ + ep.status = SET_VALID_RX(ep.status); + ep.status = SET_STALL_TX(ep.status); + } + return ep.status; +} + +// data IN/OUT handler +static uint16_t EP23_Handler(ep_t ep){ + if(ep.rx_flag){ + int rd = ep.rx_cnt, rest = IDATASZ - idatalen; + if(rd){ + if(rd <= rest){ + idatalen += EP_Read(2, (uint16_t*)&incoming_data[idatalen]); + ovfl = 0; + }else{ + ep.status = SET_NAK_RX(ep.status); + ovfl = 1; + return ep.status; + } + } + // end of transaction: clear DTOGs + ep.status = CLEAR_DTOG_RX(ep.status); + ep.status = CLEAR_DTOG_TX(ep.status); + ep.status = SET_STALL_TX(ep.status); + }else if (ep.tx_flag){ + ep.status = KEEP_STAT_TX(ep.status); + tx_succesfull = 1; + } + ep.status = SET_VALID_RX(ep.status); + return ep.status; +} + +void USB_setup(){ + NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn); + NVIC_DisableIRQ(USB_HP_CAN1_TX_IRQn); + RCC->APB1ENR |= RCC_APB1ENR_USBEN; + USB->CNTR = USB_CNTR_FRES; // Force USB Reset + for(uint32_t ctr = 0; ctr < 72000; ++ctr) nop(); // wait >1ms + //uint32_t ctr = 0; + USB->CNTR = 0; + USB->BTABLE = 0; + USB->DADDR = 0; + USB->ISTR = 0; + USB->CNTR = USB_CNTR_RESETM | USB_CNTR_WKUPM; // allow only wakeup & reset interrupts + NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn); + NVIC_EnableIRQ(USB_HP_CAN1_TX_IRQn ); +} + +void usb_proc(){ + if(USB_GetState() == USB_CONFIGURE_STATE){ // USB configured - activate other endpoints + if(!usbON){ // endpoints not activated + // make new BULK endpoint + // Buffer have 1024 bytes, but last 256 we use for CAN bus (30.2 of RM: USB main features) + EP_Init(1, EP_TYPE_INTERRUPT, 10, 0, EP1_Handler); // IN1 - transmit + EP_Init(2, EP_TYPE_BULK, 0, USB_RXBUFSZ, EP23_Handler); // OUT2 - receive data + EP_Init(3, EP_TYPE_BULK, USB_TXBUFSZ, 0, EP23_Handler); // IN3 - transmit data + usbON = 1; + } + }else{ + usbON = 0; + } +} + +extern uint8_t USB_connected; +void USB_send(const char *buf){ + if(!USB_configured()){ + DBG("USB not configured"); + return; + } + if(!USB_connected) return; // no connection -> no need to send data into nothing + char tmpbuf[USB_TXBUFSZ]; + uint16_t l = 0, ctr = 0; + const char *p = buf; + while(*p++) ++l; + while(l){ + uint16_t proc = 0, s = (l > USB_TXBUFSZ - 1) ? USB_TXBUFSZ - 1: l; + for(int i = 0; i < s; ++i, ++proc){ + char c = buf[ctr+proc]; + if(c == '\n' && the_conf.defflags & FLAG_STRENDRN){ // add '\r' before '\n' + tmpbuf[i++] = '\r'; + if(i == s) ++s; + } + if(c == 0x1B) tmpbuf[i] = 'E'; // ESC + else if(c == 0x7F) tmpbuf[i] = 'B'; // Backspace + else tmpbuf[i] = c; + } + tx_succesfull = 0; + EP_Write(3, (uint8_t*)tmpbuf, s); + uint32_t ctra = 1000000; + while(--ctra && tx_succesfull == 0); + l -= proc; + ctr += proc; + } +} + +/** + * @brief USB_receive + * @param buf (i) - buffer for received data + * @param bufsize - its size + * @return amount of received bytes + */ +int USB_receive(char *buf, int bufsize){ + if(!bufsize || !idatalen) return 0; + USB->CNTR = 0; + int sz = (idatalen > bufsize) ? bufsize : idatalen, rest = idatalen - sz; + for(int i = 0; i < sz; ++i) buf[i] = incoming_data[i]; + if(rest > 0){ + uint8_t *ptr = &incoming_data[sz]; + for(int i = 0; i < rest; ++i) incoming_data[i] = *ptr++; + idatalen = rest; + }else idatalen = 0; + if(ovfl){ + EP23_Handler(endpoints[2]); + uint16_t epstatus = USB->EPnR[2]; + epstatus = CLEAR_DTOG_RX(epstatus); + epstatus = SET_VALID_RX(epstatus); + USB->EPnR[2] = epstatus; + } + USB->CNTR = USB_CNTR_RESETM | USB_CNTR_CTRM; + return sz; +} + +/** + * @brief USB_configured + * @return 1 if USB is in configured state + */ +int USB_configured(){ + return usbON; +} + + +/* + * default handlers + * +// SET_LINE_CODING +void WEAK linecoding_handler(usb_LineCoding __attribute__((unused)) *lc){ + DBG("WEAK LH"); +} + +// SET_CONTROL_LINE_STATE +void WEAK clstate_handler(uint16_t __attribute__((unused)) val){ + DBG("WEAK CLSH"); +} + +// SEND_BREAK +void WEAK break_handler(){ + DBG("WEAK BH"); +}*/ + +// handler of vendor requests +void WEAK vendor_handler(config_pack_t *packet){ + if(packet->bmRequestType & 0x80){ // read + uint8_t c; + switch(packet->wValue){ + case 0x8484: + c = 2; + break; + case 0x0080: + c = 1; + break; + case 0x8686: + c = 0xaa; + break; + default: + c = 0; + } + EP_WriteIRQ(0, &c, 1); + }else{ // write ZLP + EP_WriteIRQ(0, (uint8_t *)0, 0); + } +} diff --git a/F1-nolib/chronometer_v3/usb.h b/F1-nolib/chronometer_v3/usb.h new file mode 100644 index 0000000..75d22b4 --- /dev/null +++ b/F1-nolib/chronometer_v3/usb.h @@ -0,0 +1,37 @@ +/* + * geany_encoding=koi8-r + * usb.h + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ +#pragma once +#ifndef __USB_H__ +#define __USB_H__ + +#include "hardware.h" + +#define BUFFSIZE (64) + +void USB_setup(); +void usb_proc(); +void USB_send(const char *buf); +int USB_receive(char *buf, int bufsize); +int USB_configured(); + +#endif // __USB_H__ diff --git a/F1-nolib/chronometer_v3/usb_defs.h b/F1-nolib/chronometer_v3/usb_defs.h new file mode 100644 index 0000000..d6bc03f --- /dev/null +++ b/F1-nolib/chronometer_v3/usb_defs.h @@ -0,0 +1,117 @@ +/* + * geany_encoding=koi8-r + * usb_defs.h + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#pragma once +#ifndef __USB_DEFS_H__ +#define __USB_DEFS_H__ + +#include + +// max endpoints number +#define STM32ENDPOINTS 8 +/** + * Buffers size definition + **/ +#define USB_BTABLE_SIZE 512 +// first 64 bytes of USB_BTABLE are registers! +//#define USB_EP0_BASEADDR 64 +// for USB FS EP0 buffers are from 8 to 64 bytes long (64 for PL2303) +#define USB_EP0_BUFSZ 64 +// USB transmit buffer size (64 for PL2303) +#define USB_TXBUFSZ 64 +// USB receive buffer size (64 for PL2303) +#define USB_RXBUFSZ 64 + +#define USB_BTABLE_BASE 0x40006000 +#define USB_BASE ((uint32_t)0x40005C00) +#define USB ((USB_TypeDef *) USB_BASE) + +#ifdef USB_BTABLE +#undef USB_BTABLE +#endif +#define USB_BTABLE ((USB_BtableDef *)(USB_BTABLE_BASE)) +#define USB_ISTR_EPID 0x0000000F +#define USB_FNR_LSOF_0 0x00000800 +#define USB_FNR_lSOF_1 0x00001000 +#define USB_LPMCSR_BESL_0 0x00000010 +#define USB_LPMCSR_BESL_1 0x00000020 +#define USB_LPMCSR_BESL_2 0x00000040 +#define USB_LPMCSR_BESL_3 0x00000080 +#define USB_EPnR_CTR_RX 0x00008000 +#define USB_EPnR_DTOG_RX 0x00004000 +#define USB_EPnR_STAT_RX 0x00003000 +#define USB_EPnR_STAT_RX_0 0x00001000 +#define USB_EPnR_STAT_RX_1 0x00002000 +#define USB_EPnR_SETUP 0x00000800 +#define USB_EPnR_EP_TYPE 0x00000600 +#define USB_EPnR_EP_TYPE_0 0x00000200 +#define USB_EPnR_EP_TYPE_1 0x00000400 +#define USB_EPnR_EP_KIND 0x00000100 +#define USB_EPnR_CTR_TX 0x00000080 +#define USB_EPnR_DTOG_TX 0x00000040 +#define USB_EPnR_STAT_TX 0x00000030 +#define USB_EPnR_STAT_TX_0 0x00000010 +#define USB_EPnR_STAT_TX_1 0x00000020 +#define USB_EPnR_EA 0x0000000F +#define USB_COUNTn_RX_BLSIZE 0x00008000 +#define USB_COUNTn_NUM_BLOCK 0x00007C00 +#define USB_COUNTn_RX 0x0000003F + +#ifdef USB_TypeDef +#define USB_TypeDef USB_TypeDef_custom +#endif + +typedef struct { + __IO uint32_t EPnR[STM32ENDPOINTS]; + __IO uint32_t RESERVED[STM32ENDPOINTS]; + __IO uint32_t CNTR; + __IO uint32_t ISTR; + __IO uint32_t FNR; + __IO uint32_t DADDR; + __IO uint32_t BTABLE; +} USB_TypeDef; + +/* +typedef struct{ + __IO uint16_t USB_ADDR_TX; + __IO uint16_t res1; + __IO uint16_t USB_COUNT_TX; + __IO uint16_t res2; + __IO uint16_t USB_ADDR_RX; + __IO uint16_t res3; + __IO uint16_t USB_COUNT_RX; + __IO uint16_t res4; +} USB_EPDATA_TypeDef;*/ + +typedef struct{ + __IO uint32_t USB_ADDR_TX; + __IO uint32_t USB_COUNT_TX; + __IO uint32_t USB_ADDR_RX; + __IO uint32_t USB_COUNT_RX; +} USB_EPDATA_TypeDef; + +typedef struct{ + __IO USB_EPDATA_TypeDef EP[STM32ENDPOINTS]; +} USB_BtableDef; + +#endif // __USB_DEFS_H__ diff --git a/F1-nolib/chronometer_v3/usb_lib.c b/F1-nolib/chronometer_v3/usb_lib.c new file mode 100644 index 0000000..ff89745 --- /dev/null +++ b/F1-nolib/chronometer_v3/usb_lib.c @@ -0,0 +1,488 @@ +/* + * geany_encoding=koi8-r + * usb_lib.c + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#include +#include "usb_lib.h" +#include "usart.h" + +ep_t endpoints[STM32ENDPOINTS]; + +static usb_dev_t USB_Dev; +static usb_LineCoding lineCoding = {115200, 0, 0, 8}; +static config_pack_t setup_packet; +static uint8_t ep0databuf[EP0DATABUF_SIZE]; +static uint8_t ep0dbuflen = 0; + +usb_LineCoding getLineCoding(){return lineCoding;} + +// definition of parts common for USB_DeviceDescriptor & USB_DeviceQualifierDescriptor +#define bcdUSB_L 0x10 +#define bcdUSB_H 0x01 +#define bDeviceClass 0 +#define bDeviceSubClass 0 +#define bDeviceProtocol 0 +#define bNumConfigurations 1 + +static const uint8_t USB_DeviceDescriptor[] = { + 18, // bLength + 0x01, // bDescriptorType - Device descriptor + bcdUSB_L, // bcdUSB_L - 1.10 + bcdUSB_H, // bcdUSB_H + bDeviceClass, // bDeviceClass - USB_COMM + bDeviceSubClass, // bDeviceSubClass + bDeviceProtocol, // bDeviceProtocol + USB_EP0_BUFSZ, // bMaxPacketSize + 0x7b, // idVendor_L PL2303: VID=0x067b, PID=0x2303 + 0x06, // idVendor_H + 0x03, // idProduct_L + 0x23, // idProduct_H + 0x00, // bcdDevice_Ver_L + 0x03, // bcdDevice_Ver_H + 0x01, // iManufacturer + 0x02, // iProduct + 0x00, // iSerialNumber + bNumConfigurations // bNumConfigurations +}; + +static const uint8_t USB_DeviceQualifierDescriptor[] = { + 10, //bLength + 0x06, // bDescriptorType - Device qualifier + bcdUSB_L, // bcdUSB_L + bcdUSB_H, // bcdUSB_H + bDeviceClass, // bDeviceClass + bDeviceSubClass, // bDeviceSubClass + bDeviceProtocol, // bDeviceProtocol + USB_EP0_BUFSZ, // bMaxPacketSize0 + bNumConfigurations, // bNumConfigurations + 0x00 // Reserved +}; + +static const uint8_t USB_ConfigDescriptor[] = { + /*Configuration Descriptor*/ + 0x09, /* bLength: Configuration Descriptor size */ + 0x02, /* bDescriptorType: Configuration */ + 39, /* wTotalLength:no of returned bytes */ + 0x00, + 0x01, /* bNumInterfaces: 1 interface */ + 0x01, /* bConfigurationValue: Configuration value */ + 0x00, /* iConfiguration: Index of string descriptor describing the configuration */ + 0xa0, /* bmAttributes - Bus powered, Remote wakeup */ + 0x32, /* MaxPower 100 mA */ + + /*---------------------------------------------------------------------------*/ + + /*Interface Descriptor */ + 0x09, /* bLength: Interface Descriptor size */ + 0x04, /* bDescriptorType: Interface */ + 0x00, /* bInterfaceNumber: Number of Interface */ + 0x00, /* bAlternateSetting: Alternate setting */ + 0x03, /* bNumEndpoints: 3 endpoints used */ + 0xff, /* bInterfaceClass */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface: */ +/////////////////////////////////////////////////// + /*Endpoint 1 Descriptor*/ + 0x07, /* bLength: Endpoint Descriptor size */ + 0x05, /* bDescriptorType: Endpoint */ + 0x81, /* bEndpointAddress IN1 */ + 0x03, /* bmAttributes: Interrupt */ + 0x0a, /* wMaxPacketSize LO: */ + 0x00, /* wMaxPacketSize HI: */ + 0x01, /* bInterval: */ + + /*Endpoint OUT2 Descriptor*/ + 0x07, /* bLength: Endpoint Descriptor size */ + 0x05, /* bDescriptorType: Endpoint */ + 0x02, /* bEndpointAddress: OUT2 */ + 0x02, /* bmAttributes: Bulk */ + (USB_RXBUFSZ & 0xff), /* wMaxPacketSize: 64 */ + (USB_RXBUFSZ >> 8), + 0x00, /* bInterval: ignore for Bulk transfer */ + + /*Endpoint IN3 Descriptor*/ + 0x07, /* bLength: Endpoint Descriptor size */ + 0x05, /* bDescriptorType: Endpoint */ + 0x83, /* bEndpointAddress IN3 */ + 0x02, /* bmAttributes: Bulk */ + (USB_TXBUFSZ & 0xff), /* wMaxPacketSize: 64 */ + (USB_TXBUFSZ >> 8), + 0x00, /* bInterval: ignore for Bulk transfer */ +}; + +_USB_LANG_ID_(USB_StringLangDescriptor, LANG_US); +// these descriptors are not used in PL2303 emulator! +_USB_STRING_(USB_StringSerialDescriptor, u"0"); +_USB_STRING_(USB_StringManufacturingDescriptor, u"Prolific Technology Inc."); +_USB_STRING_(USB_StringProdDescriptor, u"USB-Serial Controller"); + +static void wr0(const uint8_t *buf, uint16_t size){ + if(setup_packet.wLength < size) size = setup_packet.wLength; + EP_WriteIRQ(0, buf, size); +} + +static inline void get_descriptor(){ + switch(setup_packet.wValue){ + case DEVICE_DESCRIPTOR: + wr0(USB_DeviceDescriptor, sizeof(USB_DeviceDescriptor)); + break; + case CONFIGURATION_DESCRIPTOR: + wr0(USB_ConfigDescriptor, sizeof(USB_ConfigDescriptor)); + break; + case STRING_LANG_DESCRIPTOR: + wr0((const uint8_t *)&USB_StringLangDescriptor, STRING_LANG_DESCRIPTOR_SIZE_BYTE); + break; + case STRING_MAN_DESCRIPTOR: + wr0((const uint8_t *)&USB_StringManufacturingDescriptor, USB_StringManufacturingDescriptor.bLength); + break; + case STRING_PROD_DESCRIPTOR: + wr0((const uint8_t *)&USB_StringProdDescriptor, USB_StringProdDescriptor.bLength); + break; + case STRING_SN_DESCRIPTOR: + wr0((const uint8_t *)&USB_StringSerialDescriptor, USB_StringSerialDescriptor.bLength); + break; + case DEVICE_QUALIFIER_DESCRIPTOR: + wr0(USB_DeviceQualifierDescriptor, USB_DeviceQualifierDescriptor[0]); + break; + default: + break; + } +} + +static uint8_t configuration = 0; // reply for GET_CONFIGURATION (==1 if configured) +static inline void std_d2h_req(){ + uint16_t status = 0; // bus powered + switch(setup_packet.bRequest){ + case GET_DESCRIPTOR: + get_descriptor(); + break; + case GET_STATUS: + EP_WriteIRQ(0, (uint8_t *)&status, 2); // send status: Bus Powered + break; + case GET_CONFIGURATION: + EP_WriteIRQ(0, &configuration, 1); + break; + default: + break; + } +} + +static inline void std_h2d_req(){ + switch(setup_packet.bRequest){ + case SET_ADDRESS: + // new address will be assigned later - after acknowlegement or request to host + USB_Dev.USB_Addr = setup_packet.wValue; + break; + case SET_CONFIGURATION: + // Now device configured + USB_Dev.USB_Status = USB_CONFIGURE_STATE; + configuration = setup_packet.wValue; + break; + default: + break; + } +} + +/* +bmRequestType: 76543210 +7 direction: 0 - host->device, 1 - device->host +65 type: 0 - standard, 1 - class, 2 - vendor +4..0 getter: 0 - device, 1 - interface, 2 - endpoint, 3 - other +*/ +/** + * Endpoint0 (control) handler + * @param ep - endpoint state + * @return data written to EP0R + */ +static uint16_t EP0_Handler(ep_t ep){ + uint16_t epstatus = ep.status; // EP0R on input -> return this value after modifications + uint8_t reqtype = setup_packet.bmRequestType & 0x7f; + uint8_t dev2host = (setup_packet.bmRequestType & 0x80) ? 1 : 0; + if ((ep.rx_flag) && (ep.setup_flag)){ + switch(reqtype){ + case STANDARD_DEVICE_REQUEST_TYPE: // standard device request + if(dev2host){ + std_d2h_req(); + }else{ + std_h2d_req(); + EP_WriteIRQ(0, (uint8_t *)0, 0); + } + //epstatus = SET_NAK_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + break; + case STANDARD_ENDPOINT_REQUEST_TYPE: // standard endpoint request + if(setup_packet.bRequest == CLEAR_FEATURE){ + EP_WriteIRQ(0, (uint8_t *)0, 0); + //epstatus = SET_NAK_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + } + break; + case VENDOR_REQUEST_TYPE: + vendor_handler(&setup_packet); + //epstatus = SET_NAK_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + break; + case CONTROL_REQUEST_TYPE: + switch(setup_packet.bRequest){ + case GET_LINE_CODING: + EP_WriteIRQ(0, (uint8_t*)&lineCoding, sizeof(lineCoding)); + break; + case SET_LINE_CODING: // omit this for next stage, when data will come + break; + case SET_CONTROL_LINE_STATE: + clstate_handler(setup_packet.wValue); + break; + case SEND_BREAK: + break_handler(); + break; + default: + break; + } + // SET_CONTROL_LINE_STATE don't work! Need something to fix the BUG! + //if(!dev2host) + if(setup_packet.bRequest != GET_LINE_CODING) + EP_WriteIRQ(0, (uint8_t *)0, 0); // write acknowledgement + //epstatus = SET_VALID_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + break; + default: + EP_WriteIRQ(0, (uint8_t *)0, 0); + //epstatus = SET_NAK_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + } + }else if (ep.rx_flag){ // got data over EP0 or host acknowlegement + if(ep.rx_cnt){ + //EP_WriteIRQ(0, (uint8_t *)0, 0); + if(setup_packet.bRequest == SET_LINE_CODING){ + linecoding_handler((usb_LineCoding*)ep0databuf); + } + } + // wait for new data from host + //epstatus = SET_VALID_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + } else if (ep.tx_flag){ // package transmitted + // now we can change address after enumeration + if ((USB->DADDR & USB_DADDR_ADD) != USB_Dev.USB_Addr){ + USB->DADDR = USB_DADDR_EF | USB_Dev.USB_Addr; + // change state to ADRESSED + USB_Dev.USB_Status = USB_ADRESSED_STATE; + } + // end of transaction + epstatus = CLEAR_DTOG_RX(epstatus); + epstatus = CLEAR_DTOG_TX(epstatus); + //epstatus = SET_VALID_RX(epstatus); + //epstatus = SET_VALID_TX(epstatus); + } + epstatus = SET_VALID_RX(epstatus); + epstatus = SET_VALID_TX(epstatus); + return epstatus; +} + +static uint16_t lastaddr = LASTADDR_DEFAULT; +/** + * Endpoint initialisation + * @param number - EP num (0...7) + * @param type - EP type (EP_TYPE_BULK, EP_TYPE_CONTROL, EP_TYPE_ISO, EP_TYPE_INTERRUPT) + * @param txsz - transmission buffer size @ USB/CAN buffer + * @param rxsz - reception buffer size @ USB/CAN buffer + * @param uint16_t (*func)(ep_t *ep) - EP handler function + * @return 0 if all OK + */ +int EP_Init(uint8_t number, uint8_t type, uint16_t txsz, uint16_t rxsz, uint16_t (*func)(ep_t ep)){ + if(number >= STM32ENDPOINTS) return 4; // out of configured amount + if(txsz > USB_BTABLE_SIZE || rxsz > USB_BTABLE_SIZE) return 1; // buffer too large + if(lastaddr + txsz + rxsz >= USB_BTABLE_SIZE) return 2; // out of btable + USB->EPnR[number] = (type << 9) | (number & USB_EPnR_EA); + USB->EPnR[number] ^= USB_EPnR_STAT_RX | USB_EPnR_STAT_TX_1; + if(rxsz & 1 || rxsz > 512) return 3; // wrong rx buffer size + uint16_t countrx = 0; + if(rxsz < 64) countrx = rxsz / 2; + else{ + if(rxsz & 0x1f) return 3; // should be multiple of 32 + countrx = 31 + rxsz / 32; + } + USB_BTABLE->EP[number].USB_ADDR_TX = lastaddr; + endpoints[number].tx_buf = (uint16_t *)(USB_BTABLE_BASE + lastaddr*2); + lastaddr += txsz; + USB_BTABLE->EP[number].USB_COUNT_TX = 0; + USB_BTABLE->EP[number].USB_ADDR_RX = lastaddr; + endpoints[number].rx_buf = (uint16_t *)(USB_BTABLE_BASE + lastaddr*2); + lastaddr += rxsz; + USB_BTABLE->EP[number].USB_COUNT_RX = countrx << 10; + endpoints[number].func = func; + return 0; +} + +//extern int8_t dump; +// standard IRQ handler +void usb_isr(){ + if (USB->ISTR & USB_ISTR_RESET){ + // Reinit registers + USB->CNTR = USB_CNTR_RESETM | USB_CNTR_CTRM; + USB->ISTR = 0; + // Endpoint 0 - CONTROL + // ON USB LS size of EP0 may be 8 bytes, but on FS it should be 64 bytes! + lastaddr = LASTADDR_DEFAULT; + if(EP_Init(0, EP_TYPE_CONTROL, USB_EP0_BUFSZ, USB_EP0_BUFSZ, EP0_Handler)){ + DBG("Err init EP0"); + } + // clear address, leave only enable bit + USB->DADDR = USB_DADDR_EF; + // state is default - wait for enumeration + USB_Dev.USB_Status = USB_DEFAULT_STATE; + } + if(USB->ISTR & USB_ISTR_CTR){ + // EP number + uint8_t n = USB->ISTR & USB_ISTR_EPID; + // copy status register + uint16_t epstatus = USB->EPnR[n]; + // dump = 1; + // Calculate flags + endpoints[n].rx_flag = (epstatus & USB_EPnR_CTR_RX) ? 1 : 0; + endpoints[n].setup_flag = (epstatus & USB_EPnR_SETUP) ? 1 : 0; + endpoints[n].tx_flag = (epstatus & USB_EPnR_CTR_TX) ? 1 : 0; + // copy received bytes amount + endpoints[n].rx_cnt = USB_BTABLE->EP[n].USB_COUNT_RX & 0x3FF; // low 10 bits is counter + // check direction + if(USB->ISTR & USB_ISTR_DIR){ // OUT interrupt - receive data, CTR_RX==1 (if CTR_TX == 1 - two pending transactions: receive following by transmit) + if(n == 0){ // control endpoint + if(epstatus & USB_EPnR_SETUP){ // setup packet -> copy data to conf_pack + EP_Read(0, (uint16_t*)&setup_packet); + ep0dbuflen = 0; + // interrupt handler will be called later + }else if(epstatus & USB_EPnR_CTR_RX){ // data packet -> push received data to ep0databuf + ep0dbuflen = endpoints[0].rx_cnt; + EP_Read(0, (uint16_t*)&ep0databuf); + } + } + }else{ // IN interrupt - transmit data, only CTR_TX == 1 + // enumeration end could be here (if EP0) + } + // prepare status field for EP handler + endpoints[n].status = epstatus; + // call EP handler (even if it will change EPnR, it should return new status) + epstatus = endpoints[n].func(endpoints[n]); + // keep DTOG state + epstatus = KEEP_DTOG_TX(epstatus); + epstatus = KEEP_DTOG_RX(epstatus); + // clear all RX/TX flags + epstatus = CLEAR_CTR_RX(epstatus); + epstatus = CLEAR_CTR_TX(epstatus); + // refresh EPnR + USB->EPnR[n] = epstatus; + } +} + +/* + if (USB->ISTR & USB_ISTR_PMAOVR) { + MSG("PMAOVR\n"); + // Handle PMAOVR status + } + if (USB->ISTR & USB_ISTR_SUSP) { + MSG("SUSP\n"); + if (USB->DADDR & 0x7f) { + USB->DADDR = 0; + USB->CNTR &= ~ 0x800; + } + } + if (USB->ISTR & USB_ISTR_ERR) { + MSG("ERR\n"); + // Handle Error + } + if (USB->ISTR & USB_ISTR_WKUP) { + MSG("WKUP\n"); + // Handle Wakeup + } + if (USB->ISTR & USB_ISTR_SOF) { + MSG("SOF\n"); + // Handle SOF + } + if (USB->ISTR & USB_ISTR_ESOF) { + MSG("ESOF\n"); + // Handle ESOF + } + USB->ISTR = 0; +*/ + +void usb_lp_can_rx0_isr(){ + usb_isr(); +} + +void usb_hp_can_tx_isr(){ + usb_isr(); +} + +/** + * Write data to EP buffer (called from IRQ handler) + * @param number - EP number + * @param *buf - array with data + * @param size - its size + */ +void EP_WriteIRQ(uint8_t number, const uint8_t *buf, uint16_t size){ + uint8_t i; + if(size > USB_TXBUFSZ) size = USB_TXBUFSZ; + uint16_t N2 = (size + 1) >> 1; + // the buffer is 16-bit, so we should copy data as it would be uint16_t + uint16_t *buf16 = (uint16_t *)buf; + uint32_t *out = (uint32_t *)endpoints[number].tx_buf; + for(i = 0; i < N2; ++i, ++out){ + *out = buf16[i]; + } + USB_BTABLE->EP[number].USB_COUNT_TX = size; +} + +/** + * Write data to EP buffer (called outside IRQ handler) + * @param number - EP number + * @param *buf - array with data + * @param size - its size + */ +void EP_Write(uint8_t number, const uint8_t *buf, uint16_t size){ + uint16_t status = USB->EPnR[number]; + EP_WriteIRQ(number, buf, size); + status = SET_NAK_RX(status); + status = SET_VALID_TX(status); + status = KEEP_DTOG_TX(status); + status = KEEP_DTOG_RX(status); + USB->EPnR[number] = status; +} + +/* + * Copy data from EP buffer into user buffer area + * @param *buf - user array for data + * @return amount of data read + */ +int EP_Read(uint8_t number, uint16_t *buf){ + int n = (endpoints[number].rx_cnt + 1) >> 1; + uint32_t *in = (uint32_t *)endpoints[number].rx_buf; + if(n){ + for(int i = 0; i < n; ++i, ++in) + buf[i] = *(uint16_t*)in; + } + return endpoints[number].rx_cnt; +} + +// USB status +uint8_t USB_GetState(){ + return USB_Dev.USB_Status; +} diff --git a/F1-nolib/chronometer_v3/usb_lib.h b/F1-nolib/chronometer_v3/usb_lib.h new file mode 100644 index 0000000..25398c5 --- /dev/null +++ b/F1-nolib/chronometer_v3/usb_lib.h @@ -0,0 +1,202 @@ +/* + * geany_encoding=koi8-r + * usb_lib.h + * + * Copyright 2018 Edward V. Emelianov + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#pragma once +#ifndef __USB_LIB_H__ +#define __USB_LIB_H__ + +#include +#include "usb_defs.h" + +#define EP0DATABUF_SIZE (64) +#define LASTADDR_DEFAULT (STM32ENDPOINTS * 8) + +// Max EP amount (EP0 + other used) +//#define ENDPOINTS_NUM 4 +// bmRequestType & 0x7f +#define STANDARD_DEVICE_REQUEST_TYPE 0 +#define STANDARD_ENDPOINT_REQUEST_TYPE 2 +#define VENDOR_REQUEST_TYPE 0x40 +#define CONTROL_REQUEST_TYPE 0x21 +// bRequest, standard; for bmRequestType == 0x80 +#define GET_STATUS 0x00 +#define GET_DESCRIPTOR 0x06 +#define GET_CONFIGURATION 0x08 +// for bmRequestType == 0 +#define CLEAR_FEATURE 0x01 +#define SET_FEATURE 0x03 // unused +#define SET_ADDRESS 0x05 +#define SET_DESCRIPTOR 0x07 // unused +#define SET_CONFIGURATION 0x09 +// for bmRequestType == 0x81, 1 or 0xB2 +#define GET_INTERFACE 0x0A // unused +#define SET_INTERFACE 0x0B // unused +#define SYNC_FRAME 0x0C // unused +#define VENDOR_REQUEST 0x01 // unused + +// Class-Specific Control Requests +#define SEND_ENCAPSULATED_COMMAND 0x00 // unused +#define GET_ENCAPSULATED_RESPONSE 0x01 // unused +#define SET_COMM_FEATURE 0x02 // unused +#define GET_COMM_FEATURE 0x03 // unused +#define CLEAR_COMM_FEATURE 0x04 // unused +#define SET_LINE_CODING 0x20 +#define GET_LINE_CODING 0x21 +#define SET_CONTROL_LINE_STATE 0x22 +#define SEND_BREAK 0x23 + +// control line states +#define CONTROL_DTR 0x01 +#define CONTROL_RTS 0x02 + +// wValue +#define DEVICE_DESCRIPTOR 0x100 +#define CONFIGURATION_DESCRIPTOR 0x200 +#define STRING_LANG_DESCRIPTOR 0x300 +#define STRING_MAN_DESCRIPTOR 0x301 +#define STRING_PROD_DESCRIPTOR 0x302 +#define STRING_SN_DESCRIPTOR 0x303 +#define DEVICE_QUALIFIER_DESCRIPTOR 0x600 + +// EPnR bits manipulation +#define CLEAR_DTOG_RX(R) (R & USB_EPnR_DTOG_RX) ? R : (R & (~USB_EPnR_DTOG_RX)) +#define SET_DTOG_RX(R) (R & USB_EPnR_DTOG_RX) ? (R & (~USB_EPnR_DTOG_RX)) : R +#define TOGGLE_DTOG_RX(R) (R | USB_EPnR_DTOG_RX) +#define KEEP_DTOG_RX(R) (R & (~USB_EPnR_DTOG_RX)) +#define CLEAR_DTOG_TX(R) (R & USB_EPnR_DTOG_TX) ? R : (R & (~USB_EPnR_DTOG_TX)) +#define SET_DTOG_TX(R) (R & USB_EPnR_DTOG_TX) ? (R & (~USB_EPnR_DTOG_TX)) : R +#define TOGGLE_DTOG_TX(R) (R | USB_EPnR_DTOG_TX) +#define KEEP_DTOG_TX(R) (R & (~USB_EPnR_DTOG_TX)) +#define SET_VALID_RX(R) ((R & USB_EPnR_STAT_RX) ^ USB_EPnR_STAT_RX) | (R & (~USB_EPnR_STAT_RX)) +#define SET_NAK_RX(R) ((R & USB_EPnR_STAT_RX) ^ USB_EPnR_STAT_RX_1) | (R & (~USB_EPnR_STAT_RX)) +#define SET_STALL_RX(R) ((R & USB_EPnR_STAT_RX) ^ USB_EPnR_STAT_RX_0) | (R & (~USB_EPnR_STAT_RX)) +#define KEEP_STAT_RX(R) (R & (~USB_EPnR_STAT_RX)) +#define SET_VALID_TX(R) ((R & USB_EPnR_STAT_TX) ^ USB_EPnR_STAT_TX) | (R & (~USB_EPnR_STAT_TX)) +#define SET_NAK_TX(R) ((R & USB_EPnR_STAT_TX) ^ USB_EPnR_STAT_TX_1) | (R & (~USB_EPnR_STAT_TX)) +#define SET_STALL_TX(R) ((R & USB_EPnR_STAT_TX) ^ USB_EPnR_STAT_TX_0) | (R & (~USB_EPnR_STAT_TX)) +#define KEEP_STAT_TX(R) (R & (~USB_EPnR_STAT_TX)) +#define CLEAR_CTR_RX(R) (R & (~USB_EPnR_CTR_RX)) +#define CLEAR_CTR_TX(R) (R & (~USB_EPnR_CTR_TX)) +#define CLEAR_CTR_RX_TX(R) (R & (~(USB_EPnR_CTR_TX | USB_EPnR_CTR_RX))) + +// USB state: uninitialized, addressed, ready for use +#define USB_DEFAULT_STATE 0 +#define USB_ADRESSED_STATE 1 +#define USB_CONFIGURE_STATE 2 + +// EP types +#define EP_TYPE_BULK 0x00 +#define EP_TYPE_CONTROL 0x01 +#define EP_TYPE_ISO 0x02 +#define EP_TYPE_INTERRUPT 0x03 + +#define LANG_US (uint16_t)0x0409 + +#define _USB_STRING_(name, str) \ +static const struct name \ +{ \ + uint8_t bLength; \ + uint8_t bDescriptorType; \ + uint16_t bString[(sizeof(str) - 2) / 2]; \ + \ +} \ +name = {sizeof(name), 0x03, str} + +#define _USB_LANG_ID_(name, lng_id) \ + \ +static const struct name \ +{ \ + uint8_t bLength; \ + uint8_t bDescriptorType; \ + uint16_t bString; \ + \ +} \ +name = {0x04, 0x03, lng_id} +#define STRING_LANG_DESCRIPTOR_SIZE_BYTE (4) + +// EP0 configuration packet +typedef struct { + uint8_t bmRequestType; + uint8_t bRequest; + uint16_t wValue; + uint16_t wIndex; + uint16_t wLength; +} config_pack_t; + +// endpoints state +typedef struct __ep_t{ + uint16_t *tx_buf; // transmission buffer address + uint16_t *rx_buf; // reception buffer address + uint16_t (*func)(); // endpoint action function + uint16_t status; // status flags + unsigned rx_cnt : 10; // received data counter + unsigned tx_flag : 1; // transmission flag + unsigned rx_flag : 1; // reception flag + unsigned setup_flag : 1; // this is setup packet (only for EP0) +} ep_t; + +// USB status & its address +typedef struct { + uint8_t USB_Status; + uint16_t USB_Addr; +}usb_dev_t; + +typedef struct { + uint32_t dwDTERate; + uint8_t bCharFormat; + #define USB_CDC_1_STOP_BITS 0 + #define USB_CDC_1_5_STOP_BITS 1 + #define USB_CDC_2_STOP_BITS 2 + uint8_t bParityType; + #define USB_CDC_NO_PARITY 0 + #define USB_CDC_ODD_PARITY 1 + #define USB_CDC_EVEN_PARITY 2 + #define USB_CDC_MARK_PARITY 3 + #define USB_CDC_SPACE_PARITY 4 + uint8_t bDataBits; +} __attribute__ ((packed)) usb_LineCoding; + +typedef struct { + uint8_t bmRequestType; + uint8_t bNotificationType; + uint16_t wValue; + uint16_t wIndex; + uint16_t wLength; +} __attribute__ ((packed)) usb_cdc_notification; + +extern ep_t endpoints[]; + +void USB_Init(); +uint8_t USB_GetState(); +int EP_Init(uint8_t number, uint8_t type, uint16_t txsz, uint16_t rxsz, uint16_t (*func)(ep_t ep)); +void EP_WriteIRQ(uint8_t number, const uint8_t *buf, uint16_t size); +void EP_Write(uint8_t number, const uint8_t *buf, uint16_t size); +int EP_Read(uint8_t number, uint16_t *buf); +usb_LineCoding getLineCoding(); + +void WEAK linecoding_handler(usb_LineCoding *lc); +void WEAK clstate_handler(uint16_t val); +void WEAK break_handler(); +void WEAK vendor_handler(config_pack_t *packet); + +#endif // __USB_LIB_H__