Commit 19c8c4ce authored by Prashant Patil's avatar Prashant Patil

added the documentation

parent f025c728
Pipeline #1012 canceled with stage
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>FabFTDI</title>
</head>
<body>
<h1>FabFTDI: A Do-It-Yourself FTDI Cable (i.e. USB to Serial Converter) </h1>
<h1>&nbsp;</h1>
<h1>1 Introduction </h1>
<p>FabFTDI is DIY version of FTDI cable that can be made in fablab and this page descirbes how to make it. &nbsp;The FabFTDI uses an Atmega16U2 microcontroller and is based on USbtoSerial example of LUFA library. Figure below shows the schematic diagram of the FabFTDI:</p>
<img src="FabFTDI_Schematic.png" width="900" height="560" alt=""/>
<p><em>Schematic circuit diagram of FabFTDI</em></p>
<p>&nbsp;</p>
<p>The FabFTDI is powered through USB port which provides 500mA at 5V. The USB data line D+/D- is used to communicate with the microcontrolle's USB controller. Since the data lines operate at 3.3V, two voltage limiting zener diodes are used to limit the voltage in these pins. The D- line is pulled-up to the 5V through 1.5K resistor to indicate to the host computer that the connnected device is a low-speed USB device. The USB controller needs a precise clock, therefore, an external 16MHz crystal is used as a precise clock source. The LED and the corresponding resistor R4 is optional but if used can be used as visual indication of data communication. The FabFTDI is a USB 2.0 Full-speed device and support upto&nbsp;38400bps of serial communication. The Unix and Mac OS doesn not require any drivers, however, a driver is required for windows operating system (more on this later). </p>
<h1>2 Fabrication of FabFTDI</h1>
<h2>2.1 FabFTDI Using ATTiny102</h2>
<p>ATTiny102 is a low-cost 8-pin micro-controller with in-built UART. This version of the FabFTDI uses V-USB for software-only implementation of a low-speed USB device and is based on V-USB CDC example. Figure below shows the schematic diagram of the circuit</p>
<h3>2.1.1 Schematic Circuit Diagram</h3>
<img src="FabFTDIAttiny102/FabFTDITSchematic.png" width="800" height="430" alt=""/>
<p>Figure below shows the routed board. </p>
<h3>2.1.2 Board Design</h3>
<img src="FabFTDIAttiny102/FabFTDIBoard.png" width="800" height="298" alt=""/>
<h3>2.1.3 Board Fabrication and Assembly</h3>
<ol>
<li>Download the PNG files for trace and board outline from links below - FabFTDI traces (1000dpi) FabFTDI board outline (1000dpi) </li>
<li>Use the standard PCB milling process to fabricate PCB. </li>
<li>You will need following components: Attiny45, two 3.3V Zener diode, 0.1uF capacitor, two 49ohm resistors, two 470ohm resistors, 1K resistor, 499ohm resistor, 2x3 pin header and 1x6 pin header. </li>
<li>Make sure to solder zerner diode in the right orientation. The anode (A) should be connected to GND and cathode (C) should be connected to D- or D+. </li>
<li>If there is any access copper left in front of the middle two pads of USB footprint in the board, remove it using a knife and apply some solder to all the pads of USB lines as shown below-</li>
</ol>
<h3>2.1.4 Programing Fuses &amp; Firmware</h3>
<ol>
<li>Download the firmware file from <a href="Firmware/default/cdctiny45.hex">here</a>. Flash it using the following command (replace avrisp2 with usbtiny if you are using fabisp)<br />
<br />
sudo avrdude -p t45 -c avrisp2 -P usb -U flash:w:cdctiny45.hex:i <br />
<br />
</li>
<li>Flash fuses using following commands<br />
<br />
<ul>
<li>sudo avrdude -p t45 -c avrisp2 -U lfuse:w:0xF1:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U hfuse:w:0xCE:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U euse:w:0xFF:m<br />
</li>
</ul>
</li>
</ol>
<h2>2.2 FabFTDI Using Attiny441</h2>
<h3>2.2.1 Schematic Circuit Diagram</h3>
<img src="FabFTDI Attiny441/FabFTDSchematic.png" width="800" height="459" alt=""/>
<h3>2.2.2 Board Design</h3>
<img src="FabFTDI Attiny441/FabFTDIBoard.png" width="800" height="427" alt=""/>
<p>&nbsp;&nbsp;</p>
<h3>2.2.3 Board Fabrication and Assembly</h3>
<ol>
<li>Download the PNG files for trace and board outline from links below - FabFTDI traces (1000dpi) FabFTDI board outline (1000dpi) </li>
<li>Use the standard PCB milling process to fabricate PCB. </li>
<li>You will need following components: Attiny45, two 3.3V Zener diode, 0.1uF capacitor, two 49ohm resistors, two 470ohm resistors, 1K resistor, 499ohm resistor, 2x3 pin header and 1x6 pin header. </li>
<li>Make sure to solder zerner diode in the right orientation. The anode (A) should be connected to GND and cathode (C) should be connected to D- or D+. </li>
<li>If there is any access copper left in front of the middle two pads of USB footprint in the board, remove it using a knife and apply some solder to all the pads of USB lines as shown below-</li>
</ol>
<h3>2.2.4 Programing Fuses &amp; Firmware</h3>
<ol>
<li>Download the firmware file from <a href="Firmware/default/cdctiny45.hex">here</a>. Flash it using the following command (replace avrisp2 with usbtiny if you are using fabisp)<br />
<br />
sudo avrdude -p t45 -c avrisp2 -P usb -U flash:w:cdctiny45.hex:i <br />
<br />
</li>
<li>Flash fuses using following commands<br />
<br />
<ul>
<li>sudo avrdude -p t45 -c avrisp2 -U lfuse:w:0xF1:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U hfuse:w:0xCE:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U euse:w:0xFF:m<br />
</li>
</ul>
</li>
</ol>
<h2>2.3 FabFTDI Using ATTiny45 </h2>
<h3>2.3.1 Schematic Circuit Diagram</h3>
<img src="FabFTDIAttiny45/FabFTDISchematic.png" width="800" height="452" alt=""/>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The figure above shows the schematic diagram of the FabFTDI circuit. The circuit is powered by a USB port which can provide 5V voltage and up to 500mA current.</p>
<p> A USB port has four lines: 5V, D-, D+ and GND. The line D- and D+ are called data lines and used to for communication. These data lines can tolerate only upto 3.3V voltage, and therefore, two Zener diodes are used to limit the voltage to 3.3V. The line D- is connected to 5V using 15k (10kohm + 499ohm) which is used by the host (your computer) to determine that the connected device is a low speed device. Resistors R5 and R6 are used to protect TxD and RxD pins.</p>
<p>&nbsp;</p>
<h3>2.3.2 Board Design </h3>
<img src="FabFTDIAttiny45/Board.PNG" width="800" height="378" alt=""/>
<p>&nbsp; </p>
<p>Use the above image as a guideline for solder components.</p>
<p>If you would like to edit original eagle files, here is the link for the <a href="FabFTDI.sch">schematic</a> and <a href="FabFTDI.brd">board</a> files.</p>
<p>&nbsp;</p>
<h3>2.3.4 PCB Fabrication and Assembly</h3>
<ol>
<li>Download the PNG files for trace and board outline from links below -
<ul>
<li><a href="FabFTDITrace.png">FabFTDI traces (1000dpi)</a></li>
<li><a href="FabFTDIBG.png">FabFTDI board outline (1000dpi)</a></li>
</ul>
</li>
<li>Use the standard PCB milling process to fabricate PCB.</li>
<li>You will need following components: Attiny45, two 3.3V Zener diode, 0.1uF capacitor, two 49ohm resistors, two 470ohm resistors, 1K resistor, 499ohm resistor, 2x3 pin header and 1x6 pin header.</li>
<li>Make sure to solder zerner diode in the right orientation. The anode (A) should be connected to GND and cathode (C) should be connected to D- or D+. <br />
<br />
<br />
<br />
</li>
<img src="FabFTDIAttiny45/IMG_0266.jpg" width="800" height="364" alt=""/>
<li>If there is any access copper left in front of the middle two pads of USB footprint in the board, remove it using a knife and apply some solder to all the pads of USB lines as shown below-<br />
<br />
<br />
<br />
</li>
<img src="FabFTDIAttiny45/IMG_0272.jpg" width="800" height="724" alt=""/>
</ol>
<h3>2.3.5 Programing Fuses &amp; Firmware</h3>
<ol>
<li>Download the firmware file from <a href="Firmware/default/cdctiny45.hex">here</a>. Flash it using the following command (replace avrisp2 with usbtiny if you are using fabisp)<br />
<br />
sudo avrdude -p t45 -c avrisp2 -P usb -U flash:w:cdctiny45.hex:i <br />
<br />
</li>
<li>Flash fuses using following commands<br />
<br />
<ul>
<li>sudo avrdude -p t45 -c avrisp2 -U lfuse:w:0xF1:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U hfuse:w:0xCE:m</li>
<li>sudo avrdude -p t45 -c avrisp2 -U euse:w:0xFF:m<br />
</li>
</ul>
</li>
</ol>
<p>Note that the current version of firmware does not support hardware flow control using RTS/CTS. If you would like to edit the firmware, here is the link to original <a href="Firmware.zip">files</a>.</p>
<p>&nbsp;</p>
<h1>3 Testing your FabFTDI</h1>
<ol>
<li>Connect your FabFTDI to a computer. Mac/Unix operating system should be able to detect it without any driver. For Windows, download driver from <a href="http://www.recursion.jp/prose/avrcdc/avrcdc_inf.zip">here</a>.</li>
<li>For testing FabFTDI, we will use Neil's <a href="http://academy.cba.mit.edu/classes/embedded_programming/index.html">hello.ftdi.44.echo</a> board. Since our cable support baud rate up to 4800, we need to specify this baud rate in hello.ftdi.44.echo.c file. Open this file and change bit_delay_time = 208.3, compile and flash it into hello.ftdi.44.echo board. </li>
<li>Next step is same as what you did in <a href="http://academy.cba.mit.edu/classes/embedded_programming/hello.ftdi.44.program.png">Embedded programming week</a>. Connect FabFTDI to hello.ftdi.44.echo and execute command<br />
<br />
python term.py /dev/ttyACM0 4800</li>
</ol>
<p>if you can see the typed character in term.py window echo'ing back then you have a working FabFTDI. Congratulations!!</p>
<img src="FabFTDIAttiny45/IMG_0280.jpg" width="800" height="471" alt=""/>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>4 Troubleshooting</h1>
<p>If things don't workout, try following things</p>
<ol>
<li>Double check the polarity of the two Zener diodes.</li>
<li>Consider using other USB port on your computer. </li>
<li>Check if the FabFTDI is connected in the right orientation. Match GND pin of FabFTDI to GND pin of hello.ftdi.44.echo board.</li>
<li>Make sure FabFTDI is plugged-in properly and not loose.<br />
</li>
</ol>
<p>&nbsp;</p>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="8.3.2">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting keepoldvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="1" unitdist="mil" unit="mil" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="mil"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="2" name="Route2" color="1" fill="3" visible="no" active="no"/>
<layer number="3" name="Route3" color="4" fill="3" visible="no" active="no"/>
<layer number="4" name="Route4" color="1" fill="4" visible="no" active="no"/>
<layer number="5" name="Route5" color="4" fill="4" visible="no" active="no"/>
<layer number="6" name="Route6" color="1" fill="8" visible="no" active="no"/>
<layer number="7" name="Route7" color="4" fill="8" visible="no" active="no"/>
<layer number="8" name="Route8" color="1" fill="2" visible="no" active="no"/>
<layer number="9" name="Route9" color="4" fill="2" visible="no" active="no"/>
<layer number="10" name="Route10" color="1" fill="7" visible="no" active="no"/>
<layer number="11" name="Route11" color="4" fill="7" visible="no" active="no"/>
<layer number="12" name="Route12" color="1" fill="5" visible="no" active="no"/>
<layer number="13" name="Route13" color="4" fill="5" visible="no" active="no"/>
<layer number="14" name="Route14" color="1" fill="6" visible="no" active="no"/>
<layer number="15" name="Route15" color="4" fill="6" visible="no" active="no"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="no" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="no" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="no" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="no" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="7" fill="1" visible="no" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="no" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="no" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="153" name="FabDoc1" color="6" fill="1" visible="no" active="no"/>
<layer number="154" name="FabDoc2" color="2" fill="1" visible="no" active="no"/>
<layer number="155" name="FabDoc3" color="7" fill="15" visible="no" active="no"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="248" name="Housing" color="7" fill="1" visible="no" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="no" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
</layers>
<board>
<plain>
<wire x1="-0.127" y1="0" x2="66.294" y2="-0.0254" width="0" layer="20"/>
<wire x1="66.294" y1="-0.0254" x2="66.1724" y2="29.7436" width="0" layer="20"/>
<wire x1="66.1724" y1="29.7436" x2="-0.2032" y2="29.6928" width="0" layer="20"/>
<wire x1="-0.2032" y1="29.6928" x2="-0.127" y2="0" width="0" layer="20"/>
</plain>
<libraries>
<library name="fabPatil">
<packages>
<package name="SOD123">
<description>&lt;b&gt;SMALL OUTLINE DIODE&lt;/b&gt;</description>
<wire x1="-2.973" y1="0.983" x2="2.973" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.973" y1="-0.983" x2="-2.973" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-2.973" y1="-0.983" x2="-2.973" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.973" y1="0.983" x2="2.973" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-1.321" y1="0.787" x2="1.321" y2="0.787" width="0.1016" layer="51"/>
<wire x1="-1.321" y1="-0.787" x2="1.321" y2="-0.787" width="0.1016" layer="51"/>
<wire x1="-1.321" y1="-0.787" x2="-1.321" y2="0.787" width="0.1016" layer="51"/>
<wire x1="1.321" y1="-0.787" x2="1.321" y2="0.787" width="0.1016" layer="51"/>
<wire x1="-1" y1="0" x2="0" y2="0.5" width="0.2032" layer="51"/>
<wire x1="0" y1="0.5" x2="0" y2="-0.5" width="0.2032" layer="51"/>
<wire x1="0" y1="-0.5" x2="-1" y2="0" width="0.2032" layer="51"/>
<wire x1="-1" y1="0.5" x2="-1" y2="0" width="0.2032" layer="51"/>
<wire x1="-1" y1="0" x2="-1" y2="-0.5" width="0.2032" layer="51"/>
<smd name="CATHODE" x="-1.7" y="0" dx="1.6" dy="0.8" layer="1"/>
<smd name="ANODE" x="1.7" y="0" dx="1.6" dy="0.8" layer="1"/>
<text x="-1.905" y="1.905" size="1.27" layer="25">&gt;NAME</text>
<text x="-1.905" y="-0.635" size="1.27" layer="27">&gt;VALUE</text>
<rectangle x1="-1.9558" y1="-0.3048" x2="-1.3716" y2="0.3048" layer="51" rot="R180"/>
<rectangle x1="1.3716" y1="-0.3048" x2="1.9558" y2="0.3048" layer="51" rot="R180"/>
<rectangle x1="-0.4001" y1="-0.7" x2="0.4001" y2="0.7" layer="35"/>
</package>
<package name="1206">
<description>&lt;b&gt;RESISTOR&lt;/b&gt;&lt;p&gt;
chip</description>
<wire x1="0.9525" y1="-0.8128" x2="-0.9652" y2="-0.8128" width="0.1524" layer="51"/>
<wire x1="0.9525" y1="0.8128" x2="-0.9652" y2="0.8128" width="0.1524" layer="51"/>
<wire x1="-2.3206" y1="0.983" x2="2.3206" y2="0.983" width="0.0508" layer="39"/>
<wire x1="2.3206" y1="0.983" x2="2.3206" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="2.3206" y1="-0.983" x2="-2.3206" y2="-0.983" width="0.0508" layer="39"/>
<wire x1="-2.3206" y1="-0.983" x2="-2.3206" y2="0.983" width="0.0508" layer="39"/>
<smd name="2" x="1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<smd name="1" x="-1.422" y="0" dx="1.6" dy="1.803" layer="1"/>
<text x="-1.397" y="1.143" size="1.27" layer="25">&gt;NAME</text>
<text x="-1.397" y="-1.143" size="1.27" layer="27">&gt;VALUE</text>
<rectangle x1="-1.6891" y1="-0.8763" x2="-0.9525" y2="0.8763" layer="51"/>
<rectangle x1="0.9525" y1="-0.8763" x2="1.6891" y2="0.8763" layer="51"/>
<rectangle x1="-0.3" y1="-0.7" x2="0.3" y2="0.7" layer="35"/>
</package>
<package name="1X06-SMD">
<wire x1="7.62" y1="-0.02" x2="-7.62" y2="-0.02" width="0.127" layer="51"/>
<wire x1="-7.62" y1="-0.02" x2="-7.62" y2="-7.6" width="0.127" layer="51"/>
<wire x1="-7.62" y1="-7.6" x2="7.62" y2="-7.6" width="0.127" layer="51"/>
<wire x1="7.62" y1="-7.6" x2="7.62" y2="-0.02" width="0.127" layer="51"/>
<smd name="4" x="1.27" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
<smd name="5" x="3.81" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
<smd name="6" x="6.35" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
<smd name="3" x="-1.27" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
<smd name="2" x="-3.81" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
<smd name="1" x="-6.35" y="-1.35" dx="3" dy="1" layer="1" rot="R90"/>
</package>
<package name="USB_PCB">
<description>Card-edge USB A connector.
For boards designed to be plugged directly into a USB slot. If possible, ensure that your PCB is about 2.4mm thick to fit snugly.</description>
<wire x1="-4" y1="6" x2="7.7" y2="6" width="0.127" layer="51"/>
<wire x1="7.7" y1="6" x2="7.7" y2="-6" width="0.127" layer="51" style="shortdash"/>
<wire x1="7.7" y1="-6" x2="-4" y2="-6" width="0.127" layer="51"/>
<wire x1="-4" y1="-6" x2="-4" y2="6" width="0.127" layer="51"/>
<smd name="5V" x="1.55" y="-3.5" dx="11" dy="1.5" layer="1"/>
<smd name="D-" x="2.05" y="-1" dx="10" dy="1" layer="1"/>
<smd name="D+" x="2.05" y="1" dx="10" dy="1" layer="1"/>
<smd name="GND" x="1.55" y="3.5" dx="11" dy="1.5" layer="1"/>
<text x="-1.27" y="5.08" size="0.4064" layer="25">&gt;Name</text>
<text x="-1.27" y="-5.08" size="0.4064" layer="27">&gt;Value</text>
</package>
<package name="2X03SMD">
<smd name="1" x="-2.54" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="3" x="-2.54" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="5" x="-2.54" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="2" x="2.92" y="2.54" dx="2.54" dy="1.27" layer="1"/>
<smd name="4" x="2.92" y="0" dx="2.54" dy="1.27" layer="1"/>
<smd name="6" x="2.92" y="-2.54" dx="2.54" dy="1.27" layer="1"/>
<text x="-5.08" y="2.54" size="1.27" layer="27">1</text>
<text x="-3.81" y="3.81" size="1.27" layer="21">&gt;NAME</text>
<text x="-3.81" y="-5.08" size="1.27" layer="21">&gt;VALUE</text>
</package>
</packages>
</library>
<library name="adafruit">
<packages>
<package name="TQFP32-08">
<description>&lt;B&gt;Thin Plasic Quad Flat Package&lt;/B&gt; Grid 0.8 mm</description>
<wire x1="3.505" y1="3.505" x2="3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="3.505" y1="-3.505" x2="-3.505" y2="-3.505" width="0.1524" layer="21"/>
<wire x1="-3.505" y1="-3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="3.505" y2="3.505" width="0.1524" layer="21"/>
<wire x1="-3.15" y1="3.505" x2="-3.505" y2="3.15" width="0.1524" layer="21"/>
<circle x="-2.7432" y="2.7432" radius="0.3592" width="0.1524" layer="21"/>
<smd name="1" x="-4.2926" y="2.8" dx="1.27" dy="0.3556" layer="1"/>
<smd name="2" x="-4.2926" y="2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="3" x="-4.2926" y="1.2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="4" x="-4.2926" y="0.4" dx="1.27" dy="0.3556" layer="1"/>
<smd name="5" x="-4.2926" y="-0.4" dx="1.27" dy="0.3556" layer="1"/>
<smd name="6" x="-4.2926" y="-1.2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="7" x="-4.2926" y="-2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="8" x="-4.2926" y="-2.8" dx="1.27" dy="0.3556" layer="1"/>
<smd name="9" x="-2.8" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="10" x="-2" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="11" x="-1.2" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="12" x="-0.4" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="13" x="0.4" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="14" x="1.2" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="15" x="2" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="16" x="2.8" y="-4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="17" x="4.2926" y="-2.8" dx="1.27" dy="0.3556" layer="1"/>
<smd name="18" x="4.2926" y="-2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="19" x="4.2926" y="-1.2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="20" x="4.2926" y="-0.4" dx="1.27" dy="0.3556" layer="1"/>
<smd name="21" x="4.2926" y="0.4" dx="1.27" dy="0.3556" layer="1"/>
<smd name="22" x="4.2926" y="1.2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="23" x="4.2926" y="2" dx="1.27" dy="0.3556" layer="1"/>
<smd name="24" x="4.2926" y="2.8" dx="1.27" dy="0.3556" layer="1"/>
<smd name="25" x="2.8" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="26" x="2" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="27" x="1.2" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="28" x="0.4" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="29" x="-0.4" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="30" x="-1.2" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="31" x="-2" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<smd name="32" x="-2.8" y="4.2926" dx="0.3556" dy="1.27" layer="1"/>
<text x="-2.7686" y="5.08" size="0.8128" layer="25">&gt;NAME</text>
<text x="-3.0226" y="-1.27" size="0.8128" layer="27">&gt;VALUE</text>
<rectangle x1="-4.5466" y1="2.5714" x2="-3.556" y2="3.0286" layer="51"/>
<rectangle x1="-4.5466" y1="1.7714" x2="-3.556" y2="2.2286" layer="51"/>
<rectangle x1="-4.5466" y1="0.9714" x2="-3.556" y2="1.4286" layer="51"/>
<rectangle x1="-4.5466" y1="0.1714" x2="-3.556" y2="0.6286" layer="51"/>
<rectangle x1="-4.5466" y1="-0.6286" x2="-3.556" y2="-0.1714" layer="51"/>
<rectangle x1="-4.5466" y1="-1.4286" x2="-3.556" y2="-0.9714" layer="51"/>
<rectangle x1="-4.5466" y1="-2.2286" x2="-3.556" y2="-1.7714" layer="51"/>
<rectangle x1="-4.5466" y1="-3.0286" x2="-3.556" y2="-2.5714" layer="51"/>
<rectangle x1="-3.0286" y1="-4.5466" x2="-2.5714" y2="-3.556" layer="51"/>
<rectangle x1="-2.2286" y1="-4.5466" x2="-1.7714" y2="-3.556" layer="51"/>
<rectangle x1="-1.4286" y1="-4.5466" x2="-0.9714" y2="-3.556" layer="51"/>
<rectangle x1="-0.6286" y1="-4.5466" x2="-0.1714" y2="-3.556" layer="51"/>
<rectangle x1="0.1714" y1="-4.5466" x2="0.6286" y2="-3.556" layer="51"/>
<rectangle x1="0.9714" y1="-4.5466" x2="1.4286" y2="-3.556" layer="51"/>
<rectangle x1="1.7714" y1="-4.5466" x2="2.2286" y2="-3.556" layer="51"/>
<rectangle x1="2.5714" y1="-4.5466" x2="3.0286" y2="-3.556" layer="51"/>
<rectangle x1="3.556" y1="-3.0286" x2="4.5466" y2="-2.5714" layer="51"/>
<rectangle x1="3.556" y1="-2.2286" x2="4.5466" y2="-1.7714" layer="51"/>
<rectangle x1="3.556" y1="-1.4286" x2="4.5466" y2="-0.9714" layer="51"/>
<rectangle x1="3.556" y1="-0.6286" x2="4.5466" y2="-0.1714" layer="51"/>
<rectangle x1="3.556" y1="0.1714" x2="4.5466" y2="0.6286" layer="51"/>
<rectangle x1="3.556" y1="0.9714" x2="4.5466" y2="1.4286" layer="51"/>
<rectangle x1="3.556" y1="1.7714" x2="4.5466" y2="2.2286" layer="51"/>
<rectangle x1="3.556" y1="2.5714" x2="4.5466" y2="3.0286" layer="51"/>
<rectangle x1="2.5714" y1="3.556" x2="3.0286" y2="4.5466" layer="51"/>
<rectangle x1="1.7714" y1="3.556" x2="2.2286" y2="4.5466" layer="51"/>
<rectangle x1="0.9714" y1="3.556" x2="1.4286" y2="4.5466" layer="51"/>
<rectangle x1="0.1714" y1="3.556" x2="0.6286" y2="4.5466" layer="51"/>
<rectangle x1="-0.6286" y1="3.556" x2="-0.1714" y2="4.5466" layer="51"/>
<rectangle x1="-1.4286" y1="3.556" x2="-0.9714" y2="4.5466" layer="51"/>
<rectangle x1="-2.2286" y1="3.556" x2="-1.7714" y2="4.5466" layer="51"/>
<rectangle x1="-3.0286" y1="3.556" x2="-2.5714" y2="4.5466" layer="51"/>
</package>
<package name="HC49UP">
<description>&lt;b&gt;CRYSTAL&lt;/b&gt;</description>
<wire x1="-5.1091" y1="1.143" x2="-3.429" y2="2.0321" width="0.0508" layer="21" curve="-55.770993"/>
<wire x1="-5.715" y1="1.143" x2="-5.715" y2="2.159" width="0.1524" layer="21"/>
<wire x1="3.429" y1="2.032" x2="5.1091" y2="1.143" width="0.0508" layer="21" curve="-55.772485"/>
<wire x1="5.715" y1="1.143" x2="5.715" y2="2.159" width="0.1524" layer="21"/>
<wire x1="3.429" y1="-1.27" x2="-3.429" y2="-1.27" width="0.0508" layer="21"/>
<wire x1="3.429" y1="-2.032" x2="-3.429" y2="-2.032" width="0.0508" layer="21"/>
<wire x1="-3.429" y1="1.27" x2="3.429" y2="1.27" width="0.0508" layer="21"/>
<wire x1="5.461" y1="-2.413" x2="-5.461" y2="-2.413" width="0.1524" layer="21"/>
<wire x1="5.715" y1="-0.381" x2="6.477" y2="-0.381" width="0.1524" layer="51"/>
<wire x1="5.715" y1="0.381" x2="6.477" y2="0.381" width="0.1524" layer="51"/>
<wire x1="6.477" y1="-0.381" x2="6.477" y2="0.381" width="0.1524" layer="51"/>
<wire x1="5.461" y1="-2.413" x2="5.715" y2="-2.159" width="0.1524" layer="21" curve="90"/>
<wire x1="5.715" y1="-1.143" x2="5.715" y2="1.143" width="0.1524" layer="51"/>
<wire x1="5.715" y1="-2.159" x2="5.715" y2="-1.143" width="0.1524" layer="21"/>
<wire x1="3.429" y1="-1.27" x2="3.9826" y2="-1.143" width="0.0508" layer="21" curve="25.842828"/>
<wire x1="3.429" y1="1.27" x2="3.9826" y2="1.143" width="0.0508" layer="21" curve="-25.842828"/>
<wire x1="3.429" y1="-2.032" x2="5.109" y2="-1.1429" width="0.0508" layer="21" curve="55.771157"/>
<wire x1="3.9826" y1="-1.143" x2="3.9826" y2="1.143" width="0.0508" layer="51" curve="128.314524"/>
<wire x1="5.1091" y1="-1.143" x2="5.1091" y2="1.143" width="0.0508" layer="51" curve="68.456213"/>
<wire x1="-5.1091" y1="-1.143" x2="-3.429" y2="-2.032" width="0.0508" layer="21" curve="55.772485"/>
<wire x1="-3.9826" y1="-1.143" x2="-3.9826" y2="1.143" width="0.0508" layer="51" curve="-128.314524"/>
<wire x1="-3.9826" y1="-1.143" x2="-3.429" y2="-1.27" width="0.0508" layer="21" curve="25.842828"/>
<wire x1="-3.9826" y1="1.143" x2="-3.429" y2="1.27" width="0.0508" layer="21" curve="-25.842828"/>
<wire x1="-6.477" y1="-0.381" x2="-6.477" y2="0.381" width="0.1524" layer="51"/>
<wire x1="-5.1091" y1="-1.143" x2="-5.1091" y2="1.143" width="0.0508" layer="51" curve="-68.456213"/>
<wire x1="-5.715" y1="-1.143" x2="-5.715" y2="-0.381" width="0.1524" layer="51"/>
<wire x1="-5.715" y1="-0.381" x2="-5.715" y2="0.381" width="0.1524" layer="51"/>
<wire x1="-5.715" y1="0.381" x2="-5.715" y2="1.143" width="0.1524" layer="51"/>
<wire x1="-5.715" y1="-2.159" x2="-5.715" y2="-1.143" width="0.1524" layer="21"/>
<wire x1="-5.715" y1="-2.159" x2="-5.461" y2="-2.413" width="0.1524" layer="21" curve="90"/>
<wire x1="-5.715" y1="-0.381" x2="-6.477" y2="-0.381" width="0.1524" layer="51"/>
<wire x1="-5.715" y1="0.381" x2="-6.477" y2="0.381" width="0.1524" layer="51"/>
<wire x1="-3.429" y1="2.032" x2="3.429" y2="2.032" width="0.0508" layer="21"/>
<wire x1="5.461" y1="2.413" x2="-5.461" y2="2.413" width="0.1524" layer="21"/>
<wire x1="5.461" y1="2.413" x2="5.715" y2="2.159" width="0.1524" layer="21" curve="-90"/>
<wire x1="-5.715" y1="2.159" x2="-5.461" y2="2.413" width="0.1524" layer="21" curve="-90"/>
<wire x1="-0.254" y1="0.635" x2="-0.254" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="-0.254" y1="-0.635" x2="0.254" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="0.254" y1="-0.635" x2="0.254" y2="0.635" width="0.1524" layer="21"/>
<wire x1="0.254" y1="0.635" x2="-0.254" y2="0.635" width="0.1524" layer="21"/>
<wire x1="-0.635" y1="0.635" x2="-0.635" y2="0" width="0.1524" layer="21"/>
<wire x1="-0.635" y1="0" x2="-0.635" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="-0.635" y1="0" x2="-1.016" y2="0" width="0.0508" layer="21"/>
<wire x1="0.635" y1="0.635" x2="0.635" y2="0" width="0.1524" layer="21"/>
<wire x1="0.635" y1="0" x2="0.635" y2="-0.635" width="0.1524" layer="21"/>
<wire x1="0.635" y1="0" x2="1.016" y2="0" width="0.0508" layer="21"/>
<smd name="1" x="-4.826" y="0" dx="5.334" dy="1.9304" layer="1"/>
<smd name="2" x="4.826" y="0" dx="5.334" dy="1.9304" layer="1"/>
<text x="-5.715" y="2.794" size="1.27" layer="25" ratio="10">&gt;NAME</text>
<text x="-5.715" y="-4.191" size="1.27" layer="27" ratio="10">&gt;VALUE</text>
<rectangle x1="-6.604" y1="-3.048" x2="6.604" y2="3.048" layer="43"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="Patil">
<description language="de">&lt;b&gt;EAGLE Design Rules&lt;/b&gt;
&lt;p&gt;
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">&lt;b&gt;EAGLE Design Rules&lt;/b&gt;
&lt;p&gt;
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="16mil"/>
<param name="mdWirePad" value="16mil"/>
<param name="mdWireVia" value="16mil"/>
<param name="mdPadPad" value="16mil"/>
<param name="mdPadVia" value="16mil"/>
<param name="mdViaVia" value="16mil"/>
<param name="mdSmdPad" value="16mil"/>
<param name="mdSmdVia" value="16mil"/>
<param name="mdSmdSmd" value="16mil"/>
<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"/>