From 5f89b3efd2d7cb4cf9fa5589116ae4e716776bef Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sun, 18 Nov 2018 11:16:33 +0100 Subject: [PATCH] First version of submodule implementation Based on ATTiny2313 / ATTiny4313 --- .gitignore | 4 +- kicad/Stairs-cache.lib | 387 +++ kicad/Stairs.kicad_pcb | 2350 +++++++++++++++++ kicad/Stairs.net | 581 ++++ kicad/Stairs.pro | 30 + kicad/Stairs.sch | 992 +++++++ kicad/fp-lib-table | 5 + kicad/libs/AMS1117-5.0.bck | 29 + kicad/libs/AMS1117-5.0.dcm | 3 + kicad/libs/AMS1117-5.0.lib | 24 + kicad/libs/AMS1117-5.0.mod | 73 + kicad/libs/MAX485.bck | 3 + kicad/libs/MAX485.dcm | 3 + kicad/libs/MAX485.lib | 32 + kicad/libs/MAX485.mod | 214 ++ kicad/libs/PCA9685-TSSOP.bck | 43 + kicad/libs/PCA9685-TSSOP.dcm | 3 + kicad/libs/PCA9685-TSSOP.lib | 44 + ...MD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib | 47 + ...MD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod | 67 + kicad/sym-lib-table | 6 + module/build.bat | 1 + module/fuses.bat | 3 + module/platformio.ini | 19 + module/src/display.c | 126 + module/src/display.h | 14 + module/src/global.c | 59 + module/src/global.h | 19 + module/src/lib/TinyMillis.c | 46 + module/src/lib/TinyMillis.h | 21 + module/src/lib/TinyRS485.c | 262 ++ module/src/lib/TinyRS485.h | 69 + module/src/lib/TinyUART.c | 161 ++ module/src/lib/TinyUART.h | 86 + module/src/lib/VeryTinyBigChars.c | 134 + module/src/lib/VeryTinyBigChars.h | 24 + module/src/lib/VeryTinyI2C.c | 153 ++ module/src/lib/VeryTinyI2C.h | 54 + module/src/lib/VeryTinySSD1306.c | 517 ++++ module/src/lib/VeryTinySSD1306.h | 113 + module/src/main.c | 83 + module/upload.bat | 1 + 42 files changed, 6904 insertions(+), 1 deletion(-) create mode 100644 kicad/Stairs-cache.lib create mode 100644 kicad/Stairs.kicad_pcb create mode 100644 kicad/Stairs.net create mode 100644 kicad/Stairs.pro create mode 100644 kicad/Stairs.sch create mode 100644 kicad/fp-lib-table create mode 100644 kicad/libs/AMS1117-5.0.bck create mode 100644 kicad/libs/AMS1117-5.0.dcm create mode 100644 kicad/libs/AMS1117-5.0.lib create mode 100644 kicad/libs/AMS1117-5.0.mod create mode 100644 kicad/libs/MAX485.bck create mode 100644 kicad/libs/MAX485.dcm create mode 100644 kicad/libs/MAX485.lib create mode 100644 kicad/libs/MAX485.mod create mode 100644 kicad/libs/PCA9685-TSSOP.bck create mode 100644 kicad/libs/PCA9685-TSSOP.dcm create mode 100644 kicad/libs/PCA9685-TSSOP.lib create mode 100644 kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib create mode 100644 kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod create mode 100644 kicad/sym-lib-table create mode 100644 module/build.bat create mode 100644 module/fuses.bat create mode 100644 module/platformio.ini create mode 100644 module/src/display.c create mode 100644 module/src/display.h create mode 100644 module/src/global.c create mode 100644 module/src/global.h create mode 100644 module/src/lib/TinyMillis.c create mode 100644 module/src/lib/TinyMillis.h create mode 100644 module/src/lib/TinyRS485.c create mode 100644 module/src/lib/TinyRS485.h create mode 100644 module/src/lib/TinyUART.c create mode 100644 module/src/lib/TinyUART.h create mode 100644 module/src/lib/VeryTinyBigChars.c create mode 100644 module/src/lib/VeryTinyBigChars.h create mode 100644 module/src/lib/VeryTinyI2C.c create mode 100644 module/src/lib/VeryTinyI2C.h create mode 100644 module/src/lib/VeryTinySSD1306.c create mode 100644 module/src/lib/VeryTinySSD1306.h create mode 100644 module/src/main.c create mode 100644 module/upload.bat diff --git a/.gitignore b/.gitignore index 141b09d..b367048 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ bin *.sublime-workspace node_modules -src/secret.h \ No newline at end of file +src/secret.h +/kicad/Stairs.kicad_pcb-bak +/kicad/Stairs.bak \ No newline at end of file diff --git a/kicad/Stairs-cache.lib b/kicad/Stairs-cache.lib new file mode 100644 index 0000000..4d82004 --- /dev/null +++ b/kicad/Stairs-cache.lib @@ -0,0 +1,387 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# AMS1117-5.0_AMS1117-5.0 +# +DEF AMS1117-5.0_AMS1117-5.0 U 0 40 Y Y 1 L N +F0 "U" -400 220 50 H V L BNN +F1 "AMS1117-5.0_AMS1117-5.0" -401 -321 50 H V L BNN +F2 "SOT229P700X180-4N" 0 0 50 H I L BNN +F3 "Sot223/Pkg 1-Amp 5-Volt Low Drop Out Voltage Regulatator" 0 0 50 H I L BNN +F4 "Unavailable" 0 0 50 H I L BNN +F5 "Advanced Monolithic Systems" 0 0 50 H I L BNN +F6 "None" 0 0 50 H I L BNN +F7 "None" 0 0 50 H I L BNN +F8 "AMS1117-5.0" 0 0 50 H I L BNN +DRAW +S -400 200 400 -200 0 1 0 f +X ADJ/GND 1 600 -100 200 L 40 40 0 0 W +X VOUT 2 600 100 200 L 40 40 0 0 O +X VIN 3 -600 100 200 R 40 40 0 0 I +ENDDRAW +ENDDEF +# +# Connector_Generic_Conn_01x02 +# +DEF Connector_Generic_Conn_01x02 J 0 40 Y N 1 F N +F0 "J" 0 100 50 H V C CNN +F1 "Connector_Generic_Conn_01x02" 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*:*_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 +# +# Connector_Generic_Conn_01x04 +# +DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N +F0 "J" 0 200 50 H V C CNN +F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_1x??_* +$ENDFPLIST +DRAW +S -50 -195 0 -205 1 1 6 N +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 105 0 95 1 1 6 N +S -50 150 50 -250 1 1 10 f +X Pin_1 1 -200 100 150 R 50 50 1 1 P +X Pin_2 2 -200 0 150 R 50 50 1 1 P +X Pin_3 3 -200 -100 150 R 50 50 1 1 P +X Pin_4 4 -200 -200 150 R 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Connector_Generic_Conn_01x06 +# +DEF Connector_Generic_Conn_01x06 J 0 40 Y N 1 F N +F0 "J" 0 300 50 H V C CNN +F1 "Connector_Generic_Conn_01x06" 0 -400 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_1x??_* +$ENDFPLIST +DRAW +S -50 -295 0 -305 1 1 6 N +S -50 -195 0 -205 1 1 6 N +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 105 0 95 1 1 6 N +S -50 205 0 195 1 1 6 N +S -50 250 50 -350 1 1 10 f +X Pin_1 1 -200 200 150 R 50 50 1 1 P +X Pin_2 2 -200 100 150 R 50 50 1 1 P +X Pin_3 3 -200 0 150 R 50 50 1 1 P +X Pin_4 4 -200 -100 150 R 50 50 1 1 P +X Pin_5 5 -200 -200 150 R 50 50 1 1 P +X Pin_6 6 -200 -300 150 R 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Connector_Generic_Conn_02x03_Counter_Clockwise +# +DEF Connector_Generic_Conn_02x03_Counter_Clockwise J 0 40 Y N 1 F N +F0 "J" 50 200 50 H V C CNN +F1 "Connector_Generic_Conn_02x03_Counter_Clockwise" 50 -200 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Connector*:*_2x??_* +$ENDFPLIST +DRAW +S -50 -95 0 -105 1 1 6 N +S -50 5 0 -5 1 1 6 N +S -50 105 0 95 1 1 6 N +S -50 150 150 -150 1 1 10 f +S 150 -95 100 -105 1 1 6 N +S 150 5 100 -5 1 1 6 N +S 150 105 100 95 1 1 6 N +X Pin_1 1 -200 100 150 R 50 50 1 1 P +X Pin_2 2 -200 0 150 R 50 50 1 1 P +X Pin_3 3 -200 -100 150 R 50 50 1 1 P +X Pin_4 4 300 -100 150 L 50 50 1 1 P +X Pin_5 5 300 0 150 L 50 50 1 1 P +X Pin_6 6 300 100 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Device_C +# +DEF Device_C C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "Device_C" 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 +# +# Device_Crystal_Small +# +DEF Device_Crystal_Small Y 0 40 N N 1 F N +F0 "Y" 0 100 50 H V C CNN +F1 "Device_Crystal_Small" 0 -100 50 H V C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +$FPLIST + Crystal* +$ENDFPLIST +DRAW +S -30 -60 30 60 0 1 0 N +P 2 0 1 15 -50 -30 -50 30 N +P 2 0 1 15 50 -30 50 30 N +X 1 1 -100 0 50 R 50 50 1 1 P +X 2 2 100 0 50 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Device_R +# +DEF Device_R R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "Device_R" 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_* +$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 +# +# MAX485_MAX485 +# +DEF MAX485_MAX485 U 0 40 Y Y 1 L N +F0 "U" -401 301 50 H V L BNN +F1 "MAX485_MAX485" -401 -301 50 H V L BNN +F2 "" 0 0 50 H I C CNN +F3 "Maxim Integrated" 0 0 50 H I L BNN +F4 "None" 0 0 50 H I L BNN +F5 "Unavailable" 0 0 50 H I L BNN +F6 "None" 0 0 50 H I L BNN +F7 "MAX485" 0 0 50 H I L BNN +$FPLIST + DIL08 + SO08 +$ENDFPLIST +DRAW +S -400 300 400 -200 0 1 0 f +X RO 1 -600 200 200 R 40 40 0 0 B +X RE 2 -600 100 200 R 40 40 0 0 B I +X DE 3 -600 0 200 R 40 40 0 0 B +X DI 4 -600 -100 200 R 40 40 0 0 B +X GND 5 600 -100 200 L 40 40 0 0 W +X A 6 600 0 200 L 40 40 0 0 B +X B 7 600 100 200 L 40 40 0 0 B +X VCC 8 600 200 200 L 40 40 0 0 W +ENDDRAW +ENDDEF +# +# MCU_Microchip_ATtiny_ATtiny2313A-SU +# +DEF MCU_Microchip_ATtiny_ATtiny2313A-SU U 0 20 Y Y 1 F N +F0 "U" -500 1050 50 H V L BNN +F1 "MCU_Microchip_ATtiny_ATtiny2313A-SU" 100 -1050 50 H V L TNN +F2 "Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm" 0 0 50 H I C CIN +F3 "" 0 0 50 H I C CNN +ALIAS ATtiny2313-20SU ATtiny2313A-SU ATtiny4313-SU +$FPLIST + SOIC*7.5x12.8mm*P1.27mm* +$ENDFPLIST +DRAW +S -500 -1000 500 1000 0 1 10 f +X PA2/~RESET 1 -600 800 100 R 50 50 1 1 T +X GND 10 0 -1100 100 U 50 50 1 1 W +X PD6 11 600 -700 100 L 50 50 1 1 T +X PB0 12 600 800 100 L 50 50 1 1 T +X PB1 13 600 700 100 L 50 50 1 1 T +X PB2 14 600 600 100 L 50 50 1 1 T +X PB3 15 600 500 100 L 50 50 1 1 T +X PB4 16 600 400 100 L 50 50 1 1 T +X PB5 17 600 300 100 L 50 50 1 1 T +X PB6 18 600 200 100 L 50 50 1 1 T +X PB7 19 600 100 100 L 50 50 1 1 T +X PD0 2 600 -100 100 L 50 50 1 1 T +X VCC 20 0 1100 100 D 50 50 1 1 W +X PD1 3 600 -200 100 L 50 50 1 1 T +X PA1/XTAL2 4 -600 400 100 R 50 50 1 1 T +X PA0/XTAL1 5 -600 600 100 R 50 50 1 1 T +X PD2 6 600 -300 100 L 50 50 1 1 T +X PD3 7 600 -400 100 L 50 50 1 1 T +X PD4 8 600 -500 100 L 50 50 1 1 T +X PD5 9 600 -600 100 L 50 50 1 1 T +ENDDRAW +ENDDEF +# +# PCA9685-TSSOP_PCA9685-TSSOP +# +DEF PCA9685-TSSOP_PCA9685-TSSOP U 0 40 Y Y 1 F N +F0 "U" 0 -100 50 H V C CNN +F1 "PCA9685-TSSOP_PCA9685-TSSOP" 0 100 50 H V C CNN +F2 "MODULE" 0 0 50 H I C CNN +F3 "DOCUMENTATION" 0 0 50 H I C CNN +DRAW +S -450 -850 450 850 1 0 0 f +X A0 1 -750 650 300 R 50 50 1 1 I +X LED4 10 -750 -250 300 R 50 50 1 1 O +X LED5 11 -750 -350 300 R 50 50 1 1 O +X LED6 12 -750 -450 300 R 50 50 1 1 O +X LED7 13 -750 -550 300 R 50 50 1 1 O +X GND 14 -750 -650 300 R 50 50 1 1 I +X LED8 15 750 -650 300 L 50 50 1 1 O +X LED9 16 750 -550 300 L 50 50 1 1 O +X LED10 17 750 -450 300 L 50 50 1 1 O +X LED11 18 750 -350 300 L 50 50 1 1 O +X LED12 19 750 -250 300 L 50 50 1 1 O +X A1 2 -750 550 300 R 50 50 1 1 I +X LED13 20 750 -150 300 L 50 50 1 1 O +X LED14 21 750 -50 300 L 50 50 1 1 O +X LED15 22 750 50 300 L 50 50 1 1 O +X OE 23 750 150 300 L 50 50 1 1 I +X A5 24 750 250 300 L 50 50 1 1 I +X EXTCLK 25 750 350 300 L 50 50 1 1 I +X SCL 26 750 450 300 L 50 50 1 1 I +X SDA 27 750 550 300 L 50 50 1 1 B +X VCC 28 750 650 300 L 50 50 1 1 I +X A2 3 -750 450 300 R 50 50 1 1 I +X A3 4 -750 350 300 R 50 50 1 1 I +X A4 5 -750 250 300 R 50 50 1 1 I +X LED0 6 -750 150 300 R 50 50 1 1 O +X LED1 7 -750 50 300 R 50 50 1 1 O +X LED2 8 -750 -50 300 R 50 50 1 1 O +X LED3 9 -750 -150 300 R 50 50 1 1 O +ENDDRAW +ENDDEF +# +# Switch_SW_Push +# +DEF Switch_SW_Push SW 0 40 N N 1 F N +F0 "SW" 50 100 50 H V L CNN +F1 "Switch_SW_Push" 0 -60 50 H V C CNN +F2 "" 0 200 50 H I C CNN +F3 "" 0 200 50 H I C CNN +DRAW +C -80 0 20 0 1 0 N +C 80 0 20 0 1 0 N +P 2 0 1 0 0 50 0 120 N +P 2 0 1 0 100 50 -100 50 N +X 1 1 -200 0 100 R 50 50 0 1 P +X 2 2 200 0 100 L 50 50 0 1 P +ENDDRAW +ENDDEF +# +# Transistor_FET_IRLB8721PBF +# +DEF Transistor_FET_IRLB8721PBF Q 0 0 Y N 1 F N +F0 "Q" 250 75 50 H V L CNN +F1 "Transistor_FET_IRLB8721PBF" 250 0 50 H V L CNN +F2 "Package_TO_SOT_THT:TO-220-3_Vertical" 250 -75 50 H I L CIN +F3 "" 0 0 50 H I L CNN +ALIAS IRF3205 IRF540N IRF740 IRLB8721PBF IRLZ34N IRLZ44N +$FPLIST + TO?220* +$ENDFPLIST +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 10 0 -100 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 100 R 50 50 1 1 I +X D 2 100 200 100 D 50 50 1 1 P +X S 3 100 -200 100 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# power_+12V +# +DEF power_+12V #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "power_+12V" 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 +# +# power_+5V +# +DEF power_+5V #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "power_+5V" 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 +5V 1 0 0 0 U 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# power_GND +# +DEF power_GND #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "power_GND" 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 +# +# power_PWR_FLAG +# +DEF power_PWR_FLAG #FLG 0 0 N N 1 F P +F0 "#FLG" 0 75 50 H I C CNN +F1 "power_PWR_FLAG" 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 -40 75 0 100 40 75 0 50 N +X pwr 1 0 0 0 U 50 50 0 0 w +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/Stairs.kicad_pcb b/kicad/Stairs.kicad_pcb new file mode 100644 index 0000000..0766c00 --- /dev/null +++ b/kicad/Stairs.kicad_pcb @@ -0,0 +1,2350 @@ +(kicad_pcb (version 20171130) (host pcbnew "(5.0.1)-3") + + (general + (thickness 1.6) + (drawings 4) + (tracks 276) + (zones 0) + (modules 29) + (nets 25) + ) + + (page A4) + (title_block + (title "Stairs submodule") + (date 2018-09-03) + (rev 1) + (company "Mark van Renswoude") + ) + + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user hide) + (33 F.Adhes user hide) + (34 B.Paste user hide) + (35 F.Paste user hide) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user hide) + (41 Cmts.User user hide) + (42 Eco1.User user hide) + (43 Eco2.User user hide) + (44 Edge.Cuts user) + (45 Margin user hide) + (46 B.CrtYd user hide) + (47 F.CrtYd user hide) + (48 B.Fab user hide) + (49 F.Fab user hide) + ) + + (setup + (last_trace_width 0.25) + (user_trace_width 0.5) + (user_trace_width 1) + (user_trace_width 3) + (trace_clearance 0.2) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (segment_width 0.2) + (edge_width 0.15) + (via_size 0.8) + (via_drill 0.4) + (via_min_size 0.4) + (via_min_drill 0.3) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (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 3.2 3.2) + (pad_drill 3.2) + (pad_to_mask_clearance 0.2) + (solder_mask_min_width 0.25) + (aux_axis_origin 128.016 121.158) + (visible_elements 7FFFFFFF) + (pcbplotparams + (layerselection 0x010f0_ffffffff) + (usegerberextensions false) + (usegerberattributes true) + (usegerberadvancedattributes false) + (creategerberjobfile false) + (excludeedgelayer false) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin true) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk true) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 0) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 GND) + (net 2 +5V) + (net 3 +12V) + (net 4 "Net-(C1-Pad1)") + (net 5 "Net-(C2-Pad1)") + (net 6 "Net-(P1-Pad2)") + (net 7 "Net-(P1-Pad1)") + (net 8 /PD) + (net 9 "Net-(PCA9685-Pad7)") + (net 10 "Net-(PCA9685-Pad6)") + (net 11 "Net-(Q1-Pad1)") + (net 12 "Net-(Q2-Pad1)") + (net 13 "Net-(U1-Pad3)") + (net 14 "Net-(U1-Pad2)") + (net 15 MOSI) + (net 16 RST) + (net 17 SCK) + (net 18 MISO) + (net 19 "Net-(U1-Pad11)") + (net 20 "Net-(P3-Pad4)") + (net 21 "Net-(P3-Pad1)") + (net 22 "Net-(P4-Pad1)") + (net 23 "Net-(P4-Pad3)") + (net 24 "Net-(SW1-Pad1)") + + (net_class Default "This is the default net class." + (clearance 0.2) + (trace_width 0.25) + (via_dia 0.8) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net /PD) + (add_net GND) + (add_net MISO) + (add_net MOSI) + (add_net "Net-(C1-Pad1)") + (add_net "Net-(C2-Pad1)") + (add_net "Net-(P1-Pad1)") + (add_net "Net-(P1-Pad2)") + (add_net "Net-(P3-Pad1)") + (add_net "Net-(P3-Pad4)") + (add_net "Net-(P4-Pad1)") + (add_net "Net-(P4-Pad3)") + (add_net "Net-(PCA9685-Pad6)") + (add_net "Net-(PCA9685-Pad7)") + (add_net "Net-(Q1-Pad1)") + (add_net "Net-(Q2-Pad1)") + (add_net "Net-(SW1-Pad1)") + (add_net "Net-(U1-Pad11)") + (add_net "Net-(U1-Pad2)") + (add_net "Net-(U1-Pad3)") + (add_net RST) + (add_net SCK) + ) + + (net_class +5V "" + (clearance 0.2) + (trace_width 0.25) + (via_dia 0.8) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net +5V) + ) + + (net_class POWAH "" + (clearance 0.4) + (trace_width 1) + (via_dia 0.8) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net +12V) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 5BE87EE9) (tstamp 5BE84D61) + (at 131.064 118.364) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (attr virtual) + (fp_text reference REF** (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3 (at 0 4.2) (layer F.Fab) + (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) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad "" np_thru_hole circle (at 1.016 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 5BE87EED) (tstamp 5BE88946) + (at 166.878 118.618) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (attr virtual) + (fp_text reference REF** (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3 (at 0 4.2) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (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 "" np_thru_hole circle (at 1.27 -0.254) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 5BE87EDC) (tstamp 5BE8895B) + (at 168.148 38.354) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (attr virtual) + (fp_text reference REF** (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3 (at 0 4.2) (layer F.Fab) + (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) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad "" np_thru_hole circle (at 0 0.762) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask)) + ) + + (module AMS1117-5.0:SOT229P700X180-4N (layer F.Cu) (tedit 5BE81782) (tstamp 5BE888DF) + (at 144.272 110.744 270) + (path /5B8AFB24) + (attr smd) + (fp_text reference AMS1117 (at 0 5.334 270) (layer F.SilkS) hide + (effects (font (size 1.00211 1.00211) (thickness 0.05))) + ) + (fp_text value AMS1117-5 (at -0.516467 5.54073 270) (layer F.SilkS) + (effects (font (size 1.00285 1.00285) (thickness 0.05))) + ) + (fp_line (start -3.36 1.86) (end -3.36 -1.86) (layer Dwgs.User) (width 0.127)) + (fp_line (start -3.36 -1.86) (end 3.36 -1.86) (layer Dwgs.User) (width 0.127)) + (fp_line (start 3.36 -1.86) (end 3.36 1.86) (layer Dwgs.User) (width 0.127)) + (fp_line (start 3.36 1.86) (end -3.36 1.86) (layer Dwgs.User) (width 0.127)) + (fp_line (start -3.36 1.86) (end -3.36 -1.86) (layer F.SilkS) (width 0.127)) + (fp_line (start 3.36 1.86) (end 3.36 -1.86) (layer F.SilkS) (width 0.127)) + (fp_line (start -3.36 1.86) (end -3.1 1.86) (layer F.SilkS) (width 0.127)) + (fp_line (start 3.11 1.86) (end 3.36 1.86) (layer F.SilkS) (width 0.127)) + (fp_line (start 3.36 -1.86) (end 1.87 -1.86) (layer F.SilkS) (width 0.127)) + (fp_line (start -1.76 -1.86) (end -3.36 -1.86) (layer F.SilkS) (width 0.127)) + (fp_circle (center -2.29 4.373) (end -2.19 4.373) (layer F.SilkS) (width 0.2)) + (fp_line (start -3.61 -2.11) (end -3.61 2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start -3.61 2.11) (end -3.01 2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start -3.01 2.11) (end -3.01 4.25) (layer Eco1.User) (width 0.05)) + (fp_line (start -3.01 4.25) (end 3.01 4.25) (layer Eco1.User) (width 0.05)) + (fp_line (start 3.01 4.25) (end 3.01 2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start 3.01 2.11) (end 3.61 2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start 3.61 2.11) (end 3.61 -2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start 3.61 -2.11) (end 1.87 -2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start 1.87 -2.11) (end 1.87 -4.25) (layer Eco1.User) (width 0.05)) + (fp_line (start 1.87 -4.25) (end -1.87 -4.25) (layer Eco1.User) (width 0.05)) + (fp_line (start -1.87 -4.25) (end -1.87 -2.11) (layer Eco1.User) (width 0.05)) + (fp_line (start -1.87 -2.11) (end -3.61 -2.11) (layer Eco1.User) (width 0.05)) + (pad 1 smd rect (at -2.29 3.345 270) (size 0.93 1.31) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (pad 2 smd rect (at 0 3.345 270) (size 0.93 1.31) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 3 smd rect (at 2.29 3.345 270) (size 0.93 1.31) (layers F.Cu F.Paste F.Mask) + (net 3 +12V)) + (pad 4 smd rect (at 0 -3.345 270) (size 3.24 1.31) (layers F.Cu F.Paste F.Mask)) + ) + + (module Capacitors_SMD:C_1206_HandSoldering (layer F.Cu) (tedit 58AA84D1) (tstamp 5BE88838) + (at 139.065 80.772 270) + (descr "Capacitor SMD 1206, hand soldering") + (tags "capacitor 1206") + (path /5B8B9824) + (attr smd) + (fp_text reference C1 (at -0.254 1.905 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 33pF (at 0 2 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 3.25 1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.25 1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.25 -1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.25 -1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_text user %R (at 0 -1.75 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 2 smd rect (at 2 0 270) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (pad 1 smd rect (at -2 0 270) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C1-Pad1)")) + (model Capacitors_SMD.3dshapes/C_1206.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_1206_HandSoldering (layer F.Cu) (tedit 58AA84D1) (tstamp 5BE888A1) + (at 139.065 73.787 90) + (descr "Capacitor SMD 1206, hand soldering") + (tags "capacitor 1206") + (path /5B8B93C9) + (attr smd) + (fp_text reference C2 (at 0 -1.75 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 33pF (at 0 2 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 -1.75 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start -3.25 -1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.25 -1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.25 1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.25 1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (pad 1 smd rect (at -2 0 90) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C2-Pad1)")) + (pad 2 smd rect (at 2 0 90) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (model Capacitors_SMD.3dshapes/C_1206.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Hand (layer F.Cu) (tedit 58CC8C08) (tstamp 5BE8886B) + (at 163.854217 77.311296 270) + (descr "Tantalum capacitor, Case D, EIA 7343-31, 7.3x4.3x2.8mm, Hand soldering footprint") + (tags "capacitor tantalum smd") + (path /5B8B090B) + (attr smd) + (fp_text reference C3 (at 0 0.024217 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 10µF (at 0 3.9 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -5.95 -2.4) (end -5.95 2.4) (layer F.SilkS) (width 0.12)) + (fp_line (start -5.95 2.4) (end 3.65 2.4) (layer F.SilkS) (width 0.12)) + (fp_line (start -5.95 -2.4) (end 3.65 -2.4) (layer F.SilkS) (width 0.12)) + (fp_line (start -2.555 -2.15) (end -2.555 2.15) (layer F.Fab) (width 0.1)) + (fp_line (start -2.92 -2.15) (end -2.92 2.15) (layer F.Fab) (width 0.1)) + (fp_line (start 3.65 -2.15) (end -3.65 -2.15) (layer F.Fab) (width 0.1)) + (fp_line (start 3.65 2.15) (end 3.65 -2.15) (layer F.Fab) (width 0.1)) + (fp_line (start -3.65 2.15) (end 3.65 2.15) (layer F.Fab) (width 0.1)) + (fp_line (start -3.65 -2.15) (end -3.65 2.15) (layer F.Fab) (width 0.1)) + (fp_line (start 6.05 -2.5) (end -6.05 -2.5) (layer F.CrtYd) (width 0.05)) + (fp_line (start 6.05 2.5) (end 6.05 -2.5) (layer F.CrtYd) (width 0.05)) + (fp_line (start -6.05 2.5) (end 6.05 2.5) (layer F.CrtYd) (width 0.05)) + (fp_line (start -6.05 -2.5) (end -6.05 2.5) (layer F.CrtYd) (width 0.05)) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 2 smd rect (at 3.775 0 270) (size 3.75 2.7) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 1 smd rect (at -3.775 0 270) (size 3.75 2.7) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (model Capacitors_Tantalum_SMD.3dshapes/CP_Tantalum_Case-D_EIA-7343-31.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_1206_HandSoldering (layer F.Cu) (tedit 58AA84D1) (tstamp 5BE88808) + (at 167.918217 77.054296 270) + (descr "Capacitor SMD 1206, hand soldering") + (tags "capacitor 1206") + (path /5B8B1267) + (attr smd) + (fp_text reference C4 (at -0.092296 -2.007783 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 100nF (at 0 2 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 3.25 1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.25 1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.25 -1.05) (end -3.25 1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.25 -1.05) (end 3.25 -1.05) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1 1.02) (end 1 1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start 1 -1.02) (end -1 -1.02) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.1)) + (fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.1)) + (fp_text user %R (at 0 -1.75 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 2 smd rect (at 2 0 270) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 1 smd rect (at -2 0 270) (size 2 1.6) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (model Capacitors_SMD.3dshapes/C_1206.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm (layer B.Cu) (tedit 59FF03AB) (tstamp 5BE887D0) + (at 132.08 62.992 90) + (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") + (tags "terminal block bornier2") + (path /5B8AE987) + (fp_text reference P1 (at 2.54 5.08 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value DATA_IN (at 2.54 -5.08 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 2.54 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 6 "Net-(P1-Pad2)")) + (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 7 "Net-(P1-Pad1)")) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm (layer B.Cu) (tedit 59FF03AB) (tstamp 5BE88983) + (at 168.275 57.912 270) + (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") + (tags "terminal block bornier2") + (path /5B8AE9DD) + (fp_text reference P2 (at 2.54 5.08 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value DATA_OUT (at 2.54 -5.08 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.54 0 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (pad 1 thru_hole rect (at 0 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 6 "Net-(P1-Pad2)")) + (pad 2 thru_hole circle (at 5.08 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 7 "Net-(P1-Pad1)")) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-6_P5.08mm (layer B.Cu) (tedit 59FF03F5) (tstamp 5BE88600) + (at 132.08 111.887 90) + (descr "simple 6pin terminal block, pitch 5.08mm, revamped version of bornier6") + (tags "terminal block bornier6") + (path /5B8AE6A5) + (fp_text reference P3 (at 12.65 4.55 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value SENSOR (at 12.7 -4.75 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 28.15 -4) (end -2.75 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 28.15 -4) (end 28.15 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.75 4) (end -2.75 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.75 4) (end 28.15 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 27.94 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end 27.94 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 -2.54) (end 27.94 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 27.94 -3.81) (end 27.94 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 27.9 3.75) (end -2.5 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 27.9 -3.75) (end 27.9 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -3.75) (end 27.9 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 3.75) (end -2.5 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.5 -2.55) (end 27.9 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 12.7 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 6 thru_hole circle (at 25.4 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 2 +5V)) + (pad 5 thru_hole circle (at 20.32 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 4 thru_hole circle (at 15.24 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 20 "Net-(P3-Pad4)")) + (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 21 "Net-(P3-Pad1)")) + (pad 3 thru_hole circle (at 10.16 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 2 +5V)) + (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-6_P5.08mm.wrl + (offset (xyz 12.69999980926514 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-4_P5.08mm (layer B.Cu) (tedit 59FF03D1) (tstamp 5BE88677) + (at 168.275 87.122 270) + (descr "simple 4-pin terminal block, pitch 5.08mm, revamped version of bornier4") + (tags "terminal block bornier4") + (path /5B8CBF27) + (fp_text reference P4 (at 7.6 4.8 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value LED (at 0.127 4.826 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 17.97 -4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 17.97 -4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.73 4) (end -2.73 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.73 4) (end 17.97 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 17.78 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.78 -3.81) (end 17.78 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 17.72 -3.75) (end -2.43 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 17.72 3.75) (end 17.72 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 3.75) (end 17.72 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -3.75) (end -2.48 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.43 -3.75) (end -2.48 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.48 -2.55) (end 17.72 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 16.383 4.572 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 4 thru_hole circle (at 15.24 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 3 +12V)) + (pad 1 thru_hole rect (at 0 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 22 "Net-(P4-Pad1)")) + (pad 3 thru_hole circle (at 10.16 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 23 "Net-(P4-Pad3)")) + (pad 2 thru_hole circle (at 5.08 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 3 +12V)) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-4_P5.08mm.wrl + (offset (xyz 7.619999885559082 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm (layer B.Cu) (tedit 59FF03AB) (tstamp 5BE87DC0) + (at 168.275 45.466 270) + (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") + (tags "terminal block bornier2") + (path /5B8ADA74) + (fp_text reference P5 (at 2.54 5.08 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value PWR_OUT (at 2.54 -5.08 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.54 0 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (pad 1 thru_hole rect (at 0 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 3 +12V)) + (pad 2 thru_hole circle (at 5.08 0 270) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm (layer B.Cu) (tedit 59FF03AB) (tstamp 5BE87D84) + (at 132.08 50.546 90) + (descr "simple 2-pin terminal block, pitch 5.08mm, revamped version of bornier2") + (tags "terminal block bornier2") + (path /5B8AD8CA) + (fp_text reference P6 (at 2.54 5.08 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value PWR_IN (at 2.54 -5.08 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 7.79 -4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end -2.71 -4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 4) (end 7.79 4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.54 -3.81) (end 7.62 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.54 3.81) (end -2.54 -3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 3.81) (end -2.54 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -3.81) (end 7.62 3.81) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.62 -2.54) (end -2.54 -2.54) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.54 3.75) (end -2.46 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 -3.75) (end 7.54 3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 -3.75) (end 7.54 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.75) (end -2.46 -3.75) (layer B.Fab) (width 0.1)) + (fp_line (start -2.41 -2.55) (end 7.49 -2.55) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 2.54 0 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 2 thru_hole circle (at 5.08 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 3 +12V)) + (pad 1 thru_hole rect (at 0 0 90) (size 3 3) (drill 1.52) (layers *.Cu *.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/Terminal_Blocks.3dshapes/TerminalBlock_bornier-2_P5.08mm.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm (layer B.Cu) (tedit 59650532) (tstamp 5BE88461) + (at 159.004 107.696 90) + (descr "Through hole straight pin header, 1x04, 2.54mm pitch, single row") + (tags "Through hole pin header THT 1x04 2.54mm single row") + (path /5B8C32B0) + (fp_text reference P7 (at 0 2.33 90) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value SSD1306 (at 0 -9.95 90) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 0 -3.81) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 1.8 -9.4) (end 1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -9.4) (end 1.8 -9.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end -1.8 -9.4) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.33 1.33) (end 0 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 0) (end -1.33 1.33) (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.33 -1.27) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -8.95) (end 1.33 -8.95) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 0.635) (end -0.635 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -8.89) (end -1.27 0.635) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 -8.89) (end -1.27 -8.89) (layer B.Fab) (width 0.1)) + (fp_line (start 1.27 1.27) (end 1.27 -8.89) (layer B.Fab) (width 0.1)) + (fp_line (start -0.635 1.27) (end 1.27 1.27) (layer B.Fab) (width 0.1)) + (pad 4 thru_hole oval (at 0 -7.62 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 3 thru_hole oval (at 0 -5.08 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 +5V)) + (pad 2 thru_hole oval (at 0 -2.54 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 17 SCK)) + (pad 1 thru_hole rect (at 0 0 90) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 15 MOSI)) + (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x04_Pitch2.54mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Housings_SSOP:TSSOP-28_4.4x9.7mm_Pitch0.65mm (layer F.Cu) (tedit 54130A77) (tstamp 5BE883EA) + (at 150.495 95.377 180) + (descr "TSSOP28: plastic thin shrink small outline package; 28 leads; body width 4.4 mm; (see NXP SSOP-TSSOP-VSO-REFLOW.pdf and sot361-1_po.pdf)") + (tags "SSOP 0.65") + (path /5B8AD5C2) + (attr smd) + (fp_text reference PCA9685 (at 0 -5.9 180) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value PCA9685-TSSOP (at 0 5.9 180) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 180) (layer F.Fab) + (effects (font (size 0.8 0.8) (thickness 0.15))) + ) + (fp_line (start -2.325 -4.75) (end -3.4 -4.75) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.325 4.975) (end 2.325 4.975) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.325 -4.975) (end 2.325 -4.975) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.325 4.975) (end -2.325 4.65) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.325 4.975) (end 2.325 4.65) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.325 -4.975) (end 2.325 -4.65) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.325 -4.975) (end -2.325 -4.75) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.65 5.15) (end 3.65 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.65 -5.15) (end 3.65 -5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.65 -5.15) (end 3.65 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.65 -5.15) (end -3.65 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.2 -3.85) (end -1.2 -4.85) (layer F.Fab) (width 0.15)) + (fp_line (start -2.2 4.85) (end -2.2 -3.85) (layer F.Fab) (width 0.15)) + (fp_line (start 2.2 4.85) (end -2.2 4.85) (layer F.Fab) (width 0.15)) + (fp_line (start 2.2 -4.85) (end 2.2 4.85) (layer F.Fab) (width 0.15)) + (fp_line (start -1.2 -4.85) (end 2.2 -4.85) (layer F.Fab) (width 0.15)) + (pad 28 smd rect (at 2.85 -4.225 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 27 smd rect (at 2.85 -3.575 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 15 MOSI)) + (pad 26 smd rect (at 2.85 -2.925 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 17 SCK)) + (pad 25 smd rect (at 2.85 -2.275 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 24 smd rect (at 2.85 -1.625 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 23 smd rect (at 2.85 -0.975 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 22 smd rect (at 2.85 -0.325 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 21 smd rect (at 2.85 0.325 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 20 smd rect (at 2.85 0.975 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 19 smd rect (at 2.85 1.625 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 18 smd rect (at 2.85 2.275 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 17 smd rect (at 2.85 2.925 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 16 smd rect (at 2.85 3.575 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 15 smd rect (at 2.85 4.225 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 14 smd rect (at -2.85 4.225 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (pad 13 smd rect (at -2.85 3.575 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 12 smd rect (at -2.85 2.925 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 11 smd rect (at -2.85 2.275 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 10 smd rect (at -2.85 1.625 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 9 smd rect (at -2.85 0.975 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 8 smd rect (at -2.85 0.325 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask)) + (pad 7 smd rect (at -2.85 -0.325 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 9 "Net-(PCA9685-Pad7)")) + (pad 6 smd rect (at -2.85 -0.975 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 10 "Net-(PCA9685-Pad6)")) + (pad 5 smd rect (at -2.85 -1.625 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 4 smd rect (at -2.85 -2.275 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 3 smd rect (at -2.85 -2.925 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 2 smd rect (at -2.85 -3.575 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 1 smd rect (at -2.85 -4.225 180) (size 1.1 0.4) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (model ${KISYS3DMOD}/Housings_SSOP.3dshapes/TSSOP-28_4.4x9.7mm_Pitch0.65mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603_HandSoldering (layer F.Cu) (tedit 58E0A804) (tstamp 5BE88520) + (at 147.574 87.122 270) + (descr "Resistor SMD 0603, hand soldering") + (tags "resistor 0603") + (path /5B8C2380) + (attr smd) + (fp_text reference R1 (at 0 -1.45 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 10K (at 0 1.55 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 1.95 0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.5 0.68) (end -0.5 0.68) (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)) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.075))) + ) + (pad 2 smd rect (at 1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 15 MOSI)) + (pad 1 smd rect (at -1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603_HandSoldering (layer F.Cu) (tedit 58E0A804) (tstamp 5BE8839A) + (at 156.21 99.822 270) + (descr "Resistor SMD 0603, hand soldering") + (tags "resistor 0603") + (path /5B8C6BF9) + (attr smd) + (fp_text reference R4 (at 0 -1.524 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 10K (at -0.254 1.27 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.075))) + ) + (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.5 0.68) (end -0.5 0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.96 -0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (pad 1 smd rect (at -1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 8 /PD)) + (pad 2 smd rect (at 1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603_HandSoldering (layer F.Cu) (tedit 5B8D7ACD) (tstamp 5BE88640) + (at 139.192 66.802 270) + (descr "Resistor SMD 0603, hand soldering") + (tags "resistor 0603") + (path /5B925FBE) + (attr smd) + (fp_text reference R5 (at 0 1.524 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 10K (at -0.762 -1.27 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 1.95 0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.5 0.68) (end -0.5 0.68) (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)) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.075))) + ) + (pad 2 smd rect (at 1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 1 smd rect (at -1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 16 RST)) + (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Housings_SOIC:SOIC-20W_7.5x12.8mm_Pitch1.27mm (layer F.Cu) (tedit 58CC8F64) (tstamp 5BE88598) + (at 153.948217 77.276296 270) + (descr "20-Lead Plastic Small Outline (SO) - Wide, 7.50 mm Body [SOIC] (see Microchip Packaging Specification 00000049BS.pdf)") + (tags "SOIC 1.27") + (path /5B8AD3B8) + (attr smd) + (fp_text reference U1 (at -0.060296 -3.277783 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value ATTINY2313A-SU (at 0 7.5 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -3.875 -6.325) (end -5.675 -6.325) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.875 6.575) (end 3.875 6.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.875 -6.575) (end 3.875 -6.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.875 6.575) (end -3.875 6.24) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.875 6.575) (end 3.875 6.24) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.875 -6.575) (end 3.875 -6.24) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.875 -6.575) (end -3.875 -6.325) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.95 6.75) (end 5.95 6.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.95 -6.75) (end 5.95 -6.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 5.95 -6.75) (end 5.95 6.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.95 -6.75) (end -5.95 6.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 -5.4) (end -2.75 -6.4) (layer F.Fab) (width 0.15)) + (fp_line (start -3.75 6.4) (end -3.75 -5.4) (layer F.Fab) (width 0.15)) + (fp_line (start 3.75 6.4) (end -3.75 6.4) (layer F.Fab) (width 0.15)) + (fp_line (start 3.75 -6.4) (end 3.75 6.4) (layer F.Fab) (width 0.15)) + (fp_line (start -2.75 -6.4) (end 3.75 -6.4) (layer F.Fab) (width 0.15)) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 20 smd rect (at 4.7 -5.715 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 19 smd rect (at 4.7 -4.445 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 17 SCK)) + (pad 18 smd rect (at 4.7 -3.175 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 18 MISO)) + (pad 17 smd rect (at 4.7 -1.905 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 15 MOSI)) + (pad 16 smd rect (at 4.7 -0.635 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 15 smd rect (at 4.7 0.635 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 14 smd rect (at 4.7 1.905 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 13 smd rect (at 4.7 3.175 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 12 smd rect (at 4.7 4.445 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 24 "Net-(SW1-Pad1)")) + (pad 11 smd rect (at 4.7 5.715 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(U1-Pad11)")) + (pad 10 smd rect (at -4.7 5.715 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (pad 9 smd rect (at -4.7 4.445 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 8 smd rect (at -4.7 3.175 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask)) + (pad 7 smd rect (at -4.7 1.905 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(P3-Pad1)")) + (pad 6 smd rect (at -4.7 0.635 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 20 "Net-(P3-Pad4)")) + (pad 5 smd rect (at -4.7 -0.635 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 5 "Net-(C2-Pad1)")) + (pad 4 smd rect (at -4.7 -1.905 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 4 "Net-(C1-Pad1)")) + (pad 3 smd rect (at -4.7 -3.175 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(U1-Pad3)")) + (pad 2 smd rect (at -4.7 -4.445 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(U1-Pad2)")) + (pad 1 smd rect (at -4.7 -5.715 270) (size 1.95 0.6) (layers F.Cu F.Paste F.Mask) + (net 16 RST)) + (model ${KISYS3DMOD}/Housings_SOIC.3dshapes/SOIC-20W_7.5x12.8mm_Pitch1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Crystals:Crystal_HC49-U_Vertical (layer B.Cu) (tedit 58CD2E9C) (tstamp 5BE8835E) + (at 143.51 75.057 270) + (descr "Crystal THT HC-49/U http://5hertz.com/pdfs/04404_D.pdf") + (tags "THT crystalHC-49/U") + (path /5B8B9A62) + (fp_text reference XTAL1 (at 2.44 3.525 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value "8 Mhz" (at 2.44 -3.525 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_arc (start 5.565 0) (end 5.565 2.525) (angle -180) (layer B.SilkS) (width 0.12)) + (fp_arc (start -0.685 0) (end -0.685 2.525) (angle 180) (layer B.SilkS) (width 0.12)) + (fp_arc (start 5.44 0) (end 5.44 2) (angle -180) (layer B.Fab) (width 0.1)) + (fp_arc (start -0.56 0) (end -0.56 2) (angle 180) (layer B.Fab) (width 0.1)) + (fp_arc (start 5.565 0) (end 5.565 2.325) (angle -180) (layer B.Fab) (width 0.1)) + (fp_arc (start -0.685 0) (end -0.685 2.325) (angle 180) (layer B.Fab) (width 0.1)) + (fp_line (start 8.4 2.8) (end -3.5 2.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 8.4 -2.8) (end 8.4 2.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.5 -2.8) (end 8.4 -2.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -3.5 2.8) (end -3.5 -2.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -0.685 -2.525) (end 5.565 -2.525) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.685 2.525) (end 5.565 2.525) (layer B.SilkS) (width 0.12)) + (fp_line (start -0.56 -2) (end 5.44 -2) (layer B.Fab) (width 0.1)) + (fp_line (start -0.56 2) (end 5.44 2) (layer B.Fab) (width 0.1)) + (fp_line (start -0.685 -2.325) (end 5.565 -2.325) (layer B.Fab) (width 0.1)) + (fp_line (start -0.685 2.325) (end 5.565 2.325) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 2.44 0 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 2 thru_hole circle (at 4.88 0 270) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask) + (net 4 "Net-(C1-Pad1)")) + (pad 1 thru_hole circle (at 0 0 270) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask) + (net 5 "Net-(C2-Pad1)")) + (model ${KISYS3DMOD}/Crystals.3dshapes/Crystal_HC49-U_Vertical.wrl + (at (xyz 0 0 0)) + (scale (xyz 0.393701 0.393701 0.393701)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603_HandSoldering (layer F.Cu) (tedit 58E0A804) (tstamp 5BE88550) + (at 156.21 95.377 270) + (descr "Resistor SMD 0603, hand soldering") + (tags "resistor 0603") + (path /5B8CAD1E) + (attr smd) + (fp_text reference R2 (at 0.127 -1.524 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 150 (at -0.127 1.27 270) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0 270) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.075))) + ) + (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.5 0.68) (end -0.5 0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start -1.96 -0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (pad 1 smd rect (at -1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 10 "Net-(PCA9685-Pad6)")) + (pad 2 smd rect (at 1.1 0 270) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(Q1-Pad1)")) + (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0603_HandSoldering (layer F.Cu) (tedit 58E0A804) (tstamp 5BE884F0) + (at 156.21 90.932 90) + (descr "Resistor SMD 0603, hand soldering") + (tags "resistor 0603") + (path /5B8CAE68) + (attr smd) + (fp_text reference R3 (at 0 1.524 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value 150 (at 0 -1.27 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start 1.95 0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.95 0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end -1.96 0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.96 -0.7) (end 1.95 -0.7) (layer F.CrtYd) (width 0.05)) + (fp_line (start -0.5 -0.68) (end 0.5 -0.68) (layer F.SilkS) (width 0.12)) + (fp_line (start 0.5 0.68) (end -0.5 0.68) (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)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 0.4 0.4) (thickness 0.075))) + ) + (pad 2 smd rect (at 1.1 0 90) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(Q2-Pad1)")) + (pad 1 smd rect (at -1.1 0 90) (size 1.2 0.9) (layers F.Cu F.Paste F.Mask) + (net 9 "Net-(PCA9685-Pad7)")) + (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm (layer B.Cu) (tedit 59650532) (tstamp 5BE884AA) + (at 142.494 66.294 270) + (descr "Through hole straight pin header, 2x03, 2.54mm pitch, double rows") + (tags "Through hole pin header THT 2x03 2.54mm double row") + (path /5BEBD38C) + (fp_text reference J1 (at 1.27 2.33 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value PROG (at 3.429 -7.239 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 1.27 -2.54 180) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start 4.35 1.8) (end -1.8 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start 4.35 -6.85) (end 4.35 1.8) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 -6.85) (end 4.35 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.8 1.8) (end -1.8 -6.85) (layer B.CrtYd) (width 0.05)) + (fp_line (start -1.33 1.33) (end 0 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 0) (end -1.33 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.27 1.33) (end 3.87 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start 1.27 -1.27) (end 1.27 1.33) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end 1.27 -1.27) (layer B.SilkS) (width 0.12)) + (fp_line (start 3.87 1.33) (end 3.87 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -1.27) (end -1.33 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.33 -6.41) (end 3.87 -6.41) (layer B.SilkS) (width 0.12)) + (fp_line (start -1.27 0) (end 0 1.27) (layer B.Fab) (width 0.1)) + (fp_line (start -1.27 -6.35) (end -1.27 0) (layer B.Fab) (width 0.1)) + (fp_line (start 3.81 -6.35) (end -1.27 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 3.81 1.27) (end 3.81 -6.35) (layer B.Fab) (width 0.1)) + (fp_line (start 0 1.27) (end 3.81 1.27) (layer B.Fab) (width 0.1)) + (pad 6 thru_hole oval (at 2.54 -5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 +5V)) + (pad 5 thru_hole oval (at 0 -5.08 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 15 MOSI)) + (pad 4 thru_hole oval (at 2.54 -2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 3 thru_hole oval (at 0 -2.54 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 16 RST)) + (pad 2 thru_hole oval (at 2.54 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 17 SCK)) + (pad 1 thru_hole rect (at 0 0 270) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 18 MISO)) + (model ${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_2x03_Pitch2.54mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_THT:TO-220-3_Horizontal (layer B.Cu) (tedit 58CE52AD) (tstamp 5BE8877E) + (at 159.766 98.044 270) + (descr "TO-220-3, Horizontal, RM 2.54mm") + (tags "TO-220-3 Horizontal RM 2.54mm") + (path /5B8C8EA8) + (fp_text reference Q1 (at 2.54 20.58 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value IRLB8721PBF (at 2.54 -1.9 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_circle (center 2.54 16.66) (end 4.39 16.66) (layer B.Fab) (width 0.1)) + (fp_line (start 7.79 19.71) (end -2.71 19.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -1.15) (end 7.79 19.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 -1.15) (end 7.79 -1.15) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 19.71) (end -2.71 -1.15) (layer B.CrtYd) (width 0.05)) + (fp_line (start 5.08 3.69) (end 5.08 1.066) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.54 3.69) (end 2.54 1.066) (layer B.SilkS) (width 0.12)) + (fp_line (start 0 3.69) (end 0 1.05) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.66 19.58) (end 7.66 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.58 19.58) (end -2.58 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.58 19.58) (end 7.66 19.58) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.58 3.69) (end 7.66 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.08 3.81) (end 5.08 0) (layer B.Fab) (width 0.1)) + (fp_line (start 2.54 3.81) (end 2.54 0) (layer B.Fab) (width 0.1)) + (fp_line (start 0 3.81) (end 0 0) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 3.81) (end -2.46 3.81) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 13.06) (end 7.54 3.81) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 13.06) (end 7.54 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.81) (end -2.46 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 13.06) (end -2.46 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 19.46) (end 7.54 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 19.46) (end 7.54 19.46) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 13.06) (end -2.46 19.46) (layer B.Fab) (width 0.1)) + (fp_text user %R (at 2.54 20.58 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (pad 3 thru_hole oval (at 5.08 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 1 GND)) + (pad 2 thru_hole oval (at 2.54 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 23 "Net-(P4-Pad3)")) + (pad 1 thru_hole rect (at 0 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 11 "Net-(Q1-Pad1)")) + (pad 0 np_thru_hole oval (at 2.54 16.66 270) (size 3.5 3.5) (drill 3.5) (layers *.Cu *.Mask)) + (model ${KISYS3DMOD}/TO_SOT_Packages_THT.3dshapes/TO-220-3_Horizontal.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 0.393701 0.393701 0.393701)) + (rotate (xyz 0 0 0)) + ) + ) + + (module TO_SOT_Packages_THT:TO-220-3_Horizontal (layer B.Cu) (tedit 58CE52AD) (tstamp 5BE88721) + (at 159.766 87.122 270) + (descr "TO-220-3, Horizontal, RM 2.54mm") + (tags "TO-220-3 Horizontal RM 2.54mm") + (path /5B8CB00E) + (fp_text reference Q2 (at 2.54 20.58 270) (layer B.SilkS) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text value IRLB8721PBF (at 2.54 -1.9 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_text user %R (at 2.54 20.58 270) (layer B.Fab) + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + ) + (fp_line (start -2.46 13.06) (end -2.46 19.46) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 19.46) (end 7.54 19.46) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 19.46) (end 7.54 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 13.06) (end -2.46 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 3.81) (end -2.46 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start -2.46 13.06) (end 7.54 13.06) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 13.06) (end 7.54 3.81) (layer B.Fab) (width 0.1)) + (fp_line (start 7.54 3.81) (end -2.46 3.81) (layer B.Fab) (width 0.1)) + (fp_line (start 0 3.81) (end 0 0) (layer B.Fab) (width 0.1)) + (fp_line (start 2.54 3.81) (end 2.54 0) (layer B.Fab) (width 0.1)) + (fp_line (start 5.08 3.81) (end 5.08 0) (layer B.Fab) (width 0.1)) + (fp_line (start -2.58 3.69) (end 7.66 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.58 19.58) (end 7.66 19.58) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.58 19.58) (end -2.58 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start 7.66 19.58) (end 7.66 3.69) (layer B.SilkS) (width 0.12)) + (fp_line (start 0 3.69) (end 0 1.05) (layer B.SilkS) (width 0.12)) + (fp_line (start 2.54 3.69) (end 2.54 1.066) (layer B.SilkS) (width 0.12)) + (fp_line (start 5.08 3.69) (end 5.08 1.066) (layer B.SilkS) (width 0.12)) + (fp_line (start -2.71 19.71) (end -2.71 -1.15) (layer B.CrtYd) (width 0.05)) + (fp_line (start -2.71 -1.15) (end 7.79 -1.15) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 -1.15) (end 7.79 19.71) (layer B.CrtYd) (width 0.05)) + (fp_line (start 7.79 19.71) (end -2.71 19.71) (layer B.CrtYd) (width 0.05)) + (fp_circle (center 2.54 16.66) (end 4.39 16.66) (layer B.Fab) (width 0.1)) + (pad 0 np_thru_hole oval (at 2.54 16.66 270) (size 3.5 3.5) (drill 3.5) (layers *.Cu *.Mask)) + (pad 1 thru_hole rect (at 0 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 12 "Net-(Q2-Pad1)")) + (pad 2 thru_hole oval (at 2.54 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 22 "Net-(P4-Pad1)")) + (pad 3 thru_hole oval (at 5.08 0 270) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask) + (net 1 GND)) + (model ${KISYS3DMOD}/TO_SOT_Packages_THT.3dshapes/TO-220-3_Horizontal.wrl + (offset (xyz 2.539999961853027 0 0)) + (scale (xyz 0.393701 0.393701 0.393701)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Mounting_Holes:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 5BE87EDE) (tstamp 5BE88931) + (at 132.08 39.116) + (descr "Mounting Hole 3.2mm, no annular, M3") + (tags "mounting hole 3.2mm no annular m3") + (attr virtual) + (fp_text reference REF** (at 0 -4.2) (layer F.SilkS) hide + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MountingHole_3.2mm_M3 (at 0 4.2) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0.3 0) (layer F.Fab) + (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 Housings_SOIC:SO-8_5.3x6.2mm_Pitch1.27mm (layer F.Cu) (tedit 59920130) (tstamp 5BE855D8) + (at 157.734 63.754 90) + (descr "8-Lead Plastic Small Outline, 5.3x6.2mm Body (http://www.ti.com.cn/cn/lit/ds/symlink/tl7705a.pdf)") + (tags "SOIC 1.27") + (path /5B8AD72A) + (attr smd) + (fp_text reference U2 (at 0 -4.13 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MAX485 (at 0 4.13 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.75 -2.55) (end -4.5 -2.55) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.75 3.205) (end 2.75 3.205) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.75 -3.205) (end 2.75 -3.205) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.75 3.205) (end -2.75 2.455) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.75 3.205) (end 2.75 2.455) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.75 -3.205) (end 2.75 -2.455) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.75 -3.205) (end -2.75 -2.55) (layer F.SilkS) (width 0.15)) + (fp_line (start -4.83 3.35) (end 4.83 3.35) (layer F.CrtYd) (width 0.05)) + (fp_line (start -4.83 -3.35) (end 4.83 -3.35) (layer F.CrtYd) (width 0.05)) + (fp_line (start 4.83 -3.35) (end 4.83 3.35) (layer F.CrtYd) (width 0.05)) + (fp_line (start -4.83 -3.35) (end -4.83 3.35) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.65 -2.1) (end -1.65 -3.1) (layer F.Fab) (width 0.15)) + (fp_line (start -2.65 3.1) (end -2.65 -2.1) (layer F.Fab) (width 0.15)) + (fp_line (start 2.65 3.1) (end -2.65 3.1) (layer F.Fab) (width 0.15)) + (fp_line (start 2.65 -3.1) (end 2.65 3.1) (layer F.Fab) (width 0.15)) + (fp_line (start -1.65 -3.1) (end 2.65 -3.1) (layer F.Fab) (width 0.15)) + (fp_text user %R (at 0 0 90) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (pad 8 smd rect (at 3.7 -1.905 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 2 +5V)) + (pad 7 smd rect (at 3.7 -0.635 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 7 "Net-(P1-Pad1)")) + (pad 6 smd rect (at 3.7 0.635 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 6 "Net-(P1-Pad2)")) + (pad 5 smd rect (at 3.7 1.905 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 1 GND)) + (pad 4 smd rect (at -3.7 1.905 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(U1-Pad3)")) + (pad 3 smd rect (at -3.7 0.635 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(U1-Pad11)")) + (pad 2 smd rect (at -3.7 -0.635 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(U1-Pad11)")) + (pad 1 smd rect (at -3.7 -1.905 90) (size 1.75 0.55) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(U1-Pad2)")) + (model ${KISYS3DMOD}/Housings_SOIC.3dshapes/SO-8_5.3x6.2mm_Pitch1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_:SW4-SMD-5.2X5.2X1.5MM (layer B.Cu) (tedit 0) (tstamp 5BE8987C) + (at 149.86 48.26) + (path /5BF329CF) + (attr smd) + (fp_text reference SW1 (at -0.523383 3.25313) (layer B.SilkS) + (effects (font (size 0.701862 0.701862) (thickness 0.05)) (justify mirror)) + ) + (fp_text value Button (at -0.112861 0.218191) (layer B.SilkS) + (effects (font (size 0.501589 0.501589) (thickness 0.05)) (justify mirror)) + ) + (fp_line (start 2.6 -1.46863) (end 1.46863 -2.6) (layer Dwgs.User) (width 0.127)) + (fp_line (start 1.5 -2.6) (end -1.1 -2.6) (layer B.SilkS) (width 0.127)) + (fp_line (start -1.1 -2.6) (end -1.45982 -2.6) (layer B.SilkS) (width 0.127)) + (fp_line (start -1.45982 -2.6) (end -2.6 -1.45982) (layer Dwgs.User) (width 0.127)) + (fp_line (start -2.6 1.39584) (end -1.39584 2.6) (layer Dwgs.User) (width 0.127)) + (fp_line (start -1.4 2.6) (end 1.5 2.6) (layer B.SilkS) (width 0.127)) + (fp_line (start 1.43381 2.6) (end 2.6 1.43381) (layer Dwgs.User) (width 0.127)) + (fp_poly (pts (xy -2.50464 2.6) (xy 2.6 2.6) (xy 2.6 -2.60484) (xy -2.50464 -2.60484)) (layer Eco1.User) (width 0)) + (fp_line (start -1.4 2.6) (end -2.4 1.6) (layer B.SilkS) (width 0.127)) + (fp_line (start 1.5 2.6) (end 2.4 1.7) (layer B.SilkS) (width 0.127)) + (fp_line (start 1.5 -2.6) (end 2.4 -1.7) (layer B.SilkS) (width 0.127)) + (fp_line (start -1.45982 -2.6) (end -1.5 -2.6) (layer B.SilkS) (width 0.127)) + (fp_line (start -1.5 -2.6) (end -2.4 -1.7) (layer B.SilkS) (width 0.127)) + (pad 1 smd rect (at -3 1.85) (size 1 0.7) (layers B.Cu B.Paste B.Mask) + (net 24 "Net-(SW1-Pad1)")) + (pad 2 smd rect (at 3 1.85) (size 1 0.7) (layers B.Cu B.Paste B.Mask) + (net 1 GND)) + (pad 3 smd rect (at -3 -1.85) (size 1 0.7) (layers B.Cu B.Paste B.Mask)) + (pad 4 smd rect (at 3 -1.85) (size 1 0.7) (layers B.Cu B.Paste B.Mask)) + ) + + (gr_line (start 128.016 121.158) (end 128.016 36.322) (layer Edge.Cuts) (width 0.2) (tstamp 5BE87DE9)) + (gr_line (start 172.212 121.158) (end 128.016 121.158) (layer Edge.Cuts) (width 0.2)) + (gr_line (start 172.212 36.322) (end 172.212 121.158) (layer Edge.Cuts) (width 0.2) (tstamp 5BE87DEC)) + (gr_line (start 128.016 36.322) (end 172.212 36.322) (layer Edge.Cuts) (width 0.2)) + + (segment (start 147.683217 72.576296) (end 148.233217 72.576296) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886C1)) + (segment (start 147.574215 72.576296) (end 147.683217 72.576296) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886BE)) + (segment (start 145.034 70.036081) (end 147.574215 72.576296) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886BB)) + (segment (start 145.034 68.834) (end 145.034 70.036081) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886A6)) + (via (at 135.89 82.804) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1) (tstamp 5BE889AF)) + (via (at 163.83 66.294) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1) (tstamp 5BE886D6)) + (via (at 132.08 67.056) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1) (tstamp 5BE886E2)) + (via (at 149.606 70.358) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 1) (tstamp 5BE886D9)) + (segment (start 149.606 70.528513) (end 149.606 70.358) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886B5)) + (segment (start 148.233217 72.576296) (end 148.233217 71.901296) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886A9)) + (segment (start 148.233217 71.901296) (end 149.606 70.528513) (width 0.25) (layer F.Cu) (net 1) (tstamp 5BE886B2)) + (segment (start 163.854217 81.086296) (end 161.610704 81.086296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88175)) + (segment (start 161.610704 81.086296) (end 160.720704 81.976296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88172)) + (segment (start 160.720704 81.976296) (end 159.663217 81.976296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88184)) + (segment (start 167.918217 79.254296) (end 167.918217 79.054296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88277)) + (segment (start 163.854217 81.086296) (end 166.086217 81.086296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88286)) + (segment (start 166.086217 81.086296) (end 167.918217 79.254296) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE8829B)) + (segment (start 133.579999 103.226999) (end 132.08 101.727) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE88241)) + (segment (start 147.645 100.302) (end 144.720001 103.226999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE8822F)) + (segment (start 147.645 99.602) (end 147.645 100.302) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE8821D)) + (via (at 155.194 70.358) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 2) (tstamp 5BE886DC)) + (via (at 159.512 77.724) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 2) (tstamp 5BE886F4)) + (segment (start 155.194 70.358) (end 159.512 74.676) (width 0.25) (layer B.Cu) (net 2) (tstamp 5BE8819C)) + (segment (start 159.512 74.676) (end 159.512 77.724) (width 0.25) (layer B.Cu) (net 2) (tstamp 5BE88199)) + (segment (start 159.512 81.825079) (end 159.663217 81.976296) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE881A2)) + (segment (start 159.512 77.724) (end 159.512 81.825079) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE8818A)) + (segment (start 132.08 84.36568) (end 132.08 86.487) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE88208)) + (segment (start 132.08 74.314) (end 132.08 84.36568) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE881DE)) + (segment (start 138.492 67.902) (end 132.08 74.314) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE881FC)) + (segment (start 139.192 67.902) (end 138.492 67.902) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE8820B)) + (segment (start 144.720001 107.140999) (end 144.720001 103.226999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881B7)) + (segment (start 140.927 110.744) (end 141.117 110.744) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881D8)) + (segment (start 141.117 110.744) (end 144.720001 107.140999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881D2)) + (segment (start 144.871002 103.378) (end 144.720001 103.226999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881BA)) + (segment (start 149.606 103.378) (end 144.871002 103.378) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881C0)) + (segment (start 153.924 107.696) (end 149.606 103.378) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE881C9)) + (segment (start 153.67 68.834) (end 155.194 70.358) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE8896D)) + (segment (start 147.574 68.834) (end 153.67 68.834) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE8896A)) + (segment (start 132.545 86.022) (end 132.08 86.487) (width 0.25) (layer F.Cu) (net 2) (tstamp 5BE886E8)) + (segment (start 147.574 86.022) (end 132.545 86.022) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE886EB)) + (segment (start 144.720001 103.226999) (end 138.938 103.226999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE886C4)) + (segment (start 138.938 103.226999) (end 133.579999 103.226999) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE886B8)) + (segment (start 132.08 86.487) (end 129.286 89.281) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE882CB)) + (segment (start 129.286 89.281) (end 129.286 98.933) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE882DA)) + (segment (start 129.286 98.933) (end 132.08 101.727) (width 0.5) (layer F.Cu) (net 2) (tstamp 5BE882C2)) + (segment (start 153.67 63.338) (end 153.67 68.834) (width 0.25) (layer F.Cu) (net 2)) + (segment (start 155.829 61.179) (end 153.67 63.338) (width 0.25) (layer F.Cu) (net 2)) + (segment (start 155.829 60.054) (end 155.829 61.179) (width 0.25) (layer F.Cu) (net 2)) + (via (at 149.86 86.106) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 2) (status 1000000)) + (segment (start 155.702 86.106) (end 156.267685 86.106) (width 0.5) (layer F.Cu) (net 2) (status 1000000)) + (segment (start 156.267685 86.106) (end 159.663217 82.710468) (width 0.5) (layer F.Cu) (net 2) (status 1000000)) + (segment (start 159.663217 82.710468) (end 159.663217 81.976296) (width 0.5) (layer F.Cu) (net 2) (status 1000000)) + (segment (start 149.86 86.106) (end 155.702 86.106) (width 0.5) (layer B.Cu) (net 2) (status 1000000)) + (via (at 155.702 86.106) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 2) (status 1000000)) + (segment (start 149.776 86.022) (end 149.86 86.106) (width 0.5) (layer F.Cu) (net 2) (status 1000000)) + (segment (start 147.574 86.022) (end 149.776 86.022) (width 0.5) (layer F.Cu) (net 2) (status 1000000)) + (segment (start 168.275 45.466) (end 137.16 45.466) (width 3) (layer F.Cu) (net 3) (tstamp 5BE87D6B)) + (segment (start 137.16 45.466) (end 132.08 45.466) (width 3) (layer F.Cu) (net 3) (tstamp 5BE87D6E)) + (segment (start 170.39632 92.202) (end 168.275 92.202) (width 1) (layer F.Cu) (net 3) (tstamp 5BE882EF)) + (segment (start 171.704 93.50968) (end 170.39632 92.202) (width 1) (layer F.Cu) (net 3) (tstamp 5BE882F5)) + (segment (start 171.704 101.05432) (end 171.704 93.50968) (width 1) (layer F.Cu) (net 3) (tstamp 5BE882F2)) + (segment (start 170.39632 102.362) (end 171.704 101.05432) (width 1) (layer F.Cu) (net 3) (tstamp 5BE882EC)) + (segment (start 168.275 102.362) (end 170.39632 102.362) (width 1) (layer F.Cu) (net 3) (tstamp 5BE882E9)) + (segment (start 166.15368 92.202) (end 168.275 92.202) (width 3) (layer B.Cu) (net 3)) + (segment (start 168.275 45.466) (end 163.775 45.466) (width 3) (layer B.Cu) (net 3)) + (segment (start 163.775 45.466) (end 161.529999 47.711001) (width 3) (layer B.Cu) (net 3)) + (segment (start 161.529999 47.711001) (end 161.529999 68.971997) (width 3) (layer B.Cu) (net 3)) + (segment (start 161.529999 68.971997) (end 163.83 71.271998) (width 3) (layer B.Cu) (net 3)) + (segment (start 163.83 71.271998) (end 163.83 89.87832) (width 3) (layer B.Cu) (net 3)) + (segment (start 163.83 89.87832) (end 166.15368 92.202) (width 3) (layer B.Cu) (net 3)) + (segment (start 168.275 102.362) (end 168.275 107.315) (width 1) (layer F.Cu) (net 3)) + (segment (start 141.117 113.034) (end 140.927 113.034) (width 1) (layer F.Cu) (net 3)) + (segment (start 142.582 114.499) (end 141.117 113.034) (width 1) (layer F.Cu) (net 3)) + (segment (start 161.091 114.499) (end 142.582 114.499) (width 1) (layer F.Cu) (net 3)) + (segment (start 168.275 107.315) (end 161.091 114.499) (width 1) (layer F.Cu) (net 3)) + (segment (start 142.345 78.772) (end 143.51 79.937) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE886F1)) + (segment (start 139.065 78.772) (end 142.345 78.772) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE886EE)) + (segment (start 153.412513 75.692) (end 154.94 74.166417) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882A7)) + (segment (start 143.51 79.937) (end 147.755 75.692) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882A4)) + (segment (start 147.755 75.692) (end 153.412513 75.692) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882A1)) + (segment (start 155.853217 73.251296) (end 155.853217 72.576296) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882D4)) + (segment (start 154.94 74.164513) (end 155.853217 73.251296) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882D1)) + (segment (start 154.94 74.166417) (end 154.94 74.164513) (width 0.25) (layer F.Cu) (net 4) (tstamp 5BE882C8)) + (segment (start 154.583217 73.251296) (end 154.583217 72.576296) (width 0.25) (layer F.Cu) (net 5) (tstamp 5BE88922)) + (segment (start 152.777513 75.057) (end 154.583217 73.251296) (width 0.25) (layer F.Cu) (net 5) (tstamp 5BE88925)) + (segment (start 143.51 75.057) (end 152.777513 75.057) (width 0.25) (layer F.Cu) (net 5) (tstamp 5BE88928)) + (segment (start 142.78 75.787) (end 143.51 75.057) (width 0.25) (layer F.Cu) (net 5) (tstamp 5BE88190)) + (segment (start 139.065 75.787) (end 142.78 75.787) (width 0.25) (layer F.Cu) (net 5) (tstamp 5BE881AB)) + (segment (start 132.08 55.372) (end 132.08 57.912) (width 1) (layer F.Cu) (net 6)) + (segment (start 132.842 54.61) (end 132.08 55.372) (width 1) (layer F.Cu) (net 6)) + (segment (start 168.275 57.912) (end 168.275 55.412) (width 1) (layer F.Cu) (net 6)) + (segment (start 168.275 55.412) (end 167.473 54.61) (width 1) (layer F.Cu) (net 6)) + (segment (start 167.473 54.61) (end 155.194 54.61) (width 1) (layer F.Cu) (net 6)) + (segment (start 155.194 54.61) (end 154.178 54.61) (width 1) (layer F.Cu) (net 6)) + (via (at 157.226 57.658) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 6)) + (segment (start 158.369 60.054) (end 158.369 58.801) (width 0.25) (layer F.Cu) (net 6)) + (segment (start 158.369 58.801) (end 157.226 57.658) (width 0.25) (layer F.Cu) (net 6)) + (via (at 153.162 53.594) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 6)) + (segment (start 157.226 57.658) (end 153.162 53.594) (width 0.25) (layer B.Cu) (net 6)) + (segment (start 152.596315 53.594) (end 152.4 53.790315) (width 0.25) (layer F.Cu) (net 6)) + (segment (start 153.162 53.594) (end 152.596315 53.594) (width 0.25) (layer F.Cu) (net 6)) + (segment (start 152.4 54.356) (end 152.146 54.61) (width 0.25) (layer F.Cu) (net 6)) + (segment (start 152.4 53.790315) (end 152.4 54.356) (width 0.25) (layer F.Cu) (net 6)) + (segment (start 154.178 54.61) (end 152.146 54.61) (width 1) (layer F.Cu) (net 6)) + (segment (start 152.146 54.61) (end 132.842 54.61) (width 1) (layer F.Cu) (net 6)) + (segment (start 132.08 62.992) (end 132.08 62.23) (width 1) (layer F.Cu) (net 7)) + (segment (start 132.08 62.23) (end 137.922 56.388) (width 1) (layer F.Cu) (net 7)) + (segment (start 161.671 56.388) (end 168.275 62.992) (width 1) (layer F.Cu) (net 7)) + (segment (start 137.922 56.388) (end 152.4 56.388) (width 1) (layer F.Cu) (net 7)) + (segment (start 154.558 56.388) (end 154.432 56.388) (width 0.25) (layer F.Cu) (net 7)) + (segment (start 157.099 58.929) (end 154.558 56.388) (width 0.25) (layer F.Cu) (net 7)) + (segment (start 157.099 60.054) (end 157.099 58.929) (width 0.25) (layer F.Cu) (net 7)) + (segment (start 152.4 56.388) (end 154.432 56.388) (width 1) (layer F.Cu) (net 7)) + (segment (start 154.432 56.388) (end 161.671 56.388) (width 1) (layer F.Cu) (net 7)) + (segment (start 156.21 98.572) (end 156.21 98.722) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE881E7)) + (segment (start 154.64 97.002) (end 156.21 98.572) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE881B1)) + (segment (start 153.345 97.002) (end 154.64 97.002) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE881B4)) + (segment (start 153.345 97.002) (end 153.345 97.652) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE88169)) + (segment (start 153.345 97.652) (end 153.345 98.302) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE8815A)) + (segment (start 153.345 98.302) (end 153.345 98.952) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE8824A)) + (segment (start 153.345 98.952) (end 153.345 99.602) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE881CF)) + (segment (start 147.645 96.352) (end 147.645 97.002) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE88163)) + (via (at 149.098 97.028) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 8) (tstamp 5BE88346)) + (segment (start 147.645 97.002) (end 149.072 97.002) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE88181)) + (segment (start 149.072 97.002) (end 149.098 97.028) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE8816C)) + (via (at 151.892 97.028) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 8) (tstamp 5BE8833A)) + (segment (start 149.098 97.028) (end 151.892 97.028) (width 0.25) (layer B.Cu) (net 8) (tstamp 5BE8815D)) + (segment (start 153.319 97.028) (end 153.345 97.002) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE88187)) + (segment (start 151.892 97.028) (end 153.319 97.028) (width 0.25) (layer F.Cu) (net 8) (tstamp 5BE88160)) + (segment (start 154.145 95.702) (end 154.94 94.907) (width 0.25) (layer F.Cu) (net 9) (tstamp 5BE88298)) + (segment (start 153.345 95.702) (end 154.145 95.702) (width 0.25) (layer F.Cu) (net 9) (tstamp 5BE8827A)) + (segment (start 156.21 92.182) (end 156.21 92.032) (width 0.25) (layer F.Cu) (net 9) (tstamp 5BE88295)) + (segment (start 154.94 93.452) (end 156.21 92.182) (width 0.25) (layer F.Cu) (net 9) (tstamp 5BE8827D)) + (segment (start 154.94 94.907) (end 154.94 93.452) (width 0.25) (layer F.Cu) (net 9) (tstamp 5BE8829E)) + (segment (start 156.21 94.427) (end 156.21 94.277) (width 0.25) (layer F.Cu) (net 10) (tstamp 5BE8821A)) + (segment (start 154.285 96.352) (end 156.21 94.427) (width 0.25) (layer F.Cu) (net 10) (tstamp 5BE88232)) + (segment (start 153.345 96.352) (end 154.285 96.352) (width 0.25) (layer F.Cu) (net 10) (tstamp 5BE88244)) + (segment (start 156.91 96.477) (end 156.21 96.477) (width 0.25) (layer F.Cu) (net 11) (tstamp 5BE88292)) + (segment (start 159.349 96.477) (end 156.91 96.477) (width 0.25) (layer F.Cu) (net 11) (tstamp 5BE8828F)) + (segment (start 159.766 96.894) (end 159.349 96.477) (width 0.25) (layer F.Cu) (net 11) (tstamp 5BE8828C)) + (segment (start 159.766 98.044) (end 159.766 96.894) (width 0.25) (layer F.Cu) (net 11) (tstamp 5BE88289)) + (segment (start 158.616 87.122) (end 159.766 87.122) (width 0.25) (layer F.Cu) (net 12) (tstamp 5BE881CC)) + (segment (start 156.21 89.528) (end 158.616 87.122) (width 0.25) (layer F.Cu) (net 12) (tstamp 5BE881BD)) + (segment (start 156.21 89.832) (end 156.21 89.528) (width 0.25) (layer F.Cu) (net 12) (tstamp 5BE881C3)) + (segment (start 157.123217 74.065217) (end 157.123217 72.576296) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 159.639 68.054) (end 160.782 69.197) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 159.639 67.454) (end 159.639 68.054) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 160.782 74.168) (end 160.274 74.676) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 160.274 74.676) (end 157.734 74.676) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 160.782 69.197) (end 160.782 74.168) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 157.734 74.676) (end 157.123217 74.065217) (width 0.25) (layer F.Cu) (net 13)) + (segment (start 155.829 67.454) (end 155.829 69.469) (width 0.25) (layer F.Cu) (net 14)) + (segment (start 155.829 69.469) (end 156.718 70.358) (width 0.25) (layer F.Cu) (net 14)) + (segment (start 156.718 70.358) (end 157.734 70.358) (width 0.25) (layer F.Cu) (net 14)) + (segment (start 158.393217 71.017217) (end 158.393217 72.576296) (width 0.25) (layer F.Cu) (net 14)) + (segment (start 157.734 70.358) (end 158.393217 71.017217) (width 0.25) (layer F.Cu) (net 14)) + (segment (start 155.853217 82.651296) (end 149.86 88.644513) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE881F3)) + (segment (start 155.853217 81.976296) (end 155.853217 82.651296) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE881ED)) + (segment (start 149.86 97.537) (end 148.445 98.952) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE8820E)) + (segment (start 149.86 88.644513) (end 149.86 97.537) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE881F0)) + (segment (start 148.445 98.952) (end 147.645 98.952) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE88301)) + (segment (start 158.072 105.664) (end 155.505002 105.664) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE882E3)) + (segment (start 159.004 106.596) (end 158.072 105.664) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE882E6)) + (segment (start 155.505002 105.664) (end 148.793002 98.952) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE882F8)) + (segment (start 159.004 107.696) (end 159.004 106.596) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE882FB)) + (segment (start 148.793002 98.952) (end 148.445 98.952) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE882FE)) + (via (at 153.784807 78.74) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 15) (tstamp 5BE88151)) + (via (at 150.622 66.294) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 15) (tstamp 5BE88148)) + (segment (start 150.622 66.294) (end 147.574 66.294) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE881A8)) + (segment (start 153.784807 69.456807) (end 150.622 66.294) (width 0.25) (layer B.Cu) (net 15) (tstamp 5BE88310)) + (segment (start 153.784807 78.74) (end 153.784807 69.456807) (width 0.25) (layer B.Cu) (net 15) (tstamp 5BE8830A)) + (segment (start 154.184806 79.139999) (end 153.784807 78.74) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE88313)) + (segment (start 155.853217 80.80841) (end 154.184806 79.139999) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE88307)) + (segment (start 155.853217 81.976296) (end 155.853217 80.80841) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE88304)) + (segment (start 148.696513 88.644513) (end 149.86 88.644513) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE889C7)) + (segment (start 148.274 88.222) (end 148.696513 88.644513) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE889C1)) + (segment (start 147.574 88.222) (end 148.274 88.222) (width 0.25) (layer F.Cu) (net 15) (tstamp 5BE889BB)) + (via (at 150.622 65.024) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 16) (tstamp 5BE8814B)) + (segment (start 150.368 64.77) (end 150.622 65.024) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE8824D)) + (segment (start 145.034 66.294) (end 146.558 64.77) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88238)) + (segment (start 146.558 64.77) (end 150.368 64.77) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88211)) + (via (at 159.512 70.358) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 16) (tstamp 5BE8814E)) + (segment (start 154.577999 65.423999) (end 159.512 70.358) (width 0.25) (layer B.Cu) (net 16) (tstamp 5BE8823B)) + (segment (start 150.622 65.024) (end 151.021999 65.423999) (width 0.25) (layer B.Cu) (net 16) (tstamp 5BE88247)) + (segment (start 151.021999 65.423999) (end 154.577999 65.423999) (width 0.25) (layer B.Cu) (net 16) (tstamp 5BE88217)) + (segment (start 159.512 72.425079) (end 159.663217 72.576296) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88250)) + (segment (start 159.512 70.358) (end 159.512 72.425079) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88235)) + (segment (start 139.892 65.702) (end 139.192 65.702) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88322)) + (segment (start 140.742 64.852) (end 139.892 65.702) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE8831F)) + (segment (start 143.592 64.852) (end 140.742 64.852) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88319)) + (segment (start 145.034 66.294) (end 143.592 64.852) (width 0.25) (layer F.Cu) (net 16) (tstamp 5BE88316)) + (segment (start 158.393217 82.651296) (end 157.478513 83.566) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE8822C)) + (segment (start 158.393217 81.976296) (end 158.393217 82.651296) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88229)) + (segment (start 157.478513 83.566) (end 155.574923 83.566) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88220)) + (via (at 150.622 89.154) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17) (tstamp 5BE88343)) + (segment (start 155.574923 83.566) (end 150.622 88.518923) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE881F6)) + (segment (start 150.622 88.518923) (end 150.622 89.154) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE881E4)) + (via (at 146.05 97.028) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17) (tstamp 5BE8833D)) + (segment (start 146.05 90.424) (end 146.05 97.028) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE88226)) + (segment (start 150.622 89.154) (end 147.32 89.154) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE88223)) + (segment (start 147.32 89.154) (end 146.05 90.424) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE8823E)) + (segment (start 146.845 98.302) (end 147.645 98.302) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88205)) + (segment (start 146.05 97.028) (end 146.05 97.507) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE881F9)) + (segment (start 146.05 97.507) (end 146.845 98.302) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88202)) + (segment (start 150.622 101.854) (end 146.05 97.282) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE882B9)) + (segment (start 146.05 97.282) (end 146.05 97.028) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE882CE)) + (segment (start 156.464 107.696) (end 150.622 101.854) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE882D7)) + (via (at 150.622 101.854) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17) (tstamp 5BE886F7)) + (via (at 148.082 74.332) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17) (tstamp 5BE88154)) + (segment (start 142.494 68.834) (end 147.992 74.332) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE881E1)) + (segment (start 147.992 74.332) (end 148.082 74.332) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE881FF)) + (via (at 150.114 76.454) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 17) (tstamp 5BE88157)) + (segment (start 148.082 74.332) (end 150.114 76.364) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE881DB)) + (segment (start 150.114 76.364) (end 150.114 76.454) (width 0.25) (layer B.Cu) (net 17) (tstamp 5BE881EA)) + (segment (start 158.393217 81.301296) (end 158.393217 81.976296) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE8811E)) + (segment (start 153.94592 76.853999) (end 158.393217 81.301296) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE8811B)) + (segment (start 150.513999 76.853999) (end 153.94592 76.853999) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88121)) + (segment (start 150.114 76.454) (end 150.513999 76.853999) (width 0.25) (layer F.Cu) (net 17) (tstamp 5BE88124)) + (via (at 146.304 74.332) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 18) (tstamp 5BE88142)) + (segment (start 141.318999 69.346999) (end 146.304 74.332) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE8832B)) + (segment (start 141.318999 66.369001) (end 141.318999 69.346999) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88328)) + (segment (start 142.494 66.294) (end 141.394 66.294) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88325)) + (segment (start 141.394 66.294) (end 141.318999 66.369001) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88334)) + (via (at 149.352 77.216) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 18) (tstamp 5BE8813F)) + (segment (start 146.304 74.332) (end 149.188 77.216) (width 0.25) (layer B.Cu) (net 18) (tstamp 5BE88331)) + (segment (start 149.188 77.216) (end 149.352 77.216) (width 0.25) (layer B.Cu) (net 18) (tstamp 5BE8832E)) + (segment (start 157.123217 80.751296) (end 157.123217 81.976296) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88274)) + (segment (start 154.38692 78.014999) (end 157.123217 80.751296) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88283)) + (segment (start 150.150999 78.014999) (end 154.38692 78.014999) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88271)) + (segment (start 149.352 77.216) (end 150.150999 78.014999) (width 0.25) (layer F.Cu) (net 18) (tstamp 5BE88280)) + (segment (start 158.369 67.454) (end 157.099 67.454) (width 0.25) (layer F.Cu) (net 19)) + (via (at 157.099 69.088) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 19)) + (via (at 150.876 80.01) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 19)) + (segment (start 148.233217 81.301296) (end 148.233217 81.976296) (width 0.25) (layer F.Cu) (net 19)) + (segment (start 149.524513 80.01) (end 148.233217 81.301296) (width 0.25) (layer F.Cu) (net 19)) + (segment (start 150.876 80.01) (end 149.524513 80.01) (width 0.25) (layer F.Cu) (net 19)) + (segment (start 157.099 67.454) (end 157.099 69.088) (width 0.25) (layer F.Cu) (net 19)) + (segment (start 159.766 80.01) (end 150.876 80.01) (width 0.25) (layer B.Cu) (net 19)) + (segment (start 160.782 78.994) (end 159.766 80.01) (width 0.25) (layer B.Cu) (net 19)) + (segment (start 157.099 69.088) (end 160.782 72.771) (width 0.25) (layer B.Cu) (net 19)) + (segment (start 160.782 72.771) (end 160.782 78.994) (width 0.25) (layer B.Cu) (net 19)) + (via (at 152.654 70.612) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 20) (tstamp 5BE886CA)) + (segment (start 153.313217 71.271217) (end 152.654 70.612) (width 0.25) (layer F.Cu) (net 20) (tstamp 5BE889C4)) + (segment (start 153.313217 72.576296) (end 153.313217 71.271217) (width 0.25) (layer F.Cu) (net 20) (tstamp 5BE889BE)) + (via (at 135.636 91.694) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 20) (tstamp 5BE88136)) + (segment (start 150.876 76.962) (end 135.636 91.694) (width 0.25) (layer B.Cu) (net 20) (tstamp 5BE882BF)) + (segment (start 150.876 71.374) (end 150.876 76.962) (width 0.25) (layer B.Cu) (net 20) (tstamp 5BE882C5)) + (segment (start 152.654 70.612) (end 151.638 70.612) (width 0.25) (layer B.Cu) (net 20) (tstamp 5BE882BC)) + (segment (start 151.638 70.612) (end 150.876 71.374) (width 0.25) (layer B.Cu) (net 20) (tstamp 5BE882B6)) + (segment (start 135.636 93.091) (end 132.08 96.647) (width 0.25) (layer F.Cu) (net 20) (tstamp 5BE886AC)) + (segment (start 135.636 91.694) (end 135.636 93.091) (width 0.25) (layer F.Cu) (net 20) (tstamp 5BE886AF)) + (via (at 151.892 74.332) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 21) (tstamp 5BE886DF)) + (segment (start 152.043217 72.576296) (end 152.043217 74.180783) (width 0.25) (layer F.Cu) (net 21) (tstamp 5BE881D5)) + (segment (start 152.043217 74.180783) (end 151.892 74.332) (width 0.25) (layer F.Cu) (net 21) (tstamp 5BE881C6)) + (segment (start 151.892 74.332) (end 151.892 76.962) (width 0.25) (layer B.Cu) (net 21) (tstamp 5BE88115)) + (segment (start 136.144 92.71) (end 136.144 93.472) (width 0.25) (layer B.Cu) (net 21) (tstamp 5BE88118)) + (segment (start 151.892 76.962) (end 136.144 92.71) (width 0.25) (layer B.Cu) (net 21) (tstamp 5BE8810F)) + (segment (start 136.144 109.573) (end 136.144 109.573) (width 0.25) (layer B.Cu) (net 21) (tstamp 5BE88112)) + (segment (start 136.144 109.573) (end 136.144 93.472) (width 0.25) (layer B.Cu) (net 21) (tstamp 5BE88214)) + (via (at 136.144 109.573) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 21) (tstamp 5BE88139)) + (segment (start 133.83 111.887) (end 136.144 109.573) (width 0.25) (layer F.Cu) (net 21) (tstamp 5BE8817E)) + (segment (start 132.08 111.887) (end 133.83 111.887) (width 0.25) (layer F.Cu) (net 21) (tstamp 5BE8816F)) + (segment (start 168.275 87.122) (end 165.608 87.122) (width 1) (layer F.Cu) (net 22) (tstamp 5BE882AA)) + (segment (start 159.766 89.662) (end 163.068 89.662) (width 1) (layer F.Cu) (net 22) (tstamp 5BE886CD)) + (segment (start 163.068 89.662) (end 165.608 87.122) (width 1) (layer F.Cu) (net 22) (tstamp 5BE886D0)) + (segment (start 164.973 100.584) (end 168.275 97.282) (width 1) (layer F.Cu) (net 23) (tstamp 5BE8830D)) + (segment (start 159.766 100.584) (end 164.973 100.584) (width 1) (layer F.Cu) (net 23) (tstamp 5BE8831C)) + (via (at 141.478 81.28) (size 0.8) (drill 0.4) (layers F.Cu B.Cu) (net 24)) + (segment (start 143.474297 83.276297) (end 141.478 81.28) (width 0.25) (layer F.Cu) (net 24)) + (segment (start 148.878216 83.276297) (end 143.474297 83.276297) (width 0.25) (layer F.Cu) (net 24)) + (segment (start 149.503217 81.976296) (end 149.503217 82.651296) (width 0.25) (layer F.Cu) (net 24)) + (segment (start 149.503217 82.651296) (end 148.878216 83.276297) (width 0.25) (layer F.Cu) (net 24)) + (segment (start 141.478 81.28) (end 137.922 77.724) (width 0.25) (layer B.Cu) (net 24)) + (segment (start 146.86 50.71) (end 146.86 50.11) (width 0.25) (layer B.Cu) (net 24)) + (segment (start 137.922 59.648) (end 146.86 50.71) (width 0.25) (layer B.Cu) (net 24)) + (segment (start 137.922 77.724) (end 137.922 59.648) (width 0.25) (layer B.Cu) (net 24)) + + (zone (net 1) (net_name GND) (layer F.Cu) (tstamp 5BE89B4A) (hatch edge 0.508) + (connect_pads (clearance 0.508)) + (min_thickness 0.254) + (fill yes (arc_segments 16) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 128.016 36.322) (xy 172.212 36.322) (xy 172.212 121.158) (xy 128.016 121.158) + ) + ) + (filled_polygon + (pts + (xy 130.813974 37.221259) (xy 130.185259 37.849974) (xy 129.845 38.671431) (xy 129.845 39.560569) (xy 130.185259 40.382026) + (xy 130.813974 41.010741) (xy 131.635431 41.351) (xy 132.524569 41.351) (xy 133.346026 41.010741) (xy 133.974741 40.382026) + (xy 134.315 39.560569) (xy 134.315 38.671431) (xy 133.974741 37.849974) (xy 133.346026 37.221259) (xy 132.94947 37.057) + (xy 167.27853 37.057) (xy 166.881974 37.221259) (xy 166.253259 37.849974) (xy 165.913 38.671431) (xy 165.913 39.560569) + (xy 166.253259 40.382026) (xy 166.881974 41.010741) (xy 167.703431 41.351) (xy 168.592569 41.351) (xy 169.414026 41.010741) + (xy 170.042741 40.382026) (xy 170.383 39.560569) (xy 170.383 38.671431) (xy 170.042741 37.849974) (xy 169.414026 37.221259) + (xy 169.01747 37.057) (xy 171.477 37.057) (xy 171.477001 91.677549) (xy 171.277933 91.478482) (xy 171.214609 91.383711) + (xy 170.839175 91.132854) (xy 170.508103 91.067) (xy 170.39632 91.044765) (xy 170.284537 91.067) (xy 170.115775 91.067) + (xy 170.084966 90.99262) (xy 169.48438 90.392034) (xy 168.699678 90.067) (xy 167.850322 90.067) (xy 167.06562 90.392034) + (xy 166.465034 90.99262) (xy 166.14 91.777322) (xy 166.14 92.626678) (xy 166.465034 93.41138) (xy 167.06562 94.011966) + (xy 167.850322 94.337) (xy 168.699678 94.337) (xy 169.48438 94.011966) (xy 170.042767 93.453579) (xy 170.569001 93.979813) + (xy 170.569 100.584188) (xy 170.042767 101.110421) (xy 169.48438 100.552034) (xy 168.699678 100.227) (xy 167.850322 100.227) + (xy 167.06562 100.552034) (xy 166.465034 101.15262) (xy 166.14 101.937322) (xy 166.14 102.786678) (xy 166.465034 103.57138) + (xy 167.06562 104.171966) (xy 167.14 104.202775) (xy 167.140001 106.844867) (xy 160.620869 113.364) (xy 143.052132 113.364) + (xy 142.222564 112.534433) (xy 142.180157 112.321235) (xy 142.039809 112.111191) (xy 141.829765 111.970843) (xy 141.582 111.92156) + (xy 141.3422 111.92156) (xy 141.228783 111.899) (xy 141.117 111.876765) (xy 141.005217 111.899) (xy 140.815217 111.899) + (xy 140.7018 111.92156) (xy 140.272 111.92156) (xy 140.024235 111.970843) (xy 139.814191 112.111191) (xy 139.673843 112.321235) + (xy 139.62456 112.569) (xy 139.62456 113.499) (xy 139.673843 113.746765) (xy 139.814191 113.956809) (xy 140.024235 114.097157) + (xy 140.272 114.14644) (xy 140.624309 114.14644) (xy 141.700389 115.222521) (xy 141.763711 115.317289) (xy 142.139145 115.568146) + (xy 142.582 115.656235) (xy 142.693783 115.634) (xy 160.979217 115.634) (xy 161.091 115.656235) (xy 161.202783 115.634) + (xy 161.533855 115.568146) (xy 161.909289 115.317289) (xy 161.972613 115.222518) (xy 168.998521 108.196611) (xy 169.093289 108.133289) + (xy 169.344146 107.757855) (xy 169.41 107.426783) (xy 169.432235 107.315001) (xy 169.41 107.203219) (xy 169.41 104.202775) + (xy 169.48438 104.171966) (xy 170.084966 103.57138) (xy 170.115775 103.497) (xy 170.284537 103.497) (xy 170.39632 103.519235) + (xy 170.508103 103.497) (xy 170.839175 103.431146) (xy 171.214609 103.180289) (xy 171.277933 103.085518) (xy 171.477001 102.88645) + (xy 171.477001 120.423) (xy 169.01747 120.423) (xy 169.414026 120.258741) (xy 170.042741 119.630026) (xy 170.383 118.808569) + (xy 170.383 117.919431) (xy 170.042741 117.097974) (xy 169.414026 116.469259) (xy 168.592569 116.129) (xy 167.703431 116.129) + (xy 166.881974 116.469259) (xy 166.253259 117.097974) (xy 165.913 117.919431) (xy 165.913 118.808569) (xy 166.253259 119.630026) + (xy 166.881974 120.258741) (xy 167.27853 120.423) (xy 132.94947 120.423) (xy 133.346026 120.258741) (xy 133.974741 119.630026) + (xy 134.315 118.808569) (xy 134.315 117.919431) (xy 133.974741 117.097974) (xy 133.346026 116.469259) (xy 132.524569 116.129) + (xy 131.635431 116.129) (xy 130.813974 116.469259) (xy 130.185259 117.097974) (xy 129.845 117.919431) (xy 129.845 118.808569) + (xy 130.185259 119.630026) (xy 130.813974 120.258741) (xy 131.21053 120.423) (xy 128.751 120.423) (xy 128.751 110.387) + (xy 129.93256 110.387) (xy 129.93256 113.387) (xy 129.981843 113.634765) (xy 130.122191 113.844809) (xy 130.332235 113.985157) + (xy 130.58 114.03444) (xy 133.58 114.03444) (xy 133.827765 113.985157) (xy 134.037809 113.844809) (xy 134.178157 113.634765) + (xy 134.22744 113.387) (xy 134.22744 112.535483) (xy 134.377929 112.434929) (xy 134.420331 112.37147) (xy 136.183802 110.608) + (xy 136.349874 110.608) (xy 136.73028 110.450431) (xy 137.021431 110.15928) (xy 137.179 109.778874) (xy 137.179 109.367126) + (xy 137.021431 108.98672) (xy 136.774461 108.73975) (xy 139.637 108.73975) (xy 139.637 109.045309) (xy 139.733673 109.278698) + (xy 139.912301 109.457327) (xy 140.14569 109.554) (xy 140.64125 109.554) (xy 140.8 109.39525) (xy 140.8 108.581) + (xy 139.79575 108.581) (xy 139.637 108.73975) (xy 136.774461 108.73975) (xy 136.73028 108.695569) (xy 136.349874 108.538) + (xy 135.938126 108.538) (xy 135.55772 108.695569) (xy 135.266569 108.98672) (xy 135.109 109.367126) (xy 135.109 109.533198) + (xy 134.22744 110.414759) (xy 134.22744 110.387) (xy 134.178157 110.139235) (xy 134.037809 109.929191) (xy 133.827765 109.788843) + (xy 133.58 109.73956) (xy 130.58 109.73956) (xy 130.332235 109.788843) (xy 130.122191 109.929191) (xy 129.981843 110.139235) + (xy 129.93256 110.387) (xy 128.751 110.387) (xy 128.751 108.32097) (xy 130.745635 108.32097) (xy 130.905418 108.639739) + (xy 131.696187 108.949723) (xy 132.545387 108.933497) (xy 133.254582 108.639739) (xy 133.414365 108.32097) (xy 132.08 106.986605) + (xy 130.745635 108.32097) (xy 128.751 108.32097) (xy 128.751 106.423187) (xy 129.937277 106.423187) (xy 129.953503 107.272387) + (xy 130.247261 107.981582) (xy 130.56603 108.141365) (xy 131.900395 106.807) (xy 132.259605 106.807) (xy 133.59397 108.141365) + (xy 133.912739 107.981582) (xy 133.959344 107.862691) (xy 139.637 107.862691) (xy 139.637 108.16825) (xy 139.79575 108.327) + (xy 140.8 108.327) (xy 140.8 107.51275) (xy 140.64125 107.354) (xy 140.14569 107.354) (xy 139.912301 107.450673) + (xy 139.733673 107.629302) (xy 139.637 107.862691) (xy 133.959344 107.862691) (xy 134.222723 107.190813) (xy 134.206497 106.341613) + (xy 133.912739 105.632418) (xy 133.59397 105.472635) (xy 132.259605 106.807) (xy 131.900395 106.807) (xy 130.56603 105.472635) + (xy 130.247261 105.632418) (xy 129.937277 106.423187) (xy 128.751 106.423187) (xy 128.751 105.29303) (xy 130.745635 105.29303) + (xy 132.08 106.627395) (xy 133.414365 105.29303) (xy 133.254582 104.974261) (xy 132.463813 104.664277) (xy 131.614613 104.680503) + (xy 130.905418 104.974261) (xy 130.745635 105.29303) (xy 128.751 105.29303) (xy 128.751 99.649578) (xy 130.079363 100.977941) + (xy 129.945 101.302322) (xy 129.945 102.151678) (xy 130.270034 102.93638) (xy 130.87062 103.536966) (xy 131.655322 103.862) + (xy 132.504678 103.862) (xy 132.829058 103.727637) (xy 132.892576 103.791155) (xy 132.94195 103.865048) (xy 133.015843 103.914422) + (xy 133.015844 103.914423) (xy 133.167938 104.016049) (xy 133.234689 104.060651) (xy 133.492834 104.111999) (xy 133.492838 104.111999) + (xy 133.579999 104.129336) (xy 133.66716 104.111999) (xy 143.835002 104.111999) (xy 143.835001 106.77442) (xy 142.217 108.392422) + (xy 142.217 108.326998) (xy 142.058252 108.326998) (xy 142.217 108.16825) (xy 142.217 107.862691) (xy 142.120327 107.629302) + (xy 141.941699 107.450673) (xy 141.70831 107.354) (xy 141.21275 107.354) (xy 141.054 107.51275) (xy 141.054 108.327) + (xy 141.074 108.327) (xy 141.074 108.581) (xy 141.054 108.581) (xy 141.054 109.39525) (xy 141.134086 109.475336) + (xy 140.977862 109.63156) (xy 140.272 109.63156) (xy 140.024235 109.680843) (xy 139.814191 109.821191) (xy 139.673843 110.031235) + (xy 139.62456 110.279) (xy 139.62456 111.209) (xy 139.673843 111.456765) (xy 139.814191 111.666809) (xy 140.024235 111.807157) + (xy 140.272 111.85644) (xy 141.582 111.85644) (xy 141.829765 111.807157) (xy 142.039809 111.666809) (xy 142.180157 111.456765) + (xy 142.22944 111.209) (xy 142.22944 110.883138) (xy 143.988578 109.124) (xy 146.31456 109.124) (xy 146.31456 112.364) + (xy 146.363843 112.611765) (xy 146.504191 112.821809) (xy 146.714235 112.962157) (xy 146.962 113.01144) (xy 148.272 113.01144) + (xy 148.519765 112.962157) (xy 148.729809 112.821809) (xy 148.870157 112.611765) (xy 148.91944 112.364) (xy 148.91944 109.124) + (xy 148.870157 108.876235) (xy 148.729809 108.666191) (xy 148.519765 108.525843) (xy 148.272 108.47656) (xy 146.962 108.47656) + (xy 146.714235 108.525843) (xy 146.504191 108.666191) (xy 146.363843 108.876235) (xy 146.31456 109.124) (xy 143.988578 109.124) + (xy 145.059686 108.052892) (xy 149.942514 108.052892) (xy 150.188817 108.577358) (xy 150.617076 108.967645) (xy 151.02711 109.137476) + (xy 151.257 109.016155) (xy 151.257 107.823) (xy 150.063181 107.823) (xy 149.942514 108.052892) (xy 145.059686 108.052892) + (xy 145.284157 107.828422) (xy 145.35805 107.779048) (xy 145.413542 107.696) (xy 145.553653 107.486309) (xy 145.565493 107.426783) + (xy 145.605001 107.228164) (xy 145.605001 107.22816) (xy 145.622338 107.140999) (xy 145.605001 107.053838) (xy 145.605001 104.263) + (xy 149.239422 104.263) (xy 151.256998 106.280577) (xy 151.256998 106.375844) (xy 151.02711 106.254524) (xy 150.617076 106.424355) + (xy 150.188817 106.814642) (xy 149.942514 107.339108) (xy 150.063181 107.569) (xy 151.257 107.569) (xy 151.257 107.549) + (xy 151.511 107.549) (xy 151.511 107.569) (xy 151.531 107.569) (xy 151.531 107.823) (xy 151.511 107.823) + (xy 151.511 109.016155) (xy 151.74089 109.137476) (xy 152.150924 108.967645) (xy 152.579183 108.577358) (xy 152.640157 108.447522) + (xy 152.853375 108.766625) (xy 153.344582 109.094839) (xy 153.777744 109.181) (xy 154.070256 109.181) (xy 154.503418 109.094839) + (xy 154.994625 108.766625) (xy 155.194 108.468239) (xy 155.393375 108.766625) (xy 155.884582 109.094839) (xy 156.317744 109.181) + (xy 156.610256 109.181) (xy 157.043418 109.094839) (xy 157.534625 108.766625) (xy 157.546816 108.748381) (xy 157.555843 108.793765) + (xy 157.696191 109.003809) (xy 157.906235 109.144157) (xy 158.154 109.19344) (xy 159.854 109.19344) (xy 160.101765 109.144157) + (xy 160.311809 109.003809) (xy 160.452157 108.793765) (xy 160.50144 108.546) (xy 160.50144 106.846) (xy 160.452157 106.598235) + (xy 160.311809 106.388191) (xy 160.101765 106.247843) (xy 159.854 106.19856) (xy 159.652483 106.19856) (xy 159.551929 106.048071) + (xy 159.488473 106.005671) (xy 158.662331 105.17953) (xy 158.619929 105.116071) (xy 158.368537 104.948096) (xy 158.146852 104.904) + (xy 158.146847 104.904) (xy 158.072 104.889112) (xy 157.997153 104.904) (xy 155.819805 104.904) (xy 154.404547 103.488742) + (xy 158.274954 103.488742) (xy 158.528034 104.031576) (xy 158.969583 104.43624) (xy 159.40126 104.615036) (xy 159.639 104.494378) + (xy 159.639 103.251) (xy 159.893 103.251) (xy 159.893 104.494378) (xy 160.13074 104.615036) (xy 160.562417 104.43624) + (xy 161.003966 104.031576) (xy 161.257046 103.488742) (xy 161.136997 103.251) (xy 159.893 103.251) (xy 159.639 103.251) + (xy 158.395003 103.251) (xy 158.274954 103.488742) (xy 154.404547 103.488742) (xy 152.123554 101.20775) (xy 155.125 101.20775) + (xy 155.125 101.648309) (xy 155.221673 101.881698) (xy 155.400301 102.060327) (xy 155.63369 102.157) (xy 155.92425 102.157) + (xy 156.083 101.99825) (xy 156.083 101.049) (xy 156.337 101.049) (xy 156.337 101.99825) (xy 156.49575 102.157) + (xy 156.78631 102.157) (xy 157.019699 102.060327) (xy 157.198327 101.881698) (xy 157.295 101.648309) (xy 157.295 101.20775) + (xy 157.13625 101.049) (xy 156.337 101.049) (xy 156.083 101.049) (xy 155.28375 101.049) (xy 155.125 101.20775) + (xy 152.123554 101.20775) (xy 149.693802 98.777999) (xy 150.344473 98.127329) (xy 150.407929 98.084929) (xy 150.575904 97.833537) + (xy 150.62 97.611852) (xy 150.62 97.611848) (xy 150.634888 97.537001) (xy 150.62 97.462154) (xy 150.62 96.822126) + (xy 150.857 96.822126) (xy 150.857 97.233874) (xy 151.014569 97.61428) (xy 151.30572 97.905431) (xy 151.686126 98.063) + (xy 152.097874 98.063) (xy 152.160475 98.03707) (xy 152.14756 98.102) (xy 152.14756 98.502) (xy 152.172424 98.627) + (xy 152.14756 98.752) (xy 152.14756 99.152) (xy 152.172424 99.277) (xy 152.14756 99.402) (xy 152.14756 99.802) + (xy 152.196843 100.049765) (xy 152.337191 100.259809) (xy 152.547235 100.400157) (xy 152.795 100.44944) (xy 153.895 100.44944) + (xy 154.142765 100.400157) (xy 154.352809 100.259809) (xy 154.493157 100.049765) (xy 154.54244 99.802) (xy 154.54244 99.402) + (xy 154.517576 99.277) (xy 154.54244 99.152) (xy 154.54244 98.752) (xy 154.517576 98.627) (xy 154.54244 98.502) + (xy 154.54244 98.102) (xy 154.517576 97.977) (xy 154.521329 97.958131) (xy 155.11256 98.549362) (xy 155.11256 99.322) + (xy 155.161843 99.569765) (xy 155.302191 99.779809) (xy 155.36332 99.820654) (xy 155.221673 99.962302) (xy 155.125 100.195691) + (xy 155.125 100.63625) (xy 155.28375 100.795) (xy 156.083 100.795) (xy 156.083 100.775) (xy 156.337 100.775) + (xy 156.337 100.795) (xy 157.13625 100.795) (xy 157.295 100.63625) (xy 157.295 100.195691) (xy 157.198327 99.962302) + (xy 157.05668 99.820654) (xy 157.117809 99.779809) (xy 157.258157 99.569765) (xy 157.30744 99.322) (xy 157.30744 98.122) + (xy 157.258157 97.874235) (xy 157.117809 97.664191) (xy 157.020993 97.5995) (xy 157.117809 97.534809) (xy 157.258157 97.324765) + (xy 157.275614 97.237) (xy 158.21856 97.237) (xy 158.21856 98.944) (xy 158.267843 99.191765) (xy 158.408191 99.401809) + (xy 158.616696 99.541129) (xy 158.320062 99.985073) (xy 158.200928 100.584) (xy 158.320062 101.182927) (xy 158.659327 101.690673) + (xy 158.915174 101.861624) (xy 158.528034 102.216424) (xy 158.274954 102.759258) (xy 158.395003 102.997) (xy 159.639 102.997) + (xy 159.639 102.977) (xy 159.893 102.977) (xy 159.893 102.997) (xy 161.136997 102.997) (xy 161.257046 102.759258) + (xy 161.003966 102.216424) (xy 160.616826 101.861624) (xy 160.830279 101.719) (xy 164.861217 101.719) (xy 164.973 101.741235) + (xy 165.084783 101.719) (xy 165.415855 101.653146) (xy 165.791289 101.402289) (xy 165.854613 101.307518) (xy 167.775941 99.38619) + (xy 167.850322 99.417) (xy 168.699678 99.417) (xy 169.48438 99.091966) (xy 170.084966 98.49138) (xy 170.41 97.706678) + (xy 170.41 96.857322) (xy 170.084966 96.07262) (xy 169.48438 95.472034) (xy 168.699678 95.147) (xy 167.850322 95.147) + (xy 167.06562 95.472034) (xy 166.465034 96.07262) (xy 166.14 96.857322) (xy 166.14 97.706678) (xy 166.17081 97.781059) + (xy 164.502869 99.449) (xy 161.053183 99.449) (xy 161.123809 99.401809) (xy 161.264157 99.191765) (xy 161.31344 98.944) + (xy 161.31344 97.144) (xy 161.264157 96.896235) (xy 161.123809 96.686191) (xy 160.913765 96.545843) (xy 160.666 96.49656) + (xy 160.414483 96.49656) (xy 160.313929 96.346071) (xy 160.25047 96.303669) (xy 159.939331 95.99253) (xy 159.896929 95.929071) + (xy 159.645537 95.761096) (xy 159.423852 95.717) (xy 159.423847 95.717) (xy 159.349 95.702112) (xy 159.274153 95.717) + (xy 157.275614 95.717) (xy 157.258157 95.629235) (xy 157.117809 95.419191) (xy 157.054666 95.377) (xy 157.117809 95.334809) + (xy 157.258157 95.124765) (xy 157.30744 94.877) (xy 157.30744 93.677) (xy 157.258157 93.429235) (xy 157.117809 93.219191) + (xy 157.020993 93.1545) (xy 157.117809 93.089809) (xy 157.258157 92.879765) (xy 157.30744 92.632) (xy 157.30744 92.566742) + (xy 158.274954 92.566742) (xy 158.528034 93.109576) (xy 158.969583 93.51424) (xy 159.40126 93.693036) (xy 159.639 93.572378) + (xy 159.639 92.329) (xy 159.893 92.329) (xy 159.893 93.572378) (xy 160.13074 93.693036) (xy 160.562417 93.51424) + (xy 161.003966 93.109576) (xy 161.257046 92.566742) (xy 161.136997 92.329) (xy 159.893 92.329) (xy 159.639 92.329) + (xy 158.395003 92.329) (xy 158.274954 92.566742) (xy 157.30744 92.566742) (xy 157.30744 91.432) (xy 157.258157 91.184235) + (xy 157.117809 90.974191) (xy 157.054666 90.932) (xy 157.117809 90.889809) (xy 157.258157 90.679765) (xy 157.30744 90.432) + (xy 157.30744 89.505361) (xy 158.378071 88.434731) (xy 158.408191 88.479809) (xy 158.616696 88.619129) (xy 158.320062 89.063073) + (xy 158.200928 89.662) (xy 158.320062 90.260927) (xy 158.659327 90.768673) (xy 158.915174 90.939624) (xy 158.528034 91.294424) + (xy 158.274954 91.837258) (xy 158.395003 92.075) (xy 159.639 92.075) (xy 159.639 92.055) (xy 159.893 92.055) + (xy 159.893 92.075) (xy 161.136997 92.075) (xy 161.257046 91.837258) (xy 161.003966 91.294424) (xy 160.616826 90.939624) + (xy 160.830279 90.797) (xy 162.956217 90.797) (xy 163.068 90.819235) (xy 163.179783 90.797) (xy 163.510855 90.731146) + (xy 163.886289 90.480289) (xy 163.949613 90.385518) (xy 166.078132 88.257) (xy 166.12756 88.257) (xy 166.12756 88.622) + (xy 166.176843 88.869765) (xy 166.317191 89.079809) (xy 166.527235 89.220157) (xy 166.775 89.26944) (xy 169.775 89.26944) + (xy 170.022765 89.220157) (xy 170.232809 89.079809) (xy 170.373157 88.869765) (xy 170.42244 88.622) (xy 170.42244 85.622) + (xy 170.373157 85.374235) (xy 170.232809 85.164191) (xy 170.022765 85.023843) (xy 169.775 84.97456) (xy 166.775 84.97456) + (xy 166.527235 85.023843) (xy 166.317191 85.164191) (xy 166.176843 85.374235) (xy 166.12756 85.622) (xy 166.12756 85.987) + (xy 165.719781 85.987) (xy 165.607999 85.964765) (xy 165.496217 85.987) (xy 165.165145 86.052854) (xy 164.789711 86.303711) + (xy 164.726389 86.398479) (xy 162.597869 88.527) (xy 161.053183 88.527) (xy 161.123809 88.479809) (xy 161.264157 88.269765) + (xy 161.31344 88.022) (xy 161.31344 86.222) (xy 161.264157 85.974235) (xy 161.123809 85.764191) (xy 160.913765 85.623843) + (xy 160.666 85.57456) (xy 158.866 85.57456) (xy 158.618235 85.623843) (xy 158.408191 85.764191) (xy 158.267843 85.974235) + (xy 158.21856 86.222) (xy 158.21856 86.473517) (xy 158.169238 86.506473) (xy 158.068071 86.574071) (xy 158.025671 86.637527) + (xy 156.078639 88.58456) (xy 155.76 88.58456) (xy 155.512235 88.633843) (xy 155.302191 88.774191) (xy 155.161843 88.984235) + (xy 155.11256 89.232) (xy 155.11256 90.432) (xy 155.161843 90.679765) (xy 155.302191 90.889809) (xy 155.365334 90.932) + (xy 155.302191 90.974191) (xy 155.161843 91.184235) (xy 155.11256 91.432) (xy 155.11256 92.204638) (xy 154.52133 92.795869) + (xy 154.517576 92.777) (xy 154.54244 92.652) (xy 154.54244 92.252) (xy 154.517576 92.127) (xy 154.54244 92.002) + (xy 154.54244 91.602) (xy 154.521783 91.498148) (xy 154.53 91.47831) (xy 154.53 91.41075) (xy 154.498042 91.378792) + (xy 154.493157 91.354235) (xy 154.352809 91.144191) (xy 154.214836 91.052) (xy 154.37125 91.052) (xy 154.53 90.89325) + (xy 154.53 90.82569) (xy 154.433327 90.592301) (xy 154.254698 90.413673) (xy 154.021309 90.317) (xy 153.63075 90.317) + (xy 153.472 90.47575) (xy 153.472 90.95456) (xy 153.218 90.95456) (xy 153.218 90.47575) (xy 153.05925 90.317) + (xy 152.668691 90.317) (xy 152.435302 90.413673) (xy 152.256673 90.592301) (xy 152.16 90.82569) (xy 152.16 90.89325) + (xy 152.31875 91.052) (xy 152.475164 91.052) (xy 152.337191 91.144191) (xy 152.196843 91.354235) (xy 152.191958 91.378792) + (xy 152.16 91.41075) (xy 152.16 91.47831) (xy 152.168217 91.498148) (xy 152.14756 91.602) (xy 152.14756 92.002) + (xy 152.172424 92.127) (xy 152.14756 92.252) (xy 152.14756 92.652) (xy 152.172424 92.777) (xy 152.14756 92.902) + (xy 152.14756 93.302) (xy 152.172424 93.427) (xy 152.14756 93.552) (xy 152.14756 93.952) (xy 152.172424 94.077) + (xy 152.14756 94.202) (xy 152.14756 94.602) (xy 152.172424 94.727) (xy 152.14756 94.852) (xy 152.14756 95.252) + (xy 152.172424 95.377) (xy 152.14756 95.502) (xy 152.14756 95.902) (xy 152.171747 96.023599) (xy 152.097874 95.993) + (xy 151.686126 95.993) (xy 151.30572 96.150569) (xy 151.014569 96.44172) (xy 150.857 96.822126) (xy 150.62 96.822126) + (xy 150.62 90.189) (xy 150.827874 90.189) (xy 151.20828 90.031431) (xy 151.499431 89.74028) (xy 151.657 89.359874) + (xy 151.657 88.948126) (xy 151.542947 88.672777) (xy 155.889725 84.326) (xy 156.796107 84.326) (xy 156.009155 85.112952) + (xy 155.907874 85.071) (xy 155.496126 85.071) (xy 155.11572 85.228569) (xy 154.824569 85.51972) (xy 154.667 85.900126) + (xy 154.667 86.311874) (xy 154.824569 86.69228) (xy 155.11572 86.983431) (xy 155.496126 87.141) (xy 155.907874 87.141) + (xy 156.240977 87.003025) (xy 156.267685 87.008337) (xy 156.354846 86.991) (xy 156.35485 86.991) (xy 156.612995 86.939652) + (xy 156.905734 86.744049) (xy 156.95511 86.670153) (xy 160.042248 83.583016) (xy 160.210982 83.549453) (xy 160.421026 83.409105) + (xy 160.561374 83.199061) (xy 160.610657 82.951296) (xy 160.610657 82.861296) (xy 160.633543 82.861296) (xy 160.720704 82.878633) + (xy 160.807865 82.861296) (xy 160.807869 82.861296) (xy 161.066014 82.809948) (xy 161.358753 82.614345) (xy 161.408129 82.540449) + (xy 161.856777 82.091802) (xy 161.856777 82.961296) (xy 161.90606 83.209061) (xy 162.046408 83.419105) (xy 162.256452 83.559453) + (xy 162.504217 83.608736) (xy 165.204217 83.608736) (xy 165.451982 83.559453) (xy 165.662026 83.419105) (xy 165.802374 83.209061) + (xy 165.851657 82.961296) (xy 165.851657 81.971296) (xy 165.999056 81.971296) (xy 166.086217 81.988633) (xy 166.173378 81.971296) + (xy 166.173382 81.971296) (xy 166.431527 81.919948) (xy 166.724266 81.724345) (xy 166.773642 81.650449) (xy 167.722356 80.701736) + (xy 168.718217 80.701736) (xy 168.965982 80.652453) (xy 169.176026 80.512105) (xy 169.316374 80.302061) (xy 169.365657 80.054296) + (xy 169.365657 78.054296) (xy 169.316374 77.806531) (xy 169.176026 77.596487) (xy 168.965982 77.456139) (xy 168.718217 77.406856) + (xy 167.118217 77.406856) (xy 166.870452 77.456139) (xy 166.660408 77.596487) (xy 166.52006 77.806531) (xy 166.470777 78.054296) + (xy 166.470777 79.450157) (xy 165.851657 80.069278) (xy 165.851657 79.211296) (xy 165.802374 78.963531) (xy 165.662026 78.753487) + (xy 165.451982 78.613139) (xy 165.204217 78.563856) (xy 162.504217 78.563856) (xy 162.256452 78.613139) (xy 162.046408 78.753487) + (xy 161.90606 78.963531) (xy 161.856777 79.211296) (xy 161.856777 80.201296) (xy 161.697863 80.201296) (xy 161.610703 80.183959) + (xy 161.523544 80.201296) (xy 161.523539 80.201296) (xy 161.265394 80.252644) (xy 161.158699 80.323936) (xy 161.046549 80.398872) + (xy 161.046548 80.398873) (xy 160.972655 80.448247) (xy 160.923281 80.52214) (xy 160.583028 80.862394) (xy 160.561374 80.753531) + (xy 160.421026 80.543487) (xy 160.272 80.44391) (xy 160.272 78.427711) (xy 160.389431 78.31028) (xy 160.547 77.929874) + (xy 160.547 77.518126) (xy 160.389431 77.13772) (xy 160.09828 76.846569) (xy 159.717874 76.689) (xy 159.306126 76.689) + (xy 158.92572 76.846569) (xy 158.634569 77.13772) (xy 158.477 77.518126) (xy 158.477 77.929874) (xy 158.634569 78.31028) + (xy 158.752 78.427711) (xy 158.752001 80.365549) (xy 158.693217 80.353856) (xy 158.520579 80.353856) (xy 154.536251 76.369529) + (xy 154.493849 76.30607) (xy 154.242457 76.138095) (xy 154.074737 76.104733) (xy 155.424275 74.756878) (xy 155.487929 74.714346) + (xy 155.534165 74.645149) (xy 155.980579 74.198736) (xy 156.153217 74.198736) (xy 156.36645 74.156322) (xy 156.407313 74.361753) + (xy 156.575288 74.613146) (xy 156.638747 74.655548) (xy 157.143671 75.160473) (xy 157.186071 75.223929) (xy 157.437463 75.391904) + (xy 157.659148 75.436) (xy 157.659152 75.436) (xy 157.734 75.450888) (xy 157.808848 75.436) (xy 160.199153 75.436) + (xy 160.274 75.450888) (xy 160.348847 75.436) (xy 160.348852 75.436) (xy 160.570537 75.391904) (xy 160.821929 75.223929) + (xy 160.86433 75.160471) (xy 161.266475 74.758328) (xy 161.329929 74.715929) (xy 161.372327 74.652476) (xy 161.372329 74.652474) + (xy 161.468147 74.509071) (xy 161.497904 74.464537) (xy 161.542 74.242852) (xy 161.542 74.242848) (xy 161.556888 74.168001) + (xy 161.542 74.093154) (xy 161.542 73.822046) (xy 161.869217 73.822046) (xy 161.869217 75.537605) (xy 161.96589 75.770994) + (xy 162.144518 75.949623) (xy 162.377907 76.046296) (xy 163.568467 76.046296) (xy 163.727217 75.887546) (xy 163.727217 73.663296) + (xy 163.981217 73.663296) (xy 163.981217 75.887546) (xy 164.139967 76.046296) (xy 165.330527 76.046296) (xy 165.563916 75.949623) + (xy 165.742544 75.770994) (xy 165.839217 75.537605) (xy 165.839217 75.340046) (xy 166.483217 75.340046) (xy 166.483217 76.180605) + (xy 166.57989 76.413994) (xy 166.758518 76.592623) (xy 166.991907 76.689296) (xy 167.632467 76.689296) (xy 167.791217 76.530546) + (xy 167.791217 75.181296) (xy 168.045217 75.181296) (xy 168.045217 76.530546) (xy 168.203967 76.689296) (xy 168.844527 76.689296) + (xy 169.077916 76.592623) (xy 169.256544 76.413994) (xy 169.353217 76.180605) (xy 169.353217 75.340046) (xy 169.194467 75.181296) + (xy 168.045217 75.181296) (xy 167.791217 75.181296) (xy 166.641967 75.181296) (xy 166.483217 75.340046) (xy 165.839217 75.340046) + (xy 165.839217 73.927987) (xy 166.483217 73.927987) (xy 166.483217 74.768546) (xy 166.641967 74.927296) (xy 167.791217 74.927296) + (xy 167.791217 73.578046) (xy 168.045217 73.578046) (xy 168.045217 74.927296) (xy 169.194467 74.927296) (xy 169.353217 74.768546) + (xy 169.353217 73.927987) (xy 169.256544 73.694598) (xy 169.077916 73.515969) (xy 168.844527 73.419296) (xy 168.203967 73.419296) + (xy 168.045217 73.578046) (xy 167.791217 73.578046) (xy 167.632467 73.419296) (xy 166.991907 73.419296) (xy 166.758518 73.515969) + (xy 166.57989 73.694598) (xy 166.483217 73.927987) (xy 165.839217 73.927987) (xy 165.839217 73.822046) (xy 165.680467 73.663296) + (xy 163.981217 73.663296) (xy 163.727217 73.663296) (xy 162.027967 73.663296) (xy 161.869217 73.822046) (xy 161.542 73.822046) + (xy 161.542 71.534987) (xy 161.869217 71.534987) (xy 161.869217 73.250546) (xy 162.027967 73.409296) (xy 163.727217 73.409296) + (xy 163.727217 71.185046) (xy 163.981217 71.185046) (xy 163.981217 73.409296) (xy 165.680467 73.409296) (xy 165.839217 73.250546) + (xy 165.839217 71.534987) (xy 165.742544 71.301598) (xy 165.563916 71.122969) (xy 165.330527 71.026296) (xy 164.139967 71.026296) + (xy 163.981217 71.185046) (xy 163.727217 71.185046) (xy 163.568467 71.026296) (xy 162.377907 71.026296) (xy 162.144518 71.122969) + (xy 161.96589 71.301598) (xy 161.869217 71.534987) (xy 161.542 71.534987) (xy 161.542 69.271846) (xy 161.556888 69.196999) + (xy 161.542 69.122152) (xy 161.542 69.122148) (xy 161.497904 68.900463) (xy 161.329929 68.649071) (xy 161.266473 68.606671) + (xy 160.56144 67.901639) (xy 160.56144 66.579) (xy 160.512157 66.331235) (xy 160.371809 66.121191) (xy 160.161765 65.980843) + (xy 159.914 65.93156) (xy 159.364 65.93156) (xy 159.116235 65.980843) (xy 159.004 66.055837) (xy 158.891765 65.980843) + (xy 158.644 65.93156) (xy 158.094 65.93156) (xy 157.846235 65.980843) (xy 157.734 66.055837) (xy 157.621765 65.980843) + (xy 157.374 65.93156) (xy 156.824 65.93156) (xy 156.576235 65.980843) (xy 156.464 66.055837) (xy 156.351765 65.980843) + (xy 156.104 65.93156) (xy 155.554 65.93156) (xy 155.306235 65.980843) (xy 155.096191 66.121191) (xy 154.955843 66.331235) + (xy 154.90656 66.579) (xy 154.90656 68.329) (xy 154.955843 68.576765) (xy 155.069001 68.746116) (xy 155.069001 69.158199) + (xy 154.43 68.519199) (xy 154.43 63.652801) (xy 156.313473 61.769329) (xy 156.376929 61.726929) (xy 156.530729 61.496751) + (xy 156.576235 61.527157) (xy 156.824 61.57644) (xy 157.374 61.57644) (xy 157.621765 61.527157) (xy 157.734 61.452163) + (xy 157.846235 61.527157) (xy 158.094 61.57644) (xy 158.644 61.57644) (xy 158.891765 61.527157) (xy 158.995091 61.458117) + (xy 159.004301 61.467327) (xy 159.23769 61.564) (xy 159.35325 61.564) (xy 159.512 61.40525) (xy 159.512 60.181) + (xy 159.766 60.181) (xy 159.766 61.40525) (xy 159.92475 61.564) (xy 160.04031 61.564) (xy 160.273699 61.467327) + (xy 160.452327 61.288698) (xy 160.549 61.055309) (xy 160.549 60.33975) (xy 160.39025 60.181) (xy 159.766 60.181) + (xy 159.512 60.181) (xy 159.492 60.181) (xy 159.492 59.927) (xy 159.512 59.927) (xy 159.512 58.70275) + (xy 159.766 58.70275) (xy 159.766 59.927) (xy 160.39025 59.927) (xy 160.549 59.76825) (xy 160.549 59.052691) + (xy 160.452327 58.819302) (xy 160.273699 58.640673) (xy 160.04031 58.544) (xy 159.92475 58.544) (xy 159.766 58.70275) + (xy 159.512 58.70275) (xy 159.35325 58.544) (xy 159.23769 58.544) (xy 159.1038 58.599459) (xy 159.084904 58.504463) + (xy 158.916929 58.253071) (xy 158.853473 58.210671) (xy 158.261 57.618199) (xy 158.261 57.523) (xy 161.200869 57.523) + (xy 166.170809 62.492941) (xy 166.14 62.567322) (xy 166.14 63.416678) (xy 166.465034 64.20138) (xy 167.06562 64.801966) + (xy 167.850322 65.127) (xy 168.699678 65.127) (xy 169.48438 64.801966) (xy 170.084966 64.20138) (xy 170.41 63.416678) + (xy 170.41 62.567322) (xy 170.084966 61.78262) (xy 169.48438 61.182034) (xy 168.699678 60.857) (xy 167.850322 60.857) + (xy 167.775941 60.887809) (xy 166.947572 60.05944) (xy 169.775 60.05944) (xy 170.022765 60.010157) (xy 170.232809 59.869809) + (xy 170.373157 59.659765) (xy 170.42244 59.412) (xy 170.42244 56.412) (xy 170.373157 56.164235) (xy 170.232809 55.954191) + (xy 170.022765 55.813843) (xy 169.775 55.76456) (xy 169.41 55.76456) (xy 169.41 55.523781) (xy 169.432235 55.411999) + (xy 169.402044 55.260218) (xy 169.344146 54.969145) (xy 169.093289 54.593711) (xy 168.998521 54.530389) (xy 168.354613 53.886481) + (xy 168.291289 53.791711) (xy 167.915855 53.540854) (xy 167.584783 53.475) (xy 167.473 53.452765) (xy 167.361217 53.475) + (xy 154.197 53.475) (xy 154.197 53.388126) (xy 154.039431 53.00772) (xy 153.74828 52.716569) (xy 153.367874 52.559) + (xy 152.956126 52.559) (xy 152.57572 52.716569) (xy 152.442603 52.849686) (xy 152.299778 52.878096) (xy 152.048386 53.046071) + (xy 152.005985 53.109528) (xy 151.915529 53.199985) (xy 151.852071 53.242386) (xy 151.696644 53.475) (xy 132.953783 53.475) + (xy 132.842 53.452765) (xy 132.730217 53.475) (xy 132.399145 53.540854) (xy 132.023711 53.791711) (xy 131.960389 53.886479) + (xy 131.356481 54.490387) (xy 131.261711 54.553711) (xy 131.025961 54.906537) (xy 131.010854 54.929146) (xy 130.922765 55.372) + (xy 130.945 55.483783) (xy 130.945 56.071225) (xy 130.87062 56.102034) (xy 130.270034 56.70262) (xy 129.945 57.487322) + (xy 129.945 58.336678) (xy 130.270034 59.12138) (xy 130.87062 59.721966) (xy 131.655322 60.047) (xy 132.504678 60.047) + (xy 132.766191 59.938678) (xy 131.860309 60.84456) (xy 130.58 60.84456) (xy 130.332235 60.893843) (xy 130.122191 61.034191) + (xy 129.981843 61.244235) (xy 129.93256 61.492) (xy 129.93256 64.492) (xy 129.981843 64.739765) (xy 130.122191 64.949809) + (xy 130.332235 65.090157) (xy 130.58 65.13944) (xy 133.58 65.13944) (xy 133.827765 65.090157) (xy 134.037809 64.949809) + (xy 134.178157 64.739765) (xy 134.22744 64.492) (xy 134.22744 61.687691) (xy 138.392132 57.523) (xy 154.618199 57.523) + (xy 155.626758 58.53156) (xy 155.554 58.53156) (xy 155.306235 58.580843) (xy 155.096191 58.721191) (xy 154.955843 58.931235) + (xy 154.90656 59.179) (xy 154.90656 60.929) (xy 154.922759 61.010439) (xy 153.18553 62.747669) (xy 153.122071 62.790071) + (xy 152.954096 63.041464) (xy 152.91 63.263149) (xy 152.91 63.263153) (xy 152.895112 63.338) (xy 152.91 63.412847) + (xy 152.910001 68.074) (xy 148.852178 68.074) (xy 148.644625 67.763375) (xy 148.346239 67.564) (xy 148.644625 67.364625) + (xy 148.852178 67.054) (xy 149.918289 67.054) (xy 150.03572 67.171431) (xy 150.416126 67.329) (xy 150.827874 67.329) + (xy 151.20828 67.171431) (xy 151.499431 66.88028) (xy 151.657 66.499874) (xy 151.657 66.088126) (xy 151.499431 65.70772) + (xy 151.450711 65.659) (xy 151.499431 65.61028) (xy 151.657 65.229874) (xy 151.657 64.818126) (xy 151.499431 64.43772) + (xy 151.20828 64.146569) (xy 150.827874 63.989) (xy 150.416126 63.989) (xy 150.390544 63.999596) (xy 150.368 63.995112) + (xy 150.293153 64.01) (xy 146.632846 64.01) (xy 146.557999 63.995112) (xy 146.483152 64.01) (xy 146.483148 64.01) + (xy 146.261463 64.054096) (xy 146.250912 64.061146) (xy 146.073526 64.179671) (xy 146.073524 64.179673) (xy 146.010071 64.222071) + (xy 145.967673 64.285524) (xy 145.400407 64.852791) (xy 145.180256 64.809) (xy 144.887744 64.809) (xy 144.667592 64.852791) + (xy 144.182331 64.36753) (xy 144.139929 64.304071) (xy 143.888537 64.136096) (xy 143.666852 64.092) (xy 143.666847 64.092) + (xy 143.592 64.077112) (xy 143.517153 64.092) (xy 140.816848 64.092) (xy 140.742 64.077112) (xy 140.667152 64.092) + (xy 140.667148 64.092) (xy 140.445463 64.136096) (xy 140.194071 64.304071) (xy 140.151671 64.367527) (xy 139.965051 64.554148) + (xy 139.889765 64.503843) (xy 139.642 64.45456) (xy 138.742 64.45456) (xy 138.494235 64.503843) (xy 138.284191 64.644191) + (xy 138.143843 64.854235) (xy 138.09456 65.102) (xy 138.09456 66.302) (xy 138.143843 66.549765) (xy 138.284191 66.759809) + (xy 138.347334 66.802) (xy 138.284191 66.844191) (xy 138.143843 67.054235) (xy 138.105682 67.246086) (xy 138.007526 67.311671) + (xy 138.007524 67.311673) (xy 137.944071 67.354071) (xy 137.901673 67.417524) (xy 131.59553 73.723669) (xy 131.532071 73.766071) + (xy 131.364096 74.017464) (xy 131.32 74.239149) (xy 131.32 74.239153) (xy 131.305112 74.314) (xy 131.32 74.388847) + (xy 131.320001 84.290824) (xy 131.32 84.290829) (xy 131.32 84.490895) (xy 130.87062 84.677034) (xy 130.270034 85.27762) + (xy 129.945 86.062322) (xy 129.945 86.911678) (xy 130.079363 87.236059) (xy 128.751 88.564422) (xy 128.751 50.83175) + (xy 129.945 50.83175) (xy 129.945 52.172309) (xy 130.041673 52.405698) (xy 130.220301 52.584327) (xy 130.45369 52.681) + (xy 131.79425 52.681) (xy 131.953 52.52225) (xy 131.953 50.673) (xy 132.207 50.673) (xy 132.207 52.52225) + (xy 132.36575 52.681) (xy 133.70631 52.681) (xy 133.939699 52.584327) (xy 134.118327 52.405698) (xy 134.215 52.172309) + (xy 134.215 52.05997) (xy 166.940635 52.05997) (xy 167.100418 52.378739) (xy 167.891187 52.688723) (xy 168.740387 52.672497) + (xy 169.449582 52.378739) (xy 169.609365 52.05997) (xy 168.275 50.725605) (xy 166.940635 52.05997) (xy 134.215 52.05997) + (xy 134.215 50.83175) (xy 134.05625 50.673) (xy 132.207 50.673) (xy 131.953 50.673) (xy 130.10375 50.673) + (xy 129.945 50.83175) (xy 128.751 50.83175) (xy 128.751 48.919691) (xy 129.945 48.919691) (xy 129.945 50.26025) + (xy 130.10375 50.419) (xy 131.953 50.419) (xy 131.953 48.56975) (xy 132.207 48.56975) (xy 132.207 50.419) + (xy 134.05625 50.419) (xy 134.215 50.26025) (xy 134.215 50.162187) (xy 166.132277 50.162187) (xy 166.148503 51.011387) + (xy 166.442261 51.720582) (xy 166.76103 51.880365) (xy 168.095395 50.546) (xy 168.454605 50.546) (xy 169.78897 51.880365) + (xy 170.107739 51.720582) (xy 170.417723 50.929813) (xy 170.401497 50.080613) (xy 170.107739 49.371418) (xy 169.78897 49.211635) + (xy 168.454605 50.546) (xy 168.095395 50.546) (xy 166.76103 49.211635) (xy 166.442261 49.371418) (xy 166.132277 50.162187) + (xy 134.215 50.162187) (xy 134.215 49.03203) (xy 166.940635 49.03203) (xy 168.275 50.366395) (xy 169.609365 49.03203) + (xy 169.449582 48.713261) (xy 168.658813 48.403277) (xy 167.809613 48.419503) (xy 167.100418 48.713261) (xy 166.940635 49.03203) + (xy 134.215 49.03203) (xy 134.215 48.919691) (xy 134.118327 48.686302) (xy 133.939699 48.507673) (xy 133.70631 48.411) + (xy 132.36575 48.411) (xy 132.207 48.56975) (xy 131.953 48.56975) (xy 131.79425 48.411) (xy 130.45369 48.411) + (xy 130.220301 48.507673) (xy 130.041673 48.686302) (xy 129.945 48.919691) (xy 128.751 48.919691) (xy 128.751 45.466) + (xy 129.903173 45.466) (xy 129.945 45.676279) (xy 129.945 45.890678) (xy 130.027047 46.088757) (xy 130.068874 46.299036) + (xy 130.187987 46.477301) (xy 130.270034 46.67538) (xy 130.421638 46.826984) (xy 130.540751 47.005249) (xy 130.719016 47.124362) + (xy 130.87062 47.275966) (xy 131.068699 47.358013) (xy 131.246964 47.477126) (xy 131.457243 47.518953) (xy 131.655322 47.601) + (xy 166.712459 47.601) (xy 166.775 47.61344) (xy 169.775 47.61344) (xy 170.022765 47.564157) (xy 170.232809 47.423809) + (xy 170.373157 47.213765) (xy 170.42244 46.966) (xy 170.42244 45.613739) (xy 170.451827 45.466) (xy 170.42244 45.318261) + (xy 170.42244 43.966) (xy 170.373157 43.718235) (xy 170.232809 43.508191) (xy 170.022765 43.367843) (xy 169.775 43.31856) + (xy 166.775 43.31856) (xy 166.712459 43.331) (xy 131.655322 43.331) (xy 131.457243 43.413047) (xy 131.246964 43.454874) + (xy 131.068699 43.573987) (xy 130.87062 43.656034) (xy 130.719016 43.807638) (xy 130.540751 43.926751) (xy 130.421638 44.105016) + (xy 130.270034 44.25662) (xy 130.187987 44.454699) (xy 130.068874 44.632964) (xy 130.027047 44.843243) (xy 129.945 45.041322) + (xy 129.945 45.255721) (xy 129.903173 45.466) (xy 128.751 45.466) (xy 128.751 37.057) (xy 131.21053 37.057) + ) + ) + (filled_polygon + (pts + (xy 146.666191 87.079809) (xy 146.729334 87.122) (xy 146.666191 87.164191) (xy 146.525843 87.374235) (xy 146.47656 87.622) + (xy 146.47656 88.822) (xy 146.525843 89.069765) (xy 146.666191 89.279809) (xy 146.876235 89.420157) (xy 147.124 89.46944) + (xy 148.024 89.46944) (xy 148.271765 89.420157) (xy 148.380574 89.347453) (xy 148.399976 89.360417) (xy 148.621661 89.404513) + (xy 148.621665 89.404513) (xy 148.696513 89.419401) (xy 148.771361 89.404513) (xy 149.1 89.404513) (xy 149.100001 95.993) + (xy 148.892126 95.993) (xy 148.818253 96.023599) (xy 148.84244 95.902) (xy 148.84244 95.502) (xy 148.817576 95.377) + (xy 148.84244 95.252) (xy 148.84244 94.852) (xy 148.817576 94.727) (xy 148.84244 94.602) (xy 148.84244 94.202) + (xy 148.817576 94.077) (xy 148.84244 93.952) (xy 148.84244 93.552) (xy 148.817576 93.427) (xy 148.84244 93.302) + (xy 148.84244 92.902) (xy 148.817576 92.777) (xy 148.84244 92.652) (xy 148.84244 92.252) (xy 148.817576 92.127) + (xy 148.84244 92.002) (xy 148.84244 91.602) (xy 148.817576 91.477) (xy 148.84244 91.352) (xy 148.84244 90.952) + (xy 148.793157 90.704235) (xy 148.652809 90.494191) (xy 148.442765 90.353843) (xy 148.195 90.30456) (xy 147.095 90.30456) + (xy 146.847235 90.353843) (xy 146.637191 90.494191) (xy 146.496843 90.704235) (xy 146.44756 90.952) (xy 146.44756 91.352) + (xy 146.472424 91.477) (xy 146.44756 91.602) (xy 146.44756 92.002) (xy 146.472424 92.127) (xy 146.44756 92.252) + (xy 146.44756 92.652) (xy 146.472424 92.777) (xy 146.44756 92.902) (xy 146.44756 93.302) (xy 146.472424 93.427) + (xy 146.44756 93.552) (xy 146.44756 93.952) (xy 146.472424 94.077) (xy 146.44756 94.202) (xy 146.44756 94.602) + (xy 146.472424 94.727) (xy 146.44756 94.852) (xy 146.44756 95.252) (xy 146.472424 95.377) (xy 146.44756 95.502) + (xy 146.44756 95.902) (xy 146.472424 96.027) (xy 146.462188 96.078458) (xy 146.255874 95.993) (xy 145.844126 95.993) + (xy 145.46372 96.150569) (xy 145.172569 96.44172) (xy 145.015 96.822126) (xy 145.015 97.233874) (xy 145.172569 97.61428) + (xy 145.327211 97.768922) (xy 145.334096 97.803537) (xy 145.502072 98.054929) (xy 145.565528 98.097329) (xy 146.254671 98.786473) + (xy 146.297071 98.849929) (xy 146.360527 98.892329) (xy 146.44756 98.950483) (xy 146.44756 99.152) (xy 146.472424 99.277) + (xy 146.44756 99.402) (xy 146.44756 99.802) (xy 146.496843 100.049765) (xy 146.556449 100.138972) (xy 145.395273 101.300148) + (xy 145.537724 100.584) (xy 145.35262 99.65342) (xy 144.825489 98.864511) (xy 144.03658 98.33738) (xy 143.340897 98.199) + (xy 142.871103 98.199) (xy 142.17542 98.33738) (xy 141.386511 98.864511) (xy 140.85938 99.65342) (xy 140.674276 100.584) + (xy 140.85938 101.51458) (xy 141.386511 102.303489) (xy 141.444145 102.341999) (xy 134.136167 102.341999) (xy 134.215 102.151678) + (xy 134.215 101.302322) (xy 133.889966 100.51762) (xy 133.28938 99.917034) (xy 132.504678 99.592) (xy 131.655322 99.592) + (xy 131.330941 99.726363) (xy 130.171 98.566422) (xy 130.171 97.617291) (xy 130.270034 97.85638) (xy 130.87062 98.456966) + (xy 131.655322 98.782) (xy 132.504678 98.782) (xy 133.28938 98.456966) (xy 133.889966 97.85638) (xy 134.215 97.071678) + (xy 134.215 96.222322) (xy 134.028861 95.772941) (xy 136.120476 93.681327) (xy 136.183929 93.638929) (xy 136.226327 93.575476) + (xy 136.226329 93.575474) (xy 136.324042 93.429235) (xy 136.351904 93.387537) (xy 136.396 93.165852) (xy 136.396 93.165848) + (xy 136.410888 93.091001) (xy 136.396 93.016154) (xy 136.396 92.397711) (xy 136.513431 92.28028) (xy 136.671 91.899874) + (xy 136.671 91.488126) (xy 136.513431 91.10772) (xy 136.22228 90.816569) (xy 135.841874 90.659) (xy 135.430126 90.659) + (xy 135.04972 90.816569) (xy 134.758569 91.10772) (xy 134.601 91.488126) (xy 134.601 91.899874) (xy 134.758569 92.28028) + (xy 134.876001 92.397712) (xy 134.876001 92.776196) (xy 132.954059 94.698139) (xy 132.504678 94.512) (xy 131.655322 94.512) + (xy 130.87062 94.837034) (xy 130.270034 95.43762) (xy 130.171 95.676709) (xy 130.171 93.08097) (xy 130.745635 93.08097) + (xy 130.905418 93.399739) (xy 131.696187 93.709723) (xy 132.545387 93.693497) (xy 133.254582 93.399739) (xy 133.414365 93.08097) + (xy 132.08 91.746605) (xy 130.745635 93.08097) (xy 130.171 93.08097) (xy 130.171 92.557472) (xy 130.247261 92.741582) + (xy 130.56603 92.901365) (xy 131.900395 91.567) (xy 132.259605 91.567) (xy 133.59397 92.901365) (xy 133.912739 92.741582) + (xy 134.222723 91.950813) (xy 134.206497 91.101613) (xy 133.912739 90.392418) (xy 133.59397 90.232635) (xy 132.259605 91.567) + (xy 131.900395 91.567) (xy 130.56603 90.232635) (xy 130.247261 90.392418) (xy 130.171 90.58696) (xy 130.171 90.05303) + (xy 130.745635 90.05303) (xy 132.08 91.387395) (xy 133.414365 90.05303) (xy 133.254582 89.734261) (xy 133.070245 89.662) + (xy 140.674276 89.662) (xy 140.85938 90.59258) (xy 141.386511 91.381489) (xy 142.17542 91.90862) (xy 142.871103 92.047) + (xy 143.340897 92.047) (xy 144.03658 91.90862) (xy 144.825489 91.381489) (xy 145.35262 90.59258) (xy 145.537724 89.662) + (xy 145.35262 88.73142) (xy 144.825489 87.942511) (xy 144.03658 87.41538) (xy 143.340897 87.277) (xy 142.871103 87.277) + (xy 142.17542 87.41538) (xy 141.386511 87.942511) (xy 140.85938 88.73142) (xy 140.674276 89.662) (xy 133.070245 89.662) + (xy 132.463813 89.424277) (xy 131.614613 89.440503) (xy 130.905418 89.734261) (xy 130.745635 90.05303) (xy 130.171 90.05303) + (xy 130.171 89.647578) (xy 131.330941 88.487637) (xy 131.655322 88.622) (xy 132.504678 88.622) (xy 133.28938 88.296966) + (xy 133.889966 87.69638) (xy 134.215 86.911678) (xy 134.215 86.907) (xy 146.550723 86.907) + ) + ) + (filled_polygon + (pts + (xy 140.603095 66.072465) (xy 140.558999 66.29415) (xy 140.558999 66.294154) (xy 140.544111 66.369001) (xy 140.558999 66.443848) + (xy 140.559 69.272147) (xy 140.544111 69.346999) (xy 140.603096 69.643536) (xy 140.710251 69.803904) (xy 140.771071 69.894928) + (xy 140.834527 69.937328) (xy 145.194198 74.297) (xy 144.694312 74.297) (xy 144.684147 74.27246) (xy 144.29454 73.882853) + (xy 143.785494 73.672) (xy 143.234506 73.672) (xy 142.72546 73.882853) (xy 142.335853 74.27246) (xy 142.125 74.781506) + (xy 142.125 75.027) (xy 140.51244 75.027) (xy 140.51244 74.787) (xy 140.463157 74.539235) (xy 140.322809 74.329191) + (xy 140.112765 74.188843) (xy 139.865 74.13956) (xy 138.265 74.13956) (xy 138.017235 74.188843) (xy 137.807191 74.329191) + (xy 137.666843 74.539235) (xy 137.61756 74.787) (xy 137.61756 76.787) (xy 137.666843 77.034765) (xy 137.807191 77.244809) + (xy 137.859109 77.2795) (xy 137.807191 77.314191) (xy 137.666843 77.524235) (xy 137.61756 77.772) (xy 137.61756 79.772) + (xy 137.666843 80.019765) (xy 137.807191 80.229809) (xy 138.017235 80.370157) (xy 138.265 80.41944) (xy 139.865 80.41944) + (xy 140.112765 80.370157) (xy 140.322809 80.229809) (xy 140.463157 80.019765) (xy 140.51244 79.772) (xy 140.51244 79.532) + (xy 142.030199 79.532) (xy 142.135165 79.636966) (xy 142.125 79.661506) (xy 142.125 80.212494) (xy 142.302338 80.640627) + (xy 142.06428 80.402569) (xy 141.683874 80.245) (xy 141.272126 80.245) (xy 140.89172 80.402569) (xy 140.600569 80.69372) + (xy 140.443 81.074126) (xy 140.443 81.485874) (xy 140.600569 81.86628) (xy 140.89172 82.157431) (xy 141.272126 82.315) + (xy 141.438198 82.315) (xy 142.88397 83.760773) (xy 142.926368 83.824226) (xy 142.989821 83.866624) (xy 142.989823 83.866626) + (xy 143.115199 83.950399) (xy 143.17776 83.992201) (xy 143.399445 84.036297) (xy 143.399449 84.036297) (xy 143.474296 84.051185) + (xy 143.549143 84.036297) (xy 148.803369 84.036297) (xy 148.878216 84.051185) (xy 148.953063 84.036297) (xy 148.953068 84.036297) + (xy 149.174753 83.992201) (xy 149.426145 83.824226) (xy 149.468547 83.760767) (xy 149.630578 83.598736) (xy 149.803217 83.598736) + (xy 150.050982 83.549453) (xy 150.138217 83.491164) (xy 150.225452 83.549453) (xy 150.473217 83.598736) (xy 151.073217 83.598736) + (xy 151.320982 83.549453) (xy 151.408217 83.491164) (xy 151.495452 83.549453) (xy 151.743217 83.598736) (xy 152.343217 83.598736) + (xy 152.590982 83.549453) (xy 152.678217 83.491164) (xy 152.765452 83.549453) (xy 153.013217 83.598736) (xy 153.613217 83.598736) + (xy 153.860982 83.549453) (xy 153.919075 83.510636) (xy 149.545199 87.884513) (xy 149.011314 87.884513) (xy 148.864331 87.73753) + (xy 148.821929 87.674071) (xy 148.660318 87.566086) (xy 148.622157 87.374235) (xy 148.481809 87.164191) (xy 148.418666 87.122) + (xy 148.481809 87.079809) (xy 148.597277 86.907) (xy 149.197289 86.907) (xy 149.27372 86.983431) (xy 149.654126 87.141) + (xy 150.065874 87.141) (xy 150.44628 86.983431) (xy 150.737431 86.69228) (xy 150.895 86.311874) (xy 150.895 85.900126) + (xy 150.737431 85.51972) (xy 150.44628 85.228569) (xy 150.065874 85.071) (xy 149.654126 85.071) (xy 149.494788 85.137) + (xy 148.597277 85.137) (xy 148.481809 84.964191) (xy 148.271765 84.823843) (xy 148.024 84.77456) (xy 147.124 84.77456) + (xy 146.876235 84.823843) (xy 146.666191 84.964191) (xy 146.550723 85.137) (xy 133.749346 85.137) (xy 133.28938 84.677034) + (xy 132.84 84.490895) (xy 132.84 83.05775) (xy 137.63 83.05775) (xy 137.63 83.898309) (xy 137.726673 84.131698) + (xy 137.905301 84.310327) (xy 138.13869 84.407) (xy 138.77925 84.407) (xy 138.938 84.24825) (xy 138.938 82.899) + (xy 139.192 82.899) (xy 139.192 84.24825) (xy 139.35075 84.407) (xy 139.99131 84.407) (xy 140.224699 84.310327) + (xy 140.403327 84.131698) (xy 140.5 83.898309) (xy 140.5 83.05775) (xy 140.34125 82.899) (xy 139.192 82.899) + (xy 138.938 82.899) (xy 137.78875 82.899) (xy 137.63 83.05775) (xy 132.84 83.05775) (xy 132.84 81.645691) + (xy 137.63 81.645691) (xy 137.63 82.48625) (xy 137.78875 82.645) (xy 138.938 82.645) (xy 138.938 81.29575) + (xy 139.192 81.29575) (xy 139.192 82.645) (xy 140.34125 82.645) (xy 140.5 82.48625) (xy 140.5 81.645691) + (xy 140.403327 81.412302) (xy 140.224699 81.233673) (xy 139.99131 81.137) (xy 139.35075 81.137) (xy 139.192 81.29575) + (xy 138.938 81.29575) (xy 138.77925 81.137) (xy 138.13869 81.137) (xy 137.905301 81.233673) (xy 137.726673 81.412302) + (xy 137.63 81.645691) (xy 132.84 81.645691) (xy 132.84 74.628801) (xy 135.396051 72.07275) (xy 137.63 72.07275) + (xy 137.63 72.913309) (xy 137.726673 73.146698) (xy 137.905301 73.325327) (xy 138.13869 73.422) (xy 138.77925 73.422) + (xy 138.938 73.26325) (xy 138.938 71.914) (xy 139.192 71.914) (xy 139.192 73.26325) (xy 139.35075 73.422) + (xy 139.99131 73.422) (xy 140.224699 73.325327) (xy 140.403327 73.146698) (xy 140.5 72.913309) (xy 140.5 72.07275) + (xy 140.34125 71.914) (xy 139.192 71.914) (xy 138.938 71.914) (xy 137.78875 71.914) (xy 137.63 72.07275) + (xy 135.396051 72.07275) (xy 136.80811 70.660691) (xy 137.63 70.660691) (xy 137.63 71.50125) (xy 137.78875 71.66) + (xy 138.938 71.66) (xy 138.938 70.31075) (xy 139.192 70.31075) (xy 139.192 71.66) (xy 140.34125 71.66) + (xy 140.5 71.50125) (xy 140.5 70.660691) (xy 140.403327 70.427302) (xy 140.224699 70.248673) (xy 139.99131 70.152) + (xy 139.35075 70.152) (xy 139.192 70.31075) (xy 138.938 70.31075) (xy 138.77925 70.152) (xy 138.13869 70.152) + (xy 137.905301 70.248673) (xy 137.726673 70.427302) (xy 137.63 70.660691) (xy 136.80811 70.660691) (xy 138.41895 69.049853) + (xy 138.494235 69.100157) (xy 138.742 69.14944) (xy 139.642 69.14944) (xy 139.889765 69.100157) (xy 140.099809 68.959809) + (xy 140.240157 68.749765) (xy 140.28944 68.502) (xy 140.28944 67.302) (xy 140.240157 67.054235) (xy 140.099809 66.844191) + (xy 140.036666 66.802) (xy 140.099809 66.759809) (xy 140.240157 66.549765) (xy 140.278318 66.357914) (xy 140.439929 66.249929) + (xy 140.482331 66.18647) (xy 140.616705 66.052096) + ) + ) + (filled_polygon + (pts + (xy 146.503375 69.904625) (xy 146.994582 70.232839) (xy 147.427744 70.319) (xy 147.720256 70.319) (xy 148.153418 70.232839) + (xy 148.644625 69.904625) (xy 148.852178 69.594) (xy 152.407084 69.594) (xy 152.06772 69.734569) (xy 151.776569 70.02572) + (xy 151.619 70.406126) (xy 151.619 70.817874) (xy 151.680493 70.966332) (xy 151.495452 71.003139) (xy 151.408217 71.061428) + (xy 151.320982 71.003139) (xy 151.073217 70.953856) (xy 150.473217 70.953856) (xy 150.225452 71.003139) (xy 150.138217 71.061428) + (xy 150.050982 71.003139) (xy 149.803217 70.953856) (xy 149.203217 70.953856) (xy 148.955452 71.003139) (xy 148.876245 71.056064) + (xy 148.659527 70.966296) (xy 148.518967 70.966296) (xy 148.360217 71.125046) (xy 148.360217 72.449296) (xy 148.380217 72.449296) + (xy 148.380217 72.703296) (xy 148.360217 72.703296) (xy 148.360217 72.723296) (xy 148.106217 72.723296) (xy 148.106217 72.703296) + (xy 148.086217 72.703296) (xy 148.086217 72.449296) (xy 148.106217 72.449296) (xy 148.106217 71.125046) (xy 147.947467 70.966296) + (xy 147.806907 70.966296) (xy 147.573518 71.062969) (xy 147.39489 71.241598) (xy 147.298217 71.474987) (xy 147.298217 72.290546) + (xy 147.456965 72.449294) (xy 147.298217 72.449294) (xy 147.298217 72.563416) (xy 145.053801 70.319) (xy 145.161002 70.319) + (xy 145.161002 70.154156) (xy 145.39089 70.275476) (xy 145.800924 70.105645) (xy 146.229183 69.715358) (xy 146.290157 69.585522) + ) + ) + (filled_polygon + (pts + (xy 147.447532 72.712731) (xy 147.438099 72.703298) (xy 147.456965 72.703298) + ) + ) + (filled_polygon + (pts + (xy 144.906998 70.172197) (xy 144.895189 70.160388) (xy 144.906998 70.154156) + ) + ) + (filled_polygon + (pts + (xy 145.161 68.707) (xy 145.181 68.707) (xy 145.181 68.961) (xy 145.161 68.961) (xy 145.161 68.981) + (xy 144.907 68.981) (xy 144.907 68.961) (xy 144.887 68.961) (xy 144.887 68.707) (xy 144.907 68.707) + (xy 144.907 68.687) (xy 145.161 68.687) + ) + ) + ) + (zone (net 1) (net_name GND) (layer B.Cu) (tstamp 5BE89B47) (hatch edge 0.508) + (connect_pads (clearance 0.508)) + (min_thickness 0.254) + (fill yes (arc_segments 16) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 128.016 36.322) (xy 172.212 36.322) (xy 172.212 121.158) (xy 128.016 121.158) + ) + ) + (filled_polygon + (pts + (xy 130.813974 37.221259) (xy 130.185259 37.849974) (xy 129.845 38.671431) (xy 129.845 39.560569) (xy 130.185259 40.382026) + (xy 130.813974 41.010741) (xy 131.635431 41.351) (xy 132.524569 41.351) (xy 133.346026 41.010741) (xy 133.974741 40.382026) + (xy 134.315 39.560569) (xy 134.315 38.671431) (xy 133.974741 37.849974) (xy 133.346026 37.221259) (xy 132.94947 37.057) + (xy 167.27853 37.057) (xy 166.881974 37.221259) (xy 166.253259 37.849974) (xy 165.913 38.671431) (xy 165.913 39.560569) + (xy 166.253259 40.382026) (xy 166.881974 41.010741) (xy 167.703431 41.351) (xy 168.592569 41.351) (xy 169.414026 41.010741) + (xy 170.042741 40.382026) (xy 170.383 39.560569) (xy 170.383 38.671431) (xy 170.042741 37.849974) (xy 169.414026 37.221259) + (xy 169.01747 37.057) (xy 171.477 37.057) (xy 171.477001 120.423) (xy 169.01747 120.423) (xy 169.414026 120.258741) + (xy 170.042741 119.630026) (xy 170.383 118.808569) (xy 170.383 117.919431) (xy 170.042741 117.097974) (xy 169.414026 116.469259) + (xy 168.592569 116.129) (xy 167.703431 116.129) (xy 166.881974 116.469259) (xy 166.253259 117.097974) (xy 165.913 117.919431) + (xy 165.913 118.808569) (xy 166.253259 119.630026) (xy 166.881974 120.258741) (xy 167.27853 120.423) (xy 132.94947 120.423) + (xy 133.346026 120.258741) (xy 133.974741 119.630026) (xy 134.315 118.808569) (xy 134.315 117.919431) (xy 133.974741 117.097974) + (xy 133.346026 116.469259) (xy 132.524569 116.129) (xy 131.635431 116.129) (xy 130.813974 116.469259) (xy 130.185259 117.097974) + (xy 129.845 117.919431) (xy 129.845 118.808569) (xy 130.185259 119.630026) (xy 130.813974 120.258741) (xy 131.21053 120.423) + (xy 128.751 120.423) (xy 128.751 110.387) (xy 129.93256 110.387) (xy 129.93256 113.387) (xy 129.981843 113.634765) + (xy 130.122191 113.844809) (xy 130.332235 113.985157) (xy 130.58 114.03444) (xy 133.58 114.03444) (xy 133.827765 113.985157) + (xy 134.037809 113.844809) (xy 134.178157 113.634765) (xy 134.22744 113.387) (xy 134.22744 110.387) (xy 134.178157 110.139235) + (xy 134.037809 109.929191) (xy 133.827765 109.788843) (xy 133.58 109.73956) (xy 130.58 109.73956) (xy 130.332235 109.788843) + (xy 130.122191 109.929191) (xy 129.981843 110.139235) (xy 129.93256 110.387) (xy 128.751 110.387) (xy 128.751 108.32097) + (xy 130.745635 108.32097) (xy 130.905418 108.639739) (xy 131.696187 108.949723) (xy 132.545387 108.933497) (xy 133.254582 108.639739) + (xy 133.414365 108.32097) (xy 132.08 106.986605) (xy 130.745635 108.32097) (xy 128.751 108.32097) (xy 128.751 106.423187) + (xy 129.937277 106.423187) (xy 129.953503 107.272387) (xy 130.247261 107.981582) (xy 130.56603 108.141365) (xy 131.900395 106.807) + (xy 132.259605 106.807) (xy 133.59397 108.141365) (xy 133.912739 107.981582) (xy 134.222723 107.190813) (xy 134.206497 106.341613) + (xy 133.912739 105.632418) (xy 133.59397 105.472635) (xy 132.259605 106.807) (xy 131.900395 106.807) (xy 130.56603 105.472635) + (xy 130.247261 105.632418) (xy 129.937277 106.423187) (xy 128.751 106.423187) (xy 128.751 105.29303) (xy 130.745635 105.29303) + (xy 132.08 106.627395) (xy 133.414365 105.29303) (xy 133.254582 104.974261) (xy 132.463813 104.664277) (xy 131.614613 104.680503) + (xy 130.905418 104.974261) (xy 130.745635 105.29303) (xy 128.751 105.29303) (xy 128.751 101.302322) (xy 129.945 101.302322) + (xy 129.945 102.151678) (xy 130.270034 102.93638) (xy 130.87062 103.536966) (xy 131.655322 103.862) (xy 132.504678 103.862) + (xy 133.28938 103.536966) (xy 133.889966 102.93638) (xy 134.215 102.151678) (xy 134.215 101.302322) (xy 133.889966 100.51762) + (xy 133.28938 99.917034) (xy 132.504678 99.592) (xy 131.655322 99.592) (xy 130.87062 99.917034) (xy 130.270034 100.51762) + (xy 129.945 101.302322) (xy 128.751 101.302322) (xy 128.751 96.222322) (xy 129.945 96.222322) (xy 129.945 97.071678) + (xy 130.270034 97.85638) (xy 130.87062 98.456966) (xy 131.655322 98.782) (xy 132.504678 98.782) (xy 133.28938 98.456966) + (xy 133.889966 97.85638) (xy 134.215 97.071678) (xy 134.215 96.222322) (xy 133.889966 95.43762) (xy 133.28938 94.837034) + (xy 132.504678 94.512) (xy 131.655322 94.512) (xy 130.87062 94.837034) (xy 130.270034 95.43762) (xy 129.945 96.222322) + (xy 128.751 96.222322) (xy 128.751 93.08097) (xy 130.745635 93.08097) (xy 130.905418 93.399739) (xy 131.696187 93.709723) + (xy 132.545387 93.693497) (xy 133.254582 93.399739) (xy 133.414365 93.08097) (xy 132.08 91.746605) (xy 130.745635 93.08097) + (xy 128.751 93.08097) (xy 128.751 91.183187) (xy 129.937277 91.183187) (xy 129.953503 92.032387) (xy 130.247261 92.741582) + (xy 130.56603 92.901365) (xy 131.900395 91.567) (xy 132.259605 91.567) (xy 133.59397 92.901365) (xy 133.912739 92.741582) + (xy 134.222723 91.950813) (xy 134.213883 91.488126) (xy 134.601 91.488126) (xy 134.601 91.899874) (xy 134.758569 92.28028) + (xy 135.04972 92.571431) (xy 135.370265 92.704205) (xy 135.369112 92.71) (xy 135.384 92.784847) (xy 135.384 93.546852) + (xy 135.384001 93.546857) (xy 135.384 108.869289) (xy 135.266569 108.98672) (xy 135.109 109.367126) (xy 135.109 109.778874) + (xy 135.266569 110.15928) (xy 135.55772 110.450431) (xy 135.938126 110.608) (xy 136.349874 110.608) (xy 136.73028 110.450431) + (xy 137.021431 110.15928) (xy 137.179 109.778874) (xy 137.179 109.367126) (xy 137.021431 108.98672) (xy 136.904 108.869289) + (xy 136.904 108.052892) (xy 149.942514 108.052892) (xy 150.188817 108.577358) (xy 150.617076 108.967645) (xy 151.02711 109.137476) + (xy 151.257 109.016155) (xy 151.257 107.823) (xy 150.063181 107.823) (xy 149.942514 108.052892) (xy 136.904 108.052892) + (xy 136.904 107.339108) (xy 149.942514 107.339108) (xy 150.063181 107.569) (xy 151.257 107.569) (xy 151.257 106.375845) + (xy 151.511 106.375845) (xy 151.511 107.569) (xy 151.531 107.569) (xy 151.531 107.823) (xy 151.511 107.823) + (xy 151.511 109.016155) (xy 151.74089 109.137476) (xy 152.150924 108.967645) (xy 152.579183 108.577358) (xy 152.640157 108.447522) + (xy 152.853375 108.766625) (xy 153.344582 109.094839) (xy 153.777744 109.181) (xy 154.070256 109.181) (xy 154.503418 109.094839) + (xy 154.994625 108.766625) (xy 155.194 108.468239) (xy 155.393375 108.766625) (xy 155.884582 109.094839) (xy 156.317744 109.181) + (xy 156.610256 109.181) (xy 157.043418 109.094839) (xy 157.534625 108.766625) (xy 157.546816 108.748381) (xy 157.555843 108.793765) + (xy 157.696191 109.003809) (xy 157.906235 109.144157) (xy 158.154 109.19344) (xy 159.854 109.19344) (xy 160.101765 109.144157) + (xy 160.311809 109.003809) (xy 160.452157 108.793765) (xy 160.50144 108.546) (xy 160.50144 106.846) (xy 160.452157 106.598235) + (xy 160.311809 106.388191) (xy 160.101765 106.247843) (xy 159.854 106.19856) (xy 158.154 106.19856) (xy 157.906235 106.247843) + (xy 157.696191 106.388191) (xy 157.555843 106.598235) (xy 157.546816 106.643619) (xy 157.534625 106.625375) (xy 157.043418 106.297161) + (xy 156.610256 106.211) (xy 156.317744 106.211) (xy 155.884582 106.297161) (xy 155.393375 106.625375) (xy 155.194 106.923761) + (xy 154.994625 106.625375) (xy 154.503418 106.297161) (xy 154.070256 106.211) (xy 153.777744 106.211) (xy 153.344582 106.297161) + (xy 152.853375 106.625375) (xy 152.640157 106.944478) (xy 152.579183 106.814642) (xy 152.150924 106.424355) (xy 151.74089 106.254524) + (xy 151.511 106.375845) (xy 151.257 106.375845) (xy 151.02711 106.254524) (xy 150.617076 106.424355) (xy 150.188817 106.814642) + (xy 149.942514 107.339108) (xy 136.904 107.339108) (xy 136.904 103.488742) (xy 158.274954 103.488742) (xy 158.528034 104.031576) + (xy 158.969583 104.43624) (xy 159.40126 104.615036) (xy 159.639 104.494378) (xy 159.639 103.251) (xy 159.893 103.251) + (xy 159.893 104.494378) (xy 160.13074 104.615036) (xy 160.562417 104.43624) (xy 161.003966 104.031576) (xy 161.257046 103.488742) + (xy 161.136997 103.251) (xy 159.893 103.251) (xy 159.639 103.251) (xy 158.395003 103.251) (xy 158.274954 103.488742) + (xy 136.904 103.488742) (xy 136.904 100.584) (xy 140.674276 100.584) (xy 140.85938 101.51458) (xy 141.386511 102.303489) + (xy 142.17542 102.83062) (xy 142.871103 102.969) (xy 143.340897 102.969) (xy 144.03658 102.83062) (xy 144.825489 102.303489) + (xy 145.35262 101.51458) (xy 145.537724 100.584) (xy 145.35262 99.65342) (xy 144.825489 98.864511) (xy 144.03658 98.33738) + (xy 143.340897 98.199) (xy 142.871103 98.199) (xy 142.17542 98.33738) (xy 141.386511 98.864511) (xy 140.85938 99.65342) + (xy 140.674276 100.584) (xy 136.904 100.584) (xy 136.904 93.024801) (xy 140.775453 89.153348) (xy 140.674276 89.662) + (xy 140.85938 90.59258) (xy 141.386511 91.381489) (xy 142.17542 91.90862) (xy 142.871103 92.047) (xy 143.340897 92.047) + (xy 144.03658 91.90862) (xy 144.825489 91.381489) (xy 145.29 90.686298) (xy 145.290001 96.324288) (xy 145.172569 96.44172) + (xy 145.015 96.822126) (xy 145.015 97.233874) (xy 145.172569 97.61428) (xy 145.46372 97.905431) (xy 145.694025 98.000826) + (xy 149.587 101.893803) (xy 149.587 102.059874) (xy 149.744569 102.44028) (xy 150.03572 102.731431) (xy 150.416126 102.889) + (xy 150.827874 102.889) (xy 151.20828 102.731431) (xy 151.499431 102.44028) (xy 151.657 102.059874) (xy 151.657 101.648126) + (xy 151.499431 101.26772) (xy 151.20828 100.976569) (xy 150.827874 100.819) (xy 150.661803 100.819) (xy 150.426803 100.584) + (xy 158.200928 100.584) (xy 158.320062 101.182927) (xy 158.659327 101.690673) (xy 158.915174 101.861624) (xy 158.528034 102.216424) + (xy 158.274954 102.759258) (xy 158.395003 102.997) (xy 159.639 102.997) (xy 159.639 102.977) (xy 159.893 102.977) + (xy 159.893 102.997) (xy 161.136997 102.997) (xy 161.257046 102.759258) (xy 161.003966 102.216424) (xy 160.699424 101.937322) + (xy 166.14 101.937322) (xy 166.14 102.786678) (xy 166.465034 103.57138) (xy 167.06562 104.171966) (xy 167.850322 104.497) + (xy 168.699678 104.497) (xy 169.48438 104.171966) (xy 170.084966 103.57138) (xy 170.41 102.786678) (xy 170.41 101.937322) + (xy 170.084966 101.15262) (xy 169.48438 100.552034) (xy 168.699678 100.227) (xy 167.850322 100.227) (xy 167.06562 100.552034) + (xy 166.465034 101.15262) (xy 166.14 101.937322) (xy 160.699424 101.937322) (xy 160.616826 101.861624) (xy 160.872673 101.690673) + (xy 161.211938 101.182927) (xy 161.331072 100.584) (xy 161.211938 99.985073) (xy 160.915304 99.541129) (xy 161.123809 99.401809) + (xy 161.264157 99.191765) (xy 161.31344 98.944) (xy 161.31344 97.144) (xy 161.264157 96.896235) (xy 161.238156 96.857322) + (xy 166.14 96.857322) (xy 166.14 97.706678) (xy 166.465034 98.49138) (xy 167.06562 99.091966) (xy 167.850322 99.417) + (xy 168.699678 99.417) (xy 169.48438 99.091966) (xy 170.084966 98.49138) (xy 170.41 97.706678) (xy 170.41 96.857322) + (xy 170.084966 96.07262) (xy 169.48438 95.472034) (xy 168.699678 95.147) (xy 167.850322 95.147) (xy 167.06562 95.472034) + (xy 166.465034 96.07262) (xy 166.14 96.857322) (xy 161.238156 96.857322) (xy 161.123809 96.686191) (xy 160.913765 96.545843) + (xy 160.666 96.49656) (xy 158.866 96.49656) (xy 158.618235 96.545843) (xy 158.408191 96.686191) (xy 158.267843 96.896235) + (xy 158.21856 97.144) (xy 158.21856 98.944) (xy 158.267843 99.191765) (xy 158.408191 99.401809) (xy 158.616696 99.541129) + (xy 158.320062 99.985073) (xy 158.200928 100.584) (xy 150.426803 100.584) (xy 147.082562 97.239761) (xy 147.085 97.233874) + (xy 147.085 96.822126) (xy 148.063 96.822126) (xy 148.063 97.233874) (xy 148.220569 97.61428) (xy 148.51172 97.905431) + (xy 148.892126 98.063) (xy 149.303874 98.063) (xy 149.68428 97.905431) (xy 149.801711 97.788) (xy 151.188289 97.788) + (xy 151.30572 97.905431) (xy 151.686126 98.063) (xy 152.097874 98.063) (xy 152.47828 97.905431) (xy 152.769431 97.61428) + (xy 152.927 97.233874) (xy 152.927 96.822126) (xy 152.769431 96.44172) (xy 152.47828 96.150569) (xy 152.097874 95.993) + (xy 151.686126 95.993) (xy 151.30572 96.150569) (xy 151.188289 96.268) (xy 149.801711 96.268) (xy 149.68428 96.150569) + (xy 149.303874 95.993) (xy 148.892126 95.993) (xy 148.51172 96.150569) (xy 148.220569 96.44172) (xy 148.063 96.822126) + (xy 147.085 96.822126) (xy 146.927431 96.44172) (xy 146.81 96.324289) (xy 146.81 92.566742) (xy 158.274954 92.566742) + (xy 158.528034 93.109576) (xy 158.969583 93.51424) (xy 159.40126 93.693036) (xy 159.639 93.572378) (xy 159.639 92.329) + (xy 159.893 92.329) (xy 159.893 93.572378) (xy 160.13074 93.693036) (xy 160.562417 93.51424) (xy 161.003966 93.109576) + (xy 161.257046 92.566742) (xy 161.136997 92.329) (xy 159.893 92.329) (xy 159.639 92.329) (xy 158.395003 92.329) + (xy 158.274954 92.566742) (xy 146.81 92.566742) (xy 146.81 90.738801) (xy 147.634802 89.914) (xy 149.918289 89.914) + (xy 150.03572 90.031431) (xy 150.416126 90.189) (xy 150.827874 90.189) (xy 151.20828 90.031431) (xy 151.499431 89.74028) + (xy 151.531855 89.662) (xy 158.200928 89.662) (xy 158.320062 90.260927) (xy 158.659327 90.768673) (xy 158.915174 90.939624) + (xy 158.528034 91.294424) (xy 158.274954 91.837258) (xy 158.395003 92.075) (xy 159.639 92.075) (xy 159.639 92.055) + (xy 159.893 92.055) (xy 159.893 92.075) (xy 161.136997 92.075) (xy 161.257046 91.837258) (xy 161.003966 91.294424) + (xy 160.616826 90.939624) (xy 160.872673 90.768673) (xy 161.211938 90.260927) (xy 161.331072 89.662) (xy 161.211938 89.063073) + (xy 160.915304 88.619129) (xy 161.123809 88.479809) (xy 161.264157 88.269765) (xy 161.31344 88.022) (xy 161.31344 86.222) + (xy 161.264157 85.974235) (xy 161.123809 85.764191) (xy 160.913765 85.623843) (xy 160.666 85.57456) (xy 158.866 85.57456) + (xy 158.618235 85.623843) (xy 158.408191 85.764191) (xy 158.267843 85.974235) (xy 158.21856 86.222) (xy 158.21856 88.022) + (xy 158.267843 88.269765) (xy 158.408191 88.479809) (xy 158.616696 88.619129) (xy 158.320062 89.063073) (xy 158.200928 89.662) + (xy 151.531855 89.662) (xy 151.657 89.359874) (xy 151.657 88.948126) (xy 151.499431 88.56772) (xy 151.20828 88.276569) + (xy 150.827874 88.119) (xy 150.416126 88.119) (xy 150.03572 88.276569) (xy 149.918289 88.394) (xy 147.394846 88.394) + (xy 147.319999 88.379112) (xy 147.245152 88.394) (xy 147.245148 88.394) (xy 147.023463 88.438096) (xy 146.772071 88.606071) + (xy 146.729671 88.669527) (xy 145.56553 89.833669) (xy 145.502071 89.876071) (xy 145.492206 89.890835) (xy 145.537724 89.662) + (xy 145.35262 88.73142) (xy 144.825489 87.942511) (xy 144.03658 87.41538) (xy 143.340897 87.277) (xy 142.871103 87.277) + (xy 142.597348 87.331453) (xy 144.028675 85.900126) (xy 148.825 85.900126) (xy 148.825 86.311874) (xy 148.982569 86.69228) + (xy 149.27372 86.983431) (xy 149.654126 87.141) (xy 150.065874 87.141) (xy 150.428007 86.991) (xy 155.133993 86.991) + (xy 155.496126 87.141) (xy 155.907874 87.141) (xy 156.28828 86.983431) (xy 156.579431 86.69228) (xy 156.737 86.311874) + (xy 156.737 85.900126) (xy 156.579431 85.51972) (xy 156.28828 85.228569) (xy 155.907874 85.071) (xy 155.496126 85.071) + (xy 155.133993 85.221) (xy 150.428007 85.221) (xy 150.065874 85.071) (xy 149.654126 85.071) (xy 149.27372 85.228569) + (xy 148.982569 85.51972) (xy 148.825 85.900126) (xy 144.028675 85.900126) (xy 149.841 80.087802) (xy 149.841 80.215874) + (xy 149.998569 80.59628) (xy 150.28972 80.887431) (xy 150.670126 81.045) (xy 151.081874 81.045) (xy 151.46228 80.887431) + (xy 151.579711 80.77) (xy 159.691153 80.77) (xy 159.766 80.784888) (xy 159.840847 80.77) (xy 159.840852 80.77) + (xy 160.062537 80.725904) (xy 160.313929 80.557929) (xy 160.356331 80.49447) (xy 161.266473 79.584329) (xy 161.329929 79.541929) + (xy 161.497904 79.290537) (xy 161.542 79.068852) (xy 161.542 79.068847) (xy 161.556888 78.994) (xy 161.542 78.919153) + (xy 161.542 72.845848) (xy 161.556888 72.771) (xy 161.542 72.696152) (xy 161.542 72.696148) (xy 161.497904 72.474463) + (xy 161.329929 72.223071) (xy 161.266473 72.180671) (xy 160.209756 71.123955) (xy 160.389431 70.94428) (xy 160.416818 70.878161) + (xy 161.695 72.156343) (xy 161.695001 89.66804) (xy 161.653174 89.87832) (xy 161.818874 90.711355) (xy 162.143372 91.197) + (xy 162.290752 91.417569) (xy 162.469017 91.536682) (xy 164.495318 93.562984) (xy 164.614431 93.741249) (xy 165.320644 94.213126) + (xy 165.943401 94.337) (xy 165.943405 94.337) (xy 166.15368 94.378826) (xy 166.363955 94.337) (xy 168.699678 94.337) + (xy 168.897757 94.254953) (xy 169.108036 94.213126) (xy 169.286301 94.094013) (xy 169.48438 94.011966) (xy 169.635984 93.860362) + (xy 169.814249 93.741249) (xy 169.933362 93.562984) (xy 170.084966 93.41138) (xy 170.167013 93.213301) (xy 170.286126 93.035036) + (xy 170.327953 92.824757) (xy 170.41 92.626678) (xy 170.41 92.412279) (xy 170.451827 92.202) (xy 170.41 91.991721) + (xy 170.41 91.777322) (xy 170.327953 91.579243) (xy 170.286126 91.368964) (xy 170.167013 91.190699) (xy 170.084966 90.99262) + (xy 169.933362 90.841016) (xy 169.814249 90.662751) (xy 169.635984 90.543638) (xy 169.48438 90.392034) (xy 169.286301 90.309987) + (xy 169.108036 90.190874) (xy 168.897757 90.149047) (xy 168.699678 90.067) (xy 167.038026 90.067) (xy 165.965 88.993975) + (xy 165.965 85.622) (xy 166.12756 85.622) (xy 166.12756 88.622) (xy 166.176843 88.869765) (xy 166.317191 89.079809) + (xy 166.527235 89.220157) (xy 166.775 89.26944) (xy 169.775 89.26944) (xy 170.022765 89.220157) (xy 170.232809 89.079809) + (xy 170.373157 88.869765) (xy 170.42244 88.622) (xy 170.42244 85.622) (xy 170.373157 85.374235) (xy 170.232809 85.164191) + (xy 170.022765 85.023843) (xy 169.775 84.97456) (xy 166.775 84.97456) (xy 166.527235 85.023843) (xy 166.317191 85.164191) + (xy 166.176843 85.374235) (xy 166.12756 85.622) (xy 165.965 85.622) (xy 165.965 71.482276) (xy 166.006827 71.271998) + (xy 165.884007 70.654537) (xy 165.841126 70.438962) (xy 165.369249 69.732749) (xy 165.190981 69.613634) (xy 163.664999 68.087652) + (xy 163.664999 62.567322) (xy 166.14 62.567322) (xy 166.14 63.416678) (xy 166.465034 64.20138) (xy 167.06562 64.801966) + (xy 167.850322 65.127) (xy 168.699678 65.127) (xy 169.48438 64.801966) (xy 170.084966 64.20138) (xy 170.41 63.416678) + (xy 170.41 62.567322) (xy 170.084966 61.78262) (xy 169.48438 61.182034) (xy 168.699678 60.857) (xy 167.850322 60.857) + (xy 167.06562 61.182034) (xy 166.465034 61.78262) (xy 166.14 62.567322) (xy 163.664999 62.567322) (xy 163.664999 56.412) + (xy 166.12756 56.412) (xy 166.12756 59.412) (xy 166.176843 59.659765) (xy 166.317191 59.869809) (xy 166.527235 60.010157) + (xy 166.775 60.05944) (xy 169.775 60.05944) (xy 170.022765 60.010157) (xy 170.232809 59.869809) (xy 170.373157 59.659765) + (xy 170.42244 59.412) (xy 170.42244 56.412) (xy 170.373157 56.164235) (xy 170.232809 55.954191) (xy 170.022765 55.813843) + (xy 169.775 55.76456) (xy 166.775 55.76456) (xy 166.527235 55.813843) (xy 166.317191 55.954191) (xy 166.176843 56.164235) + (xy 166.12756 56.412) (xy 163.664999 56.412) (xy 163.664999 52.05997) (xy 166.940635 52.05997) (xy 167.100418 52.378739) + (xy 167.891187 52.688723) (xy 168.740387 52.672497) (xy 169.449582 52.378739) (xy 169.609365 52.05997) (xy 168.275 50.725605) + (xy 166.940635 52.05997) (xy 163.664999 52.05997) (xy 163.664999 50.162187) (xy 166.132277 50.162187) (xy 166.148503 51.011387) + (xy 166.442261 51.720582) (xy 166.76103 51.880365) (xy 168.095395 50.546) (xy 168.454605 50.546) (xy 169.78897 51.880365) + (xy 170.107739 51.720582) (xy 170.417723 50.929813) (xy 170.401497 50.080613) (xy 170.107739 49.371418) (xy 169.78897 49.211635) + (xy 168.454605 50.546) (xy 168.095395 50.546) (xy 166.76103 49.211635) (xy 166.442261 49.371418) (xy 166.132277 50.162187) + (xy 163.664999 50.162187) (xy 163.664999 49.03203) (xy 166.940635 49.03203) (xy 168.275 50.366395) (xy 169.609365 49.03203) + (xy 169.449582 48.713261) (xy 168.658813 48.403277) (xy 167.809613 48.419503) (xy 167.100418 48.713261) (xy 166.940635 49.03203) + (xy 163.664999 49.03203) (xy 163.664999 48.595346) (xy 164.659346 47.601) (xy 166.712459 47.601) (xy 166.775 47.61344) + (xy 169.775 47.61344) (xy 170.022765 47.564157) (xy 170.232809 47.423809) (xy 170.373157 47.213765) (xy 170.42244 46.966) + (xy 170.42244 45.613739) (xy 170.451827 45.466) (xy 170.42244 45.318261) (xy 170.42244 43.966) (xy 170.373157 43.718235) + (xy 170.232809 43.508191) (xy 170.022765 43.367843) (xy 169.775 43.31856) (xy 166.775 43.31856) (xy 166.712459 43.331) + (xy 163.985275 43.331) (xy 163.775 43.289174) (xy 163.564725 43.331) (xy 163.564721 43.331) (xy 162.941964 43.454874) + (xy 162.235751 43.926751) (xy 162.116638 44.105016) (xy 160.169018 46.052637) (xy 159.99075 46.171752) (xy 159.518873 46.877966) + (xy 159.394999 47.500723) (xy 159.394999 47.500726) (xy 159.353173 47.711001) (xy 159.394999 47.921276) (xy 159.395 68.761717) + (xy 159.353173 68.971997) (xy 159.391008 69.162206) (xy 155.16833 64.939529) (xy 155.125928 64.87607) (xy 154.874536 64.708095) + (xy 154.652851 64.663999) (xy 154.652846 64.663999) (xy 154.577999 64.649111) (xy 154.503152 64.663999) (xy 151.593159 64.663999) + (xy 151.499431 64.43772) (xy 151.20828 64.146569) (xy 150.827874 63.989) (xy 150.416126 63.989) (xy 150.03572 64.146569) + (xy 149.744569 64.43772) (xy 149.587 64.818126) (xy 149.587 65.229874) (xy 149.744569 65.61028) (xy 149.793289 65.659) + (xy 149.744569 65.70772) (xy 149.587 66.088126) (xy 149.587 66.499874) (xy 149.744569 66.88028) (xy 150.03572 67.171431) + (xy 150.416126 67.329) (xy 150.582199 67.329) (xy 152.830198 69.577) (xy 152.448126 69.577) (xy 152.06772 69.734569) + (xy 151.950289 69.852) (xy 151.712848 69.852) (xy 151.638 69.837112) (xy 151.563152 69.852) (xy 151.563148 69.852) + (xy 151.389605 69.88652) (xy 151.341462 69.896096) (xy 151.237696 69.965431) (xy 151.090071 70.064071) (xy 151.047671 70.127527) + (xy 150.39153 70.783669) (xy 150.328071 70.826071) (xy 150.160096 71.077464) (xy 150.116 71.299149) (xy 150.116 71.299153) + (xy 150.101112 71.374) (xy 150.116 71.448847) (xy 150.116001 75.291199) (xy 149.117 74.292199) (xy 149.117 74.126126) + (xy 148.959431 73.74572) (xy 148.66828 73.454569) (xy 148.287874 73.297) (xy 147.876126 73.297) (xy 147.49572 73.454569) + (xy 147.204569 73.74572) (xy 147.193 73.77365) (xy 147.181431 73.74572) (xy 146.89028 73.454569) (xy 146.509874 73.297) + (xy 146.098126 73.297) (xy 145.71772 73.454569) (xy 145.426569 73.74572) (xy 145.269 74.126126) (xy 145.269 74.537874) + (xy 145.426569 74.91828) (xy 145.71772 75.209431) (xy 146.098126 75.367) (xy 146.264199 75.367) (xy 148.317 77.419802) + (xy 148.317 77.421874) (xy 148.474569 77.80228) (xy 148.690194 78.017905) (xy 135.6132 90.659) (xy 135.430126 90.659) + (xy 135.04972 90.816569) (xy 134.758569 91.10772) (xy 134.601 91.488126) (xy 134.213883 91.488126) (xy 134.206497 91.101613) + (xy 133.912739 90.392418) (xy 133.59397 90.232635) (xy 132.259605 91.567) (xy 131.900395 91.567) (xy 130.56603 90.232635) + (xy 130.247261 90.392418) (xy 129.937277 91.183187) (xy 128.751 91.183187) (xy 128.751 90.05303) (xy 130.745635 90.05303) + (xy 132.08 91.387395) (xy 133.414365 90.05303) (xy 133.254582 89.734261) (xy 132.463813 89.424277) (xy 131.614613 89.440503) + (xy 130.905418 89.734261) (xy 130.745635 90.05303) (xy 128.751 90.05303) (xy 128.751 86.062322) (xy 129.945 86.062322) + (xy 129.945 86.911678) (xy 130.270034 87.69638) (xy 130.87062 88.296966) (xy 131.655322 88.622) (xy 132.504678 88.622) + (xy 133.28938 88.296966) (xy 133.889966 87.69638) (xy 134.215 86.911678) (xy 134.215 86.062322) (xy 133.889966 85.27762) + (xy 133.28938 84.677034) (xy 132.504678 84.352) (xy 131.655322 84.352) (xy 130.87062 84.677034) (xy 130.270034 85.27762) + (xy 129.945 86.062322) (xy 128.751 86.062322) (xy 128.751 61.492) (xy 129.93256 61.492) (xy 129.93256 64.492) + (xy 129.981843 64.739765) (xy 130.122191 64.949809) (xy 130.332235 65.090157) (xy 130.58 65.13944) (xy 133.58 65.13944) + (xy 133.827765 65.090157) (xy 134.037809 64.949809) (xy 134.178157 64.739765) (xy 134.22744 64.492) (xy 134.22744 61.492) + (xy 134.178157 61.244235) (xy 134.037809 61.034191) (xy 133.827765 60.893843) (xy 133.58 60.84456) (xy 130.58 60.84456) + (xy 130.332235 60.893843) (xy 130.122191 61.034191) (xy 129.981843 61.244235) (xy 129.93256 61.492) (xy 128.751 61.492) + (xy 128.751 57.487322) (xy 129.945 57.487322) (xy 129.945 58.336678) (xy 130.270034 59.12138) (xy 130.87062 59.721966) + (xy 131.655322 60.047) (xy 132.504678 60.047) (xy 133.28938 59.721966) (xy 133.363346 59.648) (xy 137.147112 59.648) + (xy 137.162001 59.722852) (xy 137.162 77.649153) (xy 137.147112 77.724) (xy 137.162 77.798847) (xy 137.162 77.798851) + (xy 137.206096 78.020536) (xy 137.374071 78.271929) (xy 137.43753 78.314331) (xy 140.443 81.319803) (xy 140.443 81.485874) + (xy 140.600569 81.86628) (xy 140.89172 82.157431) (xy 141.272126 82.315) (xy 141.683874 82.315) (xy 142.06428 82.157431) + (xy 142.355431 81.86628) (xy 142.513 81.485874) (xy 142.513 81.074126) (xy 142.388946 80.774633) (xy 142.72546 81.111147) + (xy 143.234506 81.322) (xy 143.785494 81.322) (xy 144.29454 81.111147) (xy 144.684147 80.72154) (xy 144.895 80.212494) + (xy 144.895 79.661506) (xy 144.684147 79.15246) (xy 144.29454 78.762853) (xy 143.785494 78.552) (xy 143.234506 78.552) + (xy 142.72546 78.762853) (xy 142.335853 79.15246) (xy 142.125 79.661506) (xy 142.125 80.212494) (xy 142.302338 80.640627) + (xy 142.06428 80.402569) (xy 141.683874 80.245) (xy 141.517803 80.245) (xy 138.682 77.409199) (xy 138.682 74.781506) + (xy 142.125 74.781506) (xy 142.125 75.332494) (xy 142.335853 75.84154) (xy 142.72546 76.231147) (xy 143.234506 76.442) + (xy 143.785494 76.442) (xy 144.29454 76.231147) (xy 144.684147 75.84154) (xy 144.895 75.332494) (xy 144.895 74.781506) + (xy 144.684147 74.27246) (xy 144.29454 73.882853) (xy 143.785494 73.672) (xy 143.234506 73.672) (xy 142.72546 73.882853) + (xy 142.335853 74.27246) (xy 142.125 74.781506) (xy 138.682 74.781506) (xy 138.682 68.834) (xy 140.979908 68.834) + (xy 141.095161 69.413418) (xy 141.423375 69.904625) (xy 141.914582 70.232839) (xy 142.347744 70.319) (xy 142.640256 70.319) + (xy 143.073418 70.232839) (xy 143.564625 69.904625) (xy 143.777843 69.585522) (xy 143.838817 69.715358) (xy 144.267076 70.105645) + (xy 144.67711 70.275476) (xy 144.907 70.154155) (xy 144.907 68.961) (xy 144.887 68.961) (xy 144.887 68.707) + (xy 144.907 68.707) (xy 144.907 68.687) (xy 145.161 68.687) (xy 145.161 68.707) (xy 145.181 68.707) + (xy 145.181 68.961) (xy 145.161 68.961) (xy 145.161 70.154155) (xy 145.39089 70.275476) (xy 145.800924 70.105645) + (xy 146.229183 69.715358) (xy 146.290157 69.585522) (xy 146.503375 69.904625) (xy 146.994582 70.232839) (xy 147.427744 70.319) + (xy 147.720256 70.319) (xy 148.153418 70.232839) (xy 148.644625 69.904625) (xy 148.972839 69.413418) (xy 149.088092 68.834) + (xy 148.972839 68.254582) (xy 148.644625 67.763375) (xy 148.346239 67.564) (xy 148.644625 67.364625) (xy 148.972839 66.873418) + (xy 149.088092 66.294) (xy 148.972839 65.714582) (xy 148.644625 65.223375) (xy 148.153418 64.895161) (xy 147.720256 64.809) + (xy 147.427744 64.809) (xy 146.994582 64.895161) (xy 146.503375 65.223375) (xy 146.304 65.521761) (xy 146.104625 65.223375) + (xy 145.613418 64.895161) (xy 145.180256 64.809) (xy 144.887744 64.809) (xy 144.454582 64.895161) (xy 143.963375 65.223375) + (xy 143.951184 65.241619) (xy 143.942157 65.196235) (xy 143.801809 64.986191) (xy 143.591765 64.845843) (xy 143.344 64.79656) + (xy 141.644 64.79656) (xy 141.396235 64.845843) (xy 141.186191 64.986191) (xy 141.045843 65.196235) (xy 140.99656 65.444) + (xy 140.99656 67.144) (xy 141.045843 67.391765) (xy 141.186191 67.601809) (xy 141.396235 67.742157) (xy 141.441619 67.751184) + (xy 141.423375 67.763375) (xy 141.095161 68.254582) (xy 140.979908 68.834) (xy 138.682 68.834) (xy 138.682 59.962801) + (xy 145.256675 53.388126) (xy 152.127 53.388126) (xy 152.127 53.799874) (xy 152.284569 54.18028) (xy 152.57572 54.471431) + (xy 152.956126 54.629) (xy 153.122199 54.629) (xy 156.191 57.697802) (xy 156.191 57.863874) (xy 156.348569 58.24428) + (xy 156.63972 58.535431) (xy 157.020126 58.693) (xy 157.431874 58.693) (xy 157.81228 58.535431) (xy 158.103431 58.24428) + (xy 158.261 57.863874) (xy 158.261 57.452126) (xy 158.103431 57.07172) (xy 157.81228 56.780569) (xy 157.431874 56.623) + (xy 157.265802 56.623) (xy 154.197 53.554199) (xy 154.197 53.388126) (xy 154.039431 53.00772) (xy 153.74828 52.716569) + (xy 153.367874 52.559) (xy 152.956126 52.559) (xy 152.57572 52.716569) (xy 152.284569 53.00772) (xy 152.127 53.388126) + (xy 145.256675 53.388126) (xy 147.344473 51.300329) (xy 147.407929 51.257929) (xy 147.531242 51.073378) (xy 147.607765 51.058157) + (xy 147.817809 50.917809) (xy 147.958157 50.707765) (xy 148.00744 50.46) (xy 148.00744 50.39575) (xy 151.725 50.39575) + (xy 151.725 50.58631) (xy 151.821673 50.819699) (xy 152.000302 50.998327) (xy 152.233691 51.095) (xy 152.57425 51.095) + (xy 152.733 50.93625) (xy 152.733 50.237) (xy 152.987 50.237) (xy 152.987 50.93625) (xy 153.14575 51.095) + (xy 153.486309 51.095) (xy 153.719698 50.998327) (xy 153.898327 50.819699) (xy 153.995 50.58631) (xy 153.995 50.39575) + (xy 153.83625 50.237) (xy 152.987 50.237) (xy 152.733 50.237) (xy 151.88375 50.237) (xy 151.725 50.39575) + (xy 148.00744 50.39575) (xy 148.00744 49.76) (xy 147.982316 49.63369) (xy 151.725 49.63369) (xy 151.725 49.82425) + (xy 151.88375 49.983) (xy 152.733 49.983) (xy 152.733 49.28375) (xy 152.987 49.28375) (xy 152.987 49.983) + (xy 153.83625 49.983) (xy 153.995 49.82425) (xy 153.995 49.63369) (xy 153.898327 49.400301) (xy 153.719698 49.221673) + (xy 153.486309 49.125) (xy 153.14575 49.125) (xy 152.987 49.28375) (xy 152.733 49.28375) (xy 152.57425 49.125) + (xy 152.233691 49.125) (xy 152.000302 49.221673) (xy 151.821673 49.400301) (xy 151.725 49.63369) (xy 147.982316 49.63369) + (xy 147.958157 49.512235) (xy 147.817809 49.302191) (xy 147.607765 49.161843) (xy 147.36 49.11256) (xy 146.36 49.11256) + (xy 146.112235 49.161843) (xy 145.902191 49.302191) (xy 145.761843 49.512235) (xy 145.71256 49.76) (xy 145.71256 50.46) + (xy 145.761843 50.707765) (xy 145.772093 50.723105) (xy 137.437528 59.057671) (xy 137.374072 59.100071) (xy 137.331672 59.163527) + (xy 137.331671 59.163528) (xy 137.206097 59.351463) (xy 137.147112 59.648) (xy 133.363346 59.648) (xy 133.889966 59.12138) + (xy 134.215 58.336678) (xy 134.215 57.487322) (xy 133.889966 56.70262) (xy 133.28938 56.102034) (xy 132.504678 55.777) + (xy 131.655322 55.777) (xy 130.87062 56.102034) (xy 130.270034 56.70262) (xy 129.945 57.487322) (xy 128.751 57.487322) + (xy 128.751 50.83175) (xy 129.945 50.83175) (xy 129.945 52.172309) (xy 130.041673 52.405698) (xy 130.220301 52.584327) + (xy 130.45369 52.681) (xy 131.79425 52.681) (xy 131.953 52.52225) (xy 131.953 50.673) (xy 132.207 50.673) + (xy 132.207 52.52225) (xy 132.36575 52.681) (xy 133.70631 52.681) (xy 133.939699 52.584327) (xy 134.118327 52.405698) + (xy 134.215 52.172309) (xy 134.215 50.83175) (xy 134.05625 50.673) (xy 132.207 50.673) (xy 131.953 50.673) + (xy 130.10375 50.673) (xy 129.945 50.83175) (xy 128.751 50.83175) (xy 128.751 48.919691) (xy 129.945 48.919691) + (xy 129.945 50.26025) (xy 130.10375 50.419) (xy 131.953 50.419) (xy 131.953 48.56975) (xy 132.207 48.56975) + (xy 132.207 50.419) (xy 134.05625 50.419) (xy 134.215 50.26025) (xy 134.215 48.919691) (xy 134.118327 48.686302) + (xy 133.939699 48.507673) (xy 133.70631 48.411) (xy 132.36575 48.411) (xy 132.207 48.56975) (xy 131.953 48.56975) + (xy 131.79425 48.411) (xy 130.45369 48.411) (xy 130.220301 48.507673) (xy 130.041673 48.686302) (xy 129.945 48.919691) + (xy 128.751 48.919691) (xy 128.751 45.041322) (xy 129.945 45.041322) (xy 129.945 45.890678) (xy 130.270034 46.67538) + (xy 130.87062 47.275966) (xy 131.655322 47.601) (xy 132.504678 47.601) (xy 133.28938 47.275966) (xy 133.889966 46.67538) + (xy 134.144864 46.06) (xy 145.71256 46.06) (xy 145.71256 46.76) (xy 145.761843 47.007765) (xy 145.902191 47.217809) + (xy 146.112235 47.358157) (xy 146.36 47.40744) (xy 147.36 47.40744) (xy 147.607765 47.358157) (xy 147.817809 47.217809) + (xy 147.958157 47.007765) (xy 148.00744 46.76) (xy 148.00744 46.06) (xy 151.71256 46.06) (xy 151.71256 46.76) + (xy 151.761843 47.007765) (xy 151.902191 47.217809) (xy 152.112235 47.358157) (xy 152.36 47.40744) (xy 153.36 47.40744) + (xy 153.607765 47.358157) (xy 153.817809 47.217809) (xy 153.958157 47.007765) (xy 154.00744 46.76) (xy 154.00744 46.06) + (xy 153.958157 45.812235) (xy 153.817809 45.602191) (xy 153.607765 45.461843) (xy 153.36 45.41256) (xy 152.36 45.41256) + (xy 152.112235 45.461843) (xy 151.902191 45.602191) (xy 151.761843 45.812235) (xy 151.71256 46.06) (xy 148.00744 46.06) + (xy 147.958157 45.812235) (xy 147.817809 45.602191) (xy 147.607765 45.461843) (xy 147.36 45.41256) (xy 146.36 45.41256) + (xy 146.112235 45.461843) (xy 145.902191 45.602191) (xy 145.761843 45.812235) (xy 145.71256 46.06) (xy 134.144864 46.06) + (xy 134.215 45.890678) (xy 134.215 45.041322) (xy 133.889966 44.25662) (xy 133.28938 43.656034) (xy 132.504678 43.331) + (xy 131.655322 43.331) (xy 130.87062 43.656034) (xy 130.270034 44.25662) (xy 129.945 45.041322) (xy 128.751 45.041322) + (xy 128.751 37.057) (xy 131.21053 37.057) + ) + ) + ) +) diff --git a/kicad/Stairs.net b/kicad/Stairs.net new file mode 100644 index 0000000..10bcc78 --- /dev/null +++ b/kicad/Stairs.net @@ -0,0 +1,581 @@ +(export (version D) + (design + (source P:\Electronics\Stairs\kicad\Stairs.sch) + (date "11-11-2018 20:15:56") + (tool "Eeschema (5.0.1)-3") + (sheet (number 1) (name /) (tstamps /) + (title_block + (title "Stairs submodule") + (company "Mark van Renswoude") + (rev 1) + (date 2018-09-02) + (source Stairs.sch) + (comment (number 1) (value "")) + (comment (number 2) (value "")) + (comment (number 3) (value "")) + (comment (number 4) (value ""))))) + (components + (comp (ref PCA9685) + (value PCA9685-TSSOP) + (footprint Housings_SSOP:TSSOP-28_4.4x9.7mm_Pitch0.65mm) + (datasheet DOCUMENTATION) + (libsource (lib PCA9685-TSSOP) (part PCA9685-TSSOP) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AD5C2)) + (comp (ref U2) + (value MAX485) + (footprint Housings_SOIC:SO-8_5.3x6.2mm_Pitch1.27mm) + (datasheet "Maxim Integrated") + (fields + (field (name Field4) None) + (field (name Field5) Unavailable) + (field (name Field6) None) + (field (name Field7) MAX485)) + (libsource (lib MAX485) (part MAX485) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AD72A)) + (comp (ref P6) + (value PWR_IN) + (footprint Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AD8CA)) + (comp (ref P5) + (value PWR_OUT) + (footprint Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8ADA74)) + (comp (ref P3) + (value SENSOR) + (footprint Terminal_Blocks:TerminalBlock_bornier-6_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x06) (description "Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AE6A5)) + (comp (ref P1) + (value DATA_IN) + (footprint Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AE987)) + (comp (ref P2) + (value DATA_OUT) + (footprint Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x02) (description "Generic connector, single row, 01x02, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AE9DD)) + (comp (ref AMS1117) + (value AMS1117-5) + (footprint AMS1117-5.0:SOT229P700X180-4N) + (datasheet AMS1117-5.0) + (fields + (field (name Field4) None) + (field (name Field5) Unavailable) + (field (name Field6) "Sot223/Pkg 1-Amp 3.3-Volt Low Drop Out Voltage Regulatator") + (field (name Field7) "Advanced Monolithic Systems") + (field (name Field8) None)) + (libsource (lib AMS1117-5.0) (part AMS1117-5.0) (description "")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AFB24)) + (comp (ref C3) + (value 10µF) + (footprint Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Hand) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8B090B)) + (comp (ref C4) + (value 100nF) + (footprint Capacitors_SMD:C_1206_HandSoldering) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8B1267)) + (comp (ref U1) + (value ATTINY2313A-SU) + (footprint Housings_SOIC:SOIC-20W_7.5x12.8mm_Pitch1.27mm) + (libsource (lib MCU_Microchip_ATtiny) (part ATtiny2313A-SU) (description "20MHz, 2kB Flash, 128B SRAM, 128B EEPROM, SOIC-20")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8AD3B8)) + (comp (ref C2) + (value 33pF) + (footprint Capacitors_SMD:C_1206_HandSoldering) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8B93C9)) + (comp (ref C1) + (value 33pF) + (footprint Capacitors_SMD:C_1206_HandSoldering) + (libsource (lib Device) (part C) (description "Unpolarized capacitor")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8B9824)) + (comp (ref XTAL1) + (value "8 Mhz") + (footprint Crystals:Crystal_HC49-U_Vertical) + (libsource (lib Device) (part Crystal_Small) (description "Two pin crystal, small symbol")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8B9A62)) + (comp (ref R1) + (value 10K) + (footprint Resistors_SMD:R_0603_HandSoldering) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8C2380)) + (comp (ref P7) + (value SSD1306) + (footprint Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm) + (libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8C32B0)) + (comp (ref Q1) + (value IRLB8721PBF) + (footprint TO_SOT_Packages_THT:TO-220-3_Horizontal) + (libsource (lib Transistor_FET) (part IRLB8721PBF) (description "62A Id, 30V Vds, N-Channel MOSFET, TO-220")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8C8EA8)) + (comp (ref R2) + (value 150) + (footprint Resistors_SMD:R_0603_HandSoldering) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8CAD1E)) + (comp (ref R3) + (value 150) + (footprint Resistors_SMD:R_0603_HandSoldering) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8CAE68)) + (comp (ref Q2) + (value IRLB8721PBF) + (footprint TO_SOT_Packages_THT:TO-220-3_Horizontal) + (libsource (lib Transistor_FET) (part IRLB8721PBF) (description "62A Id, 30V Vds, N-Channel MOSFET, TO-220")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8CB00E)) + (comp (ref P4) + (value LED) + (footprint Terminal_Blocks:TerminalBlock_bornier-4_P5.08mm) + (libsource (lib Connector_Generic) (part Conn_01x04) (description "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8CBF27)) + (comp (ref R4) + (value 10K) + (footprint Resistors_SMD:R_0603_HandSoldering) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5B8C6BF9)) + (comp (ref R5) + (value 10K) + (footprint Resistors_SMD:R_0603_HandSoldering) + (libsource (lib Device) (part R) (description Resistor)) + (sheetpath (names /) (tstamps /)) + (tstamp 5B925FBE)) + (comp (ref J1) + (value PROG) + (footprint Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm) + (datasheet ~) + (libsource (lib Connector_Generic) (part Conn_02x03_Counter_Clockwise) (description "Generic connector, double row, 02x03, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BEBD38C)) + (comp (ref SW1) + (value Button) + (footprint SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_:SW4-SMD-5.2X5.2X1.5MM) + (libsource (lib Switch) (part SW_Push) (description "Push button switch, generic, two pins")) + (sheetpath (names /) (tstamps /)) + (tstamp 5BF329CF))) + (libparts + (libpart (lib AMS1117-5.0) (part AMS1117-5.0) + (fields + (field (name Reference) U) + (field (name Value) AMS1117-5.0) + (field (name Footprint) SOT229P700X180-4N) + (field (name Datasheet) "Sot223/Pkg 1-Amp 5-Volt Low Drop Out Voltage Regulatator") + (field (name Field4) Unavailable) + (field (name Field5) "Advanced Monolithic Systems") + (field (name Field6) None) + (field (name Field7) None) + (field (name Field8) AMS1117-5.0)) + (pins + (pin (num 1) (name ADJ/GND) (type power_in)) + (pin (num 2) (name VOUT) (type output)) + (pin (num 3) (name VIN) (type input)))) + (libpart (lib Connector_Generic) (part Conn_01x02) + (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)) + (pins + (pin (num 1) (name Pin_1) (type passive)) + (pin (num 2) (name Pin_2) (type passive)))) + (libpart (lib Connector_Generic) (part Conn_01x04) + (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)) + (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_Generic) (part Conn_01x06) + (description "Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_1x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_01x06)) + (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)))) + (libpart (lib Connector_Generic) (part Conn_02x03_Counter_Clockwise) + (description "Generic connector, double row, 02x03, counter clockwise pin numbering scheme (similar to DIP packge numbering), script generated (kicad-library-utils/schlib/autogen/connector/)") + (docs ~) + (footprints + (fp Connector*:*_2x??_*)) + (fields + (field (name Reference) J) + (field (name Value) Conn_02x03_Counter_Clockwise)) + (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)))) + (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 Crystal_Small) + (description "Two pin crystal, small symbol") + (docs ~) + (footprints + (fp Crystal*)) + (fields + (field (name Reference) Y) + (field (name Value) Crystal_Small)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (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 MAX485) (part MAX485) + (footprints + (fp DIL08) + (fp SO08)) + (fields + (field (name Reference) U) + (field (name Value) MAX485) + (field (name Datasheet) "Maxim Integrated") + (field (name Field4) None) + (field (name Field5) Unavailable) + (field (name Field6) None) + (field (name Field7) MAX485)) + (pins + (pin (num 1) (name RO) (type BiDi)) + (pin (num 2) (name RE) (type BiDi)) + (pin (num 3) (name DE) (type BiDi)) + (pin (num 4) (name DI) (type BiDi)) + (pin (num 5) (name GND) (type power_in)) + (pin (num 6) (name A) (type BiDi)) + (pin (num 7) (name B) (type BiDi)) + (pin (num 8) (name VCC) (type power_in)))) + (libpart (lib MCU_Microchip_ATtiny) (part ATtiny2313V-10SU) + (aliases + (alias ATtiny2313-20SU) + (alias ATtiny2313A-SU) + (alias ATtiny4313-SU)) + (description "10MHz, 2kB Flash, 128B SRAM, 128B EEPROM, debugWIRE, SOIC-20") + (docs http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2543-AVR-ATtiny2313_Datasheet.pdf) + (footprints + (fp SOIC*7.5x12.8mm*P1.27mm*)) + (fields + (field (name Reference) U) + (field (name Value) ATtiny2313V-10SU) + (field (name Footprint) Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm)) + (pins + (pin (num 1) (name PA2/~RESET) (type 3state)) + (pin (num 2) (name PD0) (type 3state)) + (pin (num 3) (name PD1) (type 3state)) + (pin (num 4) (name PA1/XTAL2) (type 3state)) + (pin (num 5) (name PA0/XTAL1) (type 3state)) + (pin (num 6) (name PD2) (type 3state)) + (pin (num 7) (name PD3) (type 3state)) + (pin (num 8) (name PD4) (type 3state)) + (pin (num 9) (name PD5) (type 3state)) + (pin (num 10) (name GND) (type power_in)) + (pin (num 11) (name PD6) (type 3state)) + (pin (num 12) (name PB0) (type 3state)) + (pin (num 13) (name PB1) (type 3state)) + (pin (num 14) (name PB2) (type 3state)) + (pin (num 15) (name PB3) (type 3state)) + (pin (num 16) (name PB4) (type 3state)) + (pin (num 17) (name PB5) (type 3state)) + (pin (num 18) (name PB6) (type 3state)) + (pin (num 19) (name PB7) (type 3state)) + (pin (num 20) (name VCC) (type power_in)))) + (libpart (lib PCA9685-TSSOP) (part PCA9685-TSSOP) + (fields + (field (name Reference) U) + (field (name Value) PCA9685-TSSOP) + (field (name Footprint) MODULE) + (field (name Datasheet) DOCUMENTATION)) + (pins + (pin (num 1) (name A0) (type input)) + (pin (num 2) (name A1) (type input)) + (pin (num 3) (name A2) (type input)) + (pin (num 4) (name A3) (type input)) + (pin (num 5) (name A4) (type input)) + (pin (num 6) (name LED0) (type output)) + (pin (num 7) (name LED1) (type output)) + (pin (num 8) (name LED2) (type output)) + (pin (num 9) (name LED3) (type output)) + (pin (num 10) (name LED4) (type output)) + (pin (num 11) (name LED5) (type output)) + (pin (num 12) (name LED6) (type output)) + (pin (num 13) (name LED7) (type output)) + (pin (num 14) (name GND) (type input)) + (pin (num 15) (name LED8) (type output)) + (pin (num 16) (name LED9) (type output)) + (pin (num 17) (name LED10) (type output)) + (pin (num 18) (name LED11) (type output)) + (pin (num 19) (name LED12) (type output)) + (pin (num 20) (name LED13) (type output)) + (pin (num 21) (name LED14) (type output)) + (pin (num 22) (name LED15) (type output)) + (pin (num 23) (name OE) (type input)) + (pin (num 24) (name A5) (type input)) + (pin (num 25) (name EXTCLK) (type input)) + (pin (num 26) (name SCL) (type input)) + (pin (num 27) (name SDA) (type BiDi)) + (pin (num 28) (name VCC) (type input)))) + (libpart (lib Switch) (part SW_Push) + (description "Push button switch, generic, two pins") + (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 Transistor_FET) (part BUZ11) + (aliases + (alias IRF3205) + (alias IRF540N) + (alias IRF740) + (alias IRLB8721PBF) + (alias IRLZ34N) + (alias IRLZ44N)) + (description "30A Id, 50V Vds, N-Channel Power MOSFET, TO-220") + (docs http://www.fairchildsemi.com/ds/BU/BUZ11.pdf) + (footprints + (fp TO?220*)) + (fields + (field (name Reference) Q) + (field (name Value) BUZ11) + (field (name Footprint) Package_TO_SOT_THT:TO-220-3_Vertical)) + (pins + (pin (num 1) (name G) (type input)) + (pin (num 2) (name D) (type passive)) + (pin (num 3) (name S) (type passive))))) + (libraries + (library (logical AMS1117-5.0) + (uri P:\Electronics\Stairs\kicad/libs/AMS1117-5.0.lib)) + (library (logical Connector_Generic) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Connector_Generic.lib")) + (library (logical Device) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Device.lib")) + (library (logical MAX485) + (uri P:\Electronics\Stairs\kicad/libs/MAX485.lib)) + (library (logical MCU_Microchip_ATtiny) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/MCU_Microchip_ATtiny.lib")) + (library (logical PCA9685-TSSOP) + (uri P:\Electronics\Stairs\kicad/libs/PCA9685-TSSOP.lib)) + (library (logical Switch) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Switch.lib")) + (library (logical Transistor_FET) + (uri "C:\\Program Files\\KiCad\\share\\kicad\\library/Transistor_FET.lib"))) + (nets + (net (code 1) (name "Net-(PCA9685-Pad25)") + (node (ref PCA9685) (pin 25))) + (net (code 2) (name "Net-(PCA9685-Pad15)") + (node (ref PCA9685) (pin 15))) + (net (code 3) (name "Net-(PCA9685-Pad16)") + (node (ref PCA9685) (pin 16))) + (net (code 4) (name "Net-(PCA9685-Pad17)") + (node (ref PCA9685) (pin 17))) + (net (code 5) (name "Net-(PCA9685-Pad18)") + (node (ref PCA9685) (pin 18))) + (net (code 6) (name "Net-(PCA9685-Pad19)") + (node (ref PCA9685) (pin 19))) + (net (code 7) (name "Net-(PCA9685-Pad20)") + (node (ref PCA9685) (pin 20))) + (net (code 8) (name /PD) + (node (ref R4) (pin 1)) + (node (ref PCA9685) (pin 5)) + (node (ref PCA9685) (pin 4)) + (node (ref PCA9685) (pin 23)) + (node (ref PCA9685) (pin 24)) + (node (ref PCA9685) (pin 3)) + (node (ref PCA9685) (pin 2)) + (node (ref PCA9685) (pin 1))) + (net (code 9) (name GND) + (node (ref J1) (pin 4)) + (node (ref AMS1117) (pin 1)) + (node (ref U1) (pin 10)) + (node (ref P3) (pin 5)) + (node (ref SW1) (pin 2)) + (node (ref C4) (pin 1)) + (node (ref C3) (pin 1)) + (node (ref C2) (pin 2)) + (node (ref C1) (pin 2)) + (node (ref Q1) (pin 3)) + (node (ref P7) (pin 4)) + (node (ref U2) (pin 5)) + (node (ref P6) (pin 1)) + (node (ref P5) (pin 2)) + (node (ref P3) (pin 2)) + (node (ref PCA9685) (pin 14)) + (node (ref R4) (pin 2)) + (node (ref Q2) (pin 3))) + (net (code 10) (name "Net-(PCA9685-Pad21)") + (node (ref PCA9685) (pin 21))) + (net (code 11) (name "Net-(P4-Pad3)") + (node (ref P4) (pin 3)) + (node (ref Q1) (pin 2))) + (net (code 12) (name +12V) + (node (ref AMS1117) (pin 3)) + (node (ref P6) (pin 2)) + (node (ref P4) (pin 4)) + (node (ref P5) (pin 1)) + (node (ref P4) (pin 2))) + (net (code 13) (name "Net-(P4-Pad1)") + (node (ref Q2) (pin 2)) + (node (ref P4) (pin 1))) + (net (code 14) (name "Net-(PCA9685-Pad22)") + (node (ref PCA9685) (pin 22))) + (net (code 15) (name "Net-(PCA9685-Pad13)") + (node (ref PCA9685) (pin 13))) + (net (code 16) (name "Net-(PCA9685-Pad12)") + (node (ref PCA9685) (pin 12))) + (net (code 17) (name "Net-(PCA9685-Pad11)") + (node (ref PCA9685) (pin 11))) + (net (code 18) (name "Net-(PCA9685-Pad10)") + (node (ref PCA9685) (pin 10))) + (net (code 19) (name "Net-(PCA9685-Pad9)") + (node (ref PCA9685) (pin 9))) + (net (code 20) (name "Net-(PCA9685-Pad8)") + (node (ref PCA9685) (pin 8))) + (net (code 21) (name "Net-(PCA9685-Pad7)") + (node (ref R3) (pin 1)) + (node (ref PCA9685) (pin 7))) + (net (code 22) (name "Net-(PCA9685-Pad6)") + (node (ref R2) (pin 1)) + (node (ref PCA9685) (pin 6))) + (net (code 23) (name "Net-(Q2-Pad1)") + (node (ref Q2) (pin 1)) + (node (ref R3) (pin 2))) + (net (code 24) (name +5V) + (node (ref P3) (pin 3)) + (node (ref PCA9685) (pin 28)) + (node (ref U2) (pin 8)) + (node (ref P3) (pin 6)) + (node (ref J1) (pin 6)) + (node (ref P7) (pin 3)) + (node (ref R5) (pin 2)) + (node (ref R1) (pin 1)) + (node (ref U1) (pin 20)) + (node (ref AMS1117) (pin 2)) + (node (ref C4) (pin 2)) + (node (ref C3) (pin 2))) + (net (code 25) (name RST) + (node (ref J1) (pin 3)) + (node (ref U1) (pin 1)) + (node (ref R5) (pin 1))) + (net (code 26) (name MOSI) + (node (ref PCA9685) (pin 27)) + (node (ref U1) (pin 17)) + (node (ref R1) (pin 2)) + (node (ref P7) (pin 1)) + (node (ref J1) (pin 5))) + (net (code 27) (name SCK) + (node (ref P7) (pin 2)) + (node (ref J1) (pin 2)) + (node (ref U1) (pin 19)) + (node (ref PCA9685) (pin 26))) + (net (code 28) (name MISO) + (node (ref U1) (pin 18)) + (node (ref J1) (pin 1))) + (net (code 29) (name "Net-(Q1-Pad1)") + (node (ref R2) (pin 2)) + (node (ref Q1) (pin 1))) + (net (code 30) (name "Net-(SW1-Pad1)") + (node (ref SW1) (pin 1)) + (node (ref U1) (pin 12))) + (net (code 31) (name "Net-(P3-Pad1)") + (node (ref U1) (pin 7)) + (node (ref P3) (pin 1))) + (net (code 32) (name "Net-(U1-Pad15)") + (node (ref U1) (pin 15))) + (net (code 33) (name "Net-(U1-Pad9)") + (node (ref U1) (pin 9))) + (net (code 34) (name "Net-(U1-Pad8)") + (node (ref U1) (pin 8))) + (net (code 35) (name "Net-(U1-Pad16)") + (node (ref U1) (pin 16))) + (net (code 36) (name "Net-(U1-Pad14)") + (node (ref U1) (pin 14))) + (net (code 37) (name "Net-(U1-Pad13)") + (node (ref U1) (pin 13))) + (net (code 38) (name "Net-(P3-Pad4)") + (node (ref P3) (pin 4)) + (node (ref U1) (pin 6))) + (net (code 39) (name "Net-(P1-Pad1)") + (node (ref U2) (pin 7)) + (node (ref P2) (pin 2)) + (node (ref P1) (pin 1))) + (net (code 40) (name "Net-(U1-Pad11)") + (node (ref U1) (pin 11)) + (node (ref U2) (pin 3)) + (node (ref U2) (pin 2))) + (net (code 41) (name "Net-(U1-Pad2)") + (node (ref U2) (pin 1)) + (node (ref U1) (pin 2))) + (net (code 42) (name "Net-(U1-Pad3)") + (node (ref U1) (pin 3)) + (node (ref U2) (pin 4))) + (net (code 43) (name "Net-(C1-Pad1)") + (node (ref U1) (pin 4)) + (node (ref XTAL1) (pin 2)) + (node (ref C1) (pin 1))) + (net (code 44) (name "Net-(C2-Pad1)") + (node (ref XTAL1) (pin 1)) + (node (ref U1) (pin 5)) + (node (ref C2) (pin 1))) + (net (code 45) (name "Net-(P1-Pad2)") + (node (ref P2) (pin 1)) + (node (ref U2) (pin 6)) + (node (ref P1) (pin 2))))) \ No newline at end of file diff --git a/kicad/Stairs.pro b/kicad/Stairs.pro new file mode 100644 index 0000000..7cf6df0 --- /dev/null +++ b/kicad/Stairs.pro @@ -0,0 +1,30 @@ +update=2-9-2018 10:38:10 +version=1 +last_client=kicad +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[general] +version=1 +[eeschema] +version=1 +LibDir= diff --git a/kicad/Stairs.sch b/kicad/Stairs.sch new file mode 100644 index 0000000..9888998 --- /dev/null +++ b/kicad/Stairs.sch @@ -0,0 +1,992 @@ +EESchema Schematic File Version 4 +LIBS:Stairs-cache +EELAYER 26 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "Stairs submodule" +Date "2018-09-02" +Rev "1" +Comp "Mark van Renswoude" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L PCA9685-TSSOP:PCA9685-TSSOP PCA9685 +U 1 1 5B8AD5C2 +P 7950 2600 +F 0 "PCA9685" H 7950 3615 50 0000 C CNN +F 1 "PCA9685-TSSOP" H 7950 3524 50 0000 C CNN +F 2 "Housings_SSOP:TSSOP-28_4.4x9.7mm_Pitch0.65mm" H 7950 2600 50 0001 C CNN +F 3 "DOCUMENTATION" H 7950 2600 50 0001 C CNN + 1 7950 2600 + 1 0 0 -1 +$EndComp +$Comp +L MAX485:MAX485 U2 +U 1 1 5B8AD72A +P 6050 5050 +F 0 "U2" H 6050 5517 50 0000 C CNN +F 1 "MAX485" H 6050 5426 50 0000 C CNN +F 2 "Housings_SOIC:SO-8_5.3x6.2mm_Pitch1.27mm" H 6050 5050 60 0001 C CNN +F 3 "Maxim Integrated" H 6050 5050 50 0001 L BNN +F 4 "None" H 6050 5050 50 0001 L BNN "Field4" +F 5 "Unavailable" H 6050 5050 50 0001 L BNN "Field5" +F 6 "None" H 6050 5050 50 0001 L BNN "Field6" +F 7 "MAX485" H 6050 5050 50 0001 L BNN "Field7" +F 8 "" H 6050 5050 50 0001 L BNN "Field8" + 1 6050 5050 + 1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x02 P6 +U 1 1 5B8AD8CA +P 4650 6700 +F 0 "P6" H 4728 6741 50 0000 L CNN +F 1 "PWR_IN" H 4728 6650 50 0000 L CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm" H 4650 6700 50 0001 C CNN +F 3 "" H 4650 6700 50 0001 C CNN + 1 4650 6700 + 1 0 0 1 +$EndComp +$Comp +L Connector_Generic:Conn_01x02 P5 +U 1 1 5B8ADA74 +P 3400 6600 +F 0 "P5" H 3700 6550 50 0000 C CNN +F 1 "PWR_OUT" H 3750 6650 50 0000 C CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm" H 3400 6600 50 0001 C CNN +F 3 "" H 3400 6600 50 0001 C CNN + 1 3400 6600 + -1 0 0 -1 +$EndComp +$Comp +L Connector_Generic:Conn_01x06 P3 +U 1 1 5B8AE6A5 +P 5700 6050 +F 0 "P3" H 5778 6091 50 0000 L CNN +F 1 "SENSOR" H 5778 6000 50 0000 L CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-6_P5.08mm" H 5700 6050 50 0001 C CNN +F 3 "" H 5700 6050 50 0001 C CNN + 1 5700 6050 + 1 0 0 1 +$EndComp +$Comp +L Connector_Generic:Conn_01x02 P1 +U 1 1 5B8AE987 +P 7250 4650 +F 0 "P1" H 7328 4691 50 0000 L CNN +F 1 "DATA_IN" H 7328 4600 50 0000 L CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm" H 7250 4650 50 0001 C CNN +F 3 "" H 7250 4650 50 0001 C CNN + 1 7250 4650 + 0 1 -1 0 +$EndComp +$Comp +L Connector_Generic:Conn_01x02 P2 +U 1 1 5B8AE9DD +P 7250 5350 +F 0 "P2" H 7550 5300 50 0000 C CNN +F 1 "DATA_OUT" H 7600 5400 50 0000 C CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-2_P5.08mm" H 7250 5350 50 0001 C CNN +F 3 "" H 7250 5350 50 0001 C CNN + 1 7250 5350 + 0 1 1 0 +$EndComp +$Comp +L AMS1117-5.0:AMS1117-5.0 AMS1117 +U 1 1 5B8AFB24 +P 2450 2150 +F 0 "AMS1117" H 2450 2517 50 0000 C CNN +F 1 "AMS1117-5" H 2450 2426 50 0000 C CNN +F 2 "AMS1117-5.0:SOT229P700X180-4N" H 2450 2150 50 0001 L BNN +F 3 "AMS1117-5.0" H 2450 2150 50 0001 L BNN +F 4 "None" H 2450 2150 50 0001 L BNN "Field4" +F 5 "Unavailable" H 2450 2150 50 0001 L BNN "Field5" +F 6 "Sot223/Pkg 1-Amp 3.3-Volt Low Drop Out Voltage Regulatator" H 2450 2150 50 0001 L BNN "Field6" +F 7 "Advanced Monolithic Systems" H 2450 2150 50 0001 L BNN "Field7" +F 8 "None" H 2450 2150 50 0001 L BNN "Field8" + 1 2450 2150 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR05 +U 1 1 5B8AFFEE +P 3200 2400 +F 0 "#PWR05" H 3200 2150 50 0001 C CNN +F 1 "GND" H 3205 2227 50 0000 C CNN +F 2 "" H 3200 2400 50 0001 C CNN +F 3 "" H 3200 2400 50 0001 C CNN + 1 3200 2400 + 1 0 0 -1 +$EndComp +$Comp +L power:+12V #PWR02 +U 1 1 5B8B02AC +P 1700 1900 +F 0 "#PWR02" H 1700 1750 50 0001 C CNN +F 1 "+12V" H 1715 2073 50 0000 C CNN +F 2 "" H 1700 1900 50 0001 C CNN +F 3 "" H 1700 1900 50 0001 C CNN + 1 1700 1900 + 1 0 0 -1 +$EndComp +Wire Wire Line + 1700 1900 1700 2050 +Wire Wire Line + 1700 2050 1850 2050 +Wire Wire Line + 3050 2050 3200 2050 +Wire Wire Line + 3200 2050 3200 1900 +Wire Wire Line + 3050 2250 3200 2250 +Wire Wire Line + 3200 2250 3200 2400 +$Comp +L Device:C C3 +U 1 1 5B8B090B +P 4450 3500 +F 0 "C3" H 4565 3546 50 0000 L CNN +F 1 "10µF" H 4565 3455 50 0000 L CNN +F 2 "Capacitors_Tantalum_SMD:CP_Tantalum_Case-D_EIA-7343-31_Hand" H 4488 3350 50 0001 C CNN +F 3 "" H 4450 3500 50 0001 C CNN + 1 4450 3500 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C4 +U 1 1 5B8B1267 +P 4950 3500 +F 0 "C4" H 5065 3546 50 0000 L CNN +F 1 "100nF" H 5065 3455 50 0000 L CNN +F 2 "Capacitors_SMD:C_1206_HandSoldering" H 4988 3350 50 0001 C CNN +F 3 "" H 4950 3500 50 0001 C CNN + 1 4950 3500 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR011 +U 1 1 5B8B1C8E +P 4000 5850 +F 0 "#PWR011" H 4000 5600 50 0001 C CNN +F 1 "GND" H 4005 5677 50 0000 C CNN +F 2 "" H 4000 5850 50 0001 C CNN +F 3 "" H 4000 5850 50 0001 C CNN + 1 4000 5850 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4000 5750 4000 5850 +$Comp +L power:GND #PWR013 +U 1 1 5B8B3466 +P 6750 5150 +F 0 "#PWR013" H 6750 4900 50 0001 C CNN +F 1 "GND" H 6755 4977 50 0000 C CNN +F 2 "" H 6750 5150 50 0001 C CNN +F 3 "" H 6750 5150 50 0001 C CNN + 1 6750 5150 + 1 0 0 -1 +$EndComp +Wire Wire Line + 6650 4850 6750 4850 +Wire Wire Line + 6650 5150 6750 5150 +$Comp +L power:GND #PWR010 +U 1 1 5B8B3A20 +P 7050 3250 +F 0 "#PWR010" H 7050 3000 50 0001 C CNN +F 1 "GND" H 7055 3077 50 0000 C CNN +F 2 "" H 7050 3250 50 0001 C CNN +F 3 "" H 7050 3250 50 0001 C CNN + 1 7050 3250 + 1 0 0 -1 +$EndComp +Wire Wire Line + 7050 3250 7200 3250 +Wire Wire Line + 8850 1950 8700 1950 +$Comp +L power:+5V #PWR03 +U 1 1 5B8B883E +P 3200 1900 +F 0 "#PWR03" H 3200 1750 50 0001 C CNN +F 1 "+5V" H 3215 2073 50 0000 C CNN +F 2 "" H 3200 1900 50 0001 C CNN +F 3 "" H 3200 1900 50 0001 C CNN + 1 3200 1900 + 1 0 0 -1 +$EndComp +$Comp +L power:+5V #PWR06 +U 1 1 5B8B8A0A +P 4000 3500 +F 0 "#PWR06" H 4000 3350 50 0001 C CNN +F 1 "+5V" H 4015 3673 50 0000 C CNN +F 2 "" H 4000 3500 50 0001 C CNN +F 3 "" H 4000 3500 50 0001 C CNN + 1 4000 3500 + 1 0 0 -1 +$EndComp +$Comp +L power:+5V #PWR012 +U 1 1 5B8B8BF6 +P 6750 4850 +F 0 "#PWR012" H 6750 4700 50 0001 C CNN +F 1 "+5V" H 6765 5023 50 0000 C CNN +F 2 "" H 6750 4850 50 0001 C CNN +F 3 "" H 6750 4850 50 0001 C CNN + 1 6750 4850 + 1 0 0 -1 +$EndComp +$Comp +L power:+5V #PWR07 +U 1 1 5B8B8E5A +P 8850 1950 +F 0 "#PWR07" H 8850 1800 50 0001 C CNN +F 1 "+5V" H 8865 2123 50 0000 C CNN +F 2 "" H 8850 1950 50 0001 C CNN +F 3 "" H 8850 1950 50 0001 C CNN + 1 8850 1950 + 1 0 0 -1 +$EndComp +$Comp +L MCU_Microchip_ATtiny:ATtiny2313A-SU U1 +U 1 1 5B8AD3B8 +P 4000 4750 +F 0 "U1" H 4000 6400 50 0000 C CNN +F 1 "ATTINY2313A-SU" H 4000 6300 50 0000 C CNN +F 2 "Housings_SOIC:SOIC-20W_7.5x12.8mm_Pitch1.27mm" H 4000 4750 50 0001 C CIN +F 3 "" H 4000 4750 50 0001 C CNN + 1 4000 4750 + 1 0 0 -1 +$EndComp +$Comp +L Device:C C2 +U 1 1 5B8B93C9 +P 2350 4000 +F 0 "C2" H 2465 4046 50 0000 L CNN +F 1 "33pF" H 2465 3955 50 0000 L CNN +F 2 "Capacitors_SMD:C_1206_HandSoldering" H 2388 3850 50 0001 C CNN +F 3 "" H 2350 4000 50 0001 C CNN + 1 2350 4000 + 0 1 1 0 +$EndComp +$Comp +L Device:C C1 +U 1 1 5B8B9824 +P 2350 4500 +F 0 "C1" H 2465 4546 50 0000 L CNN +F 1 "33pF" H 2465 4455 50 0000 L CNN +F 2 "Capacitors_SMD:C_1206_HandSoldering" H 2388 4350 50 0001 C CNN +F 3 "" H 2350 4500 50 0001 C CNN + 1 2350 4500 + 0 1 1 0 +$EndComp +$Comp +L Device:Crystal_Small XTAL1 +U 1 1 5B8B9A62 +P 2600 4250 +F 0 "XTAL1" V 2554 4338 50 0000 L CNN +F 1 "8 Mhz" V 2645 4338 50 0000 L CNN +F 2 "Crystals:Crystal_HC49-U_Vertical" H 2600 4250 50 0001 C CNN +F 3 "" H 2600 4250 50 0001 C CNN + 1 2600 4250 + 0 1 1 0 +$EndComp +Wire Wire Line + 3400 4350 2600 4350 +Wire Wire Line + 2600 4000 2500 4000 +Wire Wire Line + 2600 4350 2600 4500 +Wire Wire Line + 2600 4500 2500 4500 +Wire Wire Line + 3400 4150 2600 4150 +Wire Wire Line + 2600 4150 2600 4000 +$Comp +L power:GND #PWR09 +U 1 1 5B8B9DAC +P 2100 4500 +F 0 "#PWR09" H 2100 4250 50 0001 C CNN +F 1 "GND" H 2105 4327 50 0000 C CNN +F 2 "" H 2100 4500 50 0001 C CNN +F 3 "" H 2100 4500 50 0001 C CNN + 1 2100 4500 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR08 +U 1 1 5B8B9E4D +P 2100 4000 +F 0 "#PWR08" H 2100 3750 50 0001 C CNN +F 1 "GND" H 2105 3827 50 0000 C CNN +F 2 "" H 2100 4000 50 0001 C CNN +F 3 "" H 2100 4000 50 0001 C CNN + 1 2100 4000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 2200 4000 2100 4000 +Wire Wire Line + 2200 4500 2100 4500 +Wire Wire Line + 6650 5050 7250 5050 +Wire Wire Line + 7250 5000 7250 5050 +Wire Wire Line + 6650 4950 7050 4950 +Wire Wire Line + 7250 4950 7250 4850 +Wire Wire Line + 7150 4850 7150 5000 +Wire Wire Line + 7150 5000 7250 5000 +Connection ~ 7250 5050 +Wire Wire Line + 7150 5150 7050 5150 +Wire Wire Line + 7050 5150 7050 4950 +Connection ~ 7050 4950 +Wire Wire Line + 5450 4950 5300 4950 +Wire Wire Line + 5300 4950 5300 5050 +Wire Wire Line + 5300 5050 5450 5050 +$Comp +L Device:R R1 +U 1 1 5B8C2380 +P 4900 4150 +F 0 "R1" H 4970 4196 50 0000 L CNN +F 1 "10K" H 4970 4105 50 0000 L CNN +F 2 "Resistors_SMD:R_0603_HandSoldering" V 4830 4150 50 0001 C CNN +F 3 "" H 4900 4150 50 0001 C CNN + 1 4900 4150 + 1 0 0 -1 +$EndComp +$Comp +L power:+5V #PWR014 +U 1 1 5B8C2462 +P 4900 3950 +F 0 "#PWR014" H 4900 3800 50 0001 C CNN +F 1 "+5V" H 4915 4123 50 0000 C CNN +F 2 "" H 4900 3950 50 0001 C CNN +F 3 "" H 4900 3950 50 0001 C CNN + 1 4900 3950 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4900 3950 4900 4000 +Wire Wire Line + 4600 4450 4900 4450 +Wire Wire Line + 4900 4450 4900 4300 +$Comp +L Connector_Generic:Conn_01x04 P7 +U 1 1 5B8C32B0 +P 9800 2150 +F 0 "P7" H 9877 2191 50 0000 L CNN +F 1 "SSD1306" H 9877 2100 50 0000 L CNN +F 2 "Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm" H 9800 2150 50 0001 C CNN +F 3 "" H 9800 2150 50 0001 C CNN + 1 9800 2150 + 1 0 0 -1 +$EndComp +Text Notes 10350 2400 0 60 ~ 0 +1 = SDA\n2 = SCL\n3 = VCC\n4 = GND +$Comp +L power:+5V #PWR016 +U 1 1 5B8C452D +P 9350 2250 +F 0 "#PWR016" H 9350 2100 50 0001 C CNN +F 1 "+5V" H 9365 2423 50 0000 C CNN +F 2 "" H 9350 2250 50 0001 C CNN +F 3 "" H 9350 2250 50 0001 C CNN + 1 9350 2250 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR018 +U 1 1 5B8C457C +P 9500 2350 +F 0 "#PWR018" H 9500 2100 50 0001 C CNN +F 1 "GND" H 9505 2177 50 0000 C CNN +F 2 "" H 9500 2350 50 0001 C CNN +F 3 "" H 9500 2350 50 0001 C CNN + 1 9500 2350 + 1 0 0 -1 +$EndComp +Wire Wire Line + 9600 2350 9500 2350 +Wire Wire Line + 9600 2250 9350 2250 +Wire Wire Line + 8700 2050 8950 2050 +Wire Wire Line + 8700 2150 9150 2150 +Connection ~ 9150 2150 +Connection ~ 8950 2050 +Connection ~ 4900 4450 +Wire Wire Line + 5150 5150 5450 5150 +$Comp +L Transistor_FET:IRLB8721PBF Q1 +U 1 1 5B8C8EA8 +P 6050 2250 +F 0 "Q1" V 6378 2250 50 0000 C CNN +F 1 "IRLB8721PBF" V 6287 2250 50 0000 C CNN +F 2 "TO_SOT_Packages_THT:TO-220-3_Horizontal" H 6300 2175 50 0001 L CIN +F 3 "" H 6050 2250 50 0001 L CNN + 1 6050 2250 + 0 -1 -1 0 +$EndComp +Wire Wire Line + 5450 4850 4600 4850 +Wire Wire Line + 4600 4950 5150 4950 +Wire Wire Line + 5150 4950 5150 5150 +Wire Wire Line + 4600 4650 4700 4650 +Wire Wire Line + 5450 4650 5450 3950 +Wire Wire Line + 5450 3950 9150 3950 +Wire Wire Line + 9150 3950 9150 2150 +Wire Wire Line + 8950 2050 8950 3750 +Wire Wire Line + 8950 3750 5250 3750 +Wire Wire Line + 5250 3750 5250 4450 +$Comp +L Device:R R2 +U 1 1 5B8CAD1E +P 6700 2450 +F 0 "R2" V 6493 2450 50 0000 C CNN +F 1 "150" V 6584 2450 50 0000 C CNN +F 2 "Resistors_SMD:R_0603_HandSoldering" V 6630 2450 50 0001 C CNN +F 3 "" H 6700 2450 50 0001 C CNN + 1 6700 2450 + 0 1 1 0 +$EndComp +$Comp +L Device:R R3 +U 1 1 5B8CAE68 +P 6700 2550 +F 0 "R3" V 6900 2550 50 0000 C CNN +F 1 "150" V 6800 2550 50 0000 C CNN +F 2 "Resistors_SMD:R_0603_HandSoldering" V 6630 2550 50 0001 C CNN +F 3 "" H 6700 2550 50 0001 C CNN + 1 6700 2550 + 0 1 1 0 +$EndComp +$Comp +L Transistor_FET:IRLB8721PBF Q2 +U 1 1 5B8CB00E +P 6050 2750 +F 0 "Q2" V 6286 2750 50 0000 C CNN +F 1 "IRLB8721PBF" V 6377 2750 50 0000 C CNN +F 2 "TO_SOT_Packages_THT:TO-220-3_Horizontal" H 6300 2675 50 0001 L CIN +F 3 "" H 6050 2750 50 0001 L CNN + 1 6050 2750 + 0 -1 1 0 +$EndComp +$Comp +L power:GND #PWR015 +U 1 1 5B8CB569 +P 6300 2150 +F 0 "#PWR015" H 6300 1900 50 0001 C CNN +F 1 "GND" H 6305 1977 50 0000 C CNN +F 2 "" H 6300 2150 50 0001 C CNN +F 3 "" H 6300 2150 50 0001 C CNN + 1 6300 2150 + 0 -1 -1 0 +$EndComp +$Comp +L power:GND #PWR020 +U 1 1 5B8CB5C8 +P 6300 2850 +F 0 "#PWR020" H 6300 2600 50 0001 C CNN +F 1 "GND" H 6305 2677 50 0000 C CNN +F 2 "" H 6300 2850 50 0001 C CNN +F 3 "" H 6300 2850 50 0001 C CNN + 1 6300 2850 + 0 -1 -1 0 +$EndComp +$Comp +L Connector_Generic:Conn_01x04 P4 +U 1 1 5B8CBF27 +P 5050 2550 +F 0 "P4" H 5128 2591 50 0000 L CNN +F 1 "LED" H 5128 2500 50 0000 L CNN +F 2 "Terminal_Blocks:TerminalBlock_bornier-4_P5.08mm" H 5050 2550 50 0001 C CNN +F 3 "" H 5050 2550 50 0001 C CNN + 1 5050 2550 + -1 0 0 1 +$EndComp +Text Notes 4000 2700 0 60 ~ 0 +1 = LED1 +12V\n2 = LED1 GND\n3 = LED2 +12V\n4 = LED2 GND +Wire Wire Line + 6250 2150 6300 2150 +Wire Wire Line + 6250 2850 6300 2850 +$Comp +L power:+12V #PWR017 +U 1 1 5B8CDFC1 +P 5400 2350 +F 0 "#PWR017" H 5400 2200 50 0001 C CNN +F 1 "+12V" H 5415 2523 50 0000 C CNN +F 2 "" H 5400 2350 50 0001 C CNN +F 3 "" H 5400 2350 50 0001 C CNN + 1 5400 2350 + 0 1 1 0 +$EndComp +$Comp +L power:+12V #PWR019 +U 1 1 5B8CE24A +P 5400 2550 +F 0 "#PWR019" H 5400 2400 50 0001 C CNN +F 1 "+12V" H 5415 2723 50 0000 C CNN +F 2 "" H 5400 2550 50 0001 C CNN +F 3 "" H 5400 2550 50 0001 C CNN + 1 5400 2550 + 0 1 1 0 +$EndComp +Wire Wire Line + 5250 2350 5400 2350 +Wire Wire Line + 5250 2550 5400 2550 +Wire Wire Line + 5250 2450 5750 2450 +Wire Wire Line + 5750 2450 5750 2150 +Wire Wire Line + 5750 2150 5850 2150 +Wire Wire Line + 5250 2650 5750 2650 +Wire Wire Line + 5750 2650 5750 2850 +Wire Wire Line + 5750 2850 5850 2850 +Wire Wire Line + 6550 2550 6050 2550 +Wire Wire Line + 6850 2450 7200 2450 +Wire Wire Line + 7200 2550 6850 2550 +Wire Wire Line + 4000 3650 4450 3650 +Connection ~ 4450 3650 +Wire Wire Line + 4000 3650 4000 3500 +$Comp +L power:GND #PWR022 +U 1 1 5B8D17BD +P 4700 3250 +F 0 "#PWR022" H 4700 3000 50 0001 C CNN +F 1 "GND" H 4705 3077 50 0000 C CNN +F 2 "" H 4700 3250 50 0001 C CNN +F 3 "" H 4700 3250 50 0001 C CNN + 1 4700 3250 + -1 0 0 1 +$EndComp +Wire Wire Line + 4450 3350 4450 3250 +Wire Wire Line + 4450 3250 4700 3250 +Wire Wire Line + 4950 3250 4950 3350 +Connection ~ 4700 3250 +NoConn ~ 7200 2650 +NoConn ~ 7200 2750 +NoConn ~ 7200 2850 +NoConn ~ 7200 2950 +NoConn ~ 7200 3050 +NoConn ~ 7200 3150 +NoConn ~ 8700 2550 +NoConn ~ 8700 2650 +NoConn ~ 8700 2750 +NoConn ~ 8700 2850 +NoConn ~ 8700 2950 +NoConn ~ 8700 3050 +NoConn ~ 8700 3150 +NoConn ~ 8700 3250 +NoConn ~ 8700 2250 +Wire Wire Line + 7050 4950 7250 4950 +Wire Wire Line + 9150 2150 9600 2150 +Wire Wire Line + 8950 2050 9600 2050 +Wire Wire Line + 4900 4450 5250 4450 +Wire Wire Line + 4450 3650 4950 3650 +Wire Wire Line + 4700 3250 4950 3250 +Wire Wire Line + 7200 2350 7100 2350 +Wire Wire Line + 7100 2350 7100 2250 +Wire Wire Line + 7200 1950 7100 1950 +Connection ~ 7100 1950 +Wire Wire Line + 7100 1950 7100 1850 +Wire Wire Line + 7200 2050 7100 2050 +Connection ~ 7100 2050 +Wire Wire Line + 7100 2050 7100 1950 +Wire Wire Line + 7200 2150 7100 2150 +Connection ~ 7100 2150 +Wire Wire Line + 7100 2150 7100 2050 +Wire Wire Line + 7200 2250 7100 2250 +Connection ~ 7100 2250 +Wire Wire Line + 7100 2250 7100 2150 +$Comp +L Device:R R4 +U 1 1 5B8C6BF9 +P 7100 1700 +F 0 "R4" V 6893 1700 50 0000 C CNN +F 1 "10K" V 6984 1700 50 0000 C CNN +F 2 "Resistors_SMD:R_0603_HandSoldering" V 7030 1700 50 0001 C CNN +F 3 "" H 7100 1700 50 0001 C CNN + 1 7100 1700 + -1 0 0 1 +$EndComp +$Comp +L power:GND #PWR021 +U 1 1 5B8C6F7E +P 7100 1500 +F 0 "#PWR021" H 7100 1250 50 0001 C CNN +F 1 "GND" H 7105 1327 50 0000 C CNN +F 2 "" H 7100 1500 50 0001 C CNN +F 3 "" H 7100 1500 50 0001 C CNN + 1 7100 1500 + -1 0 0 1 +$EndComp +Wire Wire Line + 7100 1500 7100 1550 +Wire Wire Line + 7000 1950 7100 1950 +Text Label 7000 1950 2 50 ~ 0 +PD +Wire Wire Line + 8800 2350 8750 2350 +Text Label 8800 2350 0 50 ~ 0 +PD +Wire Wire Line + 8700 2450 8750 2450 +Wire Wire Line + 8750 2450 8750 2350 +Connection ~ 8750 2350 +Wire Wire Line + 8750 2350 8700 2350 +Text Notes 5150 6750 0 60 ~ 0 +1 = +12V\n2 = GND +Wire Wire Line + 4450 6700 4000 6700 +$Comp +L power:GND #PWR024 +U 1 1 5B8E6FA0 +P 4000 6850 +F 0 "#PWR024" H 4000 6600 50 0001 C CNN +F 1 "GND" H 4005 6677 50 0000 C CNN +F 2 "" H 4000 6850 50 0001 C CNN +F 3 "" H 4000 6850 50 0001 C CNN + 1 4000 6850 + 1 0 0 -1 +$EndComp +$Comp +L power:+12V #PWR023 +U 1 1 5B8E7817 +P 4000 6500 +F 0 "#PWR023" H 4000 6350 50 0001 C CNN +F 1 "+12V" H 4015 6673 50 0000 C CNN +F 2 "" H 4000 6500 50 0001 C CNN +F 3 "" H 4000 6500 50 0001 C CNN + 1 4000 6500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4000 6500 4000 6600 +Connection ~ 4000 6600 +Wire Wire Line + 4000 6600 4450 6600 +Wire Wire Line + 4000 6850 4000 6700 +Connection ~ 4000 6700 +$Comp +L power:+12V #PWR0101 +U 1 1 5B8ED6A9 +P 1200 1900 +F 0 "#PWR0101" H 1200 1750 50 0001 C CNN +F 1 "+12V" H 1215 2073 50 0000 C CNN +F 2 "" H 1200 1900 50 0001 C CNN +F 3 "" H 1200 1900 50 0001 C CNN + 1 1200 1900 + 1 0 0 -1 +$EndComp +$Comp +L power:PWR_FLAG #FLG0101 +U 1 1 5B8ED6E0 +P 1200 1900 +F 0 "#FLG0101" H 1200 1975 50 0001 C CNN +F 1 "PWR_FLAG" H 1200 2073 50 0000 C CNN +F 2 "" H 1200 1900 50 0001 C CNN +F 3 "" H 1200 1900 50 0001 C CNN + 1 1200 1900 + -1 0 0 1 +$EndComp +NoConn ~ 4600 4050 +NoConn ~ 4600 4150 +NoConn ~ 4600 4250 +NoConn ~ 4600 4350 +NoConn ~ 4600 5250 +NoConn ~ 4600 5350 +$Comp +L Device:R R5 +U 1 1 5B925FBE +P 3250 3800 +F 0 "R5" V 3043 3800 50 0000 C CNN +F 1 "10K" V 3134 3800 50 0000 C CNN +F 2 "Resistors_SMD:R_0603_HandSoldering" V 3180 3800 50 0001 C CNN +F 3 "" H 3250 3800 50 0001 C CNN + 1 3250 3800 + -1 0 0 1 +$EndComp +$Comp +L power:+5V #PWR0102 +U 1 1 5B92641E +P 3250 3550 +F 0 "#PWR0102" H 3250 3400 50 0001 C CNN +F 1 "+5V" H 3265 3723 50 0000 C CNN +F 2 "" H 3250 3550 50 0001 C CNN +F 3 "" H 3250 3550 50 0001 C CNN + 1 3250 3550 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3250 3550 3250 3650 +Wire Wire Line + 3250 3950 3400 3950 +$Comp +L power:GND #PWR0103 +U 1 1 5B92CB1E +P 1200 2500 +F 0 "#PWR0103" H 1200 2250 50 0001 C CNN +F 1 "GND" H 1205 2327 50 0000 C CNN +F 2 "" H 1200 2500 50 0001 C CNN +F 3 "" H 1200 2500 50 0001 C CNN + 1 1200 2500 + 1 0 0 -1 +$EndComp +$Comp +L power:PWR_FLAG #FLG0102 +U 1 1 5B92CB57 +P 1200 2500 +F 0 "#FLG0102" H 1200 2575 50 0001 C CNN +F 1 "PWR_FLAG" H 1200 2673 50 0000 C CNN +F 2 "" H 1200 2500 50 0001 C CNN +F 3 "" H 1200 2500 50 0001 C CNN + 1 1200 2500 + 1 0 0 -1 +$EndComp +Connection ~ 2600 4150 +Connection ~ 2600 4350 +Connection ~ 4000 3650 +Text Notes 6100 6300 0 60 ~ 0 +1 = Sensor 1 +5V\n2 = Sensor 1 GND\n3 = Sensor 1 DATA\n4 = Sensor 2 +5V\n5 = Sensor 2 GND\n6 = Sensor 2 DATA\n +$Comp +L power:+5V #PWR0104 +U 1 1 5B93F20D +P 5350 5750 +F 0 "#PWR0104" H 5350 5600 50 0001 C CNN +F 1 "+5V" H 5350 6050 50 0000 C CNN +F 2 "" H 5350 5750 50 0001 C CNN +F 3 "" H 5350 5750 50 0001 C CNN + 1 5350 5750 + 0 -1 -1 0 +$EndComp +$Comp +L power:+5V #PWR0105 +U 1 1 5B93F49C +P 5350 6050 +F 0 "#PWR0105" H 5350 5900 50 0001 C CNN +F 1 "+5V" H 5350 6350 50 0000 C CNN +F 2 "" H 5350 6050 50 0001 C CNN +F 3 "" H 5350 6050 50 0001 C CNN + 1 5350 6050 + 0 -1 -1 0 +$EndComp +$Comp +L power:GND #PWR0106 +U 1 1 5B93F503 +P 5350 5850 +F 0 "#PWR0106" H 5350 5600 50 0001 C CNN +F 1 "GND" H 5355 5677 50 0000 C CNN +F 2 "" H 5350 5850 50 0001 C CNN +F 3 "" H 5350 5850 50 0001 C CNN + 1 5350 5850 + 0 1 1 0 +$EndComp +$Comp +L power:GND #PWR0107 +U 1 1 5B93F5DD +P 5350 6150 +F 0 "#PWR0107" H 5350 5900 50 0001 C CNN +F 1 "GND" H 5355 5977 50 0000 C CNN +F 2 "" H 5350 6150 50 0001 C CNN +F 3 "" H 5350 6150 50 0001 C CNN + 1 5350 6150 + 0 1 1 0 +$EndComp +Wire Wire Line + 5350 5750 5500 5750 +Wire Wire Line + 5350 5850 5500 5850 +Wire Wire Line + 5350 6050 5500 6050 +Wire Wire Line + 5350 6150 5500 6150 +Wire Wire Line + 4600 5050 4850 5050 +Wire Wire Line + 4850 5050 4850 5950 +Wire Wire Line + 4850 5950 5500 5950 +Wire Wire Line + 4600 5150 4750 5150 +Wire Wire Line + 4750 5150 4750 6250 +Wire Wire Line + 4750 6250 5500 6250 +Text Notes 7450 5050 0 60 ~ 0 +1 = RS485 A\n2 = RS485 B +Connection ~ 4000 5850 +Wire Wire Line + 7250 5050 7250 5150 +Wire Wire Line + 3600 6600 4000 6600 +Wire Wire Line + 3600 6700 4000 6700 +Wire Wire Line + 6050 2450 6550 2450 +$Comp +L Connector_Generic:Conn_02x03_Counter_Clockwise J1 +U 1 1 5BEBD38C +P 9850 5900 +F 0 "J1" H 9900 6217 50 0000 C CNN +F 1 "PROG" H 9900 6126 50 0000 C CNN +F 2 "Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm" H 9850 5900 50 0001 C CNN +F 3 "~" H 9850 5900 50 0001 C CNN + 1 9850 5900 + 1 0 0 -1 +$EndComp +Text GLabel 9650 5800 0 50 Input ~ 0 +MISO +Text GLabel 9650 5900 0 50 Input ~ 0 +SCK +Text GLabel 9650 6000 0 50 Input ~ 0 +RST +Text GLabel 10150 5900 2 50 Input ~ 0 +MOSI +$Comp +L power:+5V #PWR0108 +U 1 1 5BEBE75C +P 10250 5800 +F 0 "#PWR0108" H 10250 5650 50 0001 C CNN +F 1 "+5V" H 10265 5973 50 0000 C CNN +F 2 "" H 10250 5800 50 0001 C CNN +F 3 "" H 10250 5800 50 0001 C CNN + 1 10250 5800 + 1 0 0 -1 +$EndComp +$Comp +L power:GND #PWR0109 +U 1 1 5BEBE86F +P 10250 6000 +F 0 "#PWR0109" H 10250 5750 50 0001 C CNN +F 1 "GND" H 10255 5827 50 0000 C CNN +F 2 "" H 10250 6000 50 0001 C CNN +F 3 "" H 10250 6000 50 0001 C CNN + 1 10250 6000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 10150 5800 10250 5800 +Wire Wire Line + 10150 6000 10250 6000 +Text GLabel 3100 3950 0 50 Input ~ 0 +RST +Wire Wire Line + 3100 3950 3250 3950 +Connection ~ 3250 3950 +Text GLabel 4600 4550 2 50 Input ~ 0 +MISO +Text GLabel 4850 4750 2 50 Input ~ 0 +SCK +Text GLabel 5050 4550 2 50 Input ~ 0 +MOSI +Wire Wire Line + 4700 4650 4700 4750 +Wire Wire Line + 4700 4750 4850 4750 +Connection ~ 4700 4650 +Wire Wire Line + 4700 4650 5450 4650 +Wire Wire Line + 4900 4450 4900 4550 +Wire Wire Line + 4900 4550 5050 4550 +Wire Wire Line + 5300 5050 5300 5450 +Wire Wire Line + 5300 5450 4600 5450 +Connection ~ 5300 5050 +$Comp +L Switch:SW_Push SW1 +U 1 1 5BF329CF +P 5700 3500 +F 0 "SW1" H 5700 3785 50 0000 C CNN +F 1 "Button" H 5700 3694 50 0000 C CNN +F 2 "SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_:SW4-SMD-5.2X5.2X1.5MM" H 5700 3700 50 0001 C CNN +F 3 "" H 5700 3700 50 0001 C CNN + 1 5700 3500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4600 3950 4800 3950 +Wire Wire Line + 4800 3950 4800 3700 +Wire Wire Line + 4800 3700 5500 3700 +Wire Wire Line + 5500 3700 5500 3500 +$Comp +L power:GND #PWR01 +U 1 1 5BF4430D +P 5900 3500 +F 0 "#PWR01" H 5900 3250 50 0001 C CNN +F 1 "GND" H 5905 3327 50 0000 C CNN +F 2 "" H 5900 3500 50 0001 C CNN +F 3 "" H 5900 3500 50 0001 C CNN + 1 5900 3500 + 1 0 0 -1 +$EndComp +$EndSCHEMATC diff --git a/kicad/fp-lib-table b/kicad/fp-lib-table new file mode 100644 index 0000000..2eccaa0 --- /dev/null +++ b/kicad/fp-lib-table @@ -0,0 +1,5 @@ +(fp_lib_table + (lib (name AMS1117-5.0)(type Legacy)(uri ${KIPRJMOD}/libs/AMS1117-5.0.mod)(options "")(descr "")) + (lib (name MAX485)(type Legacy)(uri ${KIPRJMOD}/libs/MAX485.mod)(options "")(descr "")) + (lib (name SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_)(type Legacy)(uri ${KIPRJMOD}/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod)(options "")(descr "")) +) diff --git a/kicad/libs/AMS1117-5.0.bck b/kicad/libs/AMS1117-5.0.bck new file mode 100644 index 0000000..76eb3f8 --- /dev/null +++ b/kicad/libs/AMS1117-5.0.bck @@ -0,0 +1,29 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +#(c) SnapEDA 2016 (snapeda.com) +#This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA) with Design Exception 1.0 +# +# AMS1117-5.0 +# +DEF AMS1117-5.0 U 0 40 Y Y 1 L N +F0 "U" -400 220 50 H V L BNN +F1 "AMS1117-5.0" -401 -321 50 H V L BNN +F2 "SOT229P700X180-4N" 0 0 50 H I L BNN +F3 "Sot223/Pkg 1-Amp 5-Volt Low Drop Out Voltage Regulatator" 0 0 50 H I L BNN +F4 "Unavailable" 0 0 50 H I L BNN +F5 "Advanced Monolithic Systems" 0 0 50 H I L BNN +F6 "None" 0 0 50 H I L BNN +F7 "None" 0 0 50 H I L BNN +F8 "AMS1117-5.0" 0 0 50 H I L BNN +DRAW +P 2 0 0 10 -400 200 400 200 N +P 2 0 0 10 400 200 400 -200 N +P 2 0 0 10 400 -200 -400 -200 N +P 2 0 0 10 -400 -200 -400 200 N +X VIN 3 -600 100 200 R 40 40 0 0 I +X VOUT 2 600 100 200 L 40 40 0 0 O +X ADJ/GND 1 600 -100 200 L 40 40 0 0 W +ENDDRAW +ENDDEF +# +# End Library \ No newline at end of file diff --git a/kicad/libs/AMS1117-5.0.dcm b/kicad/libs/AMS1117-5.0.dcm new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/kicad/libs/AMS1117-5.0.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/kicad/libs/AMS1117-5.0.lib b/kicad/libs/AMS1117-5.0.lib new file mode 100644 index 0000000..848b722 --- /dev/null +++ b/kicad/libs/AMS1117-5.0.lib @@ -0,0 +1,24 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# AMS1117-5.0 +# +DEF AMS1117-5.0 U 0 40 Y Y 1 L N +F0 "U" -400 220 50 H V L BNN +F1 "AMS1117-5.0" -401 -321 50 H V L BNN +F2 "SOT229P700X180-4N" 0 0 50 H I L BNN +F3 "Sot223/Pkg 1-Amp 5-Volt Low Drop Out Voltage Regulatator" 0 0 50 H I L BNN +F4 "Unavailable" 0 0 50 H I L BNN +F5 "Advanced Monolithic Systems" 0 0 50 H I L BNN +F6 "None" 0 0 50 H I L BNN +F7 "None" 0 0 50 H I L BNN +F8 "AMS1117-5.0" 0 0 50 H I L BNN +DRAW +S -400 200 400 -200 0 1 0 f +X ADJ/GND 1 600 -100 200 L 40 40 0 0 W +X VOUT 2 600 100 200 L 40 40 0 0 O +X VIN 3 -600 100 200 R 40 40 0 0 I +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/libs/AMS1117-5.0.mod b/kicad/libs/AMS1117-5.0.mod new file mode 100644 index 0000000..959184c --- /dev/null +++ b/kicad/libs/AMS1117-5.0.mod @@ -0,0 +1,73 @@ +PCBNEW-LibModule-V1 +# encoding utf-8 +Units mm +$INDEX +SOT229P700X180-4N +$EndINDEX +$MODULE SOT229P700X180-4N +Po 0 0 0 15 00000000 00000000 ~~ +Li SOT229P700X180-4N +Cd +Sc 00000000 +At SMD +Op 0 0 0 +.SolderMask 0 +.SolderPaste 0 +T0 -1.15242 -5.14581 1.00211 1.00211 0 0.05 N V 21 "SOT229P700X180-4N" +T1 -0.516467 5.54073 1.00285 1.00285 0 0.05 N V 21 "VAL**" +DS -3.36 1.86 -3.36 -1.86 0.127 24 +DS -3.36 -1.86 3.36 -1.86 0.127 24 +DS 3.36 -1.86 3.36 1.86 0.127 24 +DS 3.36 1.86 -3.36 1.86 0.127 24 +DS -3.36 1.86 -3.36 -1.86 0.127 21 +DS 3.36 1.86 3.36 -1.86 0.127 21 +DS -3.36 1.86 -3.1 1.86 0.127 21 +DS 3.11 1.86 3.36 1.86 0.127 21 +DS 3.36 -1.86 1.87 -1.86 0.127 21 +DS -1.76 -1.86 -3.36 -1.86 0.127 21 +DC -2.29 4.373 -2.19 4.373 0.2 21 +DS -3.61 -2.11 -3.61 2.11 0.05 26 +DS -3.61 2.11 -3.01 2.11 0.05 26 +DS -3.01 2.11 -3.01 4.25 0.05 26 +DS -3.01 4.25 3.01 4.25 0.05 26 +DS 3.01 4.25 3.01 2.11 0.05 26 +DS 3.01 2.11 3.61 2.11 0.05 26 +DS 3.61 2.11 3.61 -2.11 0.05 26 +DS 3.61 -2.11 1.87 -2.11 0.05 26 +DS 1.87 -2.11 1.87 -4.25 0.05 26 +DS 1.87 -4.25 -1.87 -4.25 0.05 26 +DS -1.87 -4.25 -1.87 -2.11 0.05 26 +DS -1.87 -2.11 -3.61 -2.11 0.05 26 +$PAD +Sh "1" R 0.93 1.31 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -2.29 3.345 +$EndPAD +$PAD +Sh "2" R 0.93 1.31 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 0 3.345 +$EndPAD +$PAD +Sh "3" R 0.93 1.31 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 2.29 3.345 +$EndPAD +$PAD +Sh "4" R 3.24 1.31 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 0 -3.345 +$EndPAD +$EndMODULE SOT229P700X180-4N diff --git a/kicad/libs/MAX485.bck b/kicad/libs/MAX485.bck new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/kicad/libs/MAX485.bck @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/kicad/libs/MAX485.dcm b/kicad/libs/MAX485.dcm new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/kicad/libs/MAX485.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/kicad/libs/MAX485.lib b/kicad/libs/MAX485.lib new file mode 100644 index 0000000..de261e5 --- /dev/null +++ b/kicad/libs/MAX485.lib @@ -0,0 +1,32 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# MAX485 +# +DEF MAX485 U 0 40 Y Y 1 L N +F0 "U" -401 301 50 H V L BNN +F1 "MAX485" -401 -301 50 H V L BNN +F2 "" 0 0 50 H I C CNN +F3 "Maxim Integrated" 0 0 50 H I L BNN +F4 "None" 0 0 50 H I L BNN +F5 "Unavailable" 0 0 50 H I L BNN +F6 "None" 0 0 50 H I L BNN +F7 "MAX485" 0 0 50 H I L BNN +$FPLIST + DIL08 + SO08 +$ENDFPLIST +DRAW +S -400 300 400 -200 0 1 0 f +X RO 1 -600 200 200 R 40 40 0 0 B +X RE 2 -600 100 200 R 40 40 0 0 B I +X DE 3 -600 0 200 R 40 40 0 0 B +X DI 4 -600 -100 200 R 40 40 0 0 B +X GND 5 600 -100 200 L 40 40 0 0 W +X A 6 600 0 200 L 40 40 0 0 B +X B 7 600 100 200 L 40 40 0 0 B +X VCC 8 600 200 200 L 40 40 0 0 W +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/libs/MAX485.mod b/kicad/libs/MAX485.mod new file mode 100644 index 0000000..0c53d87 --- /dev/null +++ b/kicad/libs/MAX485.mod @@ -0,0 +1,214 @@ +PCBNEW-LibModule-V1 +# encoding utf-8 +Units mm +$INDEX +DIL08 +SO08 +$EndINDEX +$MODULE DIL08 +Po 0 0 0 15 00000000 00000000 ~~ +Li DIL08 +Cd Dual In Line +Sc 00000000 +At STD +Op 0 0 0 +.SolderMask 0 +.SolderPaste 0 +T0 -6.35758 1.27152 1.00119 1.00119 900 0.05 N V 21 "DIL08" +T1 5.00698e-06 -2.00279e-06 1.00244 1.00244 0 0.05 N V 21 "VAL**" +DS 5.08 -5.08 -5.08 -5.08 0.1524 21 +DS -5.08 5.08 5.08 5.08 0.1524 21 +DS 5.08 -5.08 5.08 -2.54 0.1524 21 +DS -5.08 -5.08 -5.08 -2.54 0.1524 21 +DS -5.08 5.08 -5.08 2.54 0.1524 21 +DA -5.08 0 -5.08 -1.016 1800 0.1524 21 +DS -5.08 -2.54 5.08 -2.54 0.1524 21 +DS -5.08 -2.54 -5.08 -1.016 0.2032 21 +DS 5.08 -2.54 5.08 2.54 0.1524 21 +DS -5.08 2.54 5.08 2.54 0.1524 21 +DS -5.08 2.54 -5.08 1.016 0.1524 21 +DS 5.08 2.54 5.08 5.08 0.1524 21 +$PAD +Sh "1" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po -3.81 3.81 +$EndPAD +$PAD +Sh "2" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po -1.27 3.81 +$EndPAD +$PAD +Sh "3" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po 1.27 3.81 +$EndPAD +$PAD +Sh "4" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po 3.81 3.81 +$EndPAD +$PAD +Sh "5" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po 3.81 -3.81 +$EndPAD +$PAD +Sh "6" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po 1.27 -3.81 +$EndPAD +$PAD +Sh "7" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po -1.27 -3.81 +$EndPAD +$PAD +Sh "8" C 1.6002 1.6002 0 0 0 +Dr 0.8128 0 0 +At STD N 00C0FFFF +.SolderMask 0 +Ne 0 "" +Po -3.81 -3.81 +$EndPAD +$EndMODULE DIL08 +$MODULE SO08 +Po 0 0 0 15 00000000 00000000 ~~ +Li SO08 +Cd Small Outline Package Fits JEDEC packages (narrow SOIC-8) +Sc 00000000 +At SMD +Op 0 0 0 +.SolderMask 0 +.SolderPaste 0 +T0 -0.45744 -0.203305 0.320166 0.320166 0 0.05 N V 21 "SO08" +T1 -0.254561 0.432759 0.32071 0.32071 0 0.05 N V 21 "VAL**" +DS -2.362 1.803 2.362 1.803 0.1524 24 +DS 2.362 -1.803 -2.362 -1.803 0.1524 24 +DC -1.8034 0.9906 -1.6598 0.9906 0.2032 21 +DP 0 0 0 0 4 0 24 +Dl -2.08797 1.8542 +Dl -1.7272 1.8542 +Dl -1.7272 2.87731 +Dl -2.08797 2.87731 +DP 0 0 0 0 4 0 24 +Dl -0.813844 1.8542 +Dl -0.4572 1.8542 +Dl -0.4572 2.87389 +Dl -0.813844 2.87389 +DP 0 0 0 0 4 0 24 +Dl 0.458097 1.8542 +Dl 0.8128 1.8542 +Dl 0.8128 2.87584 +Dl 0.458097 2.87584 +DP 0 0 0 0 4 0 24 +Dl 1.72892 1.8542 +Dl 2.0828 1.8542 +Dl 2.0828 2.87306 +Dl 1.72892 2.87306 +DP 0 0 0 0 4 0 24 +Dl -2.08675 -2.8702 +Dl -1.7272 -2.8702 +Dl -1.7272 -1.85772 +Dl -2.08675 -1.85772 +DP 0 0 0 0 4 0 24 +Dl -0.813701 -2.8702 +Dl -0.4572 -2.8702 +Dl -0.4572 -1.85626 +Dl -0.813701 -1.85626 +DP 0 0 0 0 4 0 24 +Dl 0.458322 -2.8702 +Dl 0.8128 -2.8702 +Dl 0.8128 -1.85875 +Dl 0.458322 -1.85875 +DP 0 0 0 0 4 0 24 +Dl 1.73057 -2.8702 +Dl 2.0828 -2.8702 +Dl 2.0828 -1.85782 +Dl 1.73057 -1.85782 +$PAD +Sh "1" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -1.905 2.6162 +$EndPAD +$PAD +Sh "2" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -0.635 2.6162 +$EndPAD +$PAD +Sh "3" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 0.635 2.6162 +$EndPAD +$PAD +Sh "4" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 1.905 2.6162 +$EndPAD +$PAD +Sh "5" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 1.905 -2.6162 +$EndPAD +$PAD +Sh "6" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 0.635 -2.6162 +$EndPAD +$PAD +Sh "7" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -0.635 -2.6162 +$EndPAD +$PAD +Sh "8" R 0.6096 2.2098 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -1.905 -2.6162 +$EndPAD +$EndMODULE SO08 diff --git a/kicad/libs/PCA9685-TSSOP.bck b/kicad/libs/PCA9685-TSSOP.bck new file mode 100644 index 0000000..d9a4ea8 --- /dev/null +++ b/kicad/libs/PCA9685-TSSOP.bck @@ -0,0 +1,43 @@ +EESchema-LIBRARY Version 2.2 Date: 04/05/2014-04:12:59 +# +# PCA9685-TSSOP +# +DEF PCA9685-TSSOP U 0 40 Y Y 1 0 N +F0 "U" 0 -100 50 H V C C +F1 "PCA9685-TSSOP" 0 100 50 H V C C +F2 "MODULE" 0 0 50 H I C C +F3 "DOCUMENTATION" 0 0 50 H I C C +DRAW +S -450 -850 450 850 1 0 0 N +X A0 1 -750 650 300 R 50 50 1 1 I +X A1 2 -750 550 300 R 50 50 1 1 I +X A2 3 -750 450 300 R 50 50 1 1 I +X A3 4 -750 350 300 R 50 50 1 1 I +X A4 5 -750 250 300 R 50 50 1 1 I +X LED0 6 -750 150 300 R 50 50 1 1 O +X LED1 7 -750 50 300 R 50 50 1 1 O +X LED2 8 -750 -50 300 R 50 50 1 1 O +X LED3 9 -750 -150 300 R 50 50 1 1 O +X LED4 10 -750 -250 300 R 50 50 1 1 O +X LED5 11 -750 -350 300 R 50 50 1 1 O +X LED6 12 -750 -450 300 R 50 50 1 1 O +X LED7 13 -750 -550 300 R 50 50 1 1 O +X GND 14 -750 -650 300 R 50 50 1 1 I +X LED8 15 750 -650 300 L 50 50 1 1 O +X LED9 16 750 -550 300 L 50 50 1 1 O +X LED10 17 750 -450 300 L 50 50 1 1 O +X LED11 18 750 -350 300 L 50 50 1 1 O +X LED12 19 750 -250 300 L 50 50 1 1 O +X LED13 20 750 -150 300 L 50 50 1 1 O +X LED14 21 750 -50 300 L 50 50 1 1 O +X LED15 22 750 50 300 L 50 50 1 1 O +X OE 23 750 150 300 L 50 50 1 1 I +X A5 24 750 250 300 L 50 50 1 1 I +X EXTCLK 25 750 350 300 L 50 50 1 1 I +X SCL 26 750 450 300 L 50 50 1 1 I +X SDA 27 750 550 300 L 50 50 1 1 B +X VCC 28 750 650 300 L 50 50 1 1 I +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/libs/PCA9685-TSSOP.dcm b/kicad/libs/PCA9685-TSSOP.dcm new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/kicad/libs/PCA9685-TSSOP.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/kicad/libs/PCA9685-TSSOP.lib b/kicad/libs/PCA9685-TSSOP.lib new file mode 100644 index 0000000..bfe167c --- /dev/null +++ b/kicad/libs/PCA9685-TSSOP.lib @@ -0,0 +1,44 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# PCA9685-TSSOP +# +DEF PCA9685-TSSOP U 0 40 Y Y 1 F N +F0 "U" 0 -100 50 H V C CNN +F1 "PCA9685-TSSOP" 0 100 50 H V C CNN +F2 "MODULE" 0 0 50 H I C CNN +F3 "DOCUMENTATION" 0 0 50 H I C CNN +DRAW +S -450 -850 450 850 1 0 0 f +X A0 1 -750 650 300 R 50 50 1 1 I +X LED4 10 -750 -250 300 R 50 50 1 1 O +X LED5 11 -750 -350 300 R 50 50 1 1 O +X LED6 12 -750 -450 300 R 50 50 1 1 O +X LED7 13 -750 -550 300 R 50 50 1 1 O +X GND 14 -750 -650 300 R 50 50 1 1 I +X LED8 15 750 -650 300 L 50 50 1 1 O +X LED9 16 750 -550 300 L 50 50 1 1 O +X LED10 17 750 -450 300 L 50 50 1 1 O +X LED11 18 750 -350 300 L 50 50 1 1 O +X LED12 19 750 -250 300 L 50 50 1 1 O +X A1 2 -750 550 300 R 50 50 1 1 I +X LED13 20 750 -150 300 L 50 50 1 1 O +X LED14 21 750 -50 300 L 50 50 1 1 O +X LED15 22 750 50 300 L 50 50 1 1 O +X OE 23 750 150 300 L 50 50 1 1 I +X A5 24 750 250 300 L 50 50 1 1 I +X EXTCLK 25 750 350 300 L 50 50 1 1 I +X SCL 26 750 450 300 L 50 50 1 1 I +X SDA 27 750 550 300 L 50 50 1 1 B +X VCC 28 750 650 300 L 50 50 1 1 I +X A2 3 -750 450 300 R 50 50 1 1 I +X A3 4 -750 350 300 R 50 50 1 1 I +X A4 5 -750 250 300 R 50 50 1 1 I +X LED0 6 -750 150 300 R 50 50 1 1 O +X LED1 7 -750 50 300 R 50 50 1 1 O +X LED2 8 -750 -50 300 R 50 50 1 1 O +X LED3 9 -750 -150 300 R 50 50 1 1 O +ENDDRAW +ENDDEF +# +#End Library diff --git a/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib b/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib new file mode 100644 index 0000000..8edf2b1 --- /dev/null +++ b/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib @@ -0,0 +1,47 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +#(c) SnapEDA 2016 (snapeda.com) +#This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA) with Design Exception 1.0 +# +# SMD-BUTTON(4P-5.2X5.2X1.5MM-SKQGAKE010) +# +DEF SMD-BUTTON(4P-5.2X5.2X1.5MM-SKQGAKE010) SW 0 40 Y Y 1 L N +F0 "SW" -201 201 50 H V L BNN +F1 "SMD-BUTTON(4P-5.2X5.2X1.5MM-SKQGAKE010)" -200 -250 50 H V L BNN +F2 "SW4-SMD-5.2X5.2X1.5MM" 0 0 50 H I L BNN +F3 "None" 0 0 50 H I L BNN +F4 "SKQGAKE010" 0 0 50 H I L BNN +F5 "None" 0 0 50 H I L BNN +F6 "Unavailable" 0 0 50 H I L BNN +F7 "ALPS" 0 0 50 H I L BNN +F8 "Switch Tactile N.O. SPST Button Gull Wing 0.05A 12VDC 3.43N SMD T/R" 0 0 50 H I L BNN +DRAW +P 2 0 0 10 -200 200 200 200 N +P 2 0 0 10 200 200 200 100 N +P 2 0 0 10 200 100 200 -100 N +P 2 0 0 10 200 -100 200 -200 N +P 2 0 0 10 200 -200 -200 -200 N +P 2 0 0 10 -200 -200 -200 -100 N +P 2 0 0 10 -200 -100 -200 100 N +P 2 0 0 10 -200 100 -200 200 N +P 2 0 0 6 -200 100 0 100 N +P 2 0 0 6 0 100 200 100 N +P 2 0 0 6 0 100 0 50 N +P 2 0 0 6 0 50 -50 -30 N +P 2 0 0 6 0 -50 0 -100 N +P 2 0 0 6 0 -100 200 -100 N +P 2 0 0 6 0 -100 -200 -100 N +P 2 0 0 6 -250 100 -200 100 N +P 2 0 0 6 -250 -100 -200 -100 N +P 2 0 0 6 250 -100 200 -100 N +P 2 0 0 6 250 100 200 100 N +C -50 -30 6 0 0 0 N +C 0 -50 6 0 0 0 N +X A0 1 -350 100 100 R 40 40 0 0 B +X A1 2 350 100 100 L 40 40 0 0 B +X B0 3 -350 -100 100 R 40 40 0 0 B +X B1 4 350 -100 100 L 40 40 0 0 B +ENDDRAW +ENDDEF +# +# End Library \ No newline at end of file diff --git a/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod b/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod new file mode 100644 index 0000000..f3536b8 --- /dev/null +++ b/kicad/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.mod @@ -0,0 +1,67 @@ +PCBNEW-LibModule-V1 +# encoding utf-8 +Units mm +$INDEX +SW4-SMD-5.2X5.2X1.5MM +$EndINDEX +$MODULE SW4-SMD-5.2X5.2X1.5MM +Po 0 0 0 15 00000000 00000000 ~~ +Li SW4-SMD-5.2X5.2X1.5MM +Cd +Sc 00000000 +At SMD +Op 0 0 0 +.SolderMask 0 +.SolderPaste 0 +T0 -0.523383 -3.25313 0.701862 0.701862 0 0.05 N V 21 "SW4-SMD-5.2X5.2X1.5MM" +T1 -0.112861 -0.218191 0.501589 0.501589 0 0.05 N V 21 "VAL**" +DS 2.6 1.46863 1.46863 2.6 0.127 24 +DS 1.5 2.6 -1.1 2.6 0.127 21 +DS -1.1 2.6 -1.45982 2.6 0.127 21 +DS -1.45982 2.6 -2.6 1.45982 0.127 24 +DS -2.6 -1.39584 -1.39584 -2.6 0.127 24 +DS -1.4 -2.6 1.5 -2.6 0.127 21 +DS 1.43381 -2.6 2.6 -1.43381 0.127 24 +DP 0 0 0 0 4 0 26 +Dl -2.50464 -2.6 +Dl 2.6 -2.6 +Dl 2.6 2.60484 +Dl -2.50464 2.60484 +DS -1.4 -2.6 -2.4 -1.6 0.127 21 +DS 1.5 -2.6 2.4 -1.7 0.127 21 +DS 1.5 2.6 2.4 1.7 0.127 21 +DS -1.45982 2.6 -1.5 2.6 0.127 21 +DS -1.5 2.6 -2.4 1.7 0.127 21 +$PAD +Sh "1" R 1 0.7 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -3 -1.85 +$EndPAD +$PAD +Sh "2" R 1 0.7 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 3 -1.85 +$EndPAD +$PAD +Sh "3" R 1 0.7 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po -3 1.85 +$EndPAD +$PAD +Sh "4" R 1 0.7 0 0 0 +At SMD N 00888000 +.SolderMask 0 +.SolderPaste 0 +Ne 0 "" +Po 3 1.85 +$EndPAD +$EndMODULE SW4-SMD-5.2X5.2X1.5MM diff --git a/kicad/sym-lib-table b/kicad/sym-lib-table new file mode 100644 index 0000000..8ad6dc1 --- /dev/null +++ b/kicad/sym-lib-table @@ -0,0 +1,6 @@ +(sym_lib_table + (lib (name PCA9685-TSSOP)(type Legacy)(uri ${KIPRJMOD}/libs/PCA9685-TSSOP.lib)(options "")(descr "")) + (lib (name MAX485)(type Legacy)(uri ${KIPRJMOD}/libs/MAX485.lib)(options "")(descr "")) + (lib (name AMS1117-5.0)(type Legacy)(uri ${KIPRJMOD}/libs/AMS1117-5.0.lib)(options "")(descr "")) + (lib (name SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_)(type Legacy)(uri ${KIPRJMOD}/libs/SMD-BUTTON_4P-5.2X5.2X1.5MM-SKQGAKE010_.lib)(options "")(descr "")) +) diff --git a/module/build.bat b/module/build.bat new file mode 100644 index 0000000..c2ea29a --- /dev/null +++ b/module/build.bat @@ -0,0 +1 @@ +@pio run \ No newline at end of file diff --git a/module/fuses.bat b/module/fuses.bat new file mode 100644 index 0000000..78c7e0f --- /dev/null +++ b/module/fuses.bat @@ -0,0 +1,3 @@ +REM Internal 8 Mhz oscillator, no clock division +REM http://www.engbedded.com/fusecalc/ +@avrdude -c usbtiny -p t2313 -e -U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m \ No newline at end of file diff --git a/module/platformio.ini b/module/platformio.ini new file mode 100644 index 0000000..307c668 --- /dev/null +++ b/module/platformio.ini @@ -0,0 +1,19 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; http://docs.platformio.org/page/projectconf.html + +[platformio] +env_default = board + +[env:board] +platform = atmelavr +board = attiny4313 +board_build.f_cpu = 8000000L +upload_speed = 115200 +upload_protocol = usbtiny \ No newline at end of file diff --git a/module/src/display.c b/module/src/display.c new file mode 100644 index 0000000..9615be8 --- /dev/null +++ b/module/src/display.c @@ -0,0 +1,126 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#include "display.h" +#include +#include +#include +#include "lib/VeryTinySSD1306.h" +#include "lib/VeryTinyBigChars.h" +#include "lib/TinyMillis.h" +#include "global.h" + + +#define CharSpacing 4 +#define CharOuterWidth (SSD1306_CharWidth_32px + CharSpacing) +#define SingleCharCenteredX ((SSD1306_DisplayWidth - SSD1306_CharWidth_32px) / 2) +#define WaitAnimationInterval 250 + + +#define WaitAnimationMaxStep 3 +const uint16_t WaitAnimation [] PROGMEM = { + 0b0000000000000100, // Left + 0b0000000010000000, // Middle + 0b0001000000000000, // Right + 0b0000000010000000 // Middle +}; +/* +#define WaitAnimationMaxStep 7 +const uint16_t WaitAnimation [] PROGMEM = { + 0b0000000001000000, // Top + 0b0000100000000000, // Top-right + 0b0001000000000000, // Right + 0b0010000000000000, // Bottom-right + 0b0000000100000000, // Bottom + 0b0000000000001000, // Bottom-left + 0b0000000000000100, // Left + 0b0000000000000010 // Top-left +}; +*/ + + +bool isWait = false; +uint16_t lastWait = 0; +uint8_t waitAnimationStep = 0; + + + +inline void display_drawNumber(uint8_t* x, uint8_t value) +{ + if (value > 9) + { + ssd1306_drawdigit_32px(*x, value / 10); + *x += CharOuterWidth; + ssd1306_drawdigit_32px(*x, value % 10); + } + else + ssd1306_drawdigit_32px(*x, value); + + *x += CharOuterWidth; +} + + +void display_init(void) +{ + ssd1306_begin_default(); + ssd1306_clear(); + ssd1306_on(); + ssd1306_switchRenderFrame(); +} + + +void display_drawIndex(void) +{ + ssd1306_clear(); + + uint8_t moduleIndex = global_getModuleIndex(); + + if (moduleIndex == ModuleIndexUndefined) + { + ssd1306_drawminus_32px(SingleCharCenteredX); + } + else + { + uint8_t firstStep = (moduleIndex * 2) + 1; + uint8_t totalWidth = 3 * CharOuterWidth; + + if (firstStep == 9) + totalWidth += CharOuterWidth; + else if (firstStep > 9) + totalWidth += 2 * CharOuterWidth; + + + uint8_t currentX = (SSD1306_DisplayWidth - totalWidth) / 2; + display_drawNumber(¤tX, firstStep); + + ssd1306_drawminus_32px(currentX); + currentX += CharOuterWidth; + + display_drawNumber(¤tX, firstStep + 1); + } + + ssd1306_switchFrame(); +} + + +void display_drawWait(void) +{ + uint16_t currentTime = millis(); + + if (isWait && currentTime - lastWait < WaitAnimationInterval) + return; + + ssd1306_clear(); + ssd1306_drawchar_32px(SingleCharCenteredX, pgm_read_word(&WaitAnimation[waitAnimationStep])); + ssd1306_switchFrame(); + + waitAnimationStep++; + if (waitAnimationStep > WaitAnimationMaxStep) + waitAnimationStep = 0; + + isWait = true; + lastWait = currentTime; +} \ No newline at end of file diff --git a/module/src/display.h b/module/src/display.h new file mode 100644 index 0000000..3a82d42 --- /dev/null +++ b/module/src/display.h @@ -0,0 +1,14 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#ifndef __display +#define __display + +void display_init(void); +void display_drawIndex(void); +void display_drawWait(void); + +#endif \ No newline at end of file diff --git a/module/src/global.c b/module/src/global.c new file mode 100644 index 0000000..e38bb7e --- /dev/null +++ b/module/src/global.c @@ -0,0 +1,59 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#include "global.h" +#include + + +// EEPROM +// First byte is 0xAA to recognize uninitialised EEPROM +#define EEPROMHeader 0xAA + +// Second byte is a version indicator +#define EEPROMCurrentVersion 1 + +// Version 1 fields +// index: 2 +uint8_t moduleIndex = ModuleIndexUndefined; + + +void global_init(void) +{ + uint8_t address = 0; + if (eeprom_read_byte(&address) != EEPROMHeader) + { + eeprom_write_byte(&address, EEPROMHeader); address++; + eeprom_write_byte(&address, EEPROMCurrentVersion); address++; + eeprom_write_byte(&address, moduleIndex); address++; + } + else + { + address++; + uint8_t version = eeprom_read_byte(&address); address++; + if (version >= 1) + { + moduleIndex = eeprom_read_byte(&address); address++; + } + } +} + + +uint8_t global_getModuleIndex(void) +{ + return moduleIndex; +} + + +void global_setModuleIndex(uint8_t index) +{ + if (index == moduleIndex) + return; + + moduleIndex = index; + + uint8_t address = 2; + eeprom_write_byte(&address, moduleIndex); +} \ No newline at end of file diff --git a/module/src/global.h b/module/src/global.h new file mode 100644 index 0000000..ad06eda --- /dev/null +++ b/module/src/global.h @@ -0,0 +1,19 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#ifndef __global +#define __global + +#include + +#define ModuleIndexUndefined 0xff + +void global_init(void); + +uint8_t global_getModuleIndex(void); +void global_setModuleIndex(uint8_t index); + +#endif \ No newline at end of file diff --git a/module/src/lib/TinyMillis.c b/module/src/lib/TinyMillis.c new file mode 100644 index 0000000..277a4c3 --- /dev/null +++ b/module/src/lib/TinyMillis.c @@ -0,0 +1,46 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#include "TinyMillis.h" +#include +#include +#include + + +volatile uint16_t tickCount; + + +ISR(TIMER1_COMPA_vect) +{ + tickCount++; +} + + +void millis_init(void) +{ + uint32_t overflow; + + overflow = ((F_CPU / 1000) / 8); + + TCCR1B |= (1 << WGM12) | (1 << CS11); + OCR1AH = (overflow >> 8); + OCR1AL = overflow; + + TIMSK |= (1 << OCIE1A); +} + + +uint16_t millis(void) +{ + uint16_t value; + + ATOMIC_BLOCK(ATOMIC_FORCEON) + { + value = tickCount; + } + + return value; +} diff --git a/module/src/lib/TinyMillis.h b/module/src/lib/TinyMillis.h new file mode 100644 index 0000000..2f8d701 --- /dev/null +++ b/module/src/lib/TinyMillis.h @@ -0,0 +1,21 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Counts the elapsed milliseconds similar to Arduino's millis(void). + * Accuracy is not assumed to be important, and assumes no long-running + * checks are done so it can get away with 16 bits (65 seconds max). +*/ +#ifndef __TinyMillis +#define __TinyMillis + +#include + +// call sei(void) afterwards +void millis_init(void); + +uint16_t millis(void); + +#endif \ No newline at end of file diff --git a/module/src/lib/TinyRS485.c b/module/src/lib/TinyRS485.c new file mode 100644 index 0000000..cdef8eb --- /dev/null +++ b/module/src/lib/TinyRS485.c @@ -0,0 +1,262 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Straight up port of Nick Gammon's non-blocking + * RS485 library to C and removing the Arduino + * framework dependency. + * + * Source: + * https://www.gammon.com.au/forum/?id=11428 + * Devised and written by Nick Gammon. + * Date: 4 December 2012 + * Version: 1.0 +*/ +#include "TinyRS485.h" +#include "TinyMillis.h" +#include + + +ReadCallback doRead; +AvailableCallback doAvailable; +WriteCallback doWrite; + + +// where we save incoming stuff +uint8_t* data; + +// how much data is in the buffer +uint8_t bufferSize; + +// this is true once we have valid data in buf +bool available; + +// an STX (start of text) signals a packet start +bool haveSTX; + +// count of errors +uint16_t errorCount; + +// variables below are set when we get an STX +bool haveETX; +uint8_t inputPos; +uint8_t currentByte; +bool firstNibble; +uint16_t startTime; + + +// helper private functions +uint8_t crc8 (uint8_t* addr, uint8_t len) +{ + uint8_t crc = 0; + while (len--) + { + uint8_t inbyte = *addr++; + for (uint8_t i = 8; i; i--) + { + uint8_t mix = (crc ^ inbyte) & 0x01; + crc >>= 1; + if (mix) + crc ^= 0x8C; + + inbyte >>= 1; + } + } + return crc; +} + + +// send a byte complemented, repeated +// only values sent would be (in hex): +// 0F, 1E, 2D, 3C, 4B, 5A, 69, 78, 87, 96, A5, B4, C3, D2, E1, F0 +void sendComplemented(uint8_t what) +{ + uint8_t c; + + // first nibble + c = what >> 4; + doWrite((c << 4) | (c ^ 0x0F)); + + // second nibble + c = what & 0x0F; + doWrite((c << 4) | (c ^ 0x0F)); +} + + + +void rs485_begin(ReadCallback readCallback, + AvailableCallback availableCallback, + WriteCallback writeCallback, + uint8_t bufferSize) +{ + doRead = readCallback; + doAvailable = availableCallback; + doWrite = writeCallback; + data = (uint8_t*)malloc(bufferSize); + rs485_reset(); + errorCount = 0; +} + + +void rs485_stop(void) +{ + rs485_reset(); + free(data); + data = NULL; +} + + +void rs485_reset(void) +{ + haveSTX = false; + available = false; + inputPos = 0; + startTime = 0; +} + + +// send a message of "length" bytes (max 255) to other end +// put STX at start, ETX at end, and add CRC +void rs485_sendMsg(uint8_t* data, uint8_t length) +{ + doWrite(STX); // STX + for (uint8_t i = 0; i < length; i++) + sendComplemented(data[i]); + + doWrite(ETX); // ETX + sendComplemented(crc8(data, length)); +} + + +bool rs485_available(void) +{ + return available; +} + + +uint8_t* rs485_getData(void) +{ + return data; +} + + +uint8_t rs485_getLength(void) +{ + return inputPos; +} + + +uint16_t rs485_getErrorCount(void) +{ + return errorCount; +} + + +uint16_t rs485_getPacketStartTime(void) +{ + return startTime; +} + + +bool rs485_isPacketStarted(void) +{ + return haveSTX; +} + + + +// called periodically from main loop to process data and +// assemble the finished packet in 'data_' + +// returns true if packet received. + +// You could implement a timeout by seeing if isPacketStarted() returns +// true, and if too much time has passed since getPacketStartTime() time. +bool rs485_update(void) +{ + // no data? can't go ahead (eg. begin() not called) + if (data == NULL) + return false; + + // no callbacks? Can't read + if (doAvailable == NULL || doRead == NULL) + return false; + + while (doAvailable() > 0) + { + uint8_t inByte = doRead(); + + switch (inByte) + { + case STX: // start of text + haveSTX = true; + haveETX = false; + inputPos = 0; + firstNibble = true; + startTime = millis(); + break; + + case ETX: // end of text (now expect the CRC check) + haveETX = true; + break; + + default: + // wait until packet officially starts + if (!haveSTX) + break; + + // check byte is in valid form (4 bits followed by 4 bits complemented) + if ((inByte >> 4) != ((inByte & 0x0F) ^ 0x0F)) + { + rs485_reset(); + errorCount++; + break; // bad character + } + + // convert back + inByte >>= 4; + + // high-order nibble? + if (firstNibble) + { + currentByte = inByte; + firstNibble = false; + break; + } + + // low-order nibble + currentByte <<= 4; + currentByte |= inByte; + firstNibble = true; + + // if we have the ETX this must be the CRC + if (haveETX) + { + if (crc8(data, inputPos) != currentByte) + { + rs485_reset(); + errorCount++; + break; // bad crc + } + + available = true; + return true; // show data ready + } + + // keep adding if not full + if (inputPos < bufferSize) + data[inputPos++] = currentByte; + else + { + rs485_reset(); // overflow, start again + errorCount++; + } + + break; + } + } + + return false; // not ready yet +} diff --git a/module/src/lib/TinyRS485.h b/module/src/lib/TinyRS485.h new file mode 100644 index 0000000..e57fd2c --- /dev/null +++ b/module/src/lib/TinyRS485.h @@ -0,0 +1,69 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Straight up port of Nick Gammon's non-blocking + * RS485 library to C and removing the Arduino + * framework dependency. + * + * Source: + * https://www.gammon.com.au/forum/?id=11428 + * Devised and written by Nick Gammon. + * Date: 4 December 2012 + * Version: 1.0 +*/ +#ifndef __TinyRS485 +#define __TinyRS485 + +#include +#include + + +typedef void (*WriteCallback) (uint8_t what); // send a byte to serial port +typedef uint8_t (*AvailableCallback) (void); // return number of bytes available +typedef uint8_t (*ReadCallback) (void); // read a byte from serial port + + +enum { + STX = '\2', // start of text + ETX = '\3' // end of text +}; // end of enum + + +// allocate the requested buffer size +void rs485_begin(ReadCallback readCallback, + AvailableCallback availableCallback, + WriteCallback writeCallback, + uint8_t bufferSize); + +// get rid of the buffer +void rs485_stop(void); + +// handle incoming data, return true if packet ready +bool rs485_update(void); + +// reset to no incoming data (eg. after a timeout) +void rs485_reset(void); + +// send data +void rs485_sendMsg(uint8_t* data, uint8_t length); + +// returns true if packet available +bool rs485_available(void); + +// once available, returns the address of the current message +uint8_t* rs485_getData(void); +uint8_t rs485_getLength(void); + +// return how many errors we have had +uint16_t rs485_getErrorCount(void); + +// return when last packet started +uint16_t rs485_getPacketStartTime(void); + +// return true if a packet has started to be received +bool rs485_isPacketStarted(void); + +#endif \ No newline at end of file diff --git a/module/src/lib/TinyUART.c b/module/src/lib/TinyUART.c new file mode 100644 index 0000000..bb86d2f --- /dev/null +++ b/module/src/lib/TinyUART.c @@ -0,0 +1,161 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Source: + * https://github.com/akafugu/helloworld/blob/master/attiny2313/uart.c +*/ +#include "TinyUART.h" +#include +#include +#include + + +volatile static uint8_t rx_buffer[BUFFER_SIZE] = "xxxxxxxxxxxxxxxx"; +volatile static uint8_t tx_buffer[BUFFER_SIZE] = "xxxxxxxxxxxxxxxx"; +volatile static uint8_t rx_head = 0; +volatile static uint8_t rx_tail = 0; +volatile static uint8_t tx_head = 0; +volatile static uint8_t tx_tail = 0; + + +void uart_init(void) +{ + // set baud rate + UBRRH = (uint8_t)(MYUBBR >> 8); + UBRRL = (uint8_t)(MYUBBR); + // enable receive and transmit + UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE); + // set frame format + UCSRC = (1 << USBS) | (3 << UCSZ0); // asynchron 8n1 +} + + + +void uart_send(uint8_t c) +{ + // wait for empty data register + while (!(UCSRA & (1< + +#define UART_NO_DATA 0x0100 + +#define BAUD 38400 +// 4.096MHz +// 4800: 52.3333333 +// 9600: 25.6666667 +// 14400: 16.7777778 +// 19600: 12.06 +// 28800: 7.8889 +// 38400: 5.6667 + +#define MYUBBR ((F_CPU / (BAUD * 16L)) - 1) +#define BUFFER_SIZE 16 + + +void uart_init(void); + +/* + * uart_send + * Sends a single char to UART without ISR + */ +void uart_send(uint8_t c); + + +uint8_t uart_available(void); + + +/* + * uart_receive + * Receives a single char without ISR + */ +uint8_t uart_receive(void); + + +/* + * uart_getc + * Gets a single char from the receive buffer. + * return uint16_r the received char or UART_NO_DATA + */ +uint16_t uart_getc(void); + + + +/* + * uart_getc_wait + * Blocking call to getc. Will not return until a char is received. + */ +uint8_t uart_getc_wait(void); + + +/* + * uart_putc + * Puts a single char. Will block until there is enough space in the + * send buffer. + */ +void uart_putc(uint8_t c); + + +/* + * uart_puts + * Sends a string. + */ +void uart_puts(const char *s); + + +/* + * uart_puts_P + * Sends a PROGMEM string. + */ +void uart_puts_P(const char *s); + +#endif \ No newline at end of file diff --git a/module/src/lib/VeryTinyBigChars.c b/module/src/lib/VeryTinyBigChars.c new file mode 100644 index 0000000..4b8ca78 --- /dev/null +++ b/module/src/lib/VeryTinyBigChars.c @@ -0,0 +1,134 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#include "VeryTinyBigChars.h" +#include "VeryTinySSD1306.h" +#include + + +/* + * Each digit is composed of a 3x5 grid where each bit represents + * whether or not to draw that area. It is then stretched. + * + * Example: + * + * XXX + * X + * XXX + * X + * XXX + * + * The least significant bit is the top left corner, going down + * after that before wrapping to the middle column. + */ +const uint16_t ssd1306_digits_32px [] PROGMEM = { + 0b0111111000111111, // 0 + 0b0100001111110010, // 1 + 0b0101111010111101, // 2 + 0b0111111010110101, // 3 + 0b0111110010000111, // 4 + 0b0111011010110111, // 5 + 0b0111011010111111, // 6 + 0b0111110000100001, // 7 + 0b0111111010111111, // 8 + 0b0111111010110111 // 9 +}; + + +void ssd1306_drawchar_32px(uint8_t x, uint16_t matrix) +{ + uint8_t column[4]; + + // Vertical mode + ssd1306_setMemoryAddressingMode(0b01); + + if (ssd1306_currentRenderFrame() == 1) + { + ssd1306_setPageStartAddress(4); + ssd1306_setPageAddress(4, 7); + } + else + { + ssd1306_setPageStartAddress(0); + ssd1306_setPageAddress(0, 3); + } + + ssd1306_setCursor(x, 0); + + ssd1306_startData(); + + // Three columns, each shifted 5 bits + for (uint8_t shift = 0; shift < 3; shift++) + { + uint16_t columnValue = matrix >> (shift * 5); + + // It's a bit rough, but it works! First, third and fifth "row" are 6 bits, in between are 7 bits = 32 total + column[0] = 0; + column[1] = 0; + column[2] = 0; + column[3] = 0; + + // 0 = 0b0111111000111111 + + if (columnValue & 0b1) + column[0] |= 0b00111111; + + if (columnValue & 0b10) { + column[0] |= 0b11000000; + column[1] |= 0b00011111; + } + + if (columnValue & 0b100) { + column[1] |= 0b11100000; + column[2] |= 0b00000111; + } + + if (columnValue & 0b1000) { + column[2] |= 0b11111000; + column[3] |= 0b00000011; + } + + if (columnValue & 0b10000) + column[3] |= 0b11111100; + + // Each column is 6 pixels wide + for (uint8_t repeat = 0; repeat < SSD1306_CharColumnWidth_32px; repeat++) + { + ssd1306_sendData(column[0]); + ssd1306_sendData(column[1]); + ssd1306_sendData(column[2]); + ssd1306_sendData(column[3]); + } + } + + ssd1306_endData(); + + // Default: horizontal mode + ssd1306_setMemoryAddressingMode(0b00); + ssd1306_setPageStartAddress(0); + ssd1306_setPageAddress(0, 7); +} + + +void ssd1306_drawdigit_32px(uint8_t x, uint8_t value) +{ + if (value < 0 || value > 9) + return; + + ssd1306_drawchar_32px(x, pgm_read_word(&ssd1306_digits_32px[value])); +} + + +void ssd1306_drawplus_32px(uint8_t x) +{ + ssd1306_drawchar_32px(x, 0b0001000111000100); +} + + +void ssd1306_drawminus_32px(uint8_t x) +{ + ssd1306_drawchar_32px(x, 0b0001000010000100); +} \ No newline at end of file diff --git a/module/src/lib/VeryTinyBigChars.h b/module/src/lib/VeryTinyBigChars.h new file mode 100644 index 0000000..b6c87eb --- /dev/null +++ b/module/src/lib/VeryTinyBigChars.h @@ -0,0 +1,24 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#ifndef __VeryTinyBigChars +#define __VeryTinyBigChars + +#include + + +#define SSD1306_CharColumnWidth_32px 6 +#define SSD1306_CharWidth_32px (3 * SSD1306_CharColumnWidth_32px) + +void ssd1306_drawchar_32px(uint8_t x, uint16_t matrix); + + +// Draws a digit from 0 to 9, 32 pixels tall +void ssd1306_drawdigit_32px(uint8_t x, uint8_t value); +void ssd1306_drawplus_32px(uint8_t x); +void ssd1306_drawminus_32px(uint8_t x); + +#endif \ No newline at end of file diff --git a/module/src/lib/VeryTinyI2C.c b/module/src/lib/VeryTinyI2C.c new file mode 100644 index 0000000..3ddd33c --- /dev/null +++ b/module/src/lib/VeryTinyI2C.c @@ -0,0 +1,153 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Minimalistic I2C library for the ATTiny2313's limited space. + * Based on David Johnson-Davies' TinyI2C: + * https://github.com/technoblogy/tiny-i2c +*/ +#include "VeryTinyI2C.h" + + +// Constants +// Prepare register value to: Clear flags, and set USI to shift 8 bits i.e. count 16 clock edges. +const unsigned char USISR_8bit = 1< +#include +#include +#include + +// Defines +//#define TWI_FAST_MODE + +#ifdef TWI_FAST_MODE // TWI FAST mode timing limits. SCL = 100-400kHz +#define DELAY_T2TWI (_delay_us(2)) // >1.3us +#define DELAY_T4TWI (_delay_us(1)) // >0.6us +#else // TWI STANDARD mode timing limits. SCL <= 100kHz +#define DELAY_T2TWI (_delay_us(5)) // >4.7us +#define DELAY_T4TWI (_delay_us(4)) // >4.0us +#endif + +#define TWI_NACK_BIT 0 // Bit position for (N)ACK bit. + + +// These are valid for the ATTiny2313 +#define DDR_USI DDRB +#define DDR_USI_CL DDR_USI +#define PORT_USI PORTB +#define PORT_USI_CL PORT_USI +#define PIN_USI PINB +#define PIN_USI_CL PIN_USI +#define PORT_USI_SDA PB5 +#define PORT_USI_SCL PB7 +#define PIN_USI_SDA PINB5 +#define PIN_USI_SCL PINB7 + + +void i2c_init(void); +uint8_t i2c_read(void); +uint8_t i2c_readLast(void); +bool i2c_write(uint8_t data); +bool i2c_start(uint8_t address, int readcount); +bool i2c_restart(uint8_t address, int readcount); +void i2c_stop(void); + +#endif \ No newline at end of file diff --git a/module/src/lib/VeryTinySSD1306.c b/module/src/lib/VeryTinySSD1306.c new file mode 100644 index 0000000..09b48aa --- /dev/null +++ b/module/src/lib/VeryTinySSD1306.c @@ -0,0 +1,517 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Port of Stephen Denne's Tiny4kOLED to C + * and without the Arduino framework dependency. + * https://github.com/technoblogy/tiny-i2c +*/ +#include "VeryTinySSD1306.h" +#include +#include "VeryTinyI2C.h" + +#define SSD1306_PAGES 4 + +#define SSD1306_COMMAND 0x00 +#define SSD1306_DATA 0x40 + +// ---------------------------------------------------------------------------- + +// Some code based on "IIC_without_ACK" by http://www.14blog.com/archives/1358 + +const uint8_t ssd1306_init_sequence [] PROGMEM = { // Initialization Sequence +// 0xAE, // Display OFF (sleep mode) +// 0x20, 0b10, // Set Memory Addressing Mode + // 00=Horizontal Addressing Mode; 01=Vertical Addressing Mode; + // 10=Page Addressing Mode (RESET); 11=Invalid +// 0xB0, // Set Page Start Address for Page Addressing Mode, 0-7 + 0xC8, // Set COM Output Scan Direction +// 0x00, // ---set low column address +// 0x10, // ---set high column address +// 0x40, // --set start line address +// 0x81, 0x7F, // Set contrast control register + 0xA1, // Set Segment Re-map. A0=address mapped; A1=address 127 mapped. +// 0xA6, // Set display mode. A6=Normal; A7=Inverse + 0xA8, 0x1F, // Set multiplex ratio(1 to 64) +// 0xA4, // Output RAM to Display + // 0xA4=Output follows RAM content; 0xA5,Output ignores RAM content +// 0xD3, 0x00, // Set display offset. 00 = no offset +// 0xD5, 0x80, // --set display clock divide ratio/oscillator frequency +// 0xD9, 0x22, // Set pre-charge period + 0xDA, 0x02, // Set com pins hardware configuration +// 0xDB, 0x20, // --set vcomh 0x20 = 0.77xVcc + 0x8D, 0x14 // Set DC-DC enable +}; + + +const DCfont *oledFont = 0; +uint8_t oledX = 0, oledY = 0; +uint8_t renderingFrame = 0xB0, drawingFrame = 0x40; + + +void ssd1306_send_command_start(void) +{ + i2c_start(SSD1306, 0); + i2c_write(SSD1306_COMMAND); +} + +void ssd1306_send_data_start(void) +{ + i2c_start(SSD1306, 0); + i2c_write(SSD1306_DATA); +} + +void ssd1306_send_command_byte(uint8_t byte) +{ + if (i2c_write(byte) == 0) + { + i2c_stop(); + ssd1306_send_command_start(); + i2c_write(byte); + } +} + +void ssd1306_send_data_byte(uint8_t byte) +{ + if (i2c_write(byte) == 0) + { + i2c_stop(); + ssd1306_send_data_start(); + i2c_write(byte); + } +} + +void ssd1306_send_command(uint8_t command) +{ + ssd1306_send_command_start(); + i2c_write(command); + i2c_stop(); +} + +void ssd1306_send_command2(uint8_t command1, uint8_t command2) +{ + ssd1306_send_command_start(); + i2c_write(command1); + i2c_write(command2); + i2c_stop(); +} + +void ssd1306_send_command3(uint8_t command1, uint8_t command2, uint8_t command3) +{ + ssd1306_send_command_start(); + i2c_write(command1); + i2c_write(command2); + i2c_write(command3); + i2c_stop(); +} + +void ssd1306_send_command6(uint8_t command1, uint8_t command2, uint8_t command3, uint8_t command4, uint8_t command5, uint8_t command6) +{ + ssd1306_send_command_start(); + i2c_write(command1); + i2c_write(command2); + i2c_write(command3); + i2c_write(command4); + i2c_write(command5); + i2c_write(command6); + i2c_stop(); +} + +void ssd1306_send_command7(uint8_t command1, uint8_t command2, uint8_t command3, uint8_t command4, uint8_t command5, uint8_t command6, uint8_t command7) +{ + ssd1306_send_command_start(); + i2c_write(command1); + i2c_write(command2); + i2c_write(command3); + i2c_write(command4); + i2c_write(command5); + i2c_write(command6); + i2c_write(command7); + i2c_stop(); +} + +void ssd1306_begin_default(void) +{ + ssd1306_begin(sizeof(ssd1306_init_sequence), ssd1306_init_sequence); +} + +void ssd1306_begin(uint8_t init_sequence_length, const uint8_t init_sequence []) +{ + i2c_init(); + + ssd1306_send_command_start(); + for (uint8_t i = 0; i < init_sequence_length; i++) + { + ssd1306_send_command_byte(pgm_read_byte(&init_sequence[i])); + } + i2c_stop(); +} + +void ssd1306_setFont(const DCfont *font) +{ + oledFont = font; +} + +void ssd1306_setCursor(uint8_t x, uint8_t y) +{ + ssd1306_send_command3(renderingFrame | (y & 0x07), 0x10 | ((x & 0xf0) >> 4), x & 0x0f); + oledX = x; + oledY = y; +} + +void ssd1306_clear(void) +{ + ssd1306_fill(0x00); +} + +void ssd1306_fill(uint8_t fill) +{ + for (uint8_t m = 0; m < SSD1306_PAGES; m++) + { + ssd1306_setCursor(0, m); + ssd1306_fillToEOL(fill); + } + ssd1306_setCursor(0, 0); +} + +void ssd1306_newLine_height(uint8_t fontHeight) +{ + oledY+=fontHeight; + if (oledY > SSD1306_PAGES - fontHeight) + { + oledY = SSD1306_PAGES - fontHeight; + } + ssd1306_setCursor(0, oledY); +} + +void ssd1306_newLine(void) +{ + ssd1306_newLine_height(oledFont->height); +} + +uint8_t ssd1306_write(uint8_t c) +{ + if (!oledFont) + return 1; + + if (c == '\r') + return 1; + + uint8_t h = oledFont->height; + + if (c == '\n') + { + ssd1306_newLine_height(h); + return 1; + } + + uint8_t w = oledFont->width; + + if (oledX > ((uint8_t)128 - w)) + { + ssd1306_newLine_height(h); + } + + uint16_t offset = ((uint16_t)c - oledFont->first) * w * h; + uint8_t line = h; + do + { + ssd1306_send_data_start(); + for (uint8_t i = 0; i < w; i++) + { + ssd1306_send_data_byte(pgm_read_byte(&(oledFont->bitmap[offset++]))); + } + i2c_stop(); + if (h == 1) + { + oledX+=w; + } + else + { + if (line > 1) + { + ssd1306_setCursor(oledX, oledY + 1); + } + else + { + ssd1306_setCursor(oledX + w, oledY - (h - 1)); + } + } + } + while (--line); + return 1; +} + +void ssd1306_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint8_t bitmap[]) +{ + uint16_t j = 0; + for (uint8_t y = y0; y < y1; y++) + { + ssd1306_setCursor(x0,y); + ssd1306_send_data_start(); + for (uint8_t x = x0; x < x1; x++) + { + ssd1306_send_data_byte(pgm_read_byte(&bitmap[j++])); + } + i2c_stop(); + } + ssd1306_setCursor(0, 0); +} + +void ssd1306_clearToEOL(void) +{ + ssd1306_fillToEOL(0x00); +} + +void ssd1306_fillToEOL(uint8_t fill) +{ + ssd1306_fillLength(fill, 128 - oledX); +} + +void ssd1306_fillLength(uint8_t fill, uint8_t length) +{ + oledX += length; + ssd1306_send_data_start(); + do + { + ssd1306_send_data_byte(fill); + } + while (--length); + i2c_stop(); +} + +void ssd1306_startData(void) +{ + ssd1306_send_data_start(); +} + +void ssd1306_sendData(const uint8_t data) +{ + ssd1306_send_data_byte(data); +} + +void ssd1306_endData(void) +{ + i2c_stop(); +} + +// Double Buffering Commands + +void ssd1306_switchRenderFrame(void) +{ + renderingFrame ^= 0x04; +} + +void ssd1306_switchDisplayFrame(void) +{ + drawingFrame ^= 0x20; + ssd1306_send_command(drawingFrame); +} + +void ssd1306_switchFrame(void) +{ + ssd1306_switchDisplayFrame(); + ssd1306_switchRenderFrame(); +} + +uint8_t ssd1306_currentRenderFrame(void) +{ + return (renderingFrame >> 2) & 0x01; +} + +uint8_t ssd1306_currentDisplayFrame(void) +{ + return (drawingFrame >> 5) & 0x01; +} + +// 1. Fundamental Command Table + +void ssd1306_setContrast(uint8_t contrast) +{ + ssd1306_send_command2(0x81,contrast); +} + +void ssd1306_setEntireDisplayOn(bool enable) +{ + if (enable) + ssd1306_send_command(0xA5); + else + ssd1306_send_command(0xA4); +} + +void ssd1306_setInverse(bool enable) +{ + if (enable) + ssd1306_send_command(0xA7); + else + ssd1306_send_command(0xA6); +} + +void ssd1306_off(void) +{ + ssd1306_send_command(0xAE); +} + +void ssd1306_on(void) +{ + ssd1306_send_command(0xAF); +} + +// 2. Scrolling Command Table + +void ssd1306_scrollRight(uint8_t startPage, uint8_t interval, uint8_t endPage) +{ + ssd1306_send_command7(0x26, 0x00, startPage, interval, endPage, 0x00, 0xFF); +} + +void ssd1306_scrollLeft(uint8_t startPage, uint8_t interval, uint8_t endPage) +{ + ssd1306_send_command7(0x27, 0x00, startPage, interval, endPage, 0x00, 0xFF); +} + +void ssd1306_scrollRightOffset(uint8_t startPage, uint8_t interval, uint8_t endPage, uint8_t offset) +{ + ssd1306_send_command6(0x29, 0x00, startPage, interval, endPage, offset); +} + +void ssd1306_scrollLeftOffset(uint8_t startPage, uint8_t interval, uint8_t endPage, uint8_t offset) +{ + ssd1306_send_command6(0x2A, 0x00, startPage, interval, endPage, offset); +} + +void ssd1306_deactivateScroll(void) +{ + ssd1306_send_command(0x2E); +} + +void ssd1306_activateScroll(void) +{ + ssd1306_send_command(0x2F); +} + +void ssd1306_setVerticalScrollArea(uint8_t top, uint8_t rows) +{ + ssd1306_send_command3(0xA3, top, rows); +} + +// 3. Addressing Setting Command Table + +void ssd1306_setColumnStartAddress(uint8_t startAddress) +{ + ssd1306_send_command2(startAddress & 0x0F, startAddress >> 4); +} + +void ssd1306_setMemoryAddressingMode(uint8_t mode) +{ + ssd1306_send_command2(0x20, mode & 0x03); +} + +void ssd1306_setColumnAddress(uint8_t startAddress, uint8_t endAddress) +{ + ssd1306_send_command3(0x21, startAddress & 0x7F, endAddress & 0x7F); +} + +void ssd1306_setPageAddress(uint8_t startPage, uint8_t endPage) +{ + ssd1306_send_command3(0x22, startPage & 0x07, endPage & 0x07); +} + +void ssd1306_setPageStartAddress(uint8_t startPage) +{ + ssd1306_send_command(0xB0 | (startPage & 0x07)); +} + +// 4. Hardware Configuration (Panel resolution and layout related) Command Table + +void ssd1306_setDisplayStartLine(uint8_t startLine) +{ + ssd1306_send_command(0x40 | (startLine & 0x3F)); +} + +void ssd1306_setSegmentRemap(uint8_t remap) +{ + ssd1306_send_command(0xA0 | (remap & 0x01)); +} + +void ssd1306_setMultiplexRatio(uint8_t mux) +{ + ssd1306_send_command2(0xA8, (mux - 1) & 0x3F); +} + +void ssd1306_setComOutputDirection(uint8_t direction) +{ + ssd1306_send_command(0xC0 | ((direction & 0x01)<<3)); +} + +void ssd1306_setDisplayOffset(uint8_t offset) +{ + ssd1306_send_command2(0xD3, offset & 0x3F); +} + +void ssd1306_setComPinsHardwareConfiguration(uint8_t alternative, uint8_t enableLeftRightRemap) +{ + ssd1306_send_command2(0xDA, ((enableLeftRightRemap & 0x01) << 5) | ((alternative & 0x01) << 4) | 0x02 ); +} + +// 5. Timing and Driving Scheme Setting Command table + +void ssd1306_setDisplayClock(uint8_t divideRatio, uint8_t oscillatorFrequency) +{ + ssd1306_send_command2(0xD5, ((oscillatorFrequency & 0x0F) << 4) | ((divideRatio -1) & 0x0F)); +} + +void ssd1306_setPrechargePeriod(uint8_t phaseOnePeriod, uint8_t phaseTwoPeriod) +{ + ssd1306_send_command2(0xD9, ((phaseTwoPeriod & 0x0F) << 4) | (phaseOnePeriod & 0x0F)); +} + +void ssd1306_setVcomhDeselectLevel(uint8_t level) +{ + ssd1306_send_command2(0xDB, (level & 0x07) << 4); +} + +void ssd1306_nop(void) +{ + ssd1306_send_command(0xE3); +} + +// 6. Advance Graphic Command table + +void ssd1306_fadeOut(uint8_t interval) +{ + ssd1306_send_command2(0x23, (0x20 | (interval & 0x0F))); +} + +void ssd1306_blink(uint8_t interval) +{ + ssd1306_send_command2(0x23, (0x30 | (interval & 0x0F))); +} + +void ssd1306_disableFadeOutAndBlinking(void) +{ + ssd1306_send_command2(0x23, 0x00); +} + +void ssd1306_enableZoomIn(void) +{ + ssd1306_send_command2(0xD6, 0x01); +} + +void ssd1306_disableZoomIn(void) +{ + ssd1306_send_command2(0xD6, 0x00); +} + +// Charge Pump Settings + +void ssd1306_enableChargePump(void) +{ + ssd1306_send_command2(0x8D, 0x14); +} + +void ssd1306_disableChargePump(void) +{ + ssd1306_send_command2(0x8D, 0x10); +} diff --git a/module/src/lib/VeryTinySSD1306.h b/module/src/lib/VeryTinySSD1306.h new file mode 100644 index 0000000..0acfd26 --- /dev/null +++ b/module/src/lib/VeryTinySSD1306.h @@ -0,0 +1,113 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs + * + * Port of Stephen Denne's Tiny4kOLED to C, + * without the Arduino framework dependency but with + * a hardcoded dependency on VeryTinyI2C. + * + * Original: + * https://github.com/technoblogy/tiny-i2c +*/ +#ifndef __VeryTinySSD1306 +#define __VeryTinySSD1306 + +#include +#include + + +typedef struct { + uint8_t *bitmap; // character bitmaps data + uint8_t width; // character width in pixels + uint8_t height; // character height in pages (8 pixels) + uint8_t first, last; // ASCII extents +} DCfont; + + +#define SSD1306_DisplayWidth 128 +#define SSD1306_DisplayHeight 32 + +#ifndef SSD1306 +#define SSD1306 0x3C // Slave address +#endif + + +void ssd1306_begin_default(void); +void ssd1306_begin(uint8_t init_sequence_length, const uint8_t init_sequence []); +void ssd1306_switchRenderFrame(void); +void ssd1306_switchDisplayFrame(void); +void ssd1306_switchFrame(void); +uint8_t ssd1306_currentRenderFrame(void); +uint8_t ssd1306_currentDisplayFrame(void); +void ssd1306_setFont(const DCfont *font); +void ssd1306_setCursor(uint8_t x, uint8_t y); +void ssd1306_newLine(); +void ssd1306_fill(uint8_t fill); +void ssd1306_fillToEOL(uint8_t fill); +void ssd1306_fillLength(uint8_t fill, uint8_t length); +void ssd1306_clear(void); +void ssd1306_clearToEOL(void); +void ssd1306_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint8_t bitmap[]); +void ssd1306_startData(void); +void ssd1306_sendData(const uint8_t data); +void ssd1306_endData(void); + +// 1. Fundamental Command Table + +void ssd1306_setContrast(uint8_t contrast); +void ssd1306_setEntireDisplayOn(bool enable); +void ssd1306_setInverse(bool enable); +void ssd1306_off(void); +void ssd1306_on(void); + +// 2. Scrolling Command Table + +void ssd1306_scrollRight(uint8_t startPage, uint8_t interval, uint8_t endPage); +void ssd1306_scrollLeft(uint8_t startPage, uint8_t interval, uint8_t endPage); +void ssd1306_scrollRightOffset(uint8_t startPage, uint8_t interval, uint8_t endPage, uint8_t offset); +void ssd1306_scrollLeftOffset(uint8_t startPage, uint8_t interval, uint8_t endPage, uint8_t offset); +void ssd1306_deactivateScroll(void); +void ssd1306_activateScroll(void); +void ssd1306_setVerticalScrollArea(uint8_t top, uint8_t rows); + +// 3. Addressing Setting Command Table +void ssd1306_setColumnStartAddress(uint8_t startAddress); +void ssd1306_setMemoryAddressingMode(uint8_t mode); +void ssd1306_setColumnAddress(uint8_t startAddress, uint8_t endAddress); +void ssd1306_setPageAddress(uint8_t startPage, uint8_t endPage); +void ssd1306_setPageStartAddress(uint8_t startPage); + +// 4. Hardware Configuration (Panel resolution and layout related) Command Table + +void ssd1306_setDisplayStartLine(uint8_t startLine); +void ssd1306_setSegmentRemap(uint8_t remap); +void ssd1306_setMultiplexRatio(uint8_t mux); +void ssd1306_setComOutputDirection(uint8_t direction); +void ssd1306_setDisplayOffset(uint8_t offset); +void ssd1306_setComPinsHardwareConfiguration(uint8_t alternative, uint8_t enableLeftRightRemap); + +// 5. Timing and Driving Scheme Setting Command table + +void ssd1306_setDisplayClock(uint8_t divideRatio, uint8_t oscillatorFrequency); +void ssd1306_setPrechargePeriod(uint8_t phaseOnePeriod, uint8_t phaseTwoPeriod); +void ssd1306_setVcomhDeselectLevel(uint8_t level); +void ssd1306_nop(void); + +// 6. Advance Graphic Command table + +void ssd1306_fadeOut(uint8_t interval); +void ssd1306_blink(uint8_t interval); +void ssd1306_disableFadeOutAndBlinking(void); +void ssd1306_enableZoomIn(void); +void ssd1306_disableZoomIn(void); + +// Charge Pump Settings + +void ssd1306_enableChargePump(void); +void ssd1306_disableChargePump(void); + +uint8_t ssd1306_write(uint8_t c); + +#endif \ No newline at end of file diff --git a/module/src/main.c b/module/src/main.c new file mode 100644 index 0000000..cd8674c --- /dev/null +++ b/module/src/main.c @@ -0,0 +1,83 @@ +/* + * Stairs lighting + * Copyright 2017 (c) Mark van Renswoude + * + * https://git.x2software.net/pub/Stairs +*/ +#include +#include +#include +#include "lib/TinyMillis.h" +#include "lib/TinyUART.h" +#include "lib/TinyRS485.h" +#include "global.h" +#include "display.h" + +#define STEPS_DELAY_SHORT 200 +#define STEPS_DELAY 800 +#define STEPS_DELAY_LONG 2000 + + +uint8_t uartRead(void) +{ + return uart_getc(); +} + +uint8_t uartAvailable(void) +{ + return uart_available(); +} + +void uartWrite(uint8_t what) +{ + uart_putc(what); +} + + +typedef enum +{ + WaitingForComm, + Connected +} State; + + +State currentState = WaitingForComm; + + +int main(void) +{ + // Allow peripherals to start up before sending messages + _delay_ms(40); + + global_init(); + millis_init(); + sei(); + + uart_init(); + rs485_begin(uartRead, uartAvailable, uartWrite, 20); + + display_init(); + + for (;;) + { + if (rs485_update()) + { + // TODO get data + currentState = Connected; + } + + switch (currentState) + { + case WaitingForComm: + display_drawWait(); + break; + + case Connected: + display_drawIndex(); + break; + } + } + + + return 0; +} diff --git a/module/upload.bat b/module/upload.bat new file mode 100644 index 0000000..674ee83 --- /dev/null +++ b/module/upload.bat @@ -0,0 +1 @@ +@pio run -t program \ No newline at end of file