text:
2" layer="21"/>
<wire x1="1.5" y1="2.1" x2="1.3" y2="2.1" width="0.2032" layer="21"/>
<wire x1="1.5" y1="0.7" x2="1.3" y2="0.7" width="0.2032" layer="21"/>
<wire x1="1.5" y1="-0.7" x2="1.3" y2="-0.7" width="0.2032" layer="21"/>
<wire x1="1.5" y1="-2.1" x2="1.3" y2="-2.1" width="0.2032" layer="21"/>
<smd name="1" x="0" y="1.375" dx="2.2" dy="1.05" layer="1"/>
<smd name="2" x="0" y="-1.375" dx="2.2" dy="1.05" layer="1"/>
<smd name="3" x="1.525" y="0" dx="0.8" dy="1" layer="1"/>
<rectangle x1="-0.889" y1="-0.8255" x2="0.889" y2="0.8255" layer="41"/>
<text x="-1.27" y="2.54" size="1.016" layer="25" ratio="18">>NAME</text>
<text x="-1.27" y="-3.175" size="0.8128" layer="27" ratio="10">>VALUE</text>
</package>
</packages>
</library>
<library name="holes">
<description>Mounting Holes and Pads

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="2,8">
<description>MOUNTING HOLE 2.8 mm with drill center</description>
<wire x1="-1.778" y1="0" x2="0" y2="-1.778" width="2.286" layer="51" curve="90" cap="flat"/>
<wire x1="0" y1="1.778" x2="1.778" y2="0" width="2.286" layer="51" curve="-90" cap="flat"/>
<circle x="0" y="0" radius="0.635" width="0.4572" layer="51"/>
<circle x="0" y="0" radius="2.921" width="0.1524" layer="21"/>
<circle x="0" y="0" radius="2.54" width="2.032" layer="40"/>
<circle x="0" y="0" radius="2.54" width="2.032" layer="39"/>
<circle x="0" y="0" radius="2.54" width="2.032" layer="41"/>
<circle x="0" y="0" radius="2.54" width="2.032" layer="42"/>
<circle x="0" y="0" radius="2.54" width="2.032" layer="43"/>
<circle x="0" y="0" radius="1.5" width="0.2032" layer="21"/>
<hole x="0" y="0" drill="2.8"/>
</package>
</packages>
</library>
<library name="jumper">
<description>Jumpers

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="JP1">
<description>JUMPER</description>
<wire x1="-1.016" y1="0" x2="-1.27" y2="0.254" width="0.1524" layer="21"/>
<wire x1="-1.016" y1="0" x2="-1.27" y2="-0.254" width="0.1524" layer="21"/>
<wire x1="1.016" y1="0" x2="1.27" y2="0.254" width="0.1524" layer="21"/>
<wire x1="1.016" y1="0" x2="1.27" y2="-0.254" width="0.1524" layer="21"/>
<wire x1="1.27" y1="-0.254" x2="1.27" y2="-2.286" width="0.1524" layer="21"/>
<wire x1="1.016" y1="-2.54" x2="1.27" y2="-2.286" width="0.1524" layer="21"/>
<wire x1="1.27" y1="2.286" x2="1.016" y2="2.54" width="0.1524" layer="21"/>
<wire x1="1.27" y1="2.286" x2="1.27" y2="0.254" width="0.1524" layer="21"/>
<wire x1="1.016" y1="2.54" x2="-1.016" y2="2.54" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="2.286" x2="-1.016" y2="2.54" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="2.286" x2="-1.27" y2="0.254" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="-0.254" x2="-1.27" y2="-2.286" width="0.1524" layer="21"/>
<wire x1="-1.016" y1="-2.54" x2="-1.27" y2="-2.286" width="0.1524" layer="21"/>
<wire x1="-1.016" y1="-2.54" x2="1.016" y2="-2.54" width="0.1524" layer="21"/>
<pad name="1" x="0" y="-1.27" drill="0.9144" shape="long"/>
<pad name="2" x="0" y="1.27" drill="0.9144" shape="long"/>
<text x="-1.651" y="-2.54" size="1.27" layer="25" ratio="10" rot="R90">>NAME</text>
<text x="2.921" y="-2.54" size="1.27" layer="27" ratio="10" rot="R90">>VALUE</text>
<rectangle x1="-0.3048" y1="0.9652" x2="0.3048" y2="1.5748" layer="51"/>
<rectangle x1="-0.3048" y1="-1.5748" x2="0.3048" y2="-0.9652" layer="51"/>
</package>
</packages>
</library>
<library name="ubloxLib">
<packages>
<package name="NEO-M8">
<description>u-blox NEO GNSS module</description>
<wire x1="-4.43" y1="7.5" x2="5.23" y2="7.5" width="0.127" layer="21"/>
<wire x1="-4.43" y1="7.5" x2="-4.43" y2="-8.5" width="0.127" layer="21"/>
<wire x1="-4.43" y1="-8.5" x2="5.23" y2="-8.5" width="0.127" layer="21"/>
<wire x1="5.23" y1="-8.5" x2="5.23" y2="7.5" width="0.127" layer="21"/>
<circle x="4.14" y="-7.39" radius="0.25" width="0.4" layer="21"/>
<smd name="13" x="-5.6" y="6.6" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="14" x="-5.6" y="5.5" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="15" x="-5.6" y="4.4" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="16" x="-5.6" y="3.3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="17" x="-5.6" y="2.2" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="18" x="-5.6" y="-0.8" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="19" x="-5.6" y="-1.9" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="20" x="-5.6" y="-3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="21" x="-5.6" y="-4.1" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="22" x="-5.6" y="-5.2" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="23" x="-5.6" y="-6.3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="24" x="-5.6" y="-7.4" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="12" x="6.4" y="6.6" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="11" x="6.4" y="5.5" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="10" x="6.4" y="4.4" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="9" x="6.4" y="3.3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="8" x="6.4" y="2.2" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="7" x="6.4" y="-0.8" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="6" x="6.4" y="-1.9" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="5" x="6.4" y="-3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="4" x="6.4" y="-4.1" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="3" x="6.4" y="-5.2" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="2" x="6.4" y="-6.3" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<smd name="1" x="6.4" y="-7.4" dx="0.8" dy="1.8" layer="1" rot="R90"/>
<text x="4.29" y="0.9" size="1.016" layer="21" rot="R180">u-blox NEO</text>
</package>
</packages>
</library>
<library name="pinhead">
<description>Pin Header Connectors

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="2X05/90">
<description>PIN HEADER</description>
<wire x1="-6.35" y1="-1.905" x2="-3.81" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-3.81" y1="-1.905" x2="-3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-3.81" y1="0.635" x2="-6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-6.35" y1="0.635" x2="-6.35" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-5.08" y1="6.985" x2="-5.08" y2="1.27" width="0.762" layer="21"/>
<wire x1="-3.81" y1="-1.905" x2="-1.27" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="-1.905" x2="-1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="0.635" x2="-3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-2.54" y1="6.985" x2="-2.54" y2="1.27" width="0.762" layer="21"/>
<wire x1="-1.27" y1="-1.905" x2="1.27" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="1.27" y1="-1.905" x2="1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="1.27" y1="0.635" x2="-1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="0" y1="6.985" x2="0" y2="1.27" width="0.762" layer="21"/>
<wire x1="1.27" y1="-1.905" x2="3.81" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="3.81" y1="-1.905" x2="3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="3.81" y1="0.635" x2="1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="2.54" y1="6.985" x2="2.54" y2="1.27" width="0.762" layer="21"/>
<wire x1="3.81" y1="-1.905" x2="6.35" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="6.35" y1="-1.905" x2="6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="6.35" y1="0.635" x2="3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="5.08" y1="6.985" x2="5.08" y2="1.27" width="0.762" layer="21"/>
<pad name="2" x="-5.08" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="4" x="-2.54" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="6" x="0" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="8" x="2.54" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="10" x="5.08" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="1" x="-5.08" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="3" x="-2.54" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="5" x="0" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="7" x="2.54" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="9" x="5.08" y="-6.35" drill="1.016" shape="octagon"/>
<text x="-6.985" y="-3.81" size="1.27" layer="25" ratio="10" rot="R90">>NAME</text>
<text x="8.255" y="-3.81" size="1.27" layer="27" rot="R90">>VALUE</text>
<rectangle x1="-5.461" y1="0.635" x2="-4.699" y2="1.143" layer="21"/>
<rectangle x1="-2.921" y1="0.635" x2="-2.159" y2="1.143" layer="21"/>
<rectangle x1="-0.381" y1="0.635" x2="0.381" y2="1.143" layer="21"/>
<rectangle x1="2.159" y1="0.635" x2="2.921" y2="1.143" layer="21"/>
<rectangle x1="4.699" y1="0.635" x2="5.461" y2="1.143" layer="21"/>
<rectangle x1="-5.461" y1="-2.921" x2="-4.699" y2="-1.905" layer="21"/>
<rectangle x1="-2.921" y1="-2.921" x2="-2.159" y2="-1.905" layer="21"/>
<rectangle x1="-5.461" y1="-5.461" x2="-4.699" y2="-4.699" layer="21"/>
<rectangle x1="-5.461" y1="-4.699" x2="-4.699" y2="-2.921" layer="51"/>
<rectangle x1="-2.921" y1="-4.699" x2="-2.159" y2="-2.921" layer="51"/>
<rectangle x1="-2.921" y1="-5.461" x2="-2.159" y2="-4.699" layer="21"/>
<rectangle x1="-0.381" y1="-2.921" x2="0.381" y2="-1.905" layer="21"/>
<rectangle x1="2.159" y1="-2.921" x2="2.921" y2="-1.905" layer="21"/>
<rectangle x1="-0.381" y1="-5.461" x2="0.381" y2="-4.699" layer="21"/>
<rectangle x1="-0.381" y1="-4.699" x2="0.381" y2="-2.921" layer="51"/>
<rectangle x1="2.159" y1="-4.699" x2="2.921" y2="-2.921" layer="51"/>
<rectangle x1="2.159" y1="-5.461" x2="2.921" y2="-4.699" layer="21"/>
<rectangle x1="4.699" y1="-2.921" x2="5.461" y2="-1.905" layer="21"/>
<rectangle x1="4.699" y1="-5.461" x2="5.461" y2="-4.699" layer="21"/>
<rectangle x1="4.699" y1="-4.699" x2="5.461" y2="-2.921" layer="51"/>
</package>
<package name="2X09/90">
<description>PIN HEADER</description>
<wire x1="-11.43" y1="-1.905" x2="-8.89" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-8.89" y1="-1.905" x2="-8.89" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-8.89" y1="0.635" x2="-11.43" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-11.43" y1="0.635" x2="-11.43" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-10.16" y1="6.985" x2="-10.16" y2="1.27" width="0.762" layer="21"/>
<wire x1="-8.89" y1="-1.905" x2="-6.35" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-6.35" y1="-1.905" x2="-6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-6.35" y1="0.635" x2="-8.89" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-7.62" y1="6.985" x2="-7.62" y2="1.27" width="0.762" layer="21"/>
<wire x1="-6.35" y1="-1.905" x2="-3.81" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-3.81" y1="-1.905" x2="-3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-3.81" y1="0.635" x2="-6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-5.08" y1="6.985" x2="-5.08" y2="1.27" width="0.762" layer="21"/>
<wire x1="-3.81" y1="-1.905" x2="-1.27" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="-1.905" x2="-1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-1.27" y1="0.635" x2="-3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-2.54" y1="6.985" x2="-2.54" y2="1.27" width="0.762" layer="21"/>
<wire x1="-1.27" y1="-1.905" x2="1.27" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="1.27" y1="-1.905" x2="1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="1.27" y1="0.635" x2="-1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="0" y1="6.985" x2="0" y2="1.27" width="0.762" layer="21"/>
<wire x1="1.27" y1="-1.905" x2="3.81" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="3.81" y1="-1.905" x2="3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="3.81" y1="0.635" x2="1.27" y2="0.635" width="0.1524" layer="21"/>
<wire x1="2.54" y1="6.985" x2="2.54" y2="1.27" width="0.762" layer="21"/>
<wire x1="3.81" y1="-1.905" x2="6.35" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="6.35" y1="-1.905" x2="6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="6.35" y1="0.635" x2="3.81" y2="0.635" width="0.1524" layer="21"/>
<wire x1="5.08" y1="6.985" x2="5.08" y2="1.27" width="0.762" layer="21"/>
<wire x1="6.35" y1="-1.905" x2="8.89" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="8.89" y1="-1.905" x2="8.89" y2="0.635" width="0.1524" layer="21"/>
<wire x1="8.89" y1="0.635" x2="6.35" y2="0.635" width="0.1524" layer="21"/>
<wire x1="7.62" y1="6.985" x2="7.62" y2="1.27" width="0.762" layer="21"/>
<wire x1="8.89" y1="-1.905" x2="11.43" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="11.43" y1="-1.905" x2="11.43" y2="0.635" width="0.1524" layer="21"/>
<wire x1="11.43" y1="0.635" x2="8.89" y2="0.635" width="0.1524" layer="21"/>
<wire x1="10.16" y1="6.985" x2="10.16" y2="1.27" width="0.762" layer="21"/>
<pad name="2" x="-10.16" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="4" x="-7.62" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="6" x="-5.08" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="8" x="-2.54" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="10" x="0" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="12" x="2.54" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="14" x="5.08" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="16" x="7.62" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="18" x="10.16" y="-3.81" drill="1.016" shape="octagon"/>
<pad name="1" x="-10.16" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="3" x="-7.62" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="5" x="-5.08" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="7" x="-2.54" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="9" x="0" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="11" x="2.54" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="13" x="5.08" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="15" x="7.62" y="-6.35" drill="1.016" shape="octagon"/>
<pad name="17" x="10.16" y="-6.35" drill="1.016" shape="octagon"/>
<text x="-12.065" y="-3.81" size="1.27" layer="25" ratio="10" rot="R90">>NAME</text>
<text x="13.335" y="-3.81" size="1.27" layer="27" rot="R90">>VALUE</text>
<rectangle x1="-10.541" y1="0.635" x2="-9.779" y2="1.143" layer="21"/>
<rectangle x1="-8.001" y1="0.635" x2="-7.239" y2="1.143" layer="21"/>
<rectangle x1="-5.461" y1="0.635" x2="-4.699" y2="1.143" layer="21"/>
<rectangle x1="-2.921" y1="0.635" x2="-2.159" y2="1.143" layer="21"/>
<rectangle x1="-0.381" y1="0.635" x2="0.381" y2="1.143" layer="21"/>
<rectangle x1="2.159" y1="0.635" x2="2.921" y2="1.143" layer="21"/>
<rectangle x1="4.699" y1="0.635" x2="5.461" y2="1.143" layer="21"/>
<rectangle x1="7.239" y1="0.635" x2="8.001" y2="1.143" layer="21"/>
<rectangle x1="9.779" y1="0.635" x2="10.541" y2="1.143" layer="21"/>
<rectangle x1="-10.541" y1="-2.921" x2="-9.779" y2="-1.905" layer="21"/>
<rectangle x1="-8.001" y1="-2.921" x2="-7.239" y2="-1.905" layer="21"/>
<rectangle x1="-10.541" y1="-5.461" x2="-9.779" y2="-4.699" layer="21"/>
<rectangle x1="-10.541" y1="-4.699" x2="-9.779" y2="-2.921" layer="51"/>
<rectangle x1="-8.001" y1="-4.699" x2="-7.239" y2="-2.921" layer="51"/>
<rectangle x1="-8.001" y1="-5.461" x2="-7.239" y2="-4.699" layer="21"/>
<rectangle x1="-5.461" y1="-2.921" x2="-4.699" y2="-1.905" layer="21"/>
<rectangle x1="-2.921" y1="-2.921" x2="-2.159" y2="-1.905" layer="21"/>
<rectangle x1="-5.461" y1="-5.461" x2="-4.699" y2="-4.699" layer="21"/>
<rectangle x1="-5.461" y1="-4.699" x2="-4.699" y2="-2.921" layer="51"/>
<rectangle x1="-2.921" y1="-4.699" x2="-2.159" y2="-2.921" layer="51"/>
<rectangle x1="-2.921" y1="-5.461" x2="-2.159" y2="-4.699" layer="21"/>
<rectangle x1="-0.381" y1="-2.921" x2="0.381" y2="-1.905" layer="21"/>
<rectangle x1="2.159" y1="-2.921" x2="2.921" y2="-1.905" layer="21"/>
<rectangle x1="-0.381" y1="-5.461" x2="0.381" y2="-4.699" layer="21"/>
<rectangle x1="-0.381" y1="-4.699" x2="0.381" y2="-2.921" layer="51"/>
<rectangle x1="2.159" y1="-4.699" x2="2.921" y2="-2.921" layer="51"/>
<rectangle x1="2.159" y1="-5.461" x2="2.921" y2="-4.699" layer="21"/>
<rectangle x1="4.699" y1="-2.921" x2="5.461" y2="-1.905" layer="21"/>
<rectangle x1="7.239" y1="-2.921" x2="8.001" y2="-1.905" layer="21"/>
<rectangle x1="4.699" y1="-5.461" x2="5.461" y2="-4.699" layer="21"/>
<rectangle x1="4.699" y1="-4.699" x2="5.461" y2="-2.921" layer="51"/>
<rectangle x1="7.239" y1="-4.699" x2="8.001" y2="-2.921" layer="51"/>
<rectangle x1="7.239" y1="-5.461" x2="8.001" y2="-4.699" layer="21"/>
<rectangle x1="9.779" y1="-2.921" x2="10.541" y2="-1.905" layer="21"/>
<rectangle x1="9.779" y1="-5.461" x2="10.541" y2="-4.699" layer="21"/>
<rectangle x1="9.779" y1="-4.699" x2="10.541" y2="-2.921" layer="51"/>
</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.8.0 (2017-Jul-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-LORA-RFM95W#SMD">
<description>868/915 MHz LoRa Radio Transceiver Module

Footprint for SMD assembly.</description>
<wire x1="-8" y1="8" x2="8" y2="8" width="0.127" layer="21"/>
<wire x1="8" y1="-8" x2="-8" y2="-8" width="0.127" layer="21"/>
<text x="0" y="9.525" size="1.27" layer="25" align="bottom-center">>NAME</text>
<text x="0" y="-9.525" size="1.27" layer="27" align="top-center">>VALUE</text>
<text x="-5" y="7" size="1.016" layer="21" align="center-left">GND</text>
<text x="-5" y="5" size="1.016" layer="21" align="center-left">MISO</text>
<text x="-5" y="3" size="1.016" layer="21" align="center-left">MOSI</text>
<text x="-5" y="1" size="1.016" layer="21" align="center-left">SCK</text>
<text x="-5" y="-1" size="1.016" layer="21" align="center-left">NSS</text>
<text x="-5" y="-3" size="1.016" layer="21" align="center-left">RST</text>
<text x="-5" y="-5" size="1.016" layer="21" align="center-left">DIO5</text>
<text x="-5" y="-7" size="1.016" layer="21" align="center-left">GND</text>
<text x="5" y="7" size="1.016" layer="21" align="center-right">DIO2</text>
<text x="5" y="5" size="1.016" layer="21" align="center-right">DIO1</text>
<text x="5" y="3" size="1.016" layer="21" align="center-right">DIO0</text>
<text x="5" y="1" size="1.016" layer="21" align="center-right">3.3V</text>
<text x="5" y="-1" size="1.016" layer="21" align="center-right">DIO4</text>
<text x="5" y="-3" size="1.016" layer="21" align="center-right">DIO3</text>
<text x="5" y="-5" size="1.016" layer="21" align="center-right">GND</text>
<text x="5" y="-7" size="1.016" layer="21" align="center-right">ANT</text>
<smd name="A1" x="-7.5" y="7" dx="3.6" dy="1.2" layer="1"/>
<smd name="A2" x="-7.5" y="5" dx="3.6" dy="1.2" layer="1"/>
<smd name="B1" x="7.5" y="7" dx="3.6" dy="1.2" layer="1"/>
<smd name="A3" x="-7.5" y="3" dx="3.6" dy="1.2" layer="1"/>
<smd name="A4" x="-7.5" y="1" dx="3.6" dy="1.2" layer="1"/>
<smd name="A5" x="-7.5" y="-1" dx="3.6" dy="1.2" layer="1"/>
<smd name="A6" x="-7.5" y="-3" dx="3.6" dy="1.2" layer="1"/>
<smd name="A7" x="-7.5" y="-5" dx="3.6" dy="1.2" layer="1"/>
<smd name="A8" x="-7.5" y="-7" dx="3.6" dy="1.2" layer="1"/>
<smd name="B2" x="7.5" y="5" dx="3.6" dy="1.2" layer="1"/>
<smd name="B3" x="7.5" y="3" dx="3.6" dy="1.2" layer="1"/>
<smd name="B4" x="7.5" y="1" dx="3.6" dy="1.2" layer="1"/>
<smd name="B5" x="7.5" y="-1" dx="3.6" dy="1.2" layer="1"/>
<smd name="B6" x="7.5" y="-3" dx="3.6" dy="1.2" layer="1"/>
<smd name="B7" x="7.5" y="-5" dx="3.6" dy="1.2" layer="1"/>
<smd name="B8" x="7.5" y="-7" dx="3.6" dy="1.2" layer="1"/>
<wire x1="-8" y1="6.2" x2="-8" y2="5.8" width="0.127" layer="21"/>
<wire x1="-8" y1="4.2" x2="-8" y2="3.8" width="0.127" layer="21"/>
<wire x1="-8" y1="2.2" x2="-8" y2="1.8" width="0.127" layer="21"/>
<wire x1="-8" y1="0.2" x2="-8" y2="-0.2" width="0.127" layer="21"/>
<wire x1="-8" y1="-1.8" x2="-8" y2="-2.2" width="0.127" layer="21"/>
<wire x1="-8" y1="-3.8" x2="-8" y2="-4.2" width="0.127" layer="21"/>
<wire x1="-8" y1="-5.8" x2="-8" y2="-6.2" width="0.127" layer="21"/>
<wire x1="-8" y1="8" x2="-8" y2="7.8" width="0.127" layer="21"/>
<wire x1="-8" y1="-8" x2="-8" y2="-7.8" width="0.127" layer="21"/>
<wire x1="8" y1="6.2" x2="8" y2="5.8" width="0.127" layer="21"/>
<wire x1="8" y1="4.2" x2="8" y2="3.8" width="0.127" layer="21"/>
<wire x1="8" y1="2.2" x2="8" y2="1.8" width="0.127" layer="21"/>
<wire x1="8" y1="0.2" x2="8" y2="-0.2" width="0.127" layer="21"/>
<wire x1="8" y1="-1.8" x2="8" y2="-2.2" width="0.127" layer="21"/>
<wire x1="8" y1="-3.8" x2="8" y2="-4.2" width="0.127" layer="21"/>
<wire x1="8" y1="-5.8" x2="8" y2="-6.2" width="0.127" layer="21"/>
<wire x1="8" y1="8" x2="8" y2="7.8" width="0.127" layer="21"/>
<wire x1="8" y1="-8" x2="8" y2="-7.8" width="0.127" layer="21"/>
</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="5mil"/>
<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="5mil"/>
<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="0.125mm"/>
<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="*"/>
<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="C1HU" library="microbuilder" package="_0805" value="10pF" x="49.595" y="23.885" smashed="yes" rot="R90"/>
<element name="C40U" library="Schematics" package="C0805" value="0.1uF" x="58.345" y="46.94" smashed="yes" rot="R90"/>
<element name="C41U" library="Schematics" package="C0805" value="10uF" x="56.395" y="46.96" smashed="yes" rot="R90"/>
<element name="C42U" library="Schematics" package="C0805" value="0.1uF" x="59.18" y="33.61" smashed="yes" rot="R270"/>
<element name="C43U" library="Schematics" package="C0805" value="10uF" x="61.605" y="33.64" smashed="yes" rot="R270"/>
<element name="GPS-ANT" library="adafruit" package="SMA90_DIP" value="" x="46.765" y="17.62" rot="R180"/>
<element name="L1U" library="microbuilder" package="0805" value="100nH" x="52.195" y="19.825" smashed="yes" rot="R270"/>
<element name="R1U" library="microbuilder" package="_0805" value="10" x="51.54" y="23.92" smashed="yes" rot="R90"/>
<element name="U$2" library="ADUM6402" package="SOIC16R" value="" x="49.69" y="38.87" smashed="yes" rot="R180">
<attribute name="VALUE" x="54.135" y="39.505" size="1.27" layer="27" rot="R180"/>
</element>
<element name="UBLOX-NEO8" library="ubloxLib" package="NEO-M8" value="NEO-M8" x="61.16" y="22.81" smashed="yes" rot="R180"/>
<element name="R21E1" library="microbuilder" package="_0805" value="120 (blue)" x="49.1" y="30.1" smashed="yes" rot="R90"/>
<element name="PPS-LED1" library="jumper" package="JP1" value="" x="45.6" y="27" smashed="yes">
<attribute name="VALUE" x="48.521" y="24.46" size="1.27" layer="27" ratio="10" rot="R90"/>
</element>
<element name="JP2" library="pinhead" package="2X05/90" value="" x="47" y="54.4" smashed="yes">
<attribute name="VALUE" x="55.255" y="50.59" size="1.27" layer="27" rot="R90"/>
</element>
<element name="JP3" library="pinhead" package="2X09/90" value="" x="24.9" y="69.2" smashed="yes">
<attribute name="VALUE" x="38.235" y="65.39" size="1.27" layer="27" rot="R90"/>
</element>
<element name="U$6" library="diy-modules" package="WIRELESS-LORA-RFM95W#SMD" value="WIRELESS-LORA-RFM95W#SMD" x="24.3" y="48.1" smashed="yes" rot="R270"/>
<element name="X4" library="adafruit" package="U.FL" value="" x="21.1" y="35.6" smashed="yes" rot="R180">
<attribute name="VALUE" x="22.37" y="38.775" size="0.8128" layer="27" ratio="10" rot="R180"/>
</element>
<element name="C27" library="Schematics" package="C0805" value="0.1uF" x="33.7" y="51.9" smashed="yes" rot="R270"/>
<element name="LSP1" library="solpad" package="LSP10" value="LSP10" x="17.4" y="35.2" smashed="yes">
<attribute name="VALUE" x="17.4" y="35.454" size="0.0254" layer="27"/>
</element>
<element name="C41U1" library="Schematics" package="C0805" value="10uF" x="33.7" y="47.9" smashed="yes" rot="R90"/>
<element name="U$7" library="holes" package="2,8" value="" x="36.3" y="15.6"/>
<element name="U$8" library="holes" package="2,8" value="" x="63.9" y="45.1"/>
</elements>
<signals>
<signal name="AGND">
<polygon width="0.4064" layer="1" isolate="0.6096">
<vertex x="0.1" y="100"/>
<vertex x="67.2" y="100"/>
<vertex x="67.4" y="99.8"/>
<vertex x="67.4" y="72.5"/>
<vertex x="67.8" y="72.1"/>
<vertex x="67.8" y="71.6"/>
<vertex x="73.4" y="66"/>
<vertex x="75.3" y="66"/>
<vertex x="77.3" y="64"/>
<vertex x="78.4" y="64"/>
<vertex x="78.6" y="63.8"/>
<vertex x="78.6" y="60.9"/>
<vertex x="78.1" y="60.4"/>
<vertex x="78.6" y="60.4"/>
<vertex x="88.6" y="50.4"/>
<vertex x="146.4" y="50.4"/>
<vertex x="146.7" y="50.7"/>
<vertex x="146.7" y="13.2"/>
<vertex x="146.8" y="13.1"/>
<vertex x="121.1" y="13.1"/>
<vertex x="120.8" y="12.8"/>
<vertex x="120.8" y="13.1"/>
<vertex x="114.7" y="19.2"/>
<vertex x="95" y="19.2"/>
<vertex x="94.9" y="19.1"/>
<vertex x="88.9" y="13.1"/>
<vertex x="73.4" y="13.1"/>
<vertex x="73" y="13.1"/>
<vertex x="72.9" y="13.2"/>
<vertex x="72.9" y="41.4"/>
<vertex x="72.7" y="41.6"/>
<vertex x="72.7" y="42.3"/>
<vertex x="59.5" y="55.5"/>
<vertex x="40" y="55.5"/>
<vertex x="39.9" y="55.4"/>
<vertex x="39.9" y="70.5"/>
<vertex x="11.3" y="70.5"/>
<vertex x="11.1" y="70.7"/>
<vertex x="11.1" y="70.5"/>
<vertex x="10" y="69.4"/>
<vertex x="10" y="13.2"/>
<vertex x="10.2" y="13"/>
<vertex x="0.2" y="13"/>
<vertex x="0.2" y="99.9"/>
</polygon>
<polygon width="0.4064" layer="16" isolate="0.6096">
<vertex x="0.1" y="100"/>
<vertex x="67.2" y="100"/>
<vertex x="67.3" y="99.9"/>
<vertex x="67.3" y="71.5"/>
<vertex x="67.9" y="71.5"/>
<vertex x="73.2" y="66.2"/>
<vertex x="77.9" y="66.2"/>
<vertex x="78.2" y="66.5"/>
<vertex x="78.2" y="60.5"/>
<vertex x="78.3" y="60.4"/>
<vertex x="78.5" y="60.4"/>
<vertex x="88.2" y="50.7"/>
<vertex x="146.5" y="50.7"/>
<vertex x="146.9" y="50.3"/>
<vertex x="146.9" y="13.1"/>
<vertex x="147" y="13"/>
<vertex x="120.6" y="13"/>
<vertex x="114.5" y="19.1"/>
<vertex x="95.8" y="19.1"/>
<vertex x="95.7" y="19.2"/>
<vertex x="95" y="19.2"/>
<vertex x="88.8" y="13"/>
<vertex x="73.5" y="13"/>
<vertex x="73.2" y="13.3"/>
<vertex x="72.8" y="13.3"/>
<vertex x="72.7" y="13.2"/>
<vertex x="72.7" y="42.4"/>
<vertex x="72.5" y="42.6"/>
<vertex x="72.3" y="42.6"/>
<vertex x="59.8" y="55.1"/>
<vertex x="40.1" y="55.1"/>
<vertex x="39.8" y="55.4"/>
<vertex x="39.8" y="70.3"/>
<vertex x="39.5" y="70.6"/>
<vertex x="11.3" y="70.6"/>
<vertex x="10.2" y="69.5"/>
<vertex x="10.2" y="13"/>
<vertex x="10.1" y="12.9"/>
<vertex x="0.2" y="12.9"/>
<vertex x="0.1" y="13"/>
<vertex x="0.1" y="99.9"/>
<vertex x="-0.1" y="100.1"/>
</polygon>
</signal>
<signal name="N$19">
<contactref element="UBLOX-NEO8" pad="9"/>
<contactref element="R1U" pad="2"/>
<wire x1="51.54" y1="24.936" x2="52.464" y2="24.936" width="0.3048" layer="1"/>
<wire x1="52.464" y1="24.936" x2="53.1" y2="24.3" width="0.3048" layer="1"/>
<wire x1="53.1" y1="24.3" x2="53.1" y2="22.5" width="0.3048" layer="1"/>
<wire x1="53.1" y1="22.5" x2="53.8" y2="21.8" width="0.3048" layer="1"/>
<wire x1="53.8" y1="21.8" x2="55.8" y2="21.8" width="0.254" layer="1"/>
<wire x1="55.8" y1="21.8" x2="56.2" y2="21.4" width="0.254" layer="1"/>
<wire x1="56.2" y1="21.4" x2="56.2" y2="19.6" width="0.254" layer="1"/>
<wire x1="56.2" y1="19.6" x2="56" y2="19.4" width="0.254" layer="1"/>
<wire x1="56" y1="19.4" x2="54.87" y2="19.4" width="0.254" layer="1"/>
<wire x1="54.87" y1="19.4" x2="54.76" y2="19.51" width="0.254" layer="1"/>
</signal>
<signal name="N$30">
<contactref element="R1U" pad="1"/>
<contactref element="L1U" pad="1"/>
<contactref element="C1HU" pad="1"/>
<wire x1="49.595" y1="22.869" x2="51.505" y2="22.869" width="0.3048" layer="1"/>
<wire x1="51.505" y1="22.869" x2="51.54" y2="22.904" width="0.3048" layer="1"/>
<wire x1="51.54" y1="22.904" x2="51.54" y2="22.56" width="0.3048" layer="1"/>
<wire x1="51.54" y1="22.56" x2="52.2" y2="21.9" width="0.3048" layer="1"/>
<wire x1="52.2" y1="21.9" x2="52.2" y2="20.78" width="0.3048" layer="1"/>
<wire x1="52.2" y1="20.78" x2="52.195" y2="20.775" width="0.3048" layer="1"/>
</signal>
<signal name="N$31">
<contactref element="UBLOX-NEO8" pad="11"/>
<contactref element="L1U" pad="2"/>
<contactref element="GPS-ANT" pad="ANTENNA"/>
<wire x1="54.76" y1="17.31" x2="52.1" y2="17.31" width="0.6096" layer="1"/>
<wire x1="52.1" y1="17.31" x2="50.31" y2="17.31" width="0.6096" layer="1"/>
<wire x1="50.31" y1="17.31" x2="50.3" y2="17.3" width="0.6096" layer="1"/>
<wire x1="50.3" y1="17.3" x2="47.085" y2="17.3" width="0.6096" layer="1"/>
<wire x1="47.085" y1="17.3" x2="46.765" y2="17.62" width="0.6096" layer="1"/>
<wire x1="52.195" y1="18.875" x2="52.195" y2="17.405" width="0.6096" layer="1"/>
<wire x1="52.195" y1="17.405" x2="52.1" y2="17.31" width="0.6096" layer="1"/>
</signal>
<signal name="AGNDU">
<contactref element="C1HU" pad="2"/>
<contactref element="UBLOX-NEO8" pad="10"/>
<contactref element="UBLOX-NEO8" pad="7"/>
<contactref element="UBLOX-NEO8" pad="12"/>
<contactref element="UBLOX-NEO8" pad="24"/>
<contactref element="UBLOX-NEO8" pad="13"/>
<contactref element="U$2" pad="9"/>
<contactref element="U$2" pad="10"/>
<contactref element="U$2" pad="15"/>
<contactref element="C43U" pad="2"/>
<contactref element="C42U" pad="2"/>
<contactref element="PPS-LED1" pad="1"/>
<wire x1="54.76" y1="23.61" x2="56.49" y2="23.61" width="0.6096" layer="1"/>
<wire x1="56.49" y1="23.61" x2="57" y2="23.1" width="0.6096" layer="1"/>
<wire x1="57" y1="23.1" x2="57" y2="18.9" width="0.6096" layer="1"/>
<wire x1="57" y1="18.9" x2="56.5" y2="18.4" width="0.6096" layer="1"/>
<wire x1="56.5" y1="18.4" x2="56.2" y2="18.4" width="0.6096" layer="1"/>
<wire x1="54.77" y1="18.4" x2="54.76" y2="18.41" width="0.6096" layer="1"/>
<wire x1="54.77" y1="18.4" x2="56.2" y2="18.4" width="0.6096" layer="1"/>
<wire x1="56.2" y1="18.4" x2="56.9" y2="17.7" width="0.6096" layer="1"/>
<wire x1="56.9" y1="17.7" x2="56.9" y2="16.5" width="0.6096" layer="1"/>
<wire x1="56.9" y1="16.5" x2="57" y2="16.4" width="0.6096" layer="1"/>
<wire x1="57" y1="16.4" x2="56.9" y2="16.4" width="0.6096" layer="1"/>
<wire x1="56.9" y1="16.4" x2="56.6" y2="16.1" width="0.6096" layer="1"/>
<wire x1="56.6" y1="16.1" x2="54.87" y2="16.1" width="0.6096" layer="1"/>
<wire x1="54.87" y1="16.1" x2="54.76" y2="16.21" width="0.6096" layer="1"/>
<wire x1="66.76" y1="16.21" x2="57.19" y2="16.21" width="0.6096" layer="1"/>
<wire x1="57.19" y1="16.21" x2="57" y2="16.4" width="0.6096" layer="1"/>
<wire x1="66.76" y1="30.21" x2="64.11" y2="30.21" width="0.6096" layer="1"/>
<wire x1="64.11" y1="30.21" x2="63.9" y2="30" width="0.6096" layer="1"/>
<wire x1="63.9" y1="30" x2="57" y2="23.1" width="0.6096" layer="1"/>
<wire x1="52.865" y1="34.07" x2="52.865" y2="32.535" width="0.6096" layer="1"/>
<wire x1="52.865" y1="32.535" x2="53.2" y2="32.2" width="0.6096" layer="1"/>
<wire x1="53.2" y1="32.2" x2="54.9" y2="32.2" width="0.6096" layer="1"/>
<wire x1="54.9" y1="32.2" x2="55" y2="32.3" width="0.6096" layer="1"/>
<wire x1="55" y1="32.3" x2="55" y2="32.4" width="0.6096" layer="1"/>
<wire x1="55" y1="32.4" x2="55.4" y2="32.8" width="0.6096" layer="1"/>
<wire x1="55.4" y1="32.8" x2="55.8" y2="32.8" width="0.6096" layer="1"/>
<wire x1="55.8" y1="32.8" x2="56.3" y2="33.3" width="0.6096" layer="1"/>
<wire x1="56.3" y1="33.3" x2="57.4" y2="33.3" width="0.6096" layer="1"/>
<wire x1="57.4" y1="33.3" x2="57.9" y2="32.8" width="0.6096" layer="1"/>
<wire x1="57.9" y1="32.8" x2="59.04" y2="32.8" width="0.6096" layer="1"/>
<wire x1="59.04" y1="32.8" x2="59.18" y2="32.66" width="0.6096" layer="1"/>
<wire x1="59.18" y1="32.66" x2="61.575" y2="32.66" width="0.6096" layer="1"/>
<wire x1="61.575" y1="32.66" x2="61.605" y2="32.69" width="0.6096" layer="1"/>
<wire x1="61.605" y1="32.69" x2="61.605" y2="32.295" width="0.6096" layer="1"/>
<wire x1="61.605" y1="32.295" x2="63.9" y2="30" width="0.6096" layer="1"/>
<contactref element="GPS-ANT" pad="GND1"/>
<contactref element="GPS-ANT" pad="GND3"/>
<contactref element="GPS-ANT" pad="GND4"/>
<contactref element="GPS-ANT" pad="GND2"/>
<wire x1="49.305" y1="20.16" x2="44.225" y2="20.16" width="0.6096" layer="1"/>
<wire x1="44.225" y1="15.08" x2="49.305" y2="15.08" width="0.6096" layer="1"/>
<wire x1="49.305" y1="20.16" x2="44.26" y2="20.16" width="0.6096" layer="1"/>
<wire x1="44.26" y1="20.16" x2="44.2" y2="20.1" width="0.6096" layer="1"/>
<wire x1="44.2" y1="20.1" x2="44.2" y2="15.105" width="0.6096" layer="1"/>
<wire x1="44.2" y1="15.105" x2="44.225" y2="15.08" width="0.6096" layer="1"/>
<wire x1="49.305" y1="15.08" x2="50.18" y2="15.08" width="0.6096" layer="1"/>
<wire x1="50.18" y1="15.08" x2="50.8" y2="15.7" width="0.6096" layer="1"/>
<wire x1="50.8" y1="15.7" x2="54.25" y2="15.7" width="0.6096" layer="1"/>
<wire x1="54.25" y1="15.7" x2="54.76" y2="16.21" width="0.6096" layer="1"/>
<wire x1="45.245" y1="34.07" x2="46.515" y2="34.07" width="0.6096" layer="1"/>
<wire x1="46.515" y1="34.07" x2="44.07" y2="34.07" width="0.6096" layer="1"/>
<wire x1="44.07" y1="34.07" x2="43.7" y2="33.7" width="0.6096" layer="1"/>
<wire x1="43.7" y1="33.7" x2="43.7" y2="33.1" width="0.6096" layer="1"/>
<via x="43.7" y="31.9" extent="1-16" drill="0.6"/>
<wire x1="43.7" y1="33.1" x2="43.7" y2="31.9" width="0.6096" layer="1"/>
<wire x1="43.7" y1="31.9" x2="43.7" y2="33.1" width="0.6096" layer="16"/>
<wire x1="43.7" y1="33.1" x2="43.7" y2="33.6" width="0.6096" layer="16"/>
<wire x1="43.7" y1="33.6" x2="44.1" y2="34.1" width="0.6096" layer="16"/>
<wire x1="44.1" y1="34.1" x2="62.4" y2="34.2" width="0.6096" layer="16"/>
<wire x1="62.4" y1="34.2" x2="63.9" y2="33.5" width="0.6096" layer="16"/>
<wire x1="63.9" y1="33.5" x2="64.2" y2="33.5" width="0.6096" layer="16"/>
<via x="65.5" y="33.5" extent="1-16" drill="0.6"/>
<wire x1="64.2" y1="33.5" x2="65.5" y2="33.5" width="0.6096" layer="16"/>
<wire x1="65.5" y1="33.5" x2="64.2" y2="33.5" width="0.6096" layer="1"/>
<wire x1="64.2" y1="33.5" x2="64" y2="33.5" width="0.6096" layer="1"/>
<wire x1="64" y1="33.5" x2="63.2" y2="32.7" width="0.6096" layer="1"/>
<wire x1="63.2" y1="32.7" x2="61.605" y2="32.69" width="0.6096" layer="1"/>
<via x="64.2" y="33.5" extent="1-16" drill="0.6"/>
<wire x1="49.595" y1="24.901" x2="48.7" y2="25.7" width="0.6096" layer="1"/>
<wire x1="48.7" y1="25.7" x2="45.6" y2="25.73" width="0.6096" layer="1"/>
<wire x1="49.595" y1="24.901" x2="48.8" y2="25.6" width="0.3048" layer="1"/>
<wire x1="48.8" y1="25.6" x2="45.3" y2="25.7" width="0.3048" layer="1"/>
<wire x1="45.3" y1="25.7" x2="44.4" y2="25.7" width="0.6096" layer="1"/>
<wire x1="44.4" y1="25.7" x2="43.3" y2="26.7" width="0.6096" layer="1"/>
<wire x1="43.3" y1="26.7" x2="43.3" y2="30.7" width="0.6096" layer="1"/>
<wire x1="43.3" y1="30.7" x2="43.7" y2="31.3" width="0.6096" layer="1"/>
<wire x1="43.7" y1="31.3" x2="43.7" y2="31.9" width="0.6096" layer="1"/>
<via x="43.7" y="33.1" extent="1-16" drill="0.6"/>
<via x="45.5" y="31.1" extent="1-16" drill="0.6"/>
<via x="50.3" y="27.2" extent="1-16" drill="0.6"/>
<via x="52.3" y="29.8" extent="1-16" drill="0.6"/>
<via x="58.4" y="29.3" extent="1-16" drill="0.6"/>
<via x="64.1" y="25.7" extent="1-16" drill="0.6"/>
<via x="64.1" y="19" extent="1-16" drill="0.6"/>
<via x="59.7" y="18.7" extent="1-16" drill="0.6"/>
<via x="68.3" y="14.5" extent="1-16" drill="0.6"/>
<via x="62" y="14.5" extent="1-16" drill="0.6"/>
<via x="68.1" y="22.1" extent="1-16" drill="0.6"/>
<via x="60.9" y="24.4" extent="1-16" drill="0.6"/>
<via x="57.5" y="26.4" extent="1-16" drill="0.6"/>
<via x="60.8" y="29.9" extent="1-16" drill="0.6"/>
<via x="46.8" y="22.1" extent="1-16" drill="0.6"/>
<via x="44.3" y="23.3" extent="1-16" drill="0.6"/>
<via x="43" y="17.6" extent="1-16" drill="0.6"/>
<via x="46.8" y="13.9" extent="1-16" drill="0.6"/>
<via x="51.8" y="14.3" extent="1-16" drill="0.6"/>
<via x="61" y="20.8" extent="1-16" drill="0.6"/>
<polygon width="0.4064" layer="1" isolate="0.6096">
<vertex x="42.3" y="36"/>
<vertex x="69.3" y="36"/>
<vertex x="69.4" y="35.9"/>
<vertex x="69.4" y="13.4"/>
<vertex x="69.6" y="13.2"/>
<vertex x="42.2" y="13.2"/>
<vertex x="42.3" y="35.1"/>
</polygon>
<polygon width="0.4064" layer="16" isolate="0.6096">
<vertex x="42.8" y="36"/>
<vertex x="69.4" y="35.9"/>
<vertex x="69.5" y="35.8"/>
<vertex x="69.5" y="13.2"/>
<vertex x="69.6" y="13.1"/>
<vertex x="42.2" y="13.1"/>
<vertex x="42.3" y="35.3"/>
<vertex x="42.3" y="36"/>
</polygon>
</signal>
<signal name="RX_U">
<contactref element="UBLOX-NEO8" pad="21"/>
<contactref element="U$2" pad="13"/>
<wire x1="66.76" y1="26.91" x2="68.41" y2="26.91" width="0.254" layer="1"/>
<wire x1="68.41" y1="26.91" x2="68.5" y2="27" width="0.254" layer="1"/>
<via x="68.5" y="27" extent="1-16" drill="0.6"/>
<wire x1="68.5" y1="27" x2="68.5" y2="31.1" width="0.3048" layer="16"/>
<wire x1="68.5" y1="31.1" x2="67.3" y2="32.3" width="0.3048" layer="16"/>
<wire x1="67.3" y1="32.3" x2="51.8" y2="32.3" width="0.3048" layer="16"/>
<wire x1="51.8" y1="32.3" x2="51.2" y2="31.7" width="0.3048" layer="16"/>
<via x="51.2" y="31.7" extent="1-16" drill="0.6"/>
<wire x1="51.2" y1="31.7" x2="50.9" y2="31.7" width="0.3048" layer="1"/>
<wire x1="50.9" y1="31.7" x2="50.4" y2="32.2" width="0.3048" layer="1"/>
<wire x1="50.4" y1="32.2" x2="50.4" y2="33.995" width="0.3048" layer="1"/>
<wire x1="50.4" y1="33.995" x2="50.325" y2="34.07" width="0.3048" layer="1"/>
</signal>
<signal name="+3.3VU">
<contactref element="C42U" pad="1"/>
<contactref element="C43U" pad="1"/>
<contactref element="UBLOX-NEO8" pad="23"/>
<contactref element="UBLOX-NEO8" pad="22"/>
<contactref element="U$2" pad="16"/>
<wire x1="66.76" y1="28.01" x2="66.76" y2="29.11" width="0.6096" layer="1"/>
<wire x1="54.135" y1="34.07" x2="55.77" y2="34.07" width="0.6096" layer="1"/>
<wire x1="55.77" y1="34.07" x2="56.3" y2="34.6" width="0.6096" layer="1"/>
<wire x1="56.3" y1="34.6" x2="59.14" y2="34.6" width="0.6096" layer="1"/>
<wire x1="59.14" y1="34.6" x2="59.18" y2="34.56" width="0.6096" layer="1"/>
<wire x1="59.18" y1="34.56" x2="61.575" y2="34.56" width="0.6096" layer="1"/>
<wire x1="61.575" y1="34.56" x2="61.605" y2="34.59" width="0.6096" layer="1"/>
<wire x1="66.76" y1="29.11" x2="67.91" y2="29.11" width="0.4064" layer="1"/>
<wire x1="67.91" y1="29.11" x2="68.3" y2="29.5" width="0.4064" layer="1"/>
<wire x1="68.3" y1="29.5" x2="68.3" y2="34.2" width="0.4064" layer="1"/>
<wire x1="68.3" y1="34.2" x2="67.9" y2="34.6" width="0.4064" layer="1"/>
<wire x1="67.9" y1="34.6" x2="61.615" y2="34.6" width="0.4064" layer="1"/>
<wire x1="61.615" y1="34.6" x2="61.605" y2="34.59" width="0.4064" layer="1"/>
</signal>
<signal name="TX_U">
<contactref element="U$2" pad="11"/>
<contactref element="UBLOX-NEO8" pad="20"/>
<wire x1="66.76" y1="25.81" x2="68.19" y2="25.81" width="0.3048" layer="1"/>
<wire x1="68.19" y1="25.81" x2="68.4" y2="25.6" width="0.3048" layer="1"/>
<via x="68.4" y="25.6" extent="1-16" drill="0.6"/>
<wire x1="68.4" y1="25.6" x2="68.3" y2="25.6" width="0.3048" layer="16"/>
<wire x1="68.3" y1="25.6" x2="67.6" y2="26.3" width="0.3048" layer="16"/>
<wire x1="67.6" y1="26.3" x2="67.6" y2="27.3" width="0.3048" layer="16"/>
<wire x1="67.6" y1="27.3" x2="67.9" y2="27.6" width="0.3048" layer="16"/>
<wire x1="67.9" y1="27.6" x2="67.9" y2="30.9" width="0.3048" layer="16"/>
<wire x1="67.9" y1="30.9" x2="67.1" y2="31.7" width="0.3048" layer="16"/>
<wire x1="67.1" y1="31.7" x2="52.6" y2="31.7" width="0.3048" layer="16"/>
<wire x1="52.6" y1="31.7" x2="52.2" y2="31.3" width="0.3048" layer="16"/>
<wire x1="52.2" y1="31.3" x2="52.2" y2="31.1" width="0.3048" layer="16"/>
<wire x1="52.2" y1="31.1" x2="51.9" y2="30.8" width="0.3048" layer="16"/>
<wire x1="51.9" y1="30.8" x2="50.6" y2="30.8" width="0.3048" layer="16"/>
<wire x1="50.6" y1="30.8" x2="50" y2="31.4" width="0.3048" layer="16"/>
<wire x1="50" y1="31.4" x2="47.8" y2="31.4" width="0.3048" layer="16"/>
<wire x1="47.8" y1="31.4" x2="47.4" y2="31.8" width="0.3048" layer="16"/>
<via x="47.4" y="31.8" extent="1-16" drill="0.6"/>
<wire x1="47.4" y1="31.8" x2="47.4" y2="32.2" width="0.3048" layer="1"/>
<wire x1="47.4" y1="32.2" x2="47.8" y2="32.6" width="0.3048" layer="1"/>
<wire x1="47.8" y1="32.6" x2="47.8" y2="34.055" width="0.3048" layer="1"/>
<wire x1="47.8" y1="34.055" x2="47.785" y2="34.07" width="0.3048" layer="1"/>
</signal>
<signal name="PPS_U">
<contactref element="UBLOX-NEO8" pad="3"/>
<contactref element="U$2" pad="12"/>
<contactref element="R21E1" pad="2"/>
<wire x1="49.1" y1="31.116" x2="49.1" y2="34.025" width="0.3048" layer="1"/>
<wire x1="49.1" y1="34.025" x2="49.055" y2="34.07" width="0.3048" layer="1"/>
<wire x1="49.1" y1="31.116" x2="49.684" y2="31.116" width="0.3048" layer="1"/>
<wire x1="49.684" y1="31.116" x2="50.4" y2="30.4" width="0.3048" layer="1"/>
<wire x1="50.4" y1="30.4" x2="50.4" y2="29.1" width="0.3048" layer="1"/>
<wire x1="50.4" y1="29.1" x2="51.5" y2="28" width="0.3048" layer="1"/>
<wire x1="51.5" y1="28" x2="54.75" y2="28" width="0.3048" layer="1"/>
<wire x1="54.75" y1="28" x2="54.76" y2="28.01" width="0.3048" layer="1"/>
</signal>
<signal name="N$4">
<via x="48.9" y="67.8" extent="1-16" drill="0.6"/>
<via x="49.1" y="67.5" extent="1-16" drill="0.6"/>
<wire x1="49.1" y1="67.5" x2="48.9" y2="67.8" width="0" layer="19" extent="1-1"/>
<via x="49" y="67.7" extent="1-16" drill="0.6"/>
<wire x1="49" y1="67.7" x2="49.1" y2="67.5" width="0" layer="19" extent="1-1"/>
<via x="48.6" y="67.7" extent="1-16" drill="0.6"/>
<via x="48.9" y="67.4" extent="1-16" drill="0.6"/>
<wire x1="48.9" y1="67.4" x2="48.6" y2="67.7" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="GND-ADE900">
<polygon width="0.6096" layer="1" isolate="0.6096">
<vertex x="67.7" y="100"/>
<vertex x="67.7" y="71.8"/>
<vertex x="67.9" y="71.6"/>
<vertex x="69.3" y="71.6"/>
<vertex x="74.1" y="66.8"/>
<vertex x="78.4" y="66.8"/>
<vertex x="78.8" y="66.4"/>
<vertex x="78.8" y="60.3"/>
<vertex x="80.3" y="58.8"/>
<vertex x="80.6" y="58.8"/>
<vertex x="88.8" y="50.6"/>
<vertex x="145.8" y="50.6"/>
<vertex x="146.1" y="50.9"/>
<vertex x="146.1" y="99.9"/>
<vertex x="146" y="100"/>
</polygon>
<polygon width="0.4064" layer="16" isolate="0.6096">
<vertex x="67.6" y="99.8"/>
<vertex x="68.2" y="71.3"/>
<vertex x="73.1" y="66.4"/>
<vertex x="78.1" y="66.4"/>
<vertex x="78.2" y="66.3"/>
<vertex x="78.2" y="60.3"/>
<vertex x="79.7" y="58.8"/>
<vertex x="80" y="58.8"/>
<vertex x="87.9" y="50.9"/>
<vertex x="146.6" y="50.9"/>
<vertex x="147.1" y="51.4"/>
<vertex x="147.1" y="100.1"/>
<vertex x="147" y="100.2"/>
<vertex x="68.4" y="100.1"/>
<vertex x="68" y="100"/>
</polygon>
</signal>
<signal name="N$48">
</signal>
<signal name="N$52">
</signal>
<signal name="N$54">
</signal>
<signal name="N$55">
</signal>
<signal name="N$56">
</signal>
<signal name="N$57">
</signal>
<signal name="N$58">
</signal>
<signal name="N$59">
</signal>
<signal name="N$60">
</signal>
<signal name="N$61">
</signal>
<signal name="N$62">
</signal>
<signal name="N$63">
</signal>
<signal name="N$64">
</signal>
<signal name="N$65">
</signal>
<signal name="N$66">
</signal>
<signal name="N$67">
</signal>
<signal name="N$68">
</signal>
<signal name="N$69">
</signal>
<signal name="N$70">
</signal>
<signal name="N$71">
</signal>
<signal name="N$72">
</signal>
<signal name="N$73">
</signal>
<signal name="N$74">
</signal>
<signal name="N$75">
</signal>
<signal name="N$76">
</signal>
<signal name="N$77">
</signal>
<signal name="N$78">
</signal>
<signal name="N$80">
</signal>
<signal name="N$81">
</signal>
<signal name="N$82">
</signal>
<signal name="N$83">
</signal>
<signal name="N$84">
</signal>
<signal name="N$85">
</signal>
<signal name="N$87">
</signal>
<signal name="N$91">
</signal>
<signal name="N$93">
</signal>
<signal name="N$94">
</signal>
<signal name="N$95">
</signal>
<signal name="N$96">
</signal>
<signal name="N$97">
</signal>
<signal name="N$98">
</signal>
<signal name="N$99">
</signal>
<signal name="N$100">
</signal>
<signal name="N$101">
</signal>
<signal name="N$102">
</signal>
<signal name="N$103">
</signal>
<signal name="N$104">
</signal>
<signal name="N$105">
</signal>
<signal name="N$106">
</signal>
<signal name="N$107">
</signal>
<signal name="N$108">
</signal>
<signal name="N$109">
</signal>
<signal name="N$110">
</signal>
<signal name="N$111">
</signal>
<signal name="N$112">
</signal>
<signal name="N$113">
</signal>
<signal name="N$114">
</signal>
<signal name="N$115">
</signal>
<signal name="N$116">
<wire x1="135.9" y1="28.4" x2="141.75" y2="28.4" width="0.8128" layer="1"/>
<wire x1="141.75" y1="28.4" x2="141.825" y2="28.475" width="0.8128" layer="1"/>
</signal>
<signal name="N$118">
</signal>
<signal name="N$121">
</signal>
<signal name="N$122">
</signal>
<signal name="N$123">
</signal>
<signal name="N$124">
</signal>
<signal name="N$44">
</signal>
<signal name="N$125">
</signal>
<signal name="N$126">
</signal>
<signal name="N$127">
</signal>
<signal name="N$23">
</signal>
<signal name="N$24">
</signal>
<signal name="N$128">
</signal>
<signal name="N$130">
</signal>
<signal name="N$131">
</signal>
<signal name="N$132">
</signal>
<signal name="N$133">
</signal>
<signal name="N$141">
</signal>
<signal name="N$143">
</signal>
<signal name="N$144">
</signal>
<signal name="N$176">
</signal>
<signal name="N$177">
</signal>
<signal name="N$190">
</signal>
<signal name="N$195">
</signal>
<signal name="N$196">
</signal>
<signal name="N$197">
</signal>
<signal name="N$198">
</signal>
<signal name="N$199">
</signal>
<signal name="N$206">
</signal>
<signal name="N$207">
</signal>
<signal name="N$208">
</signal>
<signal name="N$209">
</signal>
<signal name="N$210">
</signal>
<signal name="N$216">
</signal>
<signal name="N$7">
<contactref element="R21E1" pad="1"/>
<contactref element="PPS-LED1" pad="2"/>
<wire x1="45.6" y1="28.27" x2="46.7" y2="28.3" width="0.3048" layer="1"/>
<wire x1="46.7" y1="28.3" x2="48.9" y2="28.3" width="0.3048" layer="1"/>
<wire x1="48.9" y1="28.3" x2="49.1" y2="29.084" width="0.3048" layer="1"/>
</signal>
<signal name="+3V3-TIME">
<contactref element="U$2" pad="7"/>
<contactref element="C40U" pad="1"/>
<contactref element="C41U" pad="1"/>
<contactref element="U$2" pad="1"/>
<contactref element="JP2" pad="9"/>
<wire x1="54.135" y1="43.645" x2="54.2" y2="46" width="0.6096" layer="1"/>
<wire x1="54.2" y1="46" x2="52.08" y2="48.05" width="0.6096" layer="1"/>
<wire x1="56.395" y1="46.01" x2="54.2" y2="46" width="0.6096" layer="1"/>
<wire x1="56.395" y1="46.01" x2="58.345" y2="45.99" width="0.6096" layer="1"/>
<wire x1="52.08" y1="48.05" x2="52.08" y2="47.38" width="0.4064" layer="16"/>
<wire x1="52.08" y1="47.38" x2="50.1" y2="45.4" width="0.4064" layer="16"/>
<wire x1="50.1" y1="45.4" x2="48.6" y2="45.4" width="0.4064" layer="16"/>
<wire x1="48.6" y1="45.4" x2="48.2" y2="45" width="0.4064" layer="16"/>
<wire x1="48.2" y1="45" x2="46.5" y2="45" width="0.4064" layer="16"/>
<wire x1="46.5" y1="45" x2="45.5" y2="46" width="0.4064" layer="16"/>
<via x="45.5" y="46" extent="1-16" drill="0.6"/>
<wire x1="45.5" y1="46" x2="46.6" y2="44.9" width="0.4064" layer="1"/>
<wire x1="46.6" y1="44.9" x2="46.6" y2="43.73" width="0.4064" layer="1"/>
<wire x1="46.6" y1="43.73" x2="46.515" y2="43.645" width="0.4064" layer="1"/>
</signal>
<signal name="AGND-TIME">
<contactref element="U$2" pad="2"/>
<contactref element="C40U" pad="2"/>
<contactref element="C41U" pad="2"/>
<contactref element="U$2" pad="8"/>
<contactref element="JP2" pad="7"/>
<wire x1="58.345" y1="47.89" x2="56.395" y2="47.91" width="0.6096" layer="1"/>
<wire x1="52.865" y1="43.645" x2="52.9" y2="45.1" width="0.6096" layer="1"/>
<wire x1="52.9" y1="45.1" x2="52" y2="46" width="0.6096" layer="1"/>
<wire x1="52" y1="46" x2="50.5" y2="46" width="0.6096" layer="1"/>
<wire x1="50.5" y1="46" x2="49.54" y2="48.05" width="0.6096" layer="1"/>
<wire x1="56.395" y1="47.91" x2="55.1" y2="49.3" width="0.4064" layer="1"/>
<wire x1="55.1" y1="49.3" x2="53.9" y2="49.3" width="0.4064" layer="1"/>
<wire x1="53.9" y1="49.3" x2="50.6" y2="49.3" width="0.4064" layer="1"/>
<wire x1="50.6" y1="49.3" x2="49.54" y2="48.05" width="0.4064" layer="1"/>
<wire x1="50.5" y1="46" x2="50.5" y2="46.2" width="0.254" layer="1"/>
<wire x1="50.5" y1="46.2" x2="50.1" y2="46.6" width="0.254" layer="1"/>
<wire x1="50.1" y1="46.6" x2="50.1" y2="47.1" width="0.254" layer="1"/>
<wire x1="50.1" y1="47.1" x2="50" y2="47.2" width="0.254" layer="1"/>
<wire x1="50" y1="47.2" x2="50" y2="47.6" width="0.254" layer="1"/>
<wire x1="50" y1="47.6" x2="49.5" y2="48.1" width="0.254" layer="1"/>
<wire x1="49.5" y1="48.1" x2="49.5" y2="48.2" width="0.254" layer="1"/>
<wire x1="49.5" y1="48.2" x2="50.6" y2="49.3" width="0.254" layer="1"/>
<wire x1="53.9" y1="49.3" x2="53.9" y2="52" width="0.4064" layer="1"/>
<wire x1="53.9" y1="52" x2="53.3" y2="52.6" width="0.4064" layer="1"/>
<wire x1="53.3" y1="52.6" x2="46.5" y2="52.6" width="0.4064" layer="1"/>
<wire x1="46.5" y1="52.6" x2="45.7" y2="51.7" width="0.4064" layer="1"/>
<wire x1="45.7" y1="51.7" x2="45.7" y2="47.4" width="0.4064" layer="1"/>
<wire x1="45.7" y1="47.4" x2="44.3" y2="46.3" width="0.4064" layer="1"/>
<wire x1="44.3" y1="46.3" x2="44.3" y2="45.7" width="0.4064" layer="1"/>
<wire x1="44.3" y1="45.7" x2="45.2" y2="44.8" width="0.4064" layer="1"/>
<wire x1="45.2" y1="44.8" x2="45.2" y2="43.69" width="0.4064" layer="1"/>
<wire x1="45.2" y1="43.69" x2="45.245" y2="43.645" width="0.4064" layer="1"/>
<via x="57.6" y="51.3" extent="1-16" drill="0.6"/>
<via x="54.1" y="48" extent="1-16" drill="0.6"/>
<via x="57.5" y="43.6" extent="1-16" drill="0.6"/>
<via x="42" y="43.9" extent="1-16" drill="0.6"/>
<polygon width="0.4064" layer="1" isolate="0.6096">
<vertex x="40.1" y="53.4"/>
<vertex x="40.1" y="41.3"/>
<vertex x="40.3" y="41"/>
<vertex x="70.9" y="41"/>
<vertex x="70.9" y="42.5"/>
<vertex x="59.4" y="53.9"/>
<vertex x="40" y="54.1"/>
</polygon>
<polygon width="0.4064" layer="16" isolate="0.6096">
<vertex x="40.1" y="54.1"/>
<vertex x="40.1" y="41.4"/>
<vertex x="40.3" y="41.2"/>
<vertex x="70.6" y="41.1"/>
<vertex x="71" y="41.1"/>
<vertex x="71" y="42.3"/>
<vertex x="59.4" y="53.9"/>
<vertex x="40.6" y="54.1"/>
</polygon>
</signal>
<signal name="ADUM-PPS-TIME">
<contactref element="U$2" pad="5"/>
<contactref element="JP2" pad="8"/>
<wire x1="49.055" y1="43.645" x2="49.1" y2="44.9" width="0.4064" layer="1"/>
<wire x1="49.1" y1="44.9" x2="48.4" y2="45.7" width="0.4064" layer="1"/>
<wire x1="48.4" y1="45.7" x2="47.7" y2="46.1" width="0.4064" layer="1"/>
<via x="47.7" y="46.1" extent="1-16" drill="0.6"/>
<wire x1="47.7" y1="46.1" x2="48.3" y2="46.7" width="0.4064" layer="16"/>
<wire x1="48.3" y1="46.7" x2="48.3" y2="49.1" width="0.4064" layer="16"/>
<wire x1="48.3" y1="49.1" x2="49.54" y2="50.59" width="0.4064" layer="16"/>
</signal>
<signal name="ADUM-TXD1-TIME">
<contactref element="U$2" pad="4"/>
<contactref element="JP2" pad="6"/>
<wire x1="50.325" y1="43.645" x2="50.3" y2="45.1" width="0.4064" layer="1"/>
<wire x1="50.3" y1="45.1" x2="48.3" y2="47.1" width="0.4064" layer="1"/>
<wire x1="48.3" y1="47.1" x2="48.3" y2="49.3" width="0.4064" layer="1"/>
<wire x1="48.3" y1="49.3" x2="47" y2="50.59" width="0.4064" layer="1"/>
</signal>
<signal name="ADUM


text:
-RXD1-TIME">
<contactref element="U$2" pad="6"/>
<contactref element="JP2" pad="5"/>
<wire x1="47.785" y1="43.645" x2="47.8" y2="44.9" width="0.4064" layer="1"/>
<wire x1="47.8" y1="44.9" x2="47" y2="45.4" width="0.4064" layer="1"/>
<wire x1="47" y1="45.4" x2="46.7" y2="45.7" width="0.4064" layer="1"/>
<wire x1="46.7" y1="45.7" x2="46.7" y2="46.4" width="0.4064" layer="1"/>
<wire x1="46.7" y1="46.4" x2="47" y2="46.8" width="0.4064" layer="1"/>
<wire x1="47" y1="46.8" x2="47" y2="48.05" width="0.4064" layer="1"/>
</signal>
<signal name="SS_LORA">
<contactref element="U$6" pad="A5"/>
<wire x1="23.3" y1="55.6" x2="23.3" y2="61.35" width="0.3048" layer="1"/>
<contactref element="JP3" pad="10"/>
<wire x1="23.3" y1="61.35" x2="23.3" y2="61.6" width="0.254" layer="1"/>
<wire x1="23.3" y1="61.6" x2="23.6" y2="61.9" width="0.254" layer="1"/>
<wire x1="23.6" y1="61.9" x2="23.6" y2="64.09" width="0.254" layer="1"/>
<wire x1="23.6" y1="64.09" x2="24.9" y2="65.39" width="0.254" layer="1"/>
</signal>
<signal name="SCLK_LORA">
<contactref element="U$6" pad="A4"/>
<wire x1="25.3" y1="55.6" x2="25.5" y2="55.6" width="0.3048" layer="1"/>
<wire x1="25.3" y1="55.6" x2="25.3" y2="59.1" width="0.3048" layer="1"/>
<wire x1="25.3" y1="59.1" x2="26.1" y2="60" width="0.3048" layer="1"/>
<wire x1="26.1" y1="60" x2="26.1" y2="61.55" width="0.3048" layer="1"/>
<contactref element="JP3" pad="11"/>
<wire x1="26.1" y1="61.55" x2="26.14" y2="61.55" width="0.254" layer="1"/>
<wire x1="26.14" y1="61.55" x2="27.44" y2="62.85" width="0.254" layer="1"/>
</signal>
<signal name="MOSI_LORA">
<contactref element="U$6" pad="A3"/>
<wire x1="27.24" y1="60.96" x2="27.2" y2="60.9" width="0.3048" layer="1"/>
<wire x1="27.2" y1="60.9" x2="27.2" y2="55.7" width="0.3048" layer="1"/>
<wire x1="27.2" y1="55.7" x2="27.3" y2="55.6" width="0.3048" layer="1"/>
<contactref element="JP3" pad="12"/>
<wire x1="27.24" y1="60.96" x2="27.26" y2="60.96" width="0.3048" layer="1"/>
<wire x1="27.26" y1="60.96" x2="27.4" y2="61.1" width="0.3048" layer="1"/>
<wire x1="27.4" y1="61.1" x2="28.2" y2="61.1" width="0.3048" layer="1"/>
<wire x1="28.2" y1="61.1" x2="28.7" y2="61.6" width="0.3048" layer="1"/>
<wire x1="28.7" y1="61.6" x2="28.7" y2="64.13" width="0.3048" layer="1"/>
<wire x1="28.7" y1="64.13" x2="27.44" y2="65.39" width="0.3048" layer="1"/>
</signal>
<signal name="MISO_LORA">
<contactref element="U$6" pad="A2"/>
<wire x1="19.82" y1="65.42" x2="21" y2="64.1" width="0.3048" layer="16"/>
<wire x1="21" y1="64.1" x2="28.3" y2="64.1" width="0.3048" layer="16"/>
<wire x1="28.3" y1="64.1" x2="28.7" y2="63.7" width="0.3048" layer="16"/>
<wire x1="28.7" y1="63.7" x2="28.7" y2="59.1" width="0.3048" layer="16"/>
<via x="28.7" y="59.1" extent="1-16" drill="0.6"/>
<wire x1="28.7" y1="59.1" x2="29.4" y2="57.9" width="0.3048" layer="1"/>
<wire x1="29.4" y1="57.9" x2="29.4" y2="55.7" width="0.3048" layer="1"/>
<wire x1="29.4" y1="55.7" x2="29.3" y2="55.6" width="0.3048" layer="1"/>
<contactref element="JP3" pad="6"/>
<wire x1="19.82" y1="65.39" x2="19.82" y2="65.42" width="0" layer="19" extent="16-16"/>
</signal>
<signal name="RESET_LORA">
<contactref element="U$6" pad="A6"/>
<wire x1="21.3" y1="55.6" x2="21.3" y2="57.3" width="0.3048" layer="1"/>
<wire x1="21.3" y1="57.3" x2="19.8" y2="59.9" width="0.3048" layer="1"/>
<wire x1="19.8" y1="59.9" x2="19.8" y2="62.71" width="0.3048" layer="1"/>
<contactref element="JP3" pad="5"/>
<wire x1="19.8" y1="62.71" x2="19.82" y2="62.85" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="DIO0_LORA">
<contactref element="U$6" pad="B3"/>
<wire x1="27.3" y1="40.6" x2="27.3" y2="37.9" width="0.3048" layer="1"/>
<via x="27.3" y="37.9" extent="1-16" drill="0.6"/>
<wire x1="27.3" y1="37.9" x2="27.3" y2="53.4" width="0.3048" layer="16"/>
<wire x1="27.3" y1="53.4" x2="22.7" y2="57.8" width="0.3048" layer="16"/>
<wire x1="22.7" y1="57.8" x2="21.6" y2="58.81" width="0.3048" layer="16"/>
<contactref element="JP3" pad="8"/>
<wire x1="21.6" y1="58.81" x2="21.59" y2="58.81" width="0.3048" layer="16"/>
<wire x1="21.59" y1="58.81" x2="21.4" y2="59" width="0.3048" layer="16"/>
<wire x1="21.4" y1="59" x2="21.4" y2="60" width="0.3048" layer="16"/>
<via x="21.4" y="60" extent="1-16" drill="0.6"/>
<wire x1="21.4" y1="60" x2="21.4" y2="61" width="0.3048" layer="1"/>
<wire x1="21.4" y1="61" x2="21.2" y2="61.2" width="0.3048" layer="1"/>
<wire x1="21.2" y1="61.2" x2="21.1" y2="61.3" width="0.254" layer="1"/>
<wire x1="21.1" y1="61.3" x2="21.1" y2="64.13" width="0.254" layer="1"/>
<wire x1="21.1" y1="64.13" x2="22.36" y2="65.39" width="0.254" layer="1"/>
</signal>
<signal name="N$27">
<contactref element="U$6" pad="B8"/>
<contactref element="X4" pad="3"/>
<contactref element="LSP1" pad="MP"/>
<wire x1="17.3" y1="40.6" x2="17.3" y2="40" width="0.3048" layer="1"/>
<wire x1="17.3" y1="40" x2="17.5" y2="39.8" width="0.3048" layer="1"/>
<wire x1="17.5" y1="39.8" x2="17.5" y2="35.3" width="0.6096" layer="1"/>
<wire x1="17.5" y1="35.3" x2="17.4" y2="35.2" width="0.6096" layer="1"/>
<wire x1="17.4" y1="35.2" x2="19.175" y2="35.2" width="0.6096" layer="1"/>
<wire x1="19.175" y1="35.2" x2="19.575" y2="35.6" width="0.6096" layer="1"/>
</signal>
<signal name="DIO1_LORA">
<contactref element="U$6" pad="B2"/>
<wire x1="29.3" y1="40.6" x2="29.3" y2="40.4" width="0.3048" layer="1"/>
<wire x1="29.3" y1="40.4" x2="29.4" y2="40.3" width="0.3048" layer="1"/>
<wire x1="29.4" y1="40.3" x2="29.4" y2="37.2" width="0.3048" layer="1"/>
<wire x1="29.4" y1="37.2" x2="28.5" y2="36.3" width="0.3048" layer="1"/>
<wire x1="28.5" y1="36.3" x2="25.7" y2="36.3" width="0.3048" layer="1"/>
<wire x1="25.7" y1="36.3" x2="25.6" y2="36.2" width="0.3048" layer="1"/>
<via x="25.6" y="36.2" extent="1-16" drill="0.6"/>
<wire x1="25.6" y1="36.2" x2="25.6" y2="53.1" width="0.3048" layer="16"/>
<wire x1="25.6" y1="53.1" x2="18.6" y2="60.1" width="0.3048" layer="16"/>
<wire x1="18.6" y1="60.1" x2="18.6" y2="60.07" width="0.3048" layer="16"/>
<contactref element="JP3" pad="3"/>
<wire x1="18.6" y1="60.1" x2="17.4" y2="61.3" width="0.3048" layer="16"/>
<wire x1="17.4" y1="61.3" x2="17.4" y2="62.73" width="0.254" layer="16"/>
<wire x1="17.4" y1="62.73" x2="17.28" y2="62.85" width="0.254" layer="16"/>
</signal>
<signal name="+3V3-LORA">
<contactref element="JP3" pad="15"/>
<contactref element="C27" pad="1"/>
<contactref element="U$6" pad="B4"/>
<contactref element="C41U1" pad="1"/>
<wire x1="25.3" y1="40.6" x2="25.3" y2="38.1" width="0.6096" layer="1"/>
<wire x1="25.3" y1="38.1" x2="24.3" y2="37.1" width="0.6096" layer="1"/>
<wire x1="24.3" y1="37.1" x2="24.3" y2="35.5" width="0.6096" layer="1"/>
<wire x1="24.3" y1="35.5" x2="25" y2="34.8" width="0.6096" layer="1"/>
<wire x1="25" y1="34.8" x2="26.3" y2="34.8" width="0.6096" layer="1"/>
<wire x1="26.3" y1="34.8" x2="26.9" y2="35.4" width="0.6096" layer="1"/>
<wire x1="26.9" y1="35.4" x2="29.1" y2="35.4" width="0.6096" layer="1"/>
<wire x1="29.1" y1="35.4" x2="30.4" y2="36.7" width="0.6096" layer="1"/>
<wire x1="30.4" y1="36.7" x2="30.4" y2="37.5" width="0.6096" layer="1"/>
<wire x1="30.4" y1="37.5" x2="30.8" y2="37.9" width="0.6096" layer="1"/>
<wire x1="30.8" y1="37.9" x2="33.9" y2="37.9" width="0.6096" layer="1"/>
<wire x1="33.9" y1="37.9" x2="35.6" y2="40.5" width="0.6096" layer="1"/>
<wire x1="35.6" y1="40.5" x2="35.6" y2="46.9" width="0.6096" layer="1"/>
<wire x1="35.6" y1="46.9" x2="35.6" y2="53.3" width="0.6096" layer="1"/>
<wire x1="35.6" y1="53.3" x2="35.6" y2="56.9" width="0.6096" layer="1"/>
<wire x1="35.6" y1="56.9" x2="32.6" y2="61.6" width="0.6096" layer="1"/>
<wire x1="32.6" y1="61.6" x2="32.6" y2="62.77" width="0.6096" layer="1"/>
<wire x1="32.6" y1="62.77" x2="32.52" y2="62.85" width="0.6096" layer="1"/>
<wire x1="33.7" y1="52.85" x2="34.75" y2="52.85" width="0.6096" layer="1"/>
<wire x1="34.75" y1="52.85" x2="35.6" y2="53.3" width="0.6096" layer="1"/>
<wire x1="33.7" y1="46.95" x2="35.15" y2="46.95" width="0.6096" layer="1"/>
<wire x1="35.15" y1="46.95" x2="35.6" y2="46.9" width="0.6096" layer="1"/>
<contactref element="JP3" pad="16"/>
<wire x1="32.52" y1="62.85" x2="32.52" y2="65.39" width="0.3048" layer="1"/>
</signal>
<signal name="AGND-LORA">
<contactref element="JP3" pad="13"/>
<contactref element="U$6" pad="A8"/>
<contactref element="U$6" pad="A1"/>
<contactref element="X4" pad="1"/>
<contactref element="X4" pad="2"/>
<contactref element="U$6" pad="B7"/>
<contactref element="C27" pad="2"/>
<contactref element="C41U1" pad="2"/>
<wire x1="17.3" y1="55.6" x2="17.3" y2="50.5" width="0.6096" layer="1"/>
<wire x1="17.3" y1="50.5" x2="19.2" y2="48.6" width="0.6096" layer="1"/>
<wire x1="19.2" y1="48.6" x2="19.2" y2="48" width="0.6096" layer="1"/>
<wire x1="19.2" y1="48" x2="19.2" y2="40.7" width="0.6096" layer="1"/>
<wire x1="19.2" y1="40.7" x2="19.3" y2="40.6" width="0.6096" layer="1"/>
<wire x1="31.3" y1="55.6" x2="31.3" y2="51.1" width="0.6096" layer="1"/>
<wire x1="31.3" y1="51.1" x2="31.3" y2="50.7" width="0.6096" layer="1"/>
<wire x1="31.3" y1="50.7" x2="29.1" y2="48.5" width="0.6096" layer="1"/>
<wire x1="29.1" y1="48.5" x2="19.7" y2="48.5" width="0.6096" layer="1"/>
<wire x1="19.7" y1="48.5" x2="19.2" y2="48" width="0.6096" layer="1"/>
<wire x1="33.7" y1="48.85" x2="33.7" y2="50.95" width="0.6096" layer="1"/>
<wire x1="33.7" y1="50.95" x2="31.45" y2="50.95" width="0.6096" layer="1"/>
<wire x1="31.45" y1="50.95" x2="31.3" y2="51.1" width="0.6096" layer="1"/>
<wire x1="21.1" y1="36.975" x2="20.525" y2="36.975" width="0.6096" layer="1"/>
<wire x1="20.525" y1="36.975" x2="19.5" y2="38" width="0.6096" layer="1"/>
<wire x1="19.5" y1="38" x2="19.5" y2="40.4" width="0.6096" layer="1"/>
<wire x1="19.5" y1="40.4" x2="19.3" y2="40.6" width="0.6096" layer="1"/>
<wire x1="21.1" y1="36.975" x2="22.525" y2="36.975" width="0.6096" layer="1"/>
<wire x1="22.525" y1="36.975" x2="22.8" y2="36.7" width="0.6096" layer="1"/>
<wire x1="22.8" y1="36.7" x2="22.8" y2="34.6" width="0.6096" layer="1"/>
<wire x1="22.8" y1="34.6" x2="22.7" y2="34.5" width="0.6096" layer="1"/>
<wire x1="22.7" y1="34.5" x2="21.375" y2="34.5" width="0.6096" layer="1"/>
<wire x1="21.375" y1="34.5" x2="21.1" y2="34.225" width="0.6096" layer="1"/>
<wire x1="31.3" y1="55.6" x2="31.3" y2="59.6" width="0.6096" layer="1"/>
<wire x1="31.3" y1="59.6" x2="30.1" y2="60.8" width="0.6096" layer="1"/>
<wire x1="30.1" y1="60.8" x2="30.1" y2="62.73" width="0.6096" layer="1"/>
<wire x1="30.1" y1="62.73" x2="29.98" y2="62.85" width="0.6096" layer="1"/>
<contactref element="JP3" pad="14"/>
<wire x1="29.98" y1="62.85" x2="29.98" y2="65.39" width="0.3048" layer="1"/>
<via x="15.8" y="37.4" extent="1-16" drill="0.6"/>
<via x="14.7" y="36" extent="1-16" drill="0.6"/>
<via x="15" y="34.2" extent="1-16" drill="0.6"/>
<via x="24" y="34" extent="1-16" drill="0.6"/>
<via x="36" y="37" extent="1-16" drill="0.6"/>
<via x="33.9" y="43.3" extent="1-16" drill="0.6"/>
<via x="29.6" y="45.5" extent="1-16" drill="0.6"/>
<via x="21" y="44.4" extent="1-16" drill="0.6"/>
<via x="23.4" y="51" extent="1-16" drill="0.6"/>
<via x="17.3" y="43.9" extent="1-16" drill="0.6"/>
<via x="15.7" y="43.2" extent="1-16" drill="0.6"/>
<via x="15.3" y="40.9" extent="1-16" drill="0.6"/>
<via x="15" y="39" extent="1-16" drill="0.6"/>
<via x="13.9" y="54.1" extent="1-16" drill="0.6"/>
<via x="19.3" y="52.1" extent="1-16" drill="0.6"/>
<via x="29.5" y="51.8" extent="1-16" drill="0.6"/>
<via x="23.9" y="46.9" extent="1-16" drill="0.6"/>
<via x="13.8" y="48.2" extent="1-16" drill="0.6"/>
<via x="14.5" y="59.1" extent="1-16" drill="0.6"/>
<via x="36.4" y="60" extent="1-16" drill="0.6"/>
<via x="33.8" y="57.3" extent="1-16" drill="0.6"/>
<via x="17.8" y="58.7" extent="1-16" drill="0.6"/>
<via x="32.2" y="34.7" extent="1-16" drill="0.6"/>
<via x="37.5" y="50" extent="1-16" drill="0.6"/>
<polygon width="0.4064" layer="16" isolate="0.6096">
<vertex x="12.2" y="69.3"/>
<vertex x="38.6" y="69.3"/>
<vertex x="38.5" y="13.5"/>
<vertex x="24.5" y="13.5"/>
<vertex x="24.7" y="33.1"/>
<vertex x="24.3" y="33.3"/>
<vertex x="11.6" y="33.3"/>
<vertex x="11.6" y="68.8"/>
<vertex x="11.5" y="69.1"/>
</polygon>
<polygon width="0.4064" layer="1" isolate="0.6096">
<vertex x="11.6" y="69.4"/>
<vertex x="11.6" y="33.6"/>
<vertex x="11.7" y="33.5"/>
<vertex x="24.1" y="33.5"/>
<vertex x="24.5" y="33.1"/>
<vertex x="24.5" y="13.8"/>
<vertex x="24.8" y="13.5"/>
<vertex x="38.3" y="13.5"/>
<vertex x="38.5" y="13.7"/>
<vertex x="38.5" y="69.1"/>
<vertex x="38.7" y="69.3"/>
<vertex x="11.7" y="69.3"/>
</polygon>
<wire x1="22.8" y1="34.6" x2="24" y2="34" width="0" layer="19" extent="1-1"/>
</signal>
<signal name="N$22">
</signal>
<signal name="N$36">
<wire x1="104.3" y1="67.2" x2="104.3" y2="66" width="0.3048" layer="1"/>
</signal>
<signal name="N$37">
<wire x1="104.8" y1="67.4" x2="104.8" y2="66.2" width="0.3048" layer="1"/>
<wire x1="104.8" y1="66.2" x2="104.7" y2="66.1" width="0.3048" layer="1"/>
</signal>
<signal name="N$49">
<wire x1="98.9" y1="63.8" x2="103.4" y2="63.8" width="0.254" layer="16"/>
</signal>
<signal name="N$79">
<wire x1="92.7" y1="58.9" x2="93.7" y2="58.4" width="0.6096" layer="1"/>
</signal>
<signal name="N$53">
<wire x1="85.5" y1="65.1" x2="86.5" y2="65.1" width="0.6096" layer="1"/>
<wire x1="86.5" y1="65.1" x2="86.5" y2="65.2" width="0.6096" layer="1"/>
</signal>
<signal name="N$88">
<wire x1="85.6" y1="68.4" x2="85" y2="68.4" width="0.3048" layer="1"/>
<wire x1="85" y1="68.4" x2="84.2" y2="67.6" width="0.3048" layer="1"/>
<wire x1="84.2" y1="67.6" x2="84.2" y2="63.8" width="0.3048" layer="1"/>
<wire x1="84.2" y1="63.8" x2="84.7" y2="63.3" width="0.3048" layer="1"/>
<wire x1="84.7" y1="63.3" x2="85.8" y2="63.3" width="0.3048" layer="1"/>
<wire x1="85.8" y1="63.3" x2="86" y2="63.1" width="0.3048" layer="1"/>
</signal>
<signal name="N$117">
<wire x1="133.8" y1="29.3" x2="133.8" y2="28.3" width="0.6096" layer="16"/>
<wire x1="133.8" y1="28.3" x2="133.7" y2="28.2" width="0.6096" layer="16"/>
</signal>
<signal name="N$9">
<wire x1="4.4" y1="66.7" x2="7" y2="66.7" width="0.3048" layer="16"/>
<wire x1="7" y1="66.7" x2="7.5" y2="67.2" width="0.3048" layer="16"/>
<wire x1="7.5" y1="67.2" x2="7.5" y2="69.6" width="0.3048" layer="16"/>
</signal>
<signal name="N$10">
<wire x1="32.5" y1="82.4" x2="32.5" y2="80.2" width="0.6096" layer="1"/>
<wire x1="32.5" y1="80.2" x2="32.4" y2="80.1" width="0.6096" layer="1"/>
</signal>
</signals>
</board>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
</compatibility>
</eagle>

license: MIT

license_type: permissive

branch_name: refs/heads/master

extension: brd


text:
// Copyright 2015 realglobe, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package validator

import (
	"errors"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"

	"github.com/miyazakijunichi/gojsonschema"
	"github.com/realglobe-Inc/go-lib/rglog"
)

type XAPISchema map[XAPIVersion]map[string]*gojsonschema.Schema

var (
	logger = rglog.Logger("XAPI/validator/validator")
	schema = &XAPISchema{}
)

func (s *XAPISchema) Get(version XAPIVersion, name string) *gojsonschema.Schema {
	return (*s)[version][name]
}

func GetXAPISchemaInstance() *XAPISchema {
	return schema
}

func init() {
	var err error

	var schemaPathV10x string
	gopath := os.Getenv("GOPATH")
	if len(gopath) != 0 {
		schemaPathV10x = gopath + "/src/github.com/realglobe-Inc/edo-xrs/jsonschema/xapi_1.0.2"
	} else {
		if schemaPathV10x, err = filepath.Abs("jsonschema/xapi_1.0.2"); err != nil {
			logger.Err("Invalid schema-path given: ", err)
			os.Exit(1)
		}
	}

	// JSON Schema をロード
	v10xstatement, err := readSchema(schemaPathV10x + "/statement.json")
	if err != nil {
		logger.Err(err)
		os.Exit(1)
	}
	v10xagent, err := readSchema(schemaPathV10x + "/agent.json")
	if err != nil {
		logger.Err(err)
		os.Exit(1)
	}

	v10xlangmap, err := readSchema(schemaPathV10x + "/langmap.json")
	if err != nil {
		logger.Err(err)
		os.Exit(1)
	}

	(*schema)[XAPIVersion10x] = map[string]*gojsonschema.Schema{
		"statement": v10xstatement,
		"agent":     v10xagent,
		"langmap":   v10xlangmap,
	}
}

// readSchema は与えられたパスの JSON Schema を読み込み、そのインスタンスを返す。
func readSchema(path string) (*gojsonschema.Schema, error) {
	var err error

	bodyText, err := ioutil.ReadFile(path)
	if err != nil {
		return nil, errors.New("Schema file not found: " + err.Error())
	}

	scm, err := gojsonschema.NewSchema(gojsonschema.NewStringLoader(string(bodyText)))

	if err != nil {
		return nil, errors.New("Invalid json-schema given: " + err.Error())
	}

	return scm, nil
}

// validate は与えられた body が kind であることを検査する。
func validate(version XAPIVersion, kind string, body map[string]interface{}) error {
	if s, ok := (*schema)[version]; ok {
		res, err := s[kind].Validate(gojsonschema.NewGoLoader(body))
		if err != nil {
			logger.Warn("Validation error: ", err)
			return err
		}

		if !res.Valid() {
			emessage := "The document is not valid. see errors: \n"

			for _, desc := range res.Errors() {
				emessage += fmt.Sprintf("- %s", desc)
			}
			return errors.New(emessage)
		}
	} else {
		return errors.New("Invalid XAPI version given.")
	}

	return nil
}

// Agent は body により与えられたステートメントの JSON の構造が
// xapiVersion により与えられる XAPIバージョンの正しいエージェントであることを検査する。
// ステートメントが正しくない場合、err != nil となる。
func Agent(version XAPIVersion, body map[string]interface{}) error {
	return validate(version, "agent", body)
}

// Statement は body により与えられたステートメントの JSON の構造が
// xapiVersion により与えられる XAPIバージョンの正しいステートメントであることを検査する。
// ステートメントが正しくない場合、err != nil となる。
func Statement(version XAPIVersion, body map[string]interface{}) error {
	return validate(version, "statement", body)
}

// MultStatement は body により与えられたステートメントの列を検査する。
// 配列の各ステートメントは Statement と同様に検査する。
func MultStatement(version XAPIVersion, body []interface{}) error {

	for _, stmt := range body {
		// ステートメントは必ず map[string]inteface{} の構造をしているので、それ以外はエラーを返す。
		if _, ok := stmt.(map[string]interface{}); !ok {
			return errors.New("The structure of statement doesn't satisfy specification.")
		}

		// Statement を検査。
		// MultStatement では XAPIバージョンのチェックを行っていないが、バージョンが合致しない場合、
		// Statement によりエラーが返されるのため差し障りがない。
		if err := Statement(version, stmt.(map[string]interface{})); err != nil {
			return err
		}
	}

	return nil
}

repository: realglobe-Inc/edo-xrs

repo_name: realglobe-Inc/edo-xrs

gha_language: Go

extension: go