Browse Source

Some revisions.

extract-visca-communication-to-class
Ed Walker 6 years ago
parent
commit
ab61fadd81
5 changed files with 1213 additions and 73 deletions
  1. +1
    -0
      .gitignore
  2. +300
    -58
      EAGLE/VISCAShield.brd
  3. +739
    -12
      EAGLE/VISCAShield.sch
  4. +52
    -0
      visca-controller/visca-controller.h
  5. +121
    -3
      visca-controller/visca-controller.ino

+ 1
- 0
.gitignore View File

@ -1,3 +1,4 @@
.DS_Store
# Ignore list for Eagle, a PCB layout tool
# Backup files


+ 300
- 58
EAGLE/VISCAShield.brd View File

@ -6,7 +6,7 @@
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="50" unitdist="mil" unit="mil" style="lines" multiple="1" display="no" altdistance="5" altunitdist="mil" altunit="mil"/>
<grid distance="25" unitdist="mil" unit="mil" style="lines" multiple="1" display="no" altdistance="5" altunitdist="mil" altunit="mil"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
@ -150,9 +150,9 @@
<board>
<plain>
<wire x1="0" y1="0" x2="54.28" y2="0" width="0" layer="20"/>
<wire x1="54.28" y1="0" x2="54.28" y2="59.68" width="0" layer="20"/>
<wire x1="54.28" y1="59.68" x2="0" y2="59.68" width="0" layer="20"/>
<wire x1="0" y1="59.68" x2="0" y2="0" width="0" layer="20"/>
<wire x1="54.28" y1="0" x2="54.28" y2="63.49" width="0" layer="20"/>
<wire x1="54.28" y1="63.49" x2="0" y2="63.49" width="0" layer="20"/>
<wire x1="0" y1="63.49" x2="0" y2="0" width="0" layer="20"/>
<text x="1.27" y="7.62" size="1.016" layer="25" align="top-left">VISCA Shield
for Cisco
TelePresence
@ -164,7 +164,7 @@ PrecisionHD</text>
<text x="45.72" y="1.27" size="1.778" layer="25" align="bottom-center">- ~ +</text>
<text x="38.1" y="1.27" size="1.778" layer="25" align="bottom-center">- ~ +</text>
<text x="30.48" y="1.27" size="1.778" layer="25" align="bottom-center">- ~ +</text>
<text x="11.43" y="45.72" size="1.778" layer="25" align="bottom-center">- +</text>
<text x="29.21" y="46.99" size="1.778" layer="25" rot="R90" align="top-center">- +</text>
<text x="33.02" y="13.97" size="1.778" layer="25" align="bottom-center">- +</text>
<text x="21.59" y="6.35" size="1.016" layer="25" rot="R270" align="center-left">SDA</text>
<text x="24.13" y="6.35" size="1.016" layer="25" rot="R270" align="center-left">SCL</text>
@ -515,6 +515,136 @@ type 0204, grid 2.5 mm</description>
</package3d>
</packages3d>
</library>
<library name="SparkFun-IC-Comms" urn="urn:adsk.eagle:library:521">
<description>&lt;h3&gt;SparkFun Communication ICs&lt;/h3&gt;
This is the communications library, which contains things that exist on wired busses. This includes USB to serial conversion ICs, like the FTDI line, plus high speed line drivers, level shifters, bus drivers, CAN transceivers and ethernet PHYs.
&lt;br&gt;
&lt;br&gt;
We've spent an enormous amount of time creating and checking these footprints and parts, but it is &lt;b&gt; the end user's responsibility&lt;/b&gt; to ensure correctness and suitablity for a given componet or application.
&lt;br&gt;
&lt;br&gt;If you enjoy using this library, please buy one of our products at &lt;a href=" www.sparkfun.com"&gt;SparkFun.com&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Licensing:&lt;/b&gt; Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/
&lt;br&gt;
&lt;br&gt;
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="SO16" urn="urn:adsk.eagle:footprint:38691/1" library_version="1">
<description>&lt;h3&gt;SOIC-16&lt;/h3&gt;
&lt;p&gt;Specifications:
&lt;ul&gt;&lt;li&gt;Pin count: 16&lt;/li&gt;
&lt;li&gt;Width:0.15"&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Example device(s):
&lt;ul&gt;&lt;li&gt;HEX_CONVERTER&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
<wire x1="4.8768" y1="1.9463" x2="-4.8768" y2="1.9463" width="0.2032" layer="21"/>
<wire x1="4.9768" y1="-1.9463" x2="5.2578" y2="-1.5653" width="0.2032" layer="21" curve="90"/>
<wire x1="-5.2578" y1="1.4653" x2="-4.8768" y2="1.9463" width="0.2032" layer="21" curve="-90.023829"/>
<wire x1="4.8768" y1="1.9463" x2="5.2578" y2="1.5653" width="0.2032" layer="21" curve="-90.030084"/>
<wire x1="-5.2578" y1="-1.6653" x2="-4.8768" y2="-1.9463" width="0.2032" layer="21" curve="90.060185"/>
<wire x1="-4.8768" y1="-1.9463" x2="4.9768" y2="-1.9463" width="0.2032" layer="21"/>
<wire x1="5.2578" y1="-1.5653" x2="5.2578" y2="1.5653" width="0.2032" layer="21"/>
<wire x1="-5.207" y1="0.6096" x2="-5.207" y2="-0.6604" width="0.2032" layer="21" curve="-180"/>
<wire x1="-5.2578" y1="1.4526" x2="-5.2578" y2="0.6096" width="0.2032" layer="21"/>
<wire x1="-5.2578" y1="-1.6653" x2="-5.2578" y2="-0.6604" width="0.2032" layer="21"/>
<rectangle x1="-4.699" y1="-3.302" x2="-4.191" y2="-2.2733" layer="51"/>
<rectangle x1="-3.429" y1="-3.302" x2="-2.921" y2="-2.2733" layer="51"/>
<rectangle x1="-2.159" y1="-3.302" x2="-1.651" y2="-2.2733" layer="51"/>
<rectangle x1="-0.889" y1="-3.302" x2="-0.381" y2="-2.2733" layer="51"/>
<rectangle x1="0.381" y1="-3.302" x2="0.889" y2="-2.2733" layer="51"/>
<rectangle x1="1.651" y1="-3.302" x2="2.159" y2="-2.2733" layer="51"/>
<rectangle x1="2.921" y1="-3.302" x2="3.429" y2="-2.2733" layer="51"/>
<rectangle x1="4.191" y1="-3.302" x2="4.699" y2="-2.2733" layer="51"/>
<rectangle x1="-3.429" y1="2.286" x2="-2.921" y2="3.302" layer="51"/>
<rectangle x1="-2.159" y1="2.286" x2="-1.651" y2="3.302" layer="51"/>
<rectangle x1="-0.889" y1="2.286" x2="-0.381" y2="3.302" layer="51"/>
<rectangle x1="0.381" y1="2.286" x2="0.889" y2="3.302" layer="51"/>
<rectangle x1="1.651" y1="2.286" x2="2.159" y2="3.302" layer="51"/>
<rectangle x1="2.921" y1="2.286" x2="3.429" y2="3.302" layer="51"/>
<rectangle x1="4.191" y1="2.286" x2="4.699" y2="3.302" layer="51"/>
<rectangle x1="-4.699" y1="2.286" x2="-4.191" y2="3.302" layer="51"/>
<smd name="1" x="-4.445" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="2" x="-3.175" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="3" x="-1.905" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="4" x="-0.635" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="5" x="0.635" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="6" x="1.905" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="7" x="3.175" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="8" x="4.445" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="9" x="4.445" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="10" x="3.175" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="11" x="1.905" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="12" x="0.635" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="13" x="-0.635" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="14" x="-1.905" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="15" x="-3.175" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="16" x="-4.445" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<text x="-5.715" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;NAME</text>
<text x="6.35" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;VALUE</text>
<polygon width="0.002540625" layer="21">
<vertex x="-5.23875" y="-2.38125" curve="90"/>
<vertex x="-5.55625" y="-2.06375" curve="90"/>
<vertex x="-5.87375" y="-2.38125" curve="90"/>
<vertex x="-5.55625" y="-2.69875" curve="90"/>
</polygon>
</package>
</packages>
<packages3d>
<package3d name="SO16" urn="urn:adsk.eagle:package:38719/1" type="box" library_version="1">
<description>SOIC-16
Specifications:
Pin count: 16
Width:0.15"
Example device(s):
HEX_CONVERTER
</description>
<packageinstances>
<packageinstance name="SO16"/>
</packageinstances>
</package3d>
</packages3d>
</library>
<library name="SparkFun-Capacitors" urn="urn:adsk.eagle:library:510">
<description>&lt;h3&gt;SparkFun Capacitors&lt;/h3&gt;
This library contains capacitors.
&lt;br&gt;
&lt;br&gt;
We've spent an enormous amount of time creating and checking these footprints and parts, but it is &lt;b&gt; the end user's responsibility&lt;/b&gt; to ensure correctness and suitablity for a given componet or application.
&lt;br&gt;
&lt;br&gt;If you enjoy using this library, please buy one of our products at &lt;a href=" www.sparkfun.com"&gt;SparkFun.com&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Licensing:&lt;/b&gt; Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/
&lt;br&gt;
&lt;br&gt;
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="0805" urn="urn:adsk.eagle:footprint:37400/1" library_version="1">
<description>&lt;p&gt;&lt;b&gt;Generic 2012 (0805) package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;0.2mm courtyard excess rounded to nearest 0.05mm.&lt;/p&gt;</description>
<smd name="1" x="-0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<smd name="2" x="0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<text x="0" y="0.889" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">&gt;NAME</text>
<text x="0" y="-0.889" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">&gt;VALUE</text>
<wire x1="-1.5" y1="0.8" x2="1.5" y2="0.8" width="0.0508" layer="39"/>
<wire x1="1.5" y1="0.8" x2="1.5" y2="-0.8" width="0.0508" layer="39"/>
<wire x1="1.5" y1="-0.8" x2="-1.5" y2="-0.8" width="0.0508" layer="39"/>
<wire x1="-1.5" y1="-0.8" x2="-1.5" y2="0.8" width="0.0508" layer="39"/>
</package>
</packages>
<packages3d>
<package3d name="0805" urn="urn:adsk.eagle:package:37429/1" type="box" library_version="1">
<description>Generic 2012 (0805) package
0.2mm courtyard excess rounded to nearest 0.05mm.</description>
<packageinstances>
<packageinstance name="0805"/>
</packageinstances>
</package3d>
</packages3d>
</library>
</libraries>
<attributes>
</attributes>
@ -702,14 +832,14 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
</pass>
</autorouter>
<elements>
<element name="12V" library="con-molex" library_urn="urn:adsk.eagle:library:165" package="22-23-2021" package3d_urn="urn:adsk.eagle:package:8078633/1" value="22-23-2021" x="11.43" y="50.8" smashed="yes">
<attribute name="MF" value="MOLEX" x="30.48" y="-33.02" size="1.778" layer="27" display="off"/>
<attribute name="MPN" value="22-23-2021" x="30.48" y="-33.02" size="1.778" layer="27" display="off"/>
<attribute name="NAME" x="8.89" y="54.61" size="1.016" layer="25" ratio="10"/>
<attribute name="OC_FARNELL" value="1462926" x="30.48" y="-33.02" size="1.778" layer="27" display="off"/>
<attribute name="OC_NEWARK" value="25C3832" x="30.48" y="-33.02" size="1.778" layer="27" display="off"/>
<attribute name="POPULARITY" value="40" x="30.48" y="-33.02" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="8.89" y="45.72" size="1.016" layer="27" ratio="10" display="off"/>
<element name="12V" library="con-molex" library_urn="urn:adsk.eagle:library:165" package="22-23-2021" package3d_urn="urn:adsk.eagle:package:8078633/1" value="22-23-2021" x="25.4" y="46.99" smashed="yes" rot="R90">
<attribute name="MF" value="MOLEX" x="109.22" y="66.04" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="MPN" value="22-23-2021" x="109.22" y="66.04" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="NAME" x="21.59" y="44.45" size="1.016" layer="25" ratio="10" rot="R90"/>
<attribute name="OC_FARNELL" value="1462926" x="109.22" y="66.04" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="OC_NEWARK" value="25C3832" x="109.22" y="66.04" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="POPULARITY" value="40" x="109.22" y="66.04" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="30.48" y="44.45" size="1.016" layer="27" ratio="10" rot="R90" display="off"/>
</element>
<element name="B1" library="SparkFun-Boards" library_urn="urn:adsk.eagle:library:509" package="UNO_R3_SHIELD" package3d_urn="urn:adsk.eagle:package:37321/1" value="ARDUINO_UNO_R3_SHIELDBASIC" x="26.67" y="29.21" smashed="yes">
<attribute name="NAME" x="26.67" y="59.944" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center"/>
@ -719,15 +849,15 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<attribute name="DESIGNER" value="Nobody" x="22.86" y="-107.95" size="1.778" layer="27" display="off"/>
<attribute name="VERSION" value="v01" x="22.86" y="-107.95" size="1.778" layer="27" display="off"/>
</element>
<element name="J1" library="RJHSE-5381" package="AMPHENOL_RJHSE-5381" value="RJHSE-5381" x="26.67" y="57.15" smashed="yes" rot="R180">
<attribute name="AVAILABILITY" value="Unavailable" x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="DESCRIPTION" value=" connector, mod jack, rt angle pcb, shielded, led1-g, led2-y, single port, rj-45 8 cont " x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MF" value="Amphenol ICC" x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MP" value="RJHSE-5381" x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="NAME" x="34.68198125" y="45.9586" size="1.271740625" layer="25" rot="R180"/>
<attribute name="PACKAGE" value="None" x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="PRICE" value="None" x="-50.8" y="66.04" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="34.56146875" y="64.914190625" size="1.272809375" layer="27" rot="R180"/>
<element name="J1" library="RJHSE-5381" package="AMPHENOL_RJHSE-5381" value="RJHSE-5381" x="27.94" y="60.96" smashed="yes" rot="R180">
<attribute name="AVAILABILITY" value="Unavailable" x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="DESCRIPTION" value=" connector, mod jack, rt angle pcb, shielded, led1-g, led2-y, single port, rj-45 8 cont " x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MF" value="Amphenol ICC" x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="MP" value="RJHSE-5381" x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="NAME" x="35.95198125" y="49.7686" size="1.271740625" layer="25" rot="R180"/>
<attribute name="PACKAGE" value="None" x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="PRICE" value="None" x="-49.53" y="69.85" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="35.83146875" y="68.724190625" size="1.272809375" layer="27" rot="R180"/>
</element>
<element name="PAN" library="con-molex" library_urn="urn:adsk.eagle:library:165" package="22-23-2031" package3d_urn="urn:adsk.eagle:package:8078634/1" value="22-23-2031" x="45.72" y="6.35" smashed="yes">
<attribute name="MF" value="MOLEX" x="72.39" y="-77.47" size="1.778" layer="27" display="off"/>
@ -943,6 +1073,36 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<attribute name="NAME" x="36.9316" y="38.5064" size="1.27" layer="25" ratio="12" rot="R90" align="center-left"/>
<attribute name="VALUE" x="39.1414" y="33.4264" size="1.27" layer="27" ratio="12" rot="R90" display="off"/>
</element>
<element name="U1" library="SparkFun-IC-Comms" library_urn="urn:adsk.eagle:library:521" package="SO16" package3d_urn="urn:adsk.eagle:package:38719/1" value="MAX3232" x="11.43" y="54.61" smashed="yes" rot="R90">
<attribute name="NAME" x="11.43" y="48.895" size="0.6096" layer="25" font="vector" ratio="20" rot="R180" align="bottom-center"/>
<attribute name="PROD_ID" value="IC-08171" x="11.43" y="54.61" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="11.43" y="60.96" size="0.6096" layer="27" font="vector" ratio="20" rot="R180" align="bottom-center"/>
</element>
<element name="C1" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" package="0805" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF" x="16.51" y="52.07" smashed="yes" rot="R90">
<attribute name="NAME" x="18.161" y="52.07" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center"/>
<attribute name="PROD_ID" value="CAP-11625" x="16.51" y="52.07" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="17.399" y="52.07" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center" display="off"/>
</element>
<element name="C2" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" package="0805" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF" x="16.51" y="55.88" smashed="yes" rot="R90">
<attribute name="NAME" x="18.161" y="55.88" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center"/>
<attribute name="PROD_ID" value="CAP-11625" x="16.51" y="55.88" size="1.778" layer="27" rot="R90" display="off"/>
<attribute name="VALUE" x="17.399" y="55.88" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="top-center" display="off"/>
</element>
<element name="C3" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" package="0805" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF" x="16.51" y="48.26" smashed="yes">
<attribute name="NAME" x="16.51" y="49.149" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center"/>
<attribute name="PROD_ID" value="CAP-11625" x="16.51" y="48.26" size="1.778" layer="27" display="off"/>
<attribute name="VALUE" x="16.51" y="47.371" size="0.6096" layer="27" font="vector" ratio="20" align="top-center" display="off"/>
</element>
<element name="C4" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" package="0805" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF" x="16.51" y="59.69" smashed="yes" rot="R270">
<attribute name="NAME" x="17.399" y="59.69" size="0.6096" layer="25" font="vector" ratio="20" rot="R270" align="bottom-center"/>
<attribute name="PROD_ID" value="CAP-11625" x="16.51" y="59.69" size="1.778" layer="27" rot="R270" display="off"/>
<attribute name="VALUE" x="15.621" y="59.69" size="0.6096" layer="27" font="vector" ratio="20" rot="R270" align="top-center" display="off"/>
</element>
<element name="C5" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" package="0805" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF" x="7.62" y="48.26" smashed="yes" rot="R180">
<attribute name="NAME" x="7.62" y="47.371" size="0.6096" layer="25" font="vector" ratio="20" rot="R180" align="bottom-center"/>
<attribute name="PROD_ID" value="CAP-11625" x="7.62" y="48.26" size="1.778" layer="27" rot="R180" display="off"/>
<attribute name="VALUE" x="8.89" y="47.879" size="0.6096" layer="27" font="vector" ratio="20" rot="R270" align="top-center" display="off"/>
</element>
</elements>
<signals>
<signal name="GND">
@ -965,25 +1125,32 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<contactref element="PAN" pad="1"/>
<contactref element="TILT" pad="1"/>
<contactref element="ZOOM" pad="1"/>
<polygon width="0.3048" layer="1" isolate="0.3048">
<vertex x="0" y="0"/>
<vertex x="0" y="59.69"/>
<vertex x="54.61" y="59.69"/>
<vertex x="54.61" y="0"/>
</polygon>
<polygon width="0.3048" layer="16" isolate="0.3048">
<vertex x="0" y="0"/>
<vertex x="0" y="59.69"/>
<vertex x="54.61" y="59.69"/>
<vertex x="54.61" y="5.08"/>
<vertex x="57.15" y="2.54"/>
<vertex x="57.15" y="0"/>
</polygon>
<contactref element="AUX1" pad="1"/>
<contactref element="AUX2" pad="1"/>
<contactref element="AUX3" pad="1"/>
<contactref element="EXT5V" pad="1"/>
<contactref element="I2C" pad="1"/>
<contactref element="U1" pad="15"/>
<contactref element="C3" pad="2"/>
<contactref element="C4" pad="2"/>
<contactref element="C5" pad="2"/>
<polygon width="0.3048" layer="16" isolate="0.3048">
<vertex x="0" y="63.5"/>
<vertex x="54.61" y="63.5"/>
<vertex x="54.61" y="5.08"/>
<vertex x="55.88" y="5.08"/>
<vertex x="57.15" y="3.81"/>
<vertex x="57.15" y="0"/>
<vertex x="0" y="0"/>
</polygon>
<polygon width="0.3048" layer="1" isolate="0.3048">
<vertex x="0" y="63.5"/>
<vertex x="54.61" y="63.5"/>
<vertex x="54.61" y="0"/>
<vertex x="0" y="0"/>
</polygon>
<contactref element="U1" pad="10"/>
<contactref element="U1" pad="8"/>
</signal>
<signal name="5V">
<contactref element="BTN1" pad="2"/>
@ -1044,6 +1211,16 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<wire x1="36.83" y1="27.94" x2="40.64" y2="24.13" width="0.508" layer="1"/>
<wire x1="34.29" y1="29.21" x2="35.56" y2="29.21" width="0.508" layer="1"/>
<wire x1="35.56" y1="29.21" x2="36.83" y2="27.94" width="0.508" layer="1"/>
<contactref element="U1" pad="16"/>
<contactref element="C5" pad="1"/>
<wire x1="8.52" y1="48.26" x2="8.52" y2="50.055" width="0.3048" layer="1"/>
<wire x1="8.52" y1="50.055" x2="8.63" y2="50.165" width="0.3048" layer="1"/>
<via x="12.7" y="46.99" extent="1-16" drill="0.35"/>
<wire x1="8.52" y1="48.26" x2="11.43" y2="48.26" width="0.3048" layer="1"/>
<wire x1="11.43" y1="48.26" x2="12.7" y2="46.99" width="0.3048" layer="1"/>
<wire x1="12.7" y1="46.99" x2="15.24" y2="46.99" width="0.3048" layer="16"/>
<wire x1="15.24" y1="46.99" x2="19.05" y2="43.18" width="0.3048" layer="16"/>
<wire x1="19.05" y1="43.18" x2="19.05" y2="39.37" width="0.3048" layer="16"/>
</signal>
<signal name="PAN">
<contactref element="B1" pad="A0"/>
@ -1078,34 +1255,33 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<contactref element="J1" pad="1"/>
<contactref element="J1" pad="8"/>
<contactref element="12V" pad="2"/>
<wire x1="12.7" y1="50.8" x2="19.05" y2="50.8" width="0.508" layer="1"/>
<wire x1="19.05" y1="50.8" x2="19.31" y2="50.8" width="0.508" layer="1"/>
<wire x1="23.12" y1="54.61" x2="19.31" y2="50.8" width="0.508" layer="1"/>
<wire x1="28.2" y1="50.8" x2="30.23" y2="52.83" width="0.508" layer="1"/>
<wire x1="19.31" y1="50.8" x2="28.2" y2="50.8" width="0.508" layer="1"/>
<wire x1="25.4" y1="48.26" x2="31.5" y2="54.36" width="0.6096" layer="16"/>
<wire x1="31.5" y1="54.36" x2="31.5" y2="56.64" width="0.6096" layer="16"/>
<wire x1="31.5" y1="56.64" x2="32.385" y2="57.525" width="0.6096" layer="16"/>
<wire x1="32.385" y1="59.055" x2="31.115" y2="60.325" width="0.6096" layer="16"/>
<wire x1="31.115" y1="60.325" x2="25.4" y2="60.325" width="0.6096" layer="16"/>
<wire x1="25.4" y1="60.325" x2="24.39" y2="59.315" width="0.6096" layer="16"/>
<wire x1="24.39" y1="59.315" x2="24.39" y2="58.42" width="0.6096" layer="16"/>
<wire x1="32.385" y1="57.525" x2="32.385" y2="59.055" width="0.6096" layer="16"/>
</signal>
<signal name="TX">
<contactref element="J1" pad="3"/>
<contactref element="B1" pad="D3"/>
<wire x1="25.15" y1="54.61" x2="25.15" y2="51.185" width="0.3048" layer="16"/>
<wire x1="25.15" y1="51.185" x2="24.13" y2="50.165" width="0.3048" layer="16"/>
<wire x1="24.13" y1="50.165" x2="15.875" y2="50.165" width="0.3048" layer="16"/>
<via x="15.24" y="49.53" extent="1-16" drill="0.35"/>
<wire x1="15.875" y1="50.165" x2="15.24" y2="49.53" width="0.3048" layer="16"/>
<wire x1="2.54" y1="46.99" x2="6.35" y2="46.99" width="0.3048" layer="1"/>
<wire x1="6.35" y1="46.99" x2="7.62" y2="48.26" width="0.3048" layer="1"/>
<wire x1="7.62" y1="48.26" x2="13.97" y2="48.26" width="0.3048" layer="1"/>
<wire x1="13.97" y1="48.26" x2="15.24" y2="49.53" width="0.3048" layer="1"/>
<contactref element="U1" pad="11"/>
<via x="5.08" y="55.88" extent="1-16" drill="0.35"/>
<wire x1="8.63" y1="56.515" x2="5.715" y2="56.515" width="0.3048" layer="1"/>
<wire x1="5.715" y1="56.515" x2="5.08" y2="55.88" width="0.3048" layer="1"/>
<wire x1="2.54" y1="46.99" x2="3.81" y2="46.99" width="0.3048" layer="16"/>
<wire x1="3.81" y1="46.99" x2="5.08" y2="48.26" width="0.3048" layer="16"/>
<wire x1="5.08" y1="48.26" x2="5.08" y2="55.88" width="0.3048" layer="16"/>
</signal>
<signal name="RX">
<contactref element="J1" pad="6"/>
<contactref element="B1" pad="D2"/>
<wire x1="2.54" y1="49.53" x2="6.35" y2="49.53" width="0.3048" layer="16"/>
<wire x1="6.35" y1="49.53" x2="7.62" y2="48.26" width="0.3048" layer="16"/>
<wire x1="7.62" y1="48.26" x2="15.24" y2="48.26" width="0.3048" layer="16"/>
<wire x1="15.24" y1="48.26" x2="16.51" y2="49.53" width="0.3048" layer="16"/>
<wire x1="16.51" y1="49.53" x2="24.9" y2="49.53" width="0.3048" layer="16"/>
<wire x1="28.2" y1="52.83" x2="24.9" y2="49.53" width="0.3048" layer="16"/>
<contactref element="U1" pad="12"/>
<wire x1="5.08" y1="50.8" x2="3.81" y2="49.53" width="0.3048" layer="1"/>
<wire x1="2.54" y1="49.53" x2="3.81" y2="49.53" width="0.3048" layer="1"/>
<wire x1="5.08" y1="50.8" x2="5.08" y2="53.34" width="0.3048" layer="1"/>
<wire x1="5.08" y1="53.34" x2="6.985" y2="55.245" width="0.3048" layer="1"/>
<wire x1="6.985" y1="55.245" x2="8.63" y2="55.245" width="0.3048" layer="1"/>
</signal>
<signal name="B1">
<contactref element="B1" pad="D4"/>
@ -1289,6 +1465,72 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
<wire x1="36.83" y1="36.83" x2="43.18" y2="36.83" width="0.508" layer="16"/>
<wire x1="43.18" y1="36.83" x2="50.8" y2="36.83" width="0.508" layer="1"/>
</signal>
<signal name="C1+">
<contactref element="U1" pad="1"/>
<contactref element="C1" pad="1"/>
<wire x1="16.51" y1="51.17" x2="15.505" y2="50.165" width="0.3048" layer="1"/>
<wire x1="15.505" y1="50.165" x2="14.23" y2="50.165" width="0.3048" layer="1"/>
</signal>
<signal name="C1-">
<contactref element="U1" pad="3"/>
<contactref element="C1" pad="2"/>
<wire x1="16.51" y1="52.97" x2="14.495" y2="52.97" width="0.3048" layer="1"/>
<wire x1="14.495" y1="52.97" x2="14.23" y2="52.705" width="0.3048" layer="1"/>
</signal>
<signal name="C2+">
<contactref element="U1" pad="4"/>
<contactref element="C2" pad="1"/>
<wire x1="16.51" y1="54.98" x2="15.505" y2="53.975" width="0.3048" layer="1"/>
<wire x1="15.505" y1="53.975" x2="14.23" y2="53.975" width="0.3048" layer="1"/>
</signal>
<signal name="C2-">
<contactref element="U1" pad="5"/>
<contactref element="C2" pad="2"/>
<wire x1="16.51" y1="56.78" x2="14.975" y2="55.245" width="0.3048" layer="1"/>
<wire x1="14.975" y1="55.245" x2="14.23" y2="55.245" width="0.3048" layer="1"/>
</signal>
<signal name="RS232V+">
<contactref element="U1" pad="2"/>
<contactref element="C3" pad="1"/>
<wire x1="15.61" y1="48.26" x2="13.97" y2="48.26" width="0.3048" layer="1"/>
<wire x1="13.97" y1="48.26" x2="12.7" y2="49.53" width="0.3048" layer="1"/>
<wire x1="12.7" y1="49.53" x2="12.7" y2="50.8" width="0.3048" layer="1"/>
<wire x1="12.7" y1="50.8" x2="13.335" y2="51.435" width="0.3048" layer="1"/>
<wire x1="13.335" y1="51.435" x2="14.23" y2="51.435" width="0.3048" layer="1"/>
</signal>
<signal name="RS232V-">
<contactref element="U1" pad="6"/>
<contactref element="C4" pad="1"/>
<wire x1="12.7" y1="57.15" x2="13.335" y2="56.515" width="0.3048" layer="1"/>
<wire x1="13.335" y1="56.515" x2="14.23" y2="56.515" width="0.3048" layer="1"/>
<wire x1="16.51" y1="60.59" x2="13.6" y2="60.59" width="0.3048" layer="1"/>
<wire x1="13.6" y1="60.59" x2="12.7" y2="59.69" width="0.3048" layer="1"/>
<wire x1="12.7" y1="59.69" x2="12.7" y2="57.15" width="0.3048" layer="1"/>
</signal>
<signal name="232TX">
<contactref element="J1" pad="3"/>
<contactref element="U1" pad="14"/>
<via x="10.16" y="52.705" extent="1-16" drill="0.35"/>
<wire x1="8.63" y1="52.705" x2="10.16" y2="52.705" width="0.3048" layer="1"/>
<wire x1="9.525" y1="52.705" x2="10.16" y2="52.705" width="0.3048" layer="16"/>
<wire x1="26.42" y1="55.63" x2="25.4" y2="54.61" width="0.3048" layer="16"/>
<wire x1="26.42" y1="55.63" x2="26.42" y2="58.42" width="0.3048" layer="16"/>
<wire x1="25.4" y1="54.61" x2="11.43" y2="54.61" width="0.3048" layer="16"/>
<wire x1="11.43" y1="54.61" x2="10.795" y2="55.245" width="0.3048" layer="16"/>
<wire x1="10.795" y1="55.245" x2="9.525" y2="55.245" width="0.3048" layer="16"/>
<wire x1="9.525" y1="55.245" x2="8.89" y2="54.61" width="0.3048" layer="16"/>
<wire x1="8.89" y1="54.61" x2="8.89" y2="53.34" width="0.3048" layer="16"/>
<wire x1="8.89" y1="53.34" x2="9.525" y2="52.705" width="0.3048" layer="16"/>
</signal>
<signal name="232RX">
<contactref element="J1" pad="6"/>
<contactref element="U1" pad="13"/>
<via x="10.16" y="53.975" extent="1-16" drill="0.35"/>
<wire x1="8.63" y1="53.975" x2="10.16" y2="53.975" width="0.3048" layer="1"/>
<wire x1="10.16" y1="53.975" x2="28.575" y2="53.975" width="0.3048" layer="16"/>
<wire x1="29.47" y1="54.87" x2="29.47" y2="56.64" width="0.3048" layer="16"/>
<wire x1="28.575" y1="53.975" x2="29.47" y2="54.87" width="0.3048" layer="16"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>


+ 739
- 12
EAGLE/VISCAShield.sch View File

@ -4061,6 +4061,567 @@ type V526-0, grid 2.5 mm</description>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-IC-Comms" urn="urn:adsk.eagle:library:521">
<description>&lt;h3&gt;SparkFun Communication ICs&lt;/h3&gt;
This is the communications library, which contains things that exist on wired busses. This includes USB to serial conversion ICs, like the FTDI line, plus high speed line drivers, level shifters, bus drivers, CAN transceivers and ethernet PHYs.
&lt;br&gt;
&lt;br&gt;
We've spent an enormous amount of time creating and checking these footprints and parts, but it is &lt;b&gt; the end user's responsibility&lt;/b&gt; to ensure correctness and suitablity for a given componet or application.
&lt;br&gt;
&lt;br&gt;If you enjoy using this library, please buy one of our products at &lt;a href=" www.sparkfun.com"&gt;SparkFun.com&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Licensing:&lt;/b&gt; Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/
&lt;br&gt;
&lt;br&gt;
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="SO16" urn="urn:adsk.eagle:footprint:38691/1" library_version="1">
<description>&lt;h3&gt;SOIC-16&lt;/h3&gt;
&lt;p&gt;Specifications:
&lt;ul&gt;&lt;li&gt;Pin count: 16&lt;/li&gt;
&lt;li&gt;Width:0.15"&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Example device(s):
&lt;ul&gt;&lt;li&gt;HEX_CONVERTER&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
<wire x1="4.8768" y1="1.9463" x2="-4.8768" y2="1.9463" width="0.2032" layer="21"/>
<wire x1="4.9768" y1="-1.9463" x2="5.2578" y2="-1.5653" width="0.2032" layer="21" curve="90"/>
<wire x1="-5.2578" y1="1.4653" x2="-4.8768" y2="1.9463" width="0.2032" layer="21" curve="-90.023829"/>
<wire x1="4.8768" y1="1.9463" x2="5.2578" y2="1.5653" width="0.2032" layer="21" curve="-90.030084"/>
<wire x1="-5.2578" y1="-1.6653" x2="-4.8768" y2="-1.9463" width="0.2032" layer="21" curve="90.060185"/>
<wire x1="-4.8768" y1="-1.9463" x2="4.9768" y2="-1.9463" width="0.2032" layer="21"/>
<wire x1="5.2578" y1="-1.5653" x2="5.2578" y2="1.5653" width="0.2032" layer="21"/>
<wire x1="-5.207" y1="0.6096" x2="-5.207" y2="-0.6604" width="0.2032" layer="21" curve="-180"/>
<wire x1="-5.2578" y1="1.4526" x2="-5.2578" y2="0.6096" width="0.2032" layer="21"/>
<wire x1="-5.2578" y1="-1.6653" x2="-5.2578" y2="-0.6604" width="0.2032" layer="21"/>
<rectangle x1="-4.699" y1="-3.302" x2="-4.191" y2="-2.2733" layer="51"/>
<rectangle x1="-3.429" y1="-3.302" x2="-2.921" y2="-2.2733" layer="51"/>
<rectangle x1="-2.159" y1="-3.302" x2="-1.651" y2="-2.2733" layer="51"/>
<rectangle x1="-0.889" y1="-3.302" x2="-0.381" y2="-2.2733" layer="51"/>
<rectangle x1="0.381" y1="-3.302" x2="0.889" y2="-2.2733" layer="51"/>
<rectangle x1="1.651" y1="-3.302" x2="2.159" y2="-2.2733" layer="51"/>
<rectangle x1="2.921" y1="-3.302" x2="3.429" y2="-2.2733" layer="51"/>
<rectangle x1="4.191" y1="-3.302" x2="4.699" y2="-2.2733" layer="51"/>
<rectangle x1="-3.429" y1="2.286" x2="-2.921" y2="3.302" layer="51"/>
<rectangle x1="-2.159" y1="2.286" x2="-1.651" y2="3.302" layer="51"/>
<rectangle x1="-0.889" y1="2.286" x2="-0.381" y2="3.302" layer="51"/>
<rectangle x1="0.381" y1="2.286" x2="0.889" y2="3.302" layer="51"/>
<rectangle x1="1.651" y1="2.286" x2="2.159" y2="3.302" layer="51"/>
<rectangle x1="2.921" y1="2.286" x2="3.429" y2="3.302" layer="51"/>
<rectangle x1="4.191" y1="2.286" x2="4.699" y2="3.302" layer="51"/>
<rectangle x1="-4.699" y1="2.286" x2="-4.191" y2="3.302" layer="51"/>
<smd name="1" x="-4.445" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="2" x="-3.175" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="3" x="-1.905" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="4" x="-0.635" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="5" x="0.635" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="6" x="1.905" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="7" x="3.175" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="8" x="4.445" y="-2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="9" x="4.445" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="10" x="3.175" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="11" x="1.905" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="12" x="0.635" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="13" x="-0.635" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="14" x="-1.905" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="15" x="-3.175" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<smd name="16" x="-4.445" y="2.8" dx="0.6" dy="1.2" layer="1"/>
<text x="-5.715" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;NAME</text>
<text x="6.35" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;VALUE</text>
<polygon width="0.002540625" layer="21">
<vertex x="-5.23875" y="-2.38125" curve="90"/>
<vertex x="-5.55625" y="-2.06375" curve="90"/>
<vertex x="-5.87375" y="-2.38125" curve="90"/>
<vertex x="-5.55625" y="-2.69875" curve="90"/>
</polygon>
</package>
<package name="DIP16" urn="urn:adsk.eagle:footprint:38692/1" library_version="1">
<description>&lt;h3&gt;Dual In Line Package - 16&lt;/h3&gt;
&lt;p&gt;Specifications:
&lt;ul&gt;&lt;li&gt;Pin count:16&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Example device(s):
&lt;ul&gt;&lt;li&gt;MAX2323&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
<wire x1="10.16" y1="2.54" x2="-10.16" y2="2.54" width="0.2032" layer="21"/>
<wire x1="-10.16" y1="-2.54" x2="10.16" y2="-2.54" width="0.2032" layer="21"/>
<wire x1="10.16" y1="2.54" x2="10.16" y2="-2.54" width="0.2032" layer="21"/>
<wire x1="-10.16" y1="2.54" x2="-10.16" y2="1.016" width="0.2032" layer="21"/>
<wire x1="-10.16" y1="-2.54" x2="-10.16" y2="-1.016" width="0.2032" layer="21"/>
<wire x1="-10.16" y1="-1.016" x2="-10.16" y2="1.016" width="0.2032" layer="21" curve="180"/>
<pad name="1" x="-8.89" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="2" x="-6.35" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="3" x="-3.81" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="4" x="-1.27" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="5" x="1.27" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="6" x="3.81" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="7" x="6.35" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="8" x="8.89" y="-3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="9" x="8.89" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="10" x="6.35" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="11" x="3.81" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="12" x="1.27" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="13" x="-1.27" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="14" x="-3.81" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="15" x="-6.35" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<pad name="16" x="-8.89" y="3.81" drill="0.8128" diameter="1.6256" rot="R90"/>
<text x="-10.795" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;NAME</text>
<text x="11.43" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;VALUE</text>
<polygon width="0.127" layer="21">
<vertex x="-11.27125" y="-3.175" curve="-90"/>
<vertex x="-10.795" y="-2.69875" curve="-90"/>
<vertex x="-10.31875" y="-3.175" curve="-90"/>
<vertex x="-10.795" y="-3.65125" curve="-90"/>
</polygon>
</package>
<package name="TSSOP16" urn="urn:adsk.eagle:footprint:38693/1" library_version="1">
<description>&lt;b&gt;TSOP16&lt;/b&gt;&lt;p&gt;
thin small outline package</description>
<wire x1="3.1" y1="-2.4" x2="-3" y2="-2.4" width="0.2032" layer="51"/>
<wire x1="-3" y1="2.6" x2="3.1" y2="2.6" width="0.2032" layer="51"/>
<wire x1="3.1" y1="-2.4" x2="3.1" y2="2.6" width="0.2032" layer="51"/>
<wire x1="-3" y1="2.6" x2="-2.8" y2="2.6" width="0.2032" layer="21"/>
<wire x1="-3" y1="2.6" x2="-3" y2="0.5" width="0.2032" layer="21"/>
<wire x1="-3" y1="-0.5" x2="-3" y2="-2.4" width="0.2032" layer="21"/>
<wire x1="-3" y1="-2.4" x2="-2.8" y2="-2.4" width="0.2032" layer="21"/>
<wire x1="2.9" y1="-2.4" x2="3.1" y2="-2.4" width="0.2032" layer="21"/>
<wire x1="3.1" y1="-2.4" x2="3.1" y2="2.6" width="0.2032" layer="21"/>
<wire x1="3.1" y1="2.6" x2="2.9" y2="2.6" width="0.2032" layer="21"/>
<wire x1="-3" y1="0.5" x2="-3" y2="-0.5" width="0.2032" layer="21" curve="-180"/>
<smd name="1" x="-2.225" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="2" x="-1.575" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="3" x="-0.925" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="4" x="-0.275" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="5" x="0.375" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="6" x="1.025" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="7" x="1.675" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="8" x="2.325" y="-2.85" dx="0.4" dy="1.6" layer="1"/>
<smd name="9" x="2.325" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="10" x="1.675" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="11" x="1.025" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="12" x="0.375" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="13" x="-0.275" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="14" x="-0.925" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="15" x="-1.575" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<smd name="16" x="-2.225" y="3.05" dx="0.4" dy="1.6" layer="1"/>
<rectangle x1="-2.425" y1="-3.3501" x2="-2.0249" y2="-2.5299" layer="51"/>
<rectangle x1="-1.775" y1="-3.3501" x2="-1.3749" y2="-2.5299" layer="51"/>
<rectangle x1="-1.125" y1="-3.3501" x2="-0.725" y2="-2.5299" layer="51"/>
<rectangle x1="-0.475" y1="-3.3501" x2="-0.075" y2="-2.5299" layer="51"/>
<rectangle x1="0.175" y1="-3.3501" x2="0.575" y2="-2.5299" layer="51"/>
<rectangle x1="0.825" y1="-3.3501" x2="1.225" y2="-2.5299" layer="51"/>
<rectangle x1="1.4749" y1="-3.3501" x2="1.875" y2="-2.5299" layer="51"/>
<rectangle x1="2.1249" y1="-3.3501" x2="2.525" y2="-2.5299" layer="51"/>
<rectangle x1="2.1249" y1="2.7299" x2="2.525" y2="3.5501" layer="51"/>
<rectangle x1="1.4749" y1="2.7299" x2="1.875" y2="3.5501" layer="51"/>
<rectangle x1="0.825" y1="2.7299" x2="1.225" y2="3.5501" layer="51"/>
<rectangle x1="0.175" y1="2.7299" x2="0.575" y2="3.5501" layer="51"/>
<rectangle x1="-0.475" y1="2.7299" x2="-0.075" y2="3.5501" layer="51"/>
<rectangle x1="-1.125" y1="2.7299" x2="-0.725" y2="3.5501" layer="51"/>
<rectangle x1="-1.775" y1="2.7299" x2="-1.3749" y2="3.5501" layer="51"/>
<rectangle x1="-2.425" y1="2.7299" x2="-2.0249" y2="3.5501" layer="51"/>
<rectangle x1="-2.425" y1="-3.3501" x2="-2.0249" y2="-2.5299" layer="51"/>
<rectangle x1="-1.775" y1="-3.3501" x2="-1.3749" y2="-2.5299" layer="51"/>
<rectangle x1="-1.125" y1="-3.3501" x2="-0.725" y2="-2.5299" layer="51"/>
<rectangle x1="-0.475" y1="-3.3501" x2="-0.075" y2="-2.5299" layer="51"/>
<rectangle x1="0.175" y1="-3.3501" x2="0.575" y2="-2.5299" layer="51"/>
<rectangle x1="0.825" y1="-3.3501" x2="1.225" y2="-2.5299" layer="51"/>
<rectangle x1="1.4749" y1="-3.3501" x2="1.875" y2="-2.5299" layer="51"/>
<rectangle x1="2.1249" y1="-3.3501" x2="2.525" y2="-2.5299" layer="51"/>
<rectangle x1="2.1249" y1="2.7299" x2="2.525" y2="3.5501" layer="51"/>
<rectangle x1="1.4749" y1="2.7299" x2="1.875" y2="3.5501" layer="51"/>
<rectangle x1="0.825" y1="2.7299" x2="1.225" y2="3.5501" layer="51"/>
<rectangle x1="0.175" y1="2.7299" x2="0.575" y2="3.5501" layer="51"/>
<rectangle x1="-0.475" y1="2.7299" x2="-0.075" y2="3.5501" layer="51"/>
<rectangle x1="-1.125" y1="2.7299" x2="-0.725" y2="3.5501" layer="51"/>
<rectangle x1="-1.775" y1="2.7299" x2="-1.3749" y2="3.5501" layer="51"/>
<rectangle x1="-2.425" y1="2.7299" x2="-2.0249" y2="3.5501" layer="51"/>
<text x="-3.33375" y="0" size="0.6096" layer="25" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;NAME</text>
<text x="3.96875" y="0" size="0.6096" layer="27" font="vector" ratio="20" rot="R90" align="bottom-center">&gt;VALUE</text>
<polygon width="0.127" layer="21">
<vertex x="-3.65125" y="-3.175" curve="-90"/>
<vertex x="-3.175" y="-2.69875" curve="-90"/>
<vertex x="-2.69875" y="-3.175" curve="-90"/>
<vertex x="-3.175" y="-3.65125" curve="-90"/>
</polygon>
</package>
</packages>
<packages3d>
<package3d name="SO16" urn="urn:adsk.eagle:package:38719/1" type="box" library_version="1">
<description>SOIC-16
Specifications:
Pin count: 16
Width:0.15"
Example device(s):
HEX_CONVERTER
</description>
<packageinstances>
<packageinstance name="SO16"/>
</packageinstances>
</package3d>
<package3d name="DIP16" urn="urn:adsk.eagle:package:38720/1" type="box" library_version="1">
<description>Dual In Line Package - 16
Specifications:
Pin count:16
Example device(s):
MAX2323
</description>
<packageinstances>
<packageinstance name="DIP16"/>
</packageinstances>
</package3d>
<package3d name="TSSOP16" urn="urn:adsk.eagle:package:38721/1" type="box" library_version="1">
<description>TSOP16
thin small outline package</description>
<packageinstances>
<packageinstance name="TSSOP16"/>
</packageinstances>
</package3d>
</packages3d>
<symbols>
<symbol name="MAX232" urn="urn:adsk.eagle:symbol:38690/1" library_version="1">
<wire x1="-10.16" y1="15.24" x2="15.24" y2="15.24" width="0.4064" layer="94"/>
<wire x1="15.24" y1="-17.78" x2="15.24" y2="15.24" width="0.4064" layer="94"/>
<wire x1="15.24" y1="-17.78" x2="-10.16" y2="-17.78" width="0.4064" layer="94"/>
<wire x1="-10.16" y1="15.24" x2="-10.16" y2="-17.78" width="0.4064" layer="94"/>
<text x="-10.16" y="15.875" size="1.778" layer="95">&gt;NAME</text>
<text x="-10.16" y="-20.32" size="1.778" layer="96">&gt;VALUE</text>
<pin name="C1+" x="-15.24" y="12.7" length="middle"/>
<pin name="C1-" x="-15.24" y="7.62" length="middle"/>
<pin name="C2+" x="-15.24" y="2.54" length="middle"/>
<pin name="C2-" x="-15.24" y="-2.54" length="middle"/>
<pin name="T1IN" x="-15.24" y="-7.62" length="middle" direction="in"/>
<pin name="T2IN" x="-15.24" y="-10.16" length="middle" direction="in"/>
<pin name="R1OUT" x="-15.24" y="-12.7" length="middle" direction="out"/>
<pin name="R2OUT" x="-15.24" y="-15.24" length="middle" direction="out"/>
<pin name="V+" x="20.32" y="10.16" length="middle" rot="R180"/>
<pin name="V-" x="20.32" y="5.08" length="middle" rot="R180"/>
<pin name="T1OUT" x="20.32" y="-7.62" length="middle" direction="out" rot="R180"/>
<pin name="T2OUT" x="20.32" y="-10.16" length="middle" direction="out" rot="R180"/>
<pin name="R1IN" x="20.32" y="-12.7" length="middle" direction="in" rot="R180"/>
<pin name="R2IN" x="20.32" y="-15.24" length="middle" direction="in" rot="R180"/>
<pin name="GND" x="2.54" y="-22.86" length="middle" rot="R90"/>
<pin name="VCC" x="2.54" y="20.32" length="middle" rot="R270"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="MAX2323" urn="urn:adsk.eagle:component:38734/1" prefix="U" library_version="1">
<description>&lt;h3&gt;RS232 Transceiver&lt;/h3&gt;
&lt;p&gt;This part covers 232 drivers that are compatible with the MAX3232.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cdn.sparkfun.com/datasheets/Components/General%20IC/SP3232EBCA-L.pdf"&gt;Sipex SP3232EB Datasheet&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;SparkFun Products&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.sparkfun.com/products/589"&gt;SOIC component&lt;/a&gt; (COM-00589 / IC-08171)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Retired&lt;/b&gt; DIP component (COM-00316 / IC-08446)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sparkfun.com/products/11189"&gt;SparkFun Transceiver Breakout - MAX3232&lt;/a&gt; (BOB-11189)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sparkfun.com/products/13225"&gt;SparkFun XBee Explorer Serial&lt;/a&gt; (WRL-13225)&lt;/li&gt;
&lt;/ul&gt;</description>
<gates>
<gate name="G$1" symbol="MAX232" x="0" y="0"/>
</gates>
<devices>
<device name="SOIC16" package="SO16">
<connects>
<connect gate="G$1" pin="C1+" pad="1"/>
<connect gate="G$1" pin="C1-" pad="3"/>
<connect gate="G$1" pin="C2+" pad="4"/>
<connect gate="G$1" pin="C2-" pad="5"/>
<connect gate="G$1" pin="GND" pad="15"/>
<connect gate="G$1" pin="R1IN" pad="13"/>
<connect gate="G$1" pin="R1OUT" pad="12"/>
<connect gate="G$1" pin="R2IN" pad="8"/>
<connect gate="G$1" pin="R2OUT" pad="9"/>
<connect gate="G$1" pin="T1IN" pad="11"/>
<connect gate="G$1" pin="T1OUT" pad="14"/>
<connect gate="G$1" pin="T2IN" pad="10"/>
<connect gate="G$1" pin="T2OUT" pad="7"/>
<connect gate="G$1" pin="V+" pad="2"/>
<connect gate="G$1" pin="V-" pad="6"/>
<connect gate="G$1" pin="VCC" pad="16"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:38719/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="IC-08171" constant="no"/>
<attribute name="VALUE" value="MAX3232" constant="no"/>
</technology>
</technologies>
</device>
<device name="PTH" package="DIP16">
<connects>
<connect gate="G$1" pin="C1+" pad="1"/>
<connect gate="G$1" pin="C1-" pad="3"/>
<connect gate="G$1" pin="C2+" pad="4"/>
<connect gate="G$1" pin="C2-" pad="5"/>
<connect gate="G$1" pin="GND" pad="15"/>
<connect gate="G$1" pin="R1IN" pad="13"/>
<connect gate="G$1" pin="R1OUT" pad="12"/>
<connect gate="G$1" pin="R2IN" pad="8"/>
<connect gate="G$1" pin="R2OUT" pad="9"/>
<connect gate="G$1" pin="T1IN" pad="11"/>
<connect gate="G$1" pin="T1OUT" pad="14"/>
<connect gate="G$1" pin="T2IN" pad="10"/>
<connect gate="G$1" pin="T2OUT" pad="7"/>
<connect gate="G$1" pin="V+" pad="2"/>
<connect gate="G$1" pin="V-" pad="6"/>
<connect gate="G$1" pin="VCC" pad="16"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:38720/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="IC-08446" constant="no"/>
<attribute name="VALUE" value="MAX3232" constant="no"/>
</technology>
</technologies>
</device>
<device name="TSSOP" package="TSSOP16">
<connects>
<connect gate="G$1" pin="C1+" pad="1"/>
<connect gate="G$1" pin="C1-" pad="3"/>
<connect gate="G$1" pin="C2+" pad="4"/>
<connect gate="G$1" pin="C2-" pad="5"/>
<connect gate="G$1" pin="GND" pad="15"/>
<connect gate="G$1" pin="R1IN" pad="13"/>
<connect gate="G$1" pin="R1OUT" pad="12"/>
<connect gate="G$1" pin="R2IN" pad="8"/>
<connect gate="G$1" pin="R2OUT" pad="9"/>
<connect gate="G$1" pin="T1IN" pad="11"/>
<connect gate="G$1" pin="T1OUT" pad="14"/>
<connect gate="G$1" pin="T2IN" pad="10"/>
<connect gate="G$1" pin="T2OUT" pad="7"/>
<connect gate="G$1" pin="V+" pad="2"/>
<connect gate="G$1" pin="V-" pad="6"/>
<connect gate="G$1" pin="VCC" pad="16"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:38721/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="NA-XXXXX" constant="no"/>
<attribute name="VALUE" value="MAX3232" constant="no"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
<library name="SparkFun-Capacitors" urn="urn:adsk.eagle:library:510">
<description>&lt;h3&gt;SparkFun Capacitors&lt;/h3&gt;
This library contains capacitors.
&lt;br&gt;
&lt;br&gt;
We've spent an enormous amount of time creating and checking these footprints and parts, but it is &lt;b&gt; the end user's responsibility&lt;/b&gt; to ensure correctness and suitablity for a given componet or application.
&lt;br&gt;
&lt;br&gt;If you enjoy using this library, please buy one of our products at &lt;a href=" www.sparkfun.com"&gt;SparkFun.com&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Licensing:&lt;/b&gt; Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/
&lt;br&gt;
&lt;br&gt;
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="0603" urn="urn:adsk.eagle:footprint:37386/1" library_version="1">
<description>&lt;p&gt;&lt;b&gt;Generic 1608 (0603) package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;0.2mm courtyard excess rounded to nearest 0.05mm.&lt;/p&gt;</description>
<wire x1="-1.6" y1="0.7" x2="1.6" y2="0.7" width="0.0508" layer="39"/>
<wire x1="1.6" y1="0.7" x2="1.6" y2="-0.7" width="0.0508" layer="39"/>
<wire x1="1.6" y1="-0.7" x2="-1.6" y2="-0.7" width="0.0508" layer="39"/>
<wire x1="-1.6" y1="-0.7" x2="-1.6" y2="0.7" width="0.0508" layer="39"/>
<wire x1="-0.356" y1="0.432" x2="0.356" y2="0.432" width="0.1016" layer="51"/>
<wire x1="-0.356" y1="-0.419" x2="0.356" y2="-0.419" width="0.1016" layer="51"/>
<smd name="1" x="-0.85" y="0" dx="1.1" dy="1" layer="1"/>
<smd name="2" x="0.85" y="0" dx="1.1" dy="1" layer="1"/>
<text x="0" y="0.762" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">&gt;NAME</text>
<text x="0" y="-0.762" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">&gt;VALUE</text>
<rectangle x1="-0.8382" y1="-0.4699" x2="-0.3381" y2="0.4801" layer="51"/>
<rectangle x1="0.3302" y1="-0.4699" x2="0.8303" y2="0.4801" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
</package>
<package name="0402" urn="urn:adsk.eagle:footprint:37389/1" library_version="1">
<description>&lt;p&gt;&lt;b&gt;Generic 1005 (0402) package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;0.2mm courtyard excess rounded to nearest 0.05mm.&lt;/p&gt;</description>
<wire x1="-0.2704" y1="0.2286" x2="0.2704" y2="0.2286" width="0.1524" layer="51"/>
<wire x1="0.2704" y1="-0.2286" x2="-0.2704" y2="-0.2286" width="0.1524" layer="51"/>
<wire x1="-1.2" y1="0.65" x2="1.2" y2="0.65" width="0.0508" layer="39"/>
<wire x1="1.2" y1="0.65" x2="1.2" y2="-0.65" width="0.0508" layer="39"/>
<wire x1="1.2" y1="-0.65" x2="-1.2" y2="-0.65" width="0.0508" layer="39"/>
<wire x1="-1.2" y1="-0.65" x2="-1.2" y2="0.65" width="0.0508" layer="39"/>
<smd name="1" x="-0.58" y="0" dx="0.85" dy="0.9" layer="1"/>
<smd name="2" x="0.58" y="0" dx="0.85" dy="0.9" layer="1"/>
<text x="0" y="0.762" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">&gt;NAME</text>
<text x="0" y="-0.762" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">&gt;VALUE</text>
<rectangle x1="-0.554" y1="-0.3048" x2="-0.254" y2="0.3048" layer="51"/>
<rectangle x1="0.2588" y1="-0.3048" x2="0.5588" y2="0.3048" layer="51"/>
<rectangle x1="-0.1999" y1="-0.3" x2="0.1999" y2="0.3" layer="35"/>
</package>
<package name="0805" urn="urn:adsk.eagle:footprint:37400/1" library_version="1">
<description>&lt;p&gt;&lt;b&gt;Generic 2012 (0805) package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;0.2mm courtyard excess rounded to nearest 0.05mm.&lt;/p&gt;</description>
<smd name="1" x="-0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<smd name="2" x="0.9" y="0" dx="0.8" dy="1.2" layer="1"/>
<text x="0" y="0.889" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">&gt;NAME</text>
<text x="0" y="-0.889" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">&gt;VALUE</text>
<wire x1="-1.5" y1="0.8" x2="1.5" y2="0.8" width="0.0508" layer="39"/>
<wire x1="1.5" y1="0.8" x2="1.5" y2="-0.8" width="0.0508" layer="39"/>
<wire x1="1.5" y1="-0.8" x2="-1.5" y2="-0.8" width="0.0508" layer="39"/>
<wire x1="-1.5" y1="-0.8" x2="-1.5" y2="0.8" width="0.0508" layer="39"/>
</package>
<package name="1206" urn="urn:adsk.eagle:footprint:37399/1" library_version="1">
<description>&lt;p&gt;&lt;b&gt;Generic 3216 (1206) package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;0.2mm courtyard excess rounded to nearest 0.05mm.&lt;/p&gt;</description>
<wire x1="-2.4" y1="1.1" x2="2.4" y2="1.1" width="0.0508" layer="39"/>
<wire x1="2.4" y1="-1.1" x2="-2.4" y2="-1.1" width="0.0508" layer="39"/>
<wire x1="-2.4" y1="-1.1" x2="-2.4" y2="1.1" width="0.0508" layer="39"/>
<wire x1="2.4" y1="1.1" x2="2.4" y2="-1.1" width="0.0508" layer="39"/>
<wire x1="-0.965" y1="0.787" x2="0.965" y2="0.787" width="0.1016" layer="51"/>
<wire x1="-0.965" y1="-0.787" x2="0.965" y2="-0.787" width="0.1016" layer="51"/>
<smd name="1" x="-1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
<smd name="2" x="1.4" y="0" dx="1.6" dy="1.8" layer="1"/>
<text x="0" y="1.143" size="0.6096" layer="25" font="vector" ratio="20" align="bottom-center">&gt;NAME</text>
<text x="0" y="-1.143" size="0.6096" layer="27" font="vector" ratio="20" align="top-center">&gt;VALUE</text>
<rectangle x1="-1.7018" y1="-0.8509" x2="-0.9517" y2="0.8491" layer="51"/>
<rectangle x1="0.9517" y1="-0.8491" x2="1.7018" y2="0.8509" layer="51"/>
<rectangle x1="-0.1999" y1="-0.4001" x2="0.1999" y2="0.4001" layer="35"/>
</package>
</packages>
<packages3d>
<package3d name="0603" urn="urn:adsk.eagle:package:37414/1" type="box" library_version="1">
<description>Generic 1608 (0603) package
0.2mm courtyard excess rounded to nearest 0.05mm.</description>
<packageinstances>
<packageinstance name="0603"/>
</packageinstances>
</package3d>
<package3d name="0402" urn="urn:adsk.eagle:package:37413/1" type="box" library_version="1">
<description>Generic 1005 (0402) package
0.2mm courtyard excess rounded to nearest 0.05mm.</description>
<packageinstances>
<packageinstance name="0402"/>
</packageinstances>
</package3d>
<package3d name="0805" urn="urn:adsk.eagle:package:37429/1" type="box" library_version="1">
<description>Generic 2012 (0805) package
0.2mm courtyard excess rounded to nearest 0.05mm.</description>
<packageinstances>
<packageinstance name="0805"/>
</packageinstances>
</package3d>
<package3d name="1206" urn="urn:adsk.eagle:package:37426/1" type="box" library_version="1">
<description>Generic 3216 (1206) package
0.2mm courtyard excess rounded to nearest 0.05mm.</description>
<packageinstances>
<packageinstance name="1206"/>
</packageinstances>
</package3d>
</packages3d>
<symbols>
<symbol name="CAP" urn="urn:adsk.eagle:symbol:37385/1" library_version="1">
<wire x1="0" y1="2.54" x2="0" y2="2.032" width="0.1524" layer="94"/>
<wire x1="0" y1="0" x2="0" y2="0.508" width="0.1524" layer="94"/>
<text x="1.524" y="2.921" size="1.778" layer="95" font="vector">&gt;NAME</text>
<text x="1.524" y="-2.159" size="1.778" layer="96" font="vector">&gt;VALUE</text>
<rectangle x1="-2.032" y1="0.508" x2="2.032" y2="1.016" layer="94"/>
<rectangle x1="-2.032" y1="1.524" x2="2.032" y2="2.032" layer="94"/>
<pin name="1" x="0" y="5.08" visible="off" length="short" direction="pas" swaplevel="1" rot="R270"/>
<pin name="2" x="0" y="-2.54" visible="off" length="short" direction="pas" swaplevel="1" rot="R90"/>
</symbol>
</symbols>
<devicesets>
<deviceset name="1.0UF" urn="urn:adsk.eagle:component:37474/1" prefix="C" library_version="1">
<description>&lt;h3&gt;1µF ceramic capacitors&lt;/h3&gt;
&lt;p&gt;A capacitor is a passive two-terminal electrical component used to store electrical energy temporarily in an electric field.&lt;/p&gt;</description>
<gates>
<gate name="G$1" symbol="CAP" x="0" y="0"/>
</gates>
<devices>
<device name="-0603-16V-10%" package="0603">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:37414/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CAP-00868"/>
<attribute name="VALUE" value="1.0uF"/>
</technology>
</technologies>
</device>
<device name="-0402-16V-10%" package="0402">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:37413/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CAP-12417"/>
<attribute name="VALUE" value="1.0uF"/>
</technology>
</technologies>
</device>
<device name="-0805-25V-(+80/-20%)" package="0805">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:37429/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CAP-11625"/>
<attribute name="VALUE" value="1.0uF"/>
</technology>
</technologies>
</device>
<device name="-1206-50V-10%" package="1206">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:37426/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CAP-09822"/>
<attribute name="VALUE" value="1.0uF"/>
</technology>
</technologies>
</device>
<device name="-0805-25V-10%" package="0805">
<connects>
<connect gate="G$1" pin="1" pad="1"/>
<connect gate="G$1" pin="2" pad="2"/>
</connects>
<package3dinstances>
<package3dinstance package3d_urn="urn:adsk.eagle:package:37429/1"/>
</package3dinstances>
<technologies>
<technology name="">
<attribute name="PROD_ID" value="CAP-08064"/>
<attribute name="VALUE" value="1.0uF"/>
</technology>
</technologies>
</device>
</devices>
</deviceset>
</devicesets>
</library>
</libraries>
<attributes>
</attributes>
@ -4106,6 +4667,12 @@ type V526-0, grid 2.5 mm</description>
<part name="EXT" library="BeagleBone_Black_Wireless" library_urn="urn:adsk.eagle:library:6644236" deviceset="R-US_" device="0204/2V" package3d_urn="urn:adsk.eagle:package:8118463/1" value="0ohm"/>
<part name="INT" library="BeagleBone_Black_Wireless" library_urn="urn:adsk.eagle:library:6644236" deviceset="R-US_" device="0204/2V" package3d_urn="urn:adsk.eagle:package:8118463/1" value="0ohm"/>
<part name="VIN" library="BeagleBone_Black_Wireless" library_urn="urn:adsk.eagle:library:6644236" deviceset="R-US_" device="0204/2V" package3d_urn="urn:adsk.eagle:package:8118463/1" value="0ohm"/>
<part name="U1" library="SparkFun-IC-Comms" library_urn="urn:adsk.eagle:library:521" deviceset="MAX2323" device="SOIC16" package3d_urn="urn:adsk.eagle:package:38719/1" value="MAX3232"/>
<part name="C1" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" deviceset="1.0UF" device="-0805-25V-(+80/-20%)" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF"/>
<part name="C2" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" deviceset="1.0UF" device="-0805-25V-(+80/-20%)" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF"/>
<part name="C3" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" deviceset="1.0UF" device="-0805-25V-(+80/-20%)" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF"/>
<part name="C4" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" deviceset="1.0UF" device="-0805-25V-(+80/-20%)" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF"/>
<part name="C5" library="SparkFun-Capacitors" library_urn="urn:adsk.eagle:library:510" deviceset="1.0UF" device="-0805-25V-(+80/-20%)" package3d_urn="urn:adsk.eagle:package:37429/1" value="1.0uF"/>
</parts>
<sheets>
<sheet>
@ -4335,6 +4902,30 @@ type V526-0, grid 2.5 mm</description>
<attribute name="NAME" x="107.95" y="110.7186" size="1.778" layer="95"/>
<attribute name="VALUE" x="107.95" y="105.918" size="1.778" layer="96"/>
</instance>
<instance part="U1" gate="G$1" x="124.46" y="53.34" smashed="yes">
<attribute name="NAME" x="114.3" y="69.215" size="1.778" layer="95"/>
<attribute name="VALUE" x="114.3" y="33.02" size="1.778" layer="96"/>
</instance>
<instance part="C1" gate="G$1" x="76.2" y="78.74" smashed="yes" rot="R90">
<attribute name="NAME" x="73.279" y="80.264" size="1.778" layer="95" font="vector" rot="R90"/>
<attribute name="VALUE" x="78.359" y="80.264" size="1.778" layer="96" font="vector" rot="R90"/>
</instance>
<instance part="C2" gate="G$1" x="76.2" y="68.58" smashed="yes" rot="R90">
<attribute name="NAME" x="73.279" y="70.104" size="1.778" layer="95" font="vector" rot="R90"/>
<attribute name="VALUE" x="78.359" y="70.104" size="1.778" layer="96" font="vector" rot="R90"/>
</instance>
<instance part="C3" gate="G$1" x="76.2" y="58.42" smashed="yes" rot="R90">
<attribute name="NAME" x="73.279" y="59.944" size="1.778" layer="95" font="vector" rot="R90"/>
<attribute name="VALUE" x="78.359" y="59.944" size="1.778" layer="96" font="vector" rot="R90"/>
</instance>
<instance part="C4" gate="G$1" x="76.2" y="48.26" smashed="yes" rot="R90">
<attribute name="NAME" x="73.279" y="49.784" size="1.778" layer="95" font="vector" rot="R90"/>
<attribute name="VALUE" x="78.359" y="49.784" size="1.778" layer="96" font="vector" rot="R90"/>
</instance>
<instance part="C5" gate="G$1" x="83.82" y="27.94" smashed="yes">
<attribute name="NAME" x="85.344" y="30.861" size="1.778" layer="95" font="vector"/>
<attribute name="VALUE" x="85.344" y="25.781" size="1.778" layer="96" font="vector"/>
</instance>
</instances>
<busses>
</busses>
@ -4459,6 +5050,36 @@ type V526-0, grid 2.5 mm</description>
<wire x1="68.58" y1="124.46" x2="58.42" y2="124.46" width="0.1524" layer="91"/>
<label x="58.42" y="124.46" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="GND"/>
<wire x1="127" y1="30.48" x2="127" y2="17.78" width="0.1524" layer="91"/>
<label x="127" y="20.32" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C3" gate="G$1" pin="2"/>
<wire x1="78.74" y1="58.42" x2="86.36" y2="58.42" width="0.1524" layer="91"/>
<label x="83.82" y="58.42" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C4" gate="G$1" pin="2"/>
<wire x1="78.74" y1="48.26" x2="86.36" y2="48.26" width="0.1524" layer="91"/>
<label x="83.82" y="48.26" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C5" gate="G$1" pin="2"/>
<wire x1="83.82" y1="25.4" x2="83.82" y2="17.78" width="0.1524" layer="91"/>
<label x="83.82" y="20.32" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="T2IN"/>
<wire x1="109.22" y1="43.18" x2="99.06" y2="43.18" width="0.1524" layer="91"/>
<label x="99.06" y="43.18" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="R2IN"/>
<wire x1="144.78" y1="38.1" x2="154.94" y2="38.1" width="0.1524" layer="91"/>
<label x="149.86" y="38.1" size="1.778" layer="95"/>
</segment>
</net>
<net name="5V" class="0">
<segment>
@ -4561,6 +5182,16 @@ type V526-0, grid 2.5 mm</description>
<wire x1="106.68" y1="109.22" x2="96.52" y2="109.22" width="0.1524" layer="91"/>
<label x="96.52" y="109.22" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="VCC"/>
<wire x1="127" y1="73.66" x2="127" y2="86.36" width="0.1524" layer="91"/>
<label x="127" y="83.82" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C5" gate="G$1" pin="1"/>
<wire x1="83.82" y1="33.02" x2="83.82" y2="40.64" width="0.1524" layer="91"/>
<label x="83.82" y="40.64" size="1.778" layer="95"/>
</segment>
</net>
<net name="PAN" class="0">
<segment>
@ -4619,29 +5250,27 @@ type V526-0, grid 2.5 mm</description>
</net>
<net name="TX" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="3"/>
<wire x1="48.26" y1="46.99" x2="55.88" y2="46.99" width="0.1524" layer="91"/>
<wire x1="55.88" y1="46.99" x2="55.88" y2="48.26" width="0.1524" layer="91"/>
<label x="55.88" y="48.26" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="B1" gate="G$1" pin="*D3"/>
<wire x1="53.34" y1="10.16" x2="63.5" y2="10.16" width="0.1524" layer="91"/>
<label x="60.96" y="10.16" size="1.778" layer="95"/>
</segment>
</net>
<net name="RX" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="6"/>
<wire x1="48.26" y1="39.37" x2="55.88" y2="39.37" width="0.1524" layer="91"/>
<wire x1="55.88" y1="39.37" x2="55.88" y2="40.64" width="0.1524" layer="91"/>
<label x="55.88" y="38.1" size="1.778" layer="95"/>
<pinref part="U1" gate="G$1" pin="T1IN"/>
<wire x1="109.22" y1="45.72" x2="99.06" y2="45.72" width="0.1524" layer="91"/>
<label x="99.06" y="45.72" size="1.778" layer="95"/>
</segment>
</net>
<net name="RX" class="0">
<segment>
<pinref part="B1" gate="G$1" pin="D2"/>
<wire x1="53.34" y1="12.7" x2="63.5" y2="12.7" width="0.1524" layer="91"/>
<label x="60.96" y="12.7" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="R1OUT"/>
<wire x1="109.22" y1="40.64" x2="99.06" y2="40.64" width="0.1524" layer="91"/>
<label x="99.06" y="40.64" size="1.778" layer="95"/>
</segment>
</net>
<net name="B1" class="0">
<segment>
@ -4869,6 +5498,104 @@ type V526-0, grid 2.5 mm</description>
<label x="121.92" y="109.22" size="1.778" layer="95"/>
</segment>
</net>
<net name="C1+" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="C1+"/>
<wire x1="109.22" y1="66.04" x2="99.06" y2="66.04" width="0.1524" layer="91"/>
<label x="99.06" y="66.04" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C1" gate="G$1" pin="1"/>
<wire x1="71.12" y1="78.74" x2="63.5" y2="78.74" width="0.1524" layer="91"/>
<label x="63.5" y="78.74" size="1.778" layer="95"/>
</segment>
</net>
<net name="C1-" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="C1-"/>
<wire x1="109.22" y1="60.96" x2="99.06" y2="60.96" width="0.1524" layer="91"/>
<label x="99.06" y="60.96" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C1" gate="G$1" pin="2"/>
<wire x1="78.74" y1="78.74" x2="86.36" y2="78.74" width="0.1524" layer="91"/>
<label x="83.82" y="78.74" size="1.778" layer="95"/>
</segment>
</net>
<net name="C2+" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="C2+"/>
<wire x1="109.22" y1="55.88" x2="99.06" y2="55.88" width="0.1524" layer="91"/>
<label x="99.06" y="55.88" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C2" gate="G$1" pin="1"/>
<wire x1="71.12" y1="68.58" x2="63.5" y2="68.58" width="0.1524" layer="91"/>
<label x="63.5" y="68.58" size="1.778" layer="95"/>
</segment>
</net>
<net name="C2-" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="C2-"/>
<wire x1="109.22" y1="50.8" x2="99.06" y2="50.8" width="0.1524" layer="91"/>
<label x="99.06" y="50.8" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C2" gate="G$1" pin="2"/>
<wire x1="78.74" y1="68.58" x2="86.36" y2="68.58" width="0.1524" layer="91"/>
<label x="83.82" y="68.58" size="1.778" layer="95"/>
</segment>
</net>
<net name="RS232V+" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="V+"/>
<wire x1="144.78" y1="63.5" x2="157.48" y2="63.5" width="0.1524" layer="91"/>
<label x="147.32" y="63.5" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C3" gate="G$1" pin="1"/>
<wire x1="71.12" y1="58.42" x2="63.5" y2="58.42" width="0.1524" layer="91"/>
<label x="63.5" y="58.42" size="1.778" layer="95"/>
</segment>
</net>
<net name="RS232V-" class="0">
<segment>
<pinref part="U1" gate="G$1" pin="V-"/>
<wire x1="144.78" y1="58.42" x2="157.48" y2="58.42" width="0.1524" layer="91"/>
<label x="147.32" y="58.42" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="C4" gate="G$1" pin="1"/>
<wire x1="71.12" y1="48.26" x2="63.5" y2="48.26" width="0.1524" layer="91"/>
<label x="63.5" y="48.26" size="1.778" layer="95"/>
</segment>
</net>
<net name="232TX" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="3"/>
<wire x1="48.26" y1="46.99" x2="55.88" y2="46.99" width="0.1524" layer="91"/>
<wire x1="55.88" y1="46.99" x2="55.88" y2="48.26" width="0.1524" layer="91"/>
<label x="55.88" y="48.26" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="T1OUT"/>
<wire x1="144.78" y1="45.72" x2="154.94" y2="45.72" width="0.1524" layer="91"/>
<label x="149.86" y="45.72" size="1.778" layer="95"/>
</segment>
</net>
<net name="232RX" class="0">
<segment>
<pinref part="J1" gate="G$1" pin="6"/>
<wire x1="48.26" y1="39.37" x2="55.88" y2="39.37" width="0.1524" layer="91"/>
<wire x1="55.88" y1="39.37" x2="55.88" y2="40.64" width="0.1524" layer="91"/>
<label x="55.88" y="38.1" size="1.778" layer="95"/>
</segment>
<segment>
<pinref part="U1" gate="G$1" pin="R1IN"/>
<wire x1="144.78" y1="40.64" x2="154.94" y2="40.64" width="0.1524" layer="91"/>
<label x="149.86" y="40.64" size="1.778" layer="95"/>
</segment>
</net>
</nets>
</sheet>
</sheets>


+ 52
- 0
visca-controller/visca-controller.h View File

@ -32,4 +32,56 @@
#define BTN9 12
#define BTN10 13
const byte numChars = 16;
byte viscaMessage[numChars];
// Pan/Tilt
byte panTilt[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x03, 0x03, 0xFF };
byte panUp[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x03, 0x01, 0xFF }; // 8x 01 06 01 0p 0t 03 01 ff
byte panDown[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x03, 0x02, 0xFF }; // 8x 01 06 01 0p 0t 03 02 ff
byte panLeft[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x01, 0x03, 0xFF }; // 8x 01 06 01 0p 0t 01 03 ff
byte panRight[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x02, 0x03, 0xFF }; // 8x 01 06 01 0p 0t 02 03 ff
byte panUpLeft[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x01, 0x01, 0xFF }; // 8x 01 06 01 0p 0t 01 01 ff
byte panUpRight[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x02, 0x01, 0xFF }; // 8x 01 06 01 0p 0t 02 01 ff
byte panDownLeft[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x01, 0x02, 0xFF }; // 8x 01 06 01 0p 0t 01 02 ff
byte panDownRight[9] = { 0x81, 0x01, 0x06, 0x01, 0x00, 0x00, 0x02, 0x02, 0xFF }; // 8x 01 06 01 0p 0t 02 02 ff
byte panStop[9] = { 0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x03, 0x03, 0xFF }; // Camera Stop
byte panTiltPosReq[5] = { 0x81, 0x09, 0x06, 0x12, 0xff }; // Resp: y0 50 0p 0q 0r 0s 0t 0u 0v 0w ff ; pqrs: pan position ; tuvw: tilt position
// Zoom
byte zoomTele[6] = { 0x81, 0x01, 0x04, 0x07, 0x2E, 0xff }; // 8x 01 04 07 2p ff
byte zoomWide[6] = { 0x81, 0x01, 0x04, 0x07, 0x3E, 0xff }; // 8x 01 04 07 3p ff
byte zoomStop[6] = { 0x81, 0x01, 0x04, 0x07, 0x00, 0xff };
byte zoomDirect[9] = { 0x81, 0x01, 0x04, 0x47, 0x00, 0x00, 0x00, 0x00, 0xff }; // 8x 01 04 47 0p 0q 0r 0s ff
byte zoomPosReq[5] = { 0x81, 0x09, 0x04, 0x47, 0xff }; // Resp: y0 50 0p 0q 0r 0s ff
// Focus
byte focusAuto[6] = { 0x81, 0x01, 0x04, 0x38, 0x02, 0xff };
byte focusManual[6] = { 0x81, 0x01, 0x04, 0x38, 0x03, 0xff };
byte focusDirect[9] = { 0x81, 0x01, 0x04, 0x48, 0x00, 0x00, 0x00, 0x00, 0xff }; // 8x 01 04 48 0p 0q 0r 0s ff pqrs: focus position
byte focusModeInq[5] = { 0x81, 0x09, 0x04, 0x38, 0xff }; // Resp: y0 50 0p ff ; p=2: Auto, p=3: Manual
// Iris / Gain
byte aeAuto[6] = { 0x81, 0x01, 0x04, 0x39, 0x00, 0xff };
byte aeManual[6] = { 0x81, 0x01, 0x04, 0x39, 0x03, 0xff };
byte irisDirect[9] = { 0x81, 0x01, 0x04, 0x4B, 0x00, 0x00, 0x00, 0x00, 0xff }; // 8x 01 04 4B 0p 0q 0r 0s ff pqrs: Iris position, range 0..50
byte gainDirect[9] = { 0x81, 0x01, 0x04, 0x4C, 0x00, 0x00, 0x00, 0x00, 0xff }; // 8x 01 04 4c 0p 0q 0r 0s ff pqrs: Gain position, values: 12-21dB.
byte aeModeInq[5] = { 0x81, 0x09, 0x04, 0x39, 0xff }; // Resp: y0 50 0p ff ; p=0: Auto, p=3: Manual
// White Balance
byte wbAuto[6] = { 0x81, 0x01, 0x04, 0x35, 0x00, 0xff };
byte wbTableManual[6] = { 0x81, 0x01, 0x04, 0x35, 0x06, 0xff };
byte wbTableDirect[9] = { 0x81, 0x01, 0x04, 0x75, 0x00, 0x00, 0x0, 0x00, 0xff }; // 8x 01 04 75 0p 0q 0r 0s ff pqrs = wb table.
// Config
byte address_command[4] = { 0x88, 0x30, 0x01, 0xFF }; // Sets camera address (Needed for Daisy Chaining)
byte if_clear[5] = { 0x88, 0x01, 0x00, 0x01, 0xFF }; // Checks to see if communication line is clear
byte ir_off[6] = { 0x81, 0x01, 0x06, 0x09, 0x03, 0xff }; // Turn off IR control (required for speed control of Pan/Tilt)
byte callLedOn[6] = { 0x81, 0x01, 0x33, 0x01, 0x01, 0xff};
byte callLedOff[6] = { 0x81, 0x01, 0x33, 0x01, 0x00, 0xff};
byte callLedBlink[6] = { 0x81, 0x01, 0x33, 0x01, 0x02, 0xff};
int delayTime = 500; //Time between commands
#endif

+ 121
- 3
visca-controller/visca-controller.ino View File

@ -1,20 +1,138 @@
#include "visca-controller.h"
LiquidCrystal_I2C lcd(0x27,16,2);
LiquidCrystal_I2C lcd(0x27,20,4);
SoftwareSerial visca(VISCARX, VISCATX);
void setup() {
Serial.begin(9600);
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
for (uint8_t i = 2; i <= 12; i++) {
for (uint8_t i = 4; i <= 12; i++) {
pinMode(i,INPUT);
}
visca.begin(9600);
initCameras();
Serial.println("Started");
}
void loop() {
readSerial();
receiveData();
readButtons();
// int talentDimmer = map(analogRead(TALENT_DIMMER_PIN), 0, 1023, 0, 255);
}
void receiveData() {
static byte ndx = 0;
byte rc;
while (visca.available() > 0) {
rc = visca.read();
if (rc != 0xFF) {
viscaMessage[ndx] = rc;
ndx++;
if (ndx >= numChars) {
ndx = numChars - 1;
}
}
else {
for (uint8_t i = 0; i < ndx; i++) {
Serial.print("0x");
Serial.print(viscaMessage[i], HEX);
Serial.print(" ");
}
Serial.println("0xFF");
ndx = 0;
byte packet[3] = { 0x10, 0x41, 0xFF };
visca.write(packet, 3);
}
}
}
void readSerial() {
if (Serial.available() > 0)
{
char inChar = Serial.read(); // read incoming serial data:
switch(inChar) {
case '1':
initCameras();
break;
case 'w':
sendViscaPacket(panUp, sizeof(panUp));
break;
case 'a':
sendViscaPacket(panLeft, sizeof(panLeft));
break;
case 's':
sendViscaPacket(panDown, sizeof(panDown));
break;
case 'd':
sendViscaPacket(panRight, sizeof(panRight));
break;
case 'q':
sendViscaPacket(panStop, sizeof(panStop));
break;
case 'z':
sendViscaPacket(callLedBlink, sizeof(callLedBlink));
break;
case 'r':
sendViscaPacket(zoomTele, sizeof(zoomTele));
break;
case 'f':
sendViscaPacket(zoomStop, sizeof(zoomStop));
break;
case 'v':
sendViscaPacket(zoomWide, sizeof(zoomWide));
break;
}
}
}
unsigned long time_now = 0;
void readButtons() {
if(millis() > time_now + 100) {
time_now = millis();
bool button1 = digitalRead(8);
if(button1 == true) {
sendViscaPacket(panTiltPosReq, sizeof(panTiltPosReq));
}
}
}
void sendViscaPacket(byte* packet, int byteSize) {
Serial.print("Sending:");
for (int i = 0; i < byteSize; i++)
{
Serial.print(" 0x");
Serial.print(packet[i], HEX);
visca.write(packet[i]);
}
Serial.println();
}
void initCameras() {
//Send Address command
Serial.println("Setting addresses...");
sendViscaPacket(address_command, sizeof(address_command));
delay(delayTime); //delay to allow camera time for next command
receiveData();
// Turn off IR control
Serial.println("Disabling IR control...");
sendViscaPacket(ir_off, sizeof(ir_off));
delay(delayTime); //delay to allow camera time for next command
receiveData();
//Send IF_clear command
Serial.println("Sending IF_Clear...");
sendViscaPacket(if_clear, sizeof(if_clear));
delay(delayTime); //delay to allow camera time for next command
receiveData();
}

Loading…
Cancel
Save