text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="7.2.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="mm" style="lines" multiple="1" display="no" altdistance="0.025" altunitdist="inch" altunit="mm"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="no" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="no" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="no" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="no" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="no" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="no" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="-2.54" y1="0" x2="62.41" y2="0" width="0" layer="20"/>
<wire x1="62.41" y1="0" x2="62.41" y2="49.52" width="0" layer="20"/>
<wire x1="62.41" y1="49.52" x2="-2.54" y2="49.52" width="0" layer="20"/>
<wire x1="-2.54" y1="49.52" x2="-2.54" y2="0" width="0" layer="20"/>
</plain>
<libraries>
<library name="diode">
<description>Diodes

Based on the following sources:

Motorola : www.onsemi.com

Fairchild : www.fairchildsemi.com

Philips : www.semiconductors.com

Vishay : www.vishay.de

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="D-2.5">
<description>DIODE</description>
<wire x1="0.508" y1="0.762" x2="-0.508" y2="0" width="0.1524" layer="21"/>
<wire x1="-0.508" y1="0" x2="0.508" y2="-0.762" width="0.1524" layer="21"/>
<wire x1="-0.508" y1="0.762" x2="-0.508" y2="0" width="0.1524" layer="21"/>
<wire x1="-0.508" y1="0" x2="-1.27" y2="0" width="0.1524" layer="51"/>
<wire x1="-0.508" y1="0" x2="-0.508" y2="-0.762" width="0.1524" layer="21"/>
<wire x1="1.27" y1="0" x2="0.508" y2="0" width="0.1524" layer="51"/>
<wire x1="0.508" y1="-0.762" x2="0.508" y2="0.762" width="0.1524" layer="21"/>
<pad name="A" x="1.27" y="0" drill="0.8128" shape="octagon"/>
<pad name="C" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
<text x="-1.651" y="1.143" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-1.651" y="-2.413" size="1.27" layer="27" ratio="10">>VALUE</text>
</package>
</packages>
</library>
<library name="led">
<description>LEDs

<author>Created by librarian@cadsoft.de</author>

Extended by Federico Battaglin <author>&lt;federico.rd@fdpinternational.com&gt;</author> with DUOLED</description>
<packages>
<package name="LED3MM">
<description>LED

3 mm, round</description>
<wire x1="1.5748" y1="-1.27" x2="1.5748" y2="1.27" width="0.254" layer="51"/>
<wire x1="-1.524" y1="0" x2="-1.1708" y2="0.9756" width="0.1524" layer="51" curve="-39.80361"/>
<wire x1="-1.524" y1="0" x2="-1.1391" y2="-1.0125" width="0.1524" layer="51" curve="41.633208"/>
<wire x1="1.1571" y1="0.9918" x2="1.524" y2="0" width="0.1524" layer="51" curve="-40.601165"/>
<wire x1="1.1708" y1="-0.9756" x2="1.524" y2="0" width="0.1524" layer="51" curve="39.80361"/>
<wire x1="0" y1="1.524" x2="1.2401" y2="0.8858" width="0.1524" layer="21" curve="-54.461337"/>
<wire x1="-1.2192" y1="0.9144" x2="0" y2="1.524" width="0.1524" layer="21" curve="-53.130102"/>
<wire x1="0" y1="-1.524" x2="1.203" y2="-0.9356" width="0.1524" layer="21" curve="52.126876"/>
<wire x1="-1.203" y1="-0.9356" x2="0" y2="-1.524" width="0.1524" layer="21" curve="52.126876"/>
<wire x1="-0.635" y1="0" x2="0" y2="0.635" width="0.1524" layer="51" curve="-90"/>
<wire x1="-1.016" y1="0" x2="0" y2="1.016" width="0.1524" layer="51" curve="-90"/>
<wire x1="0" y1="-0.635" x2="0.635" y2="0" width="0.1524" layer="51" curve="90"/>
<wire x1="0" y1="-1.016" x2="1.016" y2="0" width="0.1524" layer="51" curve="90"/>
<wire x1="0" y1="2.032" x2="1.561" y2="1.3009" width="0.254" layer="21" curve="-50.193108"/>
<wire x1="-1.7929" y1="0.9562" x2="0" y2="2.032" width="0.254" layer="21" curve="-61.926949"/>
<wire x1="0" y1="-2.032" x2="1.5512" y2="-1.3126" width="0.254" layer="21" curve="49.763022"/>
<wire x1="-1.7643" y1="-1.0082" x2="0" y2="-2.032" width="0.254" layer="21" curve="60.255215"/>
<wire x1="-2.032" y1="0" x2="-1.7891" y2="0.9634" width="0.254" layer="51" curve="-28.301701"/>
<wire x1="-2.032" y1="0" x2="-1.7306" y2="-1.065" width="0.254" layer="51" curve="31.60822"/>
<pad name="A" x="-1.27" y="0" drill="0.8128" shape="octagon"/>
<pad name="K" x="1.27" y="0" drill="0.8128" shape="octagon"/>
<text x="1.905" y="0.381" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="1.905" y="-1.651" size="1.27" layer="27" ratio="10">>VALUE</text>
</package>
</packages>
</library>
<library name="transistor">
<description>Transistors

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="TO5">
<description>TO 5</description>
<wire x1="-4.0386" y1="-3.5306" x2="-3.5052" y2="-2.9972" width="0.127" layer="21"/>
<wire x1="-2.9718" y1="-3.5306" x2="-3.5052" y2="-4.064" width="0.127" layer="21"/>
<wire x1="-3.5052" y1="-4.064" x2="-4.0386" y2="-3.5306" width="0.127" layer="21"/>
<circle x="0" y="0" radius="4.572" width="0.127" layer="21"/>
<circle x="0" y="0" radius="3.8608" width="0.0508" layer="21"/>
<pad name="1" x="0" y="-2.54" drill="0.8128" shape="octagon"/>
<pad name="2" x="2.54" y="0" drill="0.8128" shape="octagon"/>
<pad name="3" x="0" y="2.54" drill="0.8128" shape="octagon"/>
<text x="-2.54" y="5.08" size="1.27" layer="25" ratio="10">>NAME</text>
<text x="-3.175" y="-0.635" size="1.27" layer="27" ratio="10">>VALUE</text>
</package>
</packages>
</library>
<library name="SRD-05VDC-SL-C">
<packages>
<package name="SRD-05VDC-SL-C">
<wire x1="9.61" y1="7.38" x2="9.61" y2="-7.62" width="0.2032" layer="21"/>
<wire x1="9.61" y1="-7.62" x2="-8.89" y2="-7.62" width="0.2032" layer="21"/>
<wire x1="-8.89" y1="-7.62" x2="-8.89" y2="7.38" width="0.2032" layer="21"/>
<wire x1="-8.89" y1="7.38" x2="9.61" y2="7.38" width="0.2032" layer="21"/>
<pad name="SWCLOSED" x="6.61" y="-6.12" drill="0.9"/>
<pad name="COIL1" x="-5.39" y="5.88" drill="0.9"/>
<pad name="SWCOMMON" x="-7.39" y="-0.12" drill="0.9"/>
<pad name="SWOPEN" x="6.61" y="5.88" drill="0.9"/>
<pad name="COIL0" x="-5.39" y="-6.12" drill="0.9"/>
<text x="-1.27" y="1.27" size="0.6096" layer="25">>Name</text>
<text x="-1.27" y="-1.27" size="0.6096" layer="27">>Value</text>
</package>
</packages>
</library>
<library name="diy-modules">
<description>DIY Modules for Arduino, Raspberry Pi, CubieBoard etc.

The library contains a list of symbols and footprints for popular, cheap and easy-to-use electronic modules.

The modules are intend to work with microprocessor-based platforms such as Arduino, Raspberry Pi, CubieBoard, BeagleBone and many others. There are many manufacturers of the modules in the world. Almost all of them can be bought on ebay.com.

By using this library, you can design a PCB for devices created with usage of modules. Even if you do not need to create PCB design, you can also use the library to quickly document your work by drawing schematics of devices built by you.

The latest version, examples, photos and much more can be found at: diymodules.org/eagle

Comments, suggestions and bug reports please send to: eagle@diymodules.org

Version: 1.0.0 (2015-Feb-02)

Created by: Miroslaw Brudnowski

Released under the Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0

</description>
<packages>
<package name="WIRELESS-WIFI-ESP-01">
<description>Wireless Wi-Fi ESP-01 Module based on ESP8266 chip</description>
<wire x1="-12.7" y1="7.366" x2="6.35" y2="7.366" width="0.127" layer="21"/>
<wire x1="6.35" y1="7.366" x2="12.7" y2="7.366" width="0.127" layer="21"/>
<wire x1="12.7" y1="7.366" x2="12.7" y2="-7.366" width="0.127" layer="21"/>
<wire x1="12.7" y1="-7.366" x2="6.35" y2="-7.366" width="0.127" layer="21"/>
<wire x1="6.35" y1="-7.366" x2="-12.7" y2="-7.366" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-7.366" x2="-12.7" y2="-4.445" width="0.127" layer="21"/>
<pad name="A1" x="-8.89" y="3.81" drill="1" shape="square"/>
<pad name="B1" x="-8.89" y="1.27" drill="1"/>
<pad name="C1" x="-8.89" y="-1.27" drill="1"/>
<pad name="C2" x="-11.43" y="-1.27" drill="1"/>
<pad name="B2" x="-11.43" y="1.27" drill="1"/>
<pad name="A2" x="-11.43" y="3.81" drill="1"/>
<pad name="D2" x="-11.43" y="-3.81" drill="1"/>
<pad name="D1" x="-8.89" y="-3.81" drill="1" shape="square"/>
<wire x1="-12.7" y1="-4.445" x2="-12.7" y2="-3.175" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-3.175" x2="-12.7" y2="-1.905" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-1.905" x2="-12.7" y2="-0.635" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-0.635" x2="-12.7" y2="0.635" width="0.127" layer="21"/>
<wire x1="-12.7" y1="0.635" x2="-12.7" y2="1.905" width="0.127" layer="21"/>
<wire x1="-12.7" y1="1.905" x2="-12.7" y2="3.175" width="0.127" layer="21"/>
<wire x1="-12.7" y1="3.175" x2="-12.7" y2="4.445" width="0.127" layer="21"/>
<wire x1="-12.7" y1="4.445" x2="-12.7" y2="7.366" width="0.127" layer="21"/>
<wire x1="6.35" y1="7.366" x2="6.35" y2="-7.366" width="0.127" layer="21"/>
<text x="9.525" y="0" size="1.778" layer="21" rot="R90" align="center">ANTENNA</text>
<wire x1="-12.7" y1="4.445" x2="-12.065" y2="5.08" width="0.127" layer="21"/>
<wire x1="-12.065" y1="5.08" x2="-10.795" y2="5.08" width="0.127" layer="21"/>
<wire x1="-10.795" y1="5.08" x2="-10.16" y2="4.445" width="0.127" layer="21"/>
<wire x1="-10.16" y1="4.445" x2="-9.525" y2="5.08" width="0.127" layer="21"/>
<wire x1="-9.525" y1="5.08" x2="-8.255" y2="5.08" width="0.127" layer="21"/>
<wire x1="-8.255" y1="5.08" x2="-7.62" y2="4.445" width="0.127" layer="21"/>
<wire x1="-7.62" y1="4.445" x2="-7.62" y2="3.175" width="0.127" layer="21"/>
<wire x1="-7.62" y1="3.175" x2="-8.255" y2="2.54" width="0.127" layer="21"/>
<wire x1="-8.255" y1="2.54" x2="-7.62" y2="1.905" width="0.127" layer="21"/>
<wire x1="-7.62" y1="1.905" x2="-7.62" y2="0.635" width="0.127" layer="21"/>
<wire x1="-7.62" y1="0.635" x2="-8.255" y2="0" width="0.127" layer="21"/>
<wire x1="-8.255" y1="0" x2="-7.62" y2="-0.635" width="0.127" layer="21"/>
<wire x1="-7.62" y1="-0.635" x2="-7.62" y2="-1.905" width="0.127" layer="21"/>
<wire x1="-7.62" y1="-1.905" x2="-8.255" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-8.255" y1="-2.54" x2="-7.62" y2="-3.175" width="0.127" layer="21"/>
<wire x1="-7.62" y1="-3.175" x2="-7.62" y2="-4.445" width="0.127" layer="21"/>
<wire x1="-7.62" y1="-4.445" x2="-8.255" y2="-5.08" width="0.127" layer="21"/>
<wire x1="-8.255" y1="-5.08" x2="-9.525" y2="-5.08" width="0.127" layer="21"/>
<wire x1="-9.525" y1="-5.08" x2="-10.16" y2="-4.445" width="0.127" layer="21"/>
<wire x1="-10.16" y1="-4.445" x2="-10.795" y2="-5.08" width="0.127" layer="21"/>
<wire x1="-10.795" y1="-5.08" x2="-12.065" y2="-5.08" width="0.127" layer="21"/>
<wire x1="-12.065" y1="-5.08" x2="-12.7" y2="-4.445" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-3.175" x2="-12.065" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-12.065" y1="-2.54" x2="-12.7" y2="-1.905" width="0.127" layer="21"/>
<wire x1="-12.7" y1="-0.635" x2="-12.065" y2="0" width="0.127" layer="21"/>
<wire x1="-12.065" y1="0" x2="-12.7" y2="0.635" width="0.127" layer="21"/>
<wire x1="-12.7" y1="1.905" x2="-12.065" y2="2.54" width="0.127" layer="21"/>
<wire x1="-12.065" y1="2.54" x2="-12.7" y2="3.175" width="0.127" layer="21"/>
<text x="0" y="8.255" size="1.27" layer="25" align="bottom-center">>NAME</text>
<text x="0" y="-8.255" size="1.27" layer="27" align="top-center">>VALUE</text>
</package>
</packages>
</library>
<library name="SparkFun-PowerIC">
<description>
SparkFun Electronics' preferred foot prints

In this library you'll find drivers, regulators, and amplifiers.

We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com.

Licensing: Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/

You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage.</description>
<packages>
<package name="78XXL">
<description>VOLTAGE REGULATOR</description>
<wire x1="-5.207" y1="-1.27" x2="5.207" y2="-1.27" width="0.1524" layer="21"/>
<wire x1="5.207" y1="14.605" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="5.207" y1="-1.27" x2="5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="5.207" y1="11.176" x2="4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="4.318" y1="11.176" x2="4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="4.318" y1="12.7" x2="5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="5.207" y1="12.7" x2="5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="-1.27" x2="-5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="11.176" x2="-4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="11.176" x2="-4.318" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="12.7" x2="-5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="12.7" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<circle x="0" y="11.176" radius="1.8034" width="0.1524" layer="21"/>
<circle x="0" y="11.176" radius="4.191" width="0" layer="42"/>
<circle x="0" y="11.176" radius="4.191" width="0" layer="43"/>
<pad name="IN" x="-2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="GND" x="0" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<pad name="OUT" x="2.54" y="-3.81" drill="1.016" shape="long" rot="R90"/>
<text x="-3.81" y="5.08" size="1.778" layer="25" ratio="10">>NAME</text>
<text x="-3.937" y="2.54" size="1.778" layer="27" ratio="10">>VALUE</text>
<text x="-4.445" y="7.874" size="0.9906" layer="21" ratio="10">A15,2mm</text>
<text x="-0.508" y="0" size="1.27" layer="51" ratio="10">-</text>
<text x="-3.048" y="0" size="1.27" layer="51" ratio="10">I</text>
<text x="2.032" y="0" size="1.27" layer="51" ratio="10">O</text>
<rectangle x1="1.905" y1="-2.159" x2="3.175" y2="-1.27" layer="21"/>
<rectangle x1="1.905" y1="-3.81" x2="3.175" y2="-2.159" layer="51"/>
<rectangle x1="-0.635" y1="-2.159" x2="0.635" y2="-1.27" layer="21"/>
<rectangle x1="-3.175" y1="-2.159" x2="-1.905" y2="-1.27" layer="21"/>
<rectangle x1="-0.635" y1="-3.81" x2="0.635" y2="-2.159" layer="51"/>
<rectangle x1="-3.175" y1="-3.81" x2="-1.905" y2="-2.159" layer="51"/>
<hole x="0" y="11.176" drill="3.302"/>
</package>
</packages>
</library>
<library name="con-wago-508">
<description>Wago Screw Clamps

Grid 5.08 mm

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="W232-3">
<description>WAGO SREW CLAMP</description>
<wire x1="8.128" y1="-3.683" x2="-8.128" y2="-3.683" width="0.1524" layer="21"/>
<wire x1="-8.128" y1="-3.683" x2="-8.128" y2="1.651" width="0.1524" layer="21"/>
<wire x1="-8.128" y1="1.651" x2="-7.62" y2="1.651" width="0.1524" layer="21"/>
<wire x1="-7.62" y1="1.651" x2="-7.62" y2="2.032" width="0.1524" layer="21"/>
<wire x1="8.128" y1="-3.683" x2="8.128" y2="-1.143" width="0.1524" layer="21"/>
<wire x1="8.128" y1="1.524" x2="7.62" y2="1.524" width="0.1524" layer="21"/>
<wire x1="7.62" y1="1.524" x2="7.62" y2="2.032" width="0.1524" layer="21"/>
<wire x1="2.286" y1="1.524" x2="2.794" y2="1.524" width="0.1524" layer="21"/>
<wire x1="2.794" y1="1.524" x2="2.794" y2="2.032" width="0.1524" layer="21"/>
<wire x1="2.794" y1="2.032" x2="3.556" y2="2.032" width="0.1524" layer="21"/>
<wire x1="2.286" y1="1.524" x2="2.286" y2="2.032" width="0.1524" layer="21"/>
<wire x1="2.286" y1="2.032" x2="1.524" y2="2.032" width="0.1524" layer="21"/>
<wire x1="8.128" y1="-0.127" x2="7.239" y2="-0.127" width="0.1524" layer="21"/>
<wire x1="8.128" y1="-0.127" x2="8.128" y2="1.524" width="0.1524" layer="21"/>
<wire x1="7.239" y1="-0.127" x2="7.239" y2="-1.143" width="0.1524" layer="21"/>
<wire x1="7.239" y1="-1.143" x2="8.128" y2="-1.143" width="0.1524" layer="21"/>
<wire x1="8.89" y1="-4.445" x2="8.89" y2="3.175" width="0.1524" layer="21"/>
<wire x1="8.89" y1="-4.445" x2="-8.89" y2="-4.445" width="0.1524" layer="21"/>
<wire x1="-8.89" y1="3.175" x2="-8.89" y2="-4.445" width="0.1524" layer="21"/>
<wire x1="-8.89" y1="3.175" x2="8.89" y2="3.175" width="0.1524" layer="21"/>
<wire x1="6.604" y1="2.032" x2="7.62" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-7.62" y1="2.032" x2="-6.604" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-2.794" y1="1.524" x2="-2.794" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-2.794" y1="1.524" x2="-2.286" y2="1.524" width="0.1524" layer="21"/>
<wire x1="-2.286" y1="1.524" x2="-2.286" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-2.286" y1="2.032" x2="-1.524" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-2.794" y1="2.032" x2="-3.556" y2="2.032" width="0.1524" layer="21"/>
<wire x1="-1.524" y1="2.032" x2="1.5149" y2="2.04" width="0.1524" layer="21" curve="-82.545944"/>
<wire x1="3.556" y1="2.032" x2="6.5948" y2="2.0399" width="0.1524" layer="21" curve="-82.545715"/>
<wire x1="-6.604" y1="2.032" x2="-3.5649" y2="2.0402" width="0.1524" layer="21" curve="-82.546401"/>
<pad name="1" x="-5.08" y="-0.635" drill="1.3208" shape="long" rot="R90"/>
<pad name="2" x="0" y="-0.635" drill="1.3208" shape="long" rot="R90"/>
<pad name="3" x="5.08" y="-0.635" drill="1.3208" shape="long" rot="R90"/>
<text x="-7.62" y="-3.175" size="1.27" layer="21" ratio="10">1</text>
<text x="-2.54" y="-3.175" size="1.27" layer="21" ratio="10">2</text>
<text x="2.54" y="-3.175" size="1.27" layer="21" ratio="10">3</text>
<text x="-2.54" y="3.556" size="1.27" layer="27" ratio="10">>VALUE</text>
<text x="-8.89" y="3.556" size="1.27" layer="25" ratio="10">>NAME</text>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="default">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewÃ¤hlt, dass sie fÃ¼r
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">EAGLE Design Rules

The default Design Rules have been set to cover
a wide range of applications. Your particular design
may have different requirements, so please make the
necessary adjustments and save your customized
design rules under a new name.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm 0.035mm"/>
<param name="mtIsolate" value="1.5mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm 0.15mm 0.2mm"/>
<param name="mdWireWire" value="8mil"/>
<param name="mdWirePad" value="8mil"/>
<param name="mdWireVia" value="8mil"/>
<param name="mdPadPad" value="8mil"/>
<param name="mdPadVia" value="8mil"/>
<param name="mdViaVia" value="8mil"/>
<param name="mdSmdPad" value="8mil"/>
<param name="mdSmdVia" value="8mil"/>
<param name="mdSmdSmd" value="8mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="40mil"/>
<param name="mdDrill" value="8mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="10mil"/>
<param name="msDrill" value="24mil"/>
<param name="msMicroVia" value="9.99mm"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="10mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="10mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="10mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="8mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="8mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="4mil"/>
<param name="mlMaxStopFrame" value="4mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkGrid" value="0"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="12.5mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="2"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="0"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="D1" library="diode" package="D-2.5" value="" x="1" y="33" rot="R268.7"/>
<element name="LED1" library="led" package="LED3MM" value="" x="53.31" y="15.78" rot="R90"/>
<element name="T1" library="transistor" package="TO5" value="2N1613" x="36.8" y="22.86" rot="R270"/>
<element name="U$1" library="SRD-05VDC-SL-C" package="SRD-05VDC-SL-C" value="RELAYPTH" x="30" y="36"/>
<element name="U$3" library="diy-modules" package="WIRELESS-WIFI-ESP-01" value="WIRELESS-WIFI-ESP-01" x="37.99" y="10.16"/>
<element name="U$4" library="SparkFun-PowerIC" package="78XXL" value="V_REG_LD1117VXX" x="14" y="8" rot="R180"/>
<element name="X1" library="con-wago-508" package="W232-3" value="" x="2.54" y="17.78" locked="yes" rot="R90">
<attribute name="OC_NEWARK" value="unknown" x="2.54" y="17.78" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="MPN" value="" x="2.54" y="17.78" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="MF" value="" x="2.54" y="17.78" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="2.54" y="17.78" size="1.778" layer="27" rot="R90" display="off"/>
</element>
<element name="X2" library="con-wago-508" package="W232-3" value="" x="53.58" y="35.56" rot="R270">
<attribute name="OC_NEWARK" value="unknown" x="53.58" y="35.56" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="MPN" value="" x="53.58" y="35.56" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="MF" value="" x="53.58" y="35.56" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="OC_FARNELL" value="unknown" x="53.58" y="35.56" size="1.778" layer="27" rot="R270" display="off"/>
</element>
</elements>
<signals>
<signal name="N$2">
<contactref element="U$3" pad="B1"/>
<contactref element="LED1" pad="A"/>
<wire x1="29.1" y1="11.43" x2="53.31" y2="11.43" width="1.27" layer="16"/>
<wire x1="53.31" y1="11.43" x2="53.31" y2="14.51" width="1.27" layer="16"/>
</signal>
<signal name="N$8">
<contactref element="U$1" pad="COIL1"/>
<contactref element="T1" pad="1"/>
<contactref element="D1" pad="C"/>
<wire x1="34.26" y1="22.86" x2="34.26" y2="25.4" width="1.27" layer="16"/>
<wire x1="34.26" y1="25.4" x2="59.93" y2="25.4" width="1.27" layer="16"/>
<wire x1="59.93" y1="25.4" x2="59.93" y2="45.72" width="1.27" layer="16"/>
<wire x1="59.93" y1="45.72" x2="1.5088125" y2="45.72" width="1.27" layer="16"/>
<wire x1="1.5088125" y1="45.72" x2="1.0288125" y2="34.269671875" width="1.27" layer="16"/>
<wire x1="24.61" y1="41.88" x2="8.83" y2="42.44" width="1.27" layer="16"/>
<wire x1="8.83" y1="42.44" x2="8.83" y2="34.29" width="1.27" layer="16"/>
<wire x1="8.83" y1="34.29" x2="5.5088125" y2="34.29" width="1.27" layer="16"/>
<wire x1="5.5088125" y1="34.29" x2="1.0288125" y2="34.269671875" width="1.27" layer="16"/>
</signal>
<signal name="N$5">
<contactref element="LED1" pad="K"/>
<contactref element="T1" pad="2"/>
<wire x1="36.8" y1="20.32" x2="36.83" y2="20.32" width="1.27" layer="16"/>
<wire x1="36.83" y1="20.32" x2="53.31" y2="20.32" width="1.27" layer="16"/>
<wire x1="53.31" y1="20.32" x2="53.31" y2="17.05" width="1.27" layer="16"/>
<via x="36.83" y="20.32" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$7">
<contactref element="U$1" pad="SWCLOSED"/>
<contactref element="X2" pad="3"/>
<wire x1="36.61" y1="29.88" x2="40.945" y2="30.44" width="1.27" layer="16"/>
<wire x1="40.945" y1="30.44" x2="52.945" y2="30.48" width="1.27" layer="16"/>
</signal>
<signal name="N$9">
<contactref element="U$1" pad="SWCOMMON"/>
<contactref element="X2" pad="2"/>
<wire x1="22.61" y1="35.88" x2="22.945" y2="35.44" width="1.27" layer="16"/>
<wire x1="22.945" y1="35.44" x2="52.945" y2="35.56" width="1.27" layer="16"/>
</signal>
<signal name="N$10">
<contactref element="U$1" pad="SWOPEN"/>
<contactref element="X2" pad="1"/>
<wire x1="36.61" y1="41.88" x2="41.42" y2="42.44" width="1.27" layer="16"/>
<wire x1="41.42" y1="42.44" x2="41.42" y2="40.64" width="1.27" layer="16"/>
<wire x1="41.42" y1="40.64" x2="52.945" y2="40.64" width="1.27" layer="16"/>
</signal>
<signal name="N$1">
<contactref element="U$3" pad="D2"/>
<contactref element="T1" pad="3"/>
<contactref element="U$3" pad="B2"/>
<contactref element="U$4" pad="GND"/>
<wire x1="14" y1="11.81" x2="13.51" y2="6.35" width="1.27" layer="16"/>
<wire x1="13.51" y1="6.35" x2="22.75" y2="6.35" width="1.27" layer="16"/>
<wire x1="26.56" y1="6.35" x2="22.75" y2="6.35" width="1.27" layer="16"/>
<wire x1="22.75" y1="6.35" x2="22.75" y2="11.43" width="1.27" layer="16"/>
<wire x1="26.56" y1="11.43" x2="22.75" y2="11.43" width="1.27" layer="16"/>
<wire x1="22.75" y1="6.35" x2="22.75" y2="1.27" width="1.27" layer="16"/>
<wire x1="22.75" y1="1.27" x2="56.85" y2="1.27" width="1.27" layer="16"/>
<wire x1="72.39" y1="1.27" x2="56.85" y2="1.27" width="0" layer="19" extent="1-16"/>
<wire x1="56.85" y1="1.27" x2="56.85" y2="22.86" width="1.27" layer="16"/>
<wire x1="56.85" y1="22.86" x2="39.37" y2="22.86" width="1.27" layer="16"/>
<wire x1="39.37" y1="22.86" x2="39.34" y2="22.86" width="1.27" layer="16"/>
<via x="39.37" y="22.86" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$4">
<contactref element="X1" pad="1"/>
<contactref element="U$4" pad="OUT"/>
<wire x1="3.175" y1="12.7" x2="11.46" y2="11.81" width="1.27" layer="16"/>
</signal>
<signal name="GND">
<contactref element="X1" pad="3"/>
<contactref element="U$4" pad="IN"/>
<contactref element="U$1" pad="COIL0"/>
<contactref element="D1" pad="A"/>
<contactref element="U$3" pad="A1"/>
<wire x1="16.54" y1="11.81" x2="21.59" y2="12.7" width="1.016" layer="16"/>
<wire x1="21.59" y1="12.7" x2="21.59" y2="18.78" width="1.27" layer="16"/>
<wire x1="21.59" y1="18.78" x2="29.1" y2="18.78" width="1.27" layer="16"/>
<wire x1="29.1" y1="18.78" x2="29.1" y2="13.97" width="1.27" layer="16"/>
<wire x1="3.175" y1="22.86" x2="16.05" y2="22.86" width="1.27" layer="16"/>
<wire x1="16.05" y1="22.86" x2="16.54" y2="11.81" width="1.27" layer="16"/>
<wire x1="29.1" y1="18.78" x2="30.37" y2="18.78" width="0" layer="19" extent="1-16"/>
<wire x1="21.59" y1="25.400325" x2="24.68" y2="31.750325" width="1.016" layer="16"/>
<wire x1="24.68" y1="31.750325" x2="24.61" y2="29.88" width="1.27" layer="16"/>
<wire x1="21.59" y1="25.400325" x2="21.59" y2="18.78" width="1.27" layer="16"/>
<wire x1="21.59" y1="25.400325" x2="19.05" y2="25.400325" width="1.016" layer="16"/>
<wire x1="19.05" y1="25.400325" x2="19.05" y2="30.48" width="1.016" layer="16"/>
<wire x1="19.05" y1="30.48" x2="1.27" y2="30.48" width="1.016" layer="16"/>
<wire x1="1.27" y1="30.48" x2="0.971184375" y2="30.48" width="1.016" layer="16"/>
<wire x1="0.971184375" y1="30.48" x2="0.971184375" y2="31.730325" width="1.016" layer="16"/>
<via x="1.27" y="30.48" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$3">
<via x="1.27" y="34.29" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$6">
<via x="24.13" y="41.91" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$11">
<via x="22.86" y="35.56" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$12">
<via x="24.13" y="30.48" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$13">
<via x="36.83" y="30.48" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$14">
<via x="36.83" y="41.91" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$15">
<via x="53.34" y="40.64" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$16">
<via x="53.34" y="35.56" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$17">
<via x="53.34" y="30.48" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$18">
<via x="53.34" y="17.78" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$19">
<via x="53.34" y="13.97" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$20">
<via x="29.21" y="13.97" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$21">
<via x="26.67" y="11.43" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$22">
<via x="26.67" y="6.35" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$23">
<via x="16.51" y="11.43" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$24">
<via x="13.97" y="11.43" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$25">
<via x="11.43" y="11.43" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$26">
<via x="2.54" y="12.7" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$27">
<via x="2.54" y="17.78" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$28">
<via x="2.54" y="22.86" extent="1-16" drill="1" diameter="2.54"/>
</signal>
<signal name="N$29">
<via x="34.29" y="22.86" extent="1-16" drill="1" diameter="2.54"/>
</signal>
</signals>
</board>
</drawing>
</eagle>

license: MIT

path: /Low voltage/Relay.brd


text:
package aws

import (
	"fmt"
	"github.com/SebastienDorgan/anyclouds/api"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/service/ec2"
)

type NetworkInterfaceManager struct {
	Provider *Provider
}

func (mgr *NetworkInterfaceManager) convert(ni *ec2.NetworkInterface) *api.NetworkInterface {
	srvID := ""
	if ni.Attachment != nil {
		srvID = *ni.Attachment.InstanceId
	}
	ipAddr := ""
	if ni.PrivateIpAddress != nil {
		ipAddr = *ni.PrivateIpAddress
	}
	publicIP := ""
	if ni.Association != nil {
		publicIP = *ni.Association.PublicIp
	}
	return &api.NetworkInterface{
		ID:               *ni.NetworkInterfaceId,
		Name:             *ni.Description,
		MacAddress:       *ni.MacAddress,
		NetworkID:        *ni.VpcId,
		SubnetID:         *ni.SubnetId,
		ServerID:         srvID,
		PrivateIPAddress: ipAddr,
		PublicIPAddress:  publicIP,
		SecurityGroupID:  *ni.Groups[0].GroupId,
	}
}

func (mgr *NetworkInterfaceManager) create(options api.CreateNetworkInterfaceOptions) (*api.NetworkInterface, error) {
	out, err := mgr.Provider.AWSServices.EC2Client.CreateNetworkInterface(&ec2.CreateNetworkInterfaceInput{
		Description:      &options.Name,
		Groups:           []*string{&options.SecurityGroupID},
		PrivateIpAddress: options.PrivateIPAddress,
		SubnetId:         &options.SubnetID,
	})
	if err != nil {
		return nil, err
	}
	if options.ServerID == nil {
		err = mgr.Provider.AWSServices.EC2Client.WaitUntilNetworkInterfaceAvailable(&ec2.DescribeNetworkInterfacesInput{
			NetworkInterfaceIds: []*string{out.NetworkInterface.NetworkInterfaceId},
		})
		if err != nil {
			if out.NetworkInterface != nil {
				err2 := mgr.Delete(*out.NetworkInterface.NetworkInterfaceId)
				err = api.NewErrorStackFromError(err, err2)
			}
			return nil, err
		}
		return mgr.Get(*out.NetworkInterface.NetworkInterfaceId)
	}
	att, err := mgr.Provider.AWSServices.EC2Client.AttachNetworkInterface(&ec2.AttachNetworkInterfaceInput{
		InstanceId:         options.ServerID,
		NetworkInterfaceId: out.NetworkInterface.NetworkInterfaceId,
	})
	if err != nil {
		_, err2 := mgr.Provider.AWSServices.EC2Client.DeleteNetworkInterface(&ec2.DeleteNetworkInterfaceInput{
			NetworkInterfaceId: out.NetworkInterface.NetworkInterfaceId,
		})
		return nil, api.NewErrorStackFromError(err, err2)
	}
	err = mgr.Provider.AWSServices.EC2Client.WaitUntilNetworkInterfaceAvailable(&ec2.DescribeNetworkInterfacesInput{
		NetworkInterfaceIds: []*string{out.NetworkInterface.NetworkInterfaceId},
	})
	if err != nil {
		_, err2 := mgr.Provider.AWSServices.EC2Client.DetachNetworkInterface(&ec2.DetachNetworkInterfaceInput{
			AttachmentId: att.AttachmentId,
			Force:        aws.Bool(true),
		})
		err = api.NewErrorStackFromError(err, err2)
		_, err2 = mgr.Provider.AWSServices.EC2Client.DeleteNetworkInterface(&ec2.DeleteNetworkInterfaceInput{
			NetworkInterfaceId: out.NetworkInterface.NetworkInterfaceId,
		})
		return nil, api.NewErrorStackFromError(err, err2)
	}
	return mgr.Get(*out.NetworkInterface.NetworkInterfaceId)
}

func (mgr *NetworkInterfaceManager) Create(options api.CreateNetworkInterfaceOptions) (*api.NetworkInterface, api.CreateNetworkInterfaceError) {
	ni, err := mgr.create(options)
	return ni, api.NewCreateNetworkInterfaceError(err, options)
}

func (mgr *NetworkInterfaceManager) delete(id string) error {
	out, err := mgr.Provider.AWSServices.EC2Client.DescribeNetworkInterfaces(&ec2.DescribeNetworkInterfacesInput{
		NetworkInterfaceIds: []*string{&id},
	})
	if err != nil {
		return err
	}
	if out.NetworkInterfaces == nil {
		return fmt.Errorf("network interface %s not found", id)
	}
	ni := out.NetworkInterfaces[0]
	var err2 error
	if ni.Attachment != nil && ni.Attachment.AttachmentId != nil {
		_, err2 = mgr.Provider.AWSServices.EC2Client.DetachNetworkInterface(&ec2.DetachNetworkInterfaceInput{
			AttachmentId: ni.Attachment.AttachmentId,
			Force:        aws.Bool(true),
		})
	}

	_, err = mgr.Provider.AWSServices.EC2Client.DeleteNetworkInterface(&ec2.DeleteNetworkInterfaceInput{
		NetworkInterfaceId: ni.NetworkInterfaceId,
	})
	//if detach fails but delete succeeds then no error is raised
	if err != nil {
		err = api.NewErrorStackFromError(err, err2)
	}
	return nil
}

func (mgr *NetworkInterfaceManager) Delete(id string) api.DeleteNetworkInterfaceError {
	return api.NewDeleteNetworkInterfaceError(mgr.delete(id), id)
}

func (mgr *NetworkInterfaceManager) get(id string) (*api.NetworkInterface, error) {
	out, err := mgr.Provider.AWSServices.EC2Client.DescribeNetworkInterfaces(&ec2.DescribeNetworkInterfacesInput{
		NetworkInterfaceIds: []*string{&id},
	})
	if err != nil {
		return nil, err
	}
	return mgr.convert(out.NetworkInterfaces[0]), nil
}

func (mgr *NetworkInterfaceManager) Get(id string) (*api.NetworkInterface, api.GetNetworkInterfaceError) {
	ni, err := mgr.get(id)
	return ni, api.NewGetNetworkInterfaceError(err, id)
}

func createFilters(options *api.ListNetworkInterfacesOptions) []*ec2.Filter {
	if options == nil {
		return nil
	}
	var filters []*ec2.Filter
	if options.NetworkID != nil {
		filters = append(filters, &ec2.Filter{
			Name:   aws.String("vpc-id"),
			Values: []*string{options.NetworkID},
		})
	}
	if options.ServerID != nil {
		filters = append(filters, &ec2.Filter{
			Name:   aws.String("attachment.instance-id"),
			Values: []*string{options.ServerID},
		})
	}
	if options.SubnetID != nil {
		filters = append(filters, &ec2.Filter{
			Name:   aws.String("subnet-id"),
			Values: []*string{options.SubnetID},
		})
	}
	if options.PrivateIPAddress != nil {
		filters = append(filters, &ec2.Filter{
			Name:   aws.String("private-ip-address"),
			Values: []*string{options.PrivateIPAddress},
		})
	}
	if options.SecurityGroupID != nil {
		filters = append(filters, &ec2.Filter{
			Name:   aws.String("group-id"),
			Values: []*string{options.SecurityGroupID},
		})
	}
	//
	return filters
}

func (mgr *NetworkInterfaceManager) list(options *api.ListNetworkInterfacesOptions) ([]api.NetworkInterface, error) {
	out, err := mgr.Provider.AWSServices.EC2Client.DescribeNetworkInterfaces(&ec2.DescribeNetworkInterfacesInput{
		Filters: createFilters(options),
	})
	if err != nil {
		return nil, err
	}
	var list []api.NetworkInterface
	for _, ni := range out.NetworkInterfaces {
		list = append(list, *mgr.convert(ni))
	}
	return list, nil
}

func (mgr *NetworkInterfaceManager) List(options *api.ListNetworkInterfacesOptions) ([]api.NetworkInterface, api.ListNetworkInterfacesError) {
	nis, err := mgr.list(options)
	return nis, api.NewListNetworkInterfacesError(err, options)
}

func (mgr *NetworkInterfaceManager) update(options api.UpdateNetworkInterfaceOptions) (*api.NetworkInterface, error) {
	if options.ServerID != nil {
		out, err := mgr.Provider.AWSServices.EC2Client.DescribeNetworkInterfaces(&ec2.DescribeNetworkInterfacesInput{
			NetworkInterfaceIds: []*string{&options.ID},
		})
		if err != nil {
			return nil, err
		}
		if out.NetworkInterfaces != nil {
			return nil, fmt.Errorf("network interface %s not found", options.ID)
		}
		ni := out.NetworkInterfaces[0]
		if ni.Attachment != nil && ni.Attachment.AttachmentId != nil {
			_, err = mgr.Provider.AWSServices.EC2Client.DetachNetworkInterface(&ec2.DetachNetworkInterfaceInput{
				AttachmentId: ni.Attachment.AttachmentId,
				Force:        aws.Bool(true),
			})
			if err != nil {
				return nil, err
			}
		}
		_, err = mgr.Provider.AWSServices.EC2Client.AttachNetworkInterface(&ec2.AttachNetworkInterfaceInput{
			InstanceId:         options.ServerID,
			NetworkInterfaceId: ni.NetworkInterfaceId,
		})
		if err != nil {
			return nil, err
		}
		err = mgr.Provider.AWSServices.EC2Client.WaitUntilNetworkInterfaceAvailable(&ec2.DescribeNetworkInterfacesInput{
			NetworkInterfaceIds: []*string{&options.ID},
		})
		return nil, err
	}
	if options.SecurityGroupID != nil {
		_, err := mgr.Provider.AWSServices.EC2Client.ModifyNetworkInterfaceAttribute(&ec2.ModifyNetworkInterfaceAttributeInput{
			Groups:             []*string{options.SecurityGroupID},
			NetworkInterfaceId: aws.String(options.ID),
		})
		if err != nil {
			return nil, err
		}
		err = mgr.Provider.AWSServices.EC2Client.WaitUntilNetworkInterfaceAvailable(&ec2.DescribeNetworkInterfacesInput{
			NetworkInterfaceIds: []*string{&options.ID},
		})
		return nil, err
	}
	return mgr.Get(options.ID)
}

func (mgr *NetworkInterfaceManager) Update(options api.UpdateNetworkInterfaceOptions) (*api.NetworkInterface, api.UpdateNetworkInterfaceError) {
	ni, err := mgr.update(options)
	return ni, api.NewUpdateNetworkInterfaceError(err, options)
}

repository: SebastienDorgan/anyclouds

license_type: permissive

repo_name: SebastienDorgan/anyclouds

branch_name: refs/heads/master

extension: go


text:
SUMMARY = "Config file reading, writing and validation."
SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3d6f99b84d9a94610c62e48fa2e59e72"

PYPI_PACKAGE = "configobj"
SRC_URI[sha256sum] = "6f704434a07dc4f4dc7c9a745172c1cad449feb548febd9f7fe362629c627a97"

inherit pypi setuptools3

RDEPENDS:${PN} += " \
    python3-pprint \
    python3-six \
"

repository: openembedded/meta-openembedded

repo_name: openembedded/meta-openembedded

gha_license_id: MIT

gha_language: BitBake

extension: bb


text:
require xorg-lib-common.inc

DESCRIPTION = "X Resize and Rotate extension library."
LICENSE = "BSD-X"

DEPENDS += " virtual/libx11 randrproto libxext xextproto libxrender renderproto"

XORG_PN = "libXrandr"


text:
SUMMARY = "A small image just capable of allowing a device to boot."

IMAGE_INSTALL = " packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}"

IMAGE_LINGUAS = " "

LICENSE = "MIT"

inherit core-image

IMAGE_ROOTFS_SIZE ?= "8192"
IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}"

IMAGE_INSTALL += " \
        kernel-modules \
	openssh \
	linux-firmware-rpidistro-bcm43430 \
	wpa-supplicant \
	psmisc \
	util-linux \
	coreutils \
	binutils \
	gcc \
	gdb \
	autoconf \
	automake \
	lsof \
	net-tools \
	glibc-binaries \
	vim \
	git \
	kmod \
	procps \
	usbutils \
	pciutils \
	iw \
	python-setuptools \
	dnf \
        "
# We shouldn't not placed IMAGE_FEATURE and DISTRO_FEATURE in this file, those should be in conf/local.conf
# LICENSE_FLAGS_WHITELIST="commercial"
# VIDEO_CAMERA = "1"
# GPU_MEM_512 = "1"
# ENABLE_UART = "1"
# BB_NUMBER_THREADS = "20"
# IMAGE_FEATURES_append = " package-management ssh-server-openssh"

repository: DengkeDu/meta-dengke

repo_name: DengkeDu/meta-dengke


text:
package z1err

import "github.com/myzero1/goutil/z1log"

// ChkErr check err
func ChkErr(err error, opts ...string) bool {
	var ret bool
	if err != nil {
		msgPre := ""
		if len(opts) > 0 {
			msgPre = opts[0]
		}
		// _, file, line, _ := runtime.Caller(1)
		// fmt.Println("z1checkErr[", msgPre, "]", err, "(", line, file, ")")
		z1log.SetCallerSkip(2)
		z1log.Errorf("ChkErr[%s] (%v)", msgPre, err)

		if len(opts) > 1 && opts[1] == "panic" {
			panic(err)
		}

		ret = true
	} else {
		ret = false
	}

	return ret
}