Add files via upload

This commit is contained in:
Frank Adams 2023-08-29 14:37:19 -07:00 committed by GitHub
parent ec29edd1ba
commit 7864c6a0e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 12109 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,338 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// this software will determine how a laptop keyboard matrix is wired using a Teensy 4.0 on an T41 daughterboard.
// Open an editor on a computer and load or create a file that lists every key
// on the laptop keyboard that will be tested. Connect the FPC cable of the test keyboard
// to the Teensy/FPC board. Connect a USB cable from the Teensy to the computer.
// Wait a few seconds for the computer to see the Teensy as a keyboard. If numbers are reported on the screen
// before any keys are pressed, these I/O numbers are shorted together and must be fixed.
// Press each key one by one on the test keyboard as listed on the editor screen. When a key
// is pressed on the test keyboard, the program detects which Teensy I/O's
// were connected. Those two I/O's are sent over USB (separated by a TAB) and displayed
// on the editor. After sending the numbers, a DOWN ARROW is sent over USB to prepare for
// the next key. Once all keys on the test keyboard have been pressed, the file in
// the editor can be saved to create a row-column matrix.
//
// Revision History
// Rev 1.00 - Aug 10, 2023 - Original Release
//
// FPC 02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32
// I/O 33,32,08,10,31,30,07,11,29,28,06,12,27,26,05,24,25,04,20,03,21,02,22,01
// Load an array with the Teensy 4.0 I/O numbers that correspond to the FPC pins
int io_pin[] = {33,32,8,10,31,30,7,11,29,28,6,12,27,26,5,24,25,4,20,3,21,2,22,1};
//
// load the key codes used in sending usb numbers, tab, and down arrow
int key_1 = KEY_1;
int key_2 = KEY_2;
int key_3 = KEY_3;
int key_4 = KEY_4;
int key_5 = KEY_5;
int key_6 = KEY_6;
int key_7 = KEY_7;
int key_8 = KEY_8;
int key_9 = KEY_9;
int key_0 = KEY_0;
int key_tab = KEY_TAB;
int key_down = KEY_DOWN;
//
// Function to set a pin as an input with a pullup so it's high unless grounded by a key press
void go_z(int pin)
{
pinMode(pin, INPUT_PULLUP);
digitalWrite(pin, HIGH);
}
// Function to set a pin as an output and drive it to a logic low (0 volts)
void go_0(int pin)
{
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}
// Function to send numbers over USB for display on an editor
void usb_num(int num) // the numbers 0 thru 33 are sent over usb as 0 thru 33
{
switch (num) {
case 0:
Keyboard.set_key1(key_0);
Keyboard.send_now();
break;
case 1:
Keyboard.set_key1(key_1);
Keyboard.send_now();
break;
case 2:
Keyboard.set_key1(key_2);
Keyboard.send_now();
break;
case 3:
Keyboard.set_key1(key_3);
Keyboard.send_now();
break;
case 4:
Keyboard.set_key1(key_4);
Keyboard.send_now();
break;
case 5:
Keyboard.set_key1(key_5);
Keyboard.send_now();
break;
case 6:
Keyboard.set_key1(key_6);
Keyboard.send_now();
break;
case 7:
Keyboard.set_key1(key_7);
Keyboard.send_now();
break;
case 8:
Keyboard.set_key1(key_8);
Keyboard.send_now();
break;
case 9:
Keyboard.set_key1(key_9);
Keyboard.send_now();
break;
case 10:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_0);
Keyboard.send_now();
break;
case 11:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(50);
Keyboard.set_key1(0);
Keyboard.send_now();
delay(50);
Keyboard.set_key2(key_1);
Keyboard.send_now();
break;
case 12:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_2);
Keyboard.send_now();
break;
case 13:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_3);
Keyboard.send_now();
break;
case 14:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_4);
Keyboard.send_now();
break;
case 15:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_5);
Keyboard.send_now();
break;
case 16:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_6);
Keyboard.send_now();
break;
case 17:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_7);
Keyboard.send_now();
break;
case 18:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_8);
Keyboard.send_now();
break;
case 19:
Keyboard.set_key1(key_1);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_9);
Keyboard.send_now();
break;
case 20:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_0);
Keyboard.send_now();
break;
case 21:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_1);
Keyboard.send_now();
break;
case 22:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(50);
Keyboard.set_key1(0);
Keyboard.send_now();
delay(50);
Keyboard.set_key2(key_2);
Keyboard.send_now();
break;
case 23:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_3);
Keyboard.send_now();
break;
case 24:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_4);
Keyboard.send_now();
break;
case 25:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_5);
Keyboard.send_now();
break;
case 26:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_6);
Keyboard.send_now();
break;
case 27:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_7);
Keyboard.send_now();
break;
case 28:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_8);
Keyboard.send_now();
break;
case 29:
Keyboard.set_key1(key_2);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_9);
Keyboard.send_now();
break;
case 30:
Keyboard.set_key1(key_3);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_0);
Keyboard.send_now();
break;
case 31:
Keyboard.set_key1(key_3);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_1);
Keyboard.send_now();
break;
case 32:
Keyboard.set_key1(key_3);
Keyboard.send_now();
delay(20);
Keyboard.set_key2(key_2);
Keyboard.send_now();
break;
case 33:
Keyboard.set_key1(key_3);
Keyboard.send_now();
delay(50);
Keyboard.set_key1(0);
Keyboard.send_now();
delay(50);
Keyboard.set_key2(key_3);
Keyboard.send_now();
break;
}
delay(20);
Keyboard.set_key1(0); // clear out the key slots
Keyboard.set_key2(0);
Keyboard.send_now();
delay(20);
Keyboard.set_key1(key_tab); // Tab over to position for next number
Keyboard.send_now();
delay(20);
Keyboard.set_key1(0); // clear out the tab from the slot
Keyboard.send_now();
delay(20);
}
// Function to send a down arrow over usb to position for the next key
void down_arrow(void) {
Keyboard.set_key1(key_down); // send a down arrow
Keyboard.send_now();
delay(20);
Keyboard.set_key1(0); // release the down arrow
Keyboard.send_now();
}
// --------------------------------------------------Setup-----------------------------------
void setup() {
for (int k = 0; k < 24; k++) { // loop thru all connected Teensy IO's
go_z(io_pin[k]); // set each I/O pin as an input with a pullup
}
delay(15000); // Wait for the host to connect to the Teensy as a keyboard. If 2 I/O pins are shorted,
// you want the host to be ready to receive the numbers.
}
//
// -------------------------------------------Main Loop--------------------------------------
//
void loop() {
//
//
for (int i=0; i<23; i++) { // outer loop index
go_0(io_pin[i]); // make the outer loop I/O pin an output and send it low
for (int j=i+1; j<24; j++) { // inner loop index
delayMicroseconds(10); // give time to let the signals settle out
if (!digitalRead(io_pin[j])) { // check for connection between inner and outer I/O pins
usb_num(io_pin[i]); // send outer loop I/O number over usb
usb_num(io_pin[j]); // send inner loop I/O number over usb
down_arrow(); // send a down arrow over usb
while(!digitalRead(io_pin[j])) { // wait until key is released
; // if 2 I/O pins are shorted, the code will hang here
}
}
}
go_z(io_pin[i]); // return the outer loop I/O pin to float with pullup
}
//
//
delay(25); // overall keyboard scan rate is about 30 milliseconds
//
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,745 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.6.2">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.1" unitdist="mm" unit="mm" 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"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="24" 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="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" 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="yes" 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="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="yes" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="yes" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="yes" 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="yes" 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="yes" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="88" name="SimResults" color="9" fill="1" visible="no" active="no"/>
<layer number="89" name="SimProbes" color="9" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="yes" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="yes" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="yes" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="yes" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="yes" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="yes" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="yes" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="yes" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="4" fill="1" visible="yes" active="yes"/>
<layer number="114" name="Badge_Outline" color="7" fill="1" visible="yes" active="yes"/>
<layer number="115" name="ReferenceISLANDS" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="yes" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="yes" active="yes"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="yes" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="yes" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="yes" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="yes" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="153" name="FabDoc1" color="7" fill="1" visible="yes" active="yes"/>
<layer number="154" name="FabDoc2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="155" name="FabDoc3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="199" name="Contour" color="7" fill="1" visible="yes" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="yes" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="yes" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="yes" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="yes" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="yes" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="yes" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="yes" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="yes" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="yes" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="yes" active="yes"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="yes" active="yes"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" 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="yes" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<wire x1="0" y1="0" x2="17.5" y2="0" width="0" layer="20"/>
<wire x1="17.5" y1="0" x2="17.5" y2="19" width="0" layer="20"/>
<wire x1="17.5" y1="19" x2="0" y2="19" width="0" layer="20"/>
<wire x1="0" y1="19" x2="0" y2="0" width="0" layer="20"/>
<hole x="2" y="2" drill="2.4"/>
<hole x="15.5" y="17" drill="2.4"/>
<text x="6.5" y="12" size="0.6096" layer="21">1</text>
<text x="6.4" y="5.7" size="0.6096" layer="21">2</text>
<text x="10.9" y="12" size="0.6096" layer="21">19</text>
<text x="11" y="5.7" size="0.6096" layer="21">20</text>
<text x="0.8" y="13.1" size="0.6096" layer="21">1</text>
<text x="0.8" y="15.8" size="0.6096" layer="21">3</text>
<text x="3.2" y="13.2" size="0.6096" layer="21">5</text>
<text x="3.2" y="15.8" size="0.6096" layer="21">7</text>
<text x="5.8" y="13.3" size="0.6096" layer="21">9</text>
<text x="5.5" y="15.8" size="0.6096" layer="21">11</text>
<text x="7.9" y="13.2" size="0.6096" layer="21">13</text>
<text x="8" y="15.9" size="0.6096" layer="21">15</text>
<text x="10.4" y="13.3" size="0.6096" layer="21">17</text>
<text x="10.5" y="15.8" size="0.6096" layer="21">19</text>
<text x="4.1" y="5" size="0.6096" layer="21">2</text>
<text x="4.1" y="2.7" size="0.6096" layer="21">4</text>
<text x="6.6" y="5" size="0.6096" layer="21">6</text>
<text x="6.6" y="2.6" size="0.6096" layer="21">8</text>
<text x="8.8" y="5.1" size="0.6096" layer="21">10</text>
<text x="8.8" y="2.6" size="0.6096" layer="21">12</text>
<text x="11.3" y="5" size="0.6096" layer="21">14</text>
<text x="11.3" y="2.7" size="0.6096" layer="21">16</text>
<text x="13.8" y="5" size="0.6096" layer="21">18</text>
<text x="13.9" y="2.8" size="0.6096" layer="21">20</text>
<text x="14.9" y="10.7" size="0.6096" layer="21">Tab</text>
<text x="1.3" y="7.6" size="0.6096" layer="21">Tab</text>
<text x="0.8" y="11.6" size="0.6096" layer="21">DF12-20DP</text>
<text x="11.7" y="8.1" size="0.6096" layer="22" rot="MR0">DF12-20DP
T41 Touchpad
Connector Breakout</text>
</plain>
<libraries>
<library name="DF12-20DP">
<packages>
<package name="DF12-20DP">
<smd name="2" x="0" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="1" x="0" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="4" x="0.5" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="3" x="0.5" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="6" x="1" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="5" x="1" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="8" x="1.5" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="7" x="1.5" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="10" x="2" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="9" x="2" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="12" x="2.5" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="11" x="2.5" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="14" x="3" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="13" x="3" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="16" x="3.5" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="15" x="3.5" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="18" x="4" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="17" x="4" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="20" x="4.5" y="-1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="19" x="4.5" y="1.8" dx="1.6" dy="0.3" layer="1" rot="R90"/>
<smd name="TAB1" x="-1.75" y="0" dx="0.8" dy="1.7" layer="1"/>
<smd name="TAB2" x="6.25" y="0" dx="0.8" dy="1.7" layer="1"/>
<text x="-6.6" y="4.6" size="1.27" layer="25">&gt;Name</text>
<text x="-6.6" y="3.2" size="1.27" layer="27">&gt;Value</text>
<hole x="-1.05" y="1.5" drill="0.6"/>
<hole x="5.55" y="1.5" drill="0.6"/>
</package>
</packages>
</library>
<library name="SparkFun-Connectors" urn="urn:adsk.eagle:library:513">
<description>&lt;h3&gt;SparkFun Connectors&lt;/h3&gt;
This library contains electrically-functional connectors.
&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="2X5_NOSILK" urn="urn:adsk.eagle:footprint:37735/1" library_version="1">
<description>&lt;h3&gt;Plated Through Hole - 2x5 No Silk Outline&lt;/h3&gt;
&lt;p&gt;Specifications:
&lt;ul&gt;&lt;li&gt;Pin count:10&lt;/li&gt;
&lt;li&gt;Pin pitch:0.1"&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Example device(s):
&lt;ul&gt;&lt;li&gt;CONN_05x2&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796"/>
<pad name="2" x="0" y="2.54" drill="1.016" diameter="1.8796"/>
<pad name="3" x="2.54" y="0" drill="1.016" diameter="1.8796"/>
<pad name="4" x="2.54" y="2.54" drill="1.016" diameter="1.8796"/>
<pad name="5" x="5.08" y="0" drill="1.016" diameter="1.8796"/>
<pad name="6" x="5.08" y="2.54" drill="1.016" diameter="1.8796"/>
<pad name="7" x="7.62" y="0" drill="1.016" diameter="1.8796"/>
<pad name="8" x="7.62" y="2.54" drill="1.016" diameter="1.8796"/>
<pad name="9" x="10.16" y="0" drill="1.016" diameter="1.8796"/>
<pad name="10" x="10.16" y="2.54" drill="1.016" diameter="1.8796"/>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51" rot="R90"/>
<rectangle x1="-0.254" y1="2.286" x2="0.254" y2="2.794" layer="51" rot="R90"/>
<rectangle x1="2.286" y1="2.286" x2="2.794" y2="2.794" layer="51" rot="R90"/>
<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51" rot="R90"/>
<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51" rot="R90"/>
<rectangle x1="9.906" y1="2.286" x2="10.414" y2="2.794" layer="51" rot="R90"/>
<rectangle x1="9.906" y1="-0.254" x2="10.414" y2="0.254" layer="51" rot="R90"/>
<rectangle x1="7.366" y1="-0.254" x2="7.874" y2="0.254" layer="51" rot="R90"/>
<rectangle x1="7.366" y1="2.286" x2="7.874" y2="2.794" layer="51" rot="R90"/>
<rectangle x1="4.826" y1="2.286" x2="5.334" y2="2.794" layer="51" rot="R90"/>
<wire x1="0.635" y1="-1.27" x2="-0.635" y2="-1.27" width="0.2032" layer="51"/>
<text x="-0.889" y="3.81" size="0.6096" layer="25" font="vector" ratio="20">&gt;NAME</text>
<text x="-0.762" y="-2.159" size="0.6096" layer="27" font="vector" ratio="20">&gt;VALUE</text>
</package>
<package name="1X01" urn="urn:adsk.eagle:footprint:37642/1" library_version="1">
<description>&lt;h3&gt;Plated Through Hole&lt;/h3&gt;
&lt;p&gt;Specifications:
&lt;ul&gt;&lt;li&gt;Pin count:1&lt;/li&gt;
&lt;li&gt;Pin pitch:0.1"&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Example device(s):
&lt;ul&gt;&lt;li&gt;CONN_01&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description>
<wire x1="1.27" y1="0.635" x2="0.635" y2="1.27" width="0.2032" layer="21"/>
<wire x1="0.635" y1="1.27" x2="-0.635" y2="1.27" width="0.2032" layer="21"/>
<wire x1="-0.635" y1="1.27" x2="-1.27" y2="0.635" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="0.635" x2="-1.27" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-1.27" y1="-0.635" x2="-0.635" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="-0.635" y1="-1.27" x2="0.635" y2="-1.27" width="0.2032" layer="21"/>
<wire x1="0.635" y1="-1.27" x2="1.27" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="1.27" y1="-0.635" x2="1.27" y2="0.635" width="0.2032" layer="21"/>
<pad name="1" x="0" y="0" drill="1.016" diameter="1.8796" rot="R90"/>
<text x="-1.27" y="1.397" size="0.6096" layer="25" font="vector" ratio="20">&gt;NAME</text>
<text x="-1.27" y="-1.524" size="0.6096" layer="27" font="vector" ratio="20" align="top-left">&gt;VALUE</text>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
</package>
</packages>
<packages3d>
<package3d name="2X5_NOSILK" urn="urn:adsk.eagle:package:38114/1" type="box" library_version="1">
<description>Plated Through Hole - 2x5 No Silk Outline
Specifications:
Pin count:10
Pin pitch:0.1"
Example device(s):
CONN_05x2
</description>
<packageinstances>
<packageinstance name="2X5_NOSILK"/>
</packageinstances>
</package3d>
<package3d name="1X01" urn="urn:adsk.eagle:package:38028/1" type="box" library_version="1">
<description>Plated Through Hole
Specifications:
Pin count:1
Pin pitch:0.1"
Example device(s):
CONN_01
</description>
<packageinstances>
<packageinstance name="1X01"/>
</packageinstances>
</package3d>
</packages3d>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
</classes>
<designrules name="oshpark-2layer">
<description language="en">&lt;b&gt;OSH Park Design Rules&lt;/b&gt;
&lt;p&gt;
Please make sure your boards conform to these design rules.
&lt;/p&gt;
&lt;p&gt;
Note, that not all DRC settings must be set by the manufacturer. Several can be adjusted for the design, including those listed on our docs page here.
&lt;a href=&quot;http://docs.oshpark.com/design-tools/eagle/design-rules-files/&quot;&gt;Adjustable Settings&lt;/a&gt;
&lt;/p&gt;</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.035559375mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.035559375mm"/>
<param name="mtIsolate" value="1.6mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm"/>
<param name="mdWireWire" value="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="15mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="6mil"/>
<param name="msDrill" value="10mil"/>
<param name="msMicroVia" value="10mil"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.25"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.25"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="5mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="5mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="5mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="5mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="5mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="5mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="5mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="2.5mil"/>
<param name="mlMaxStopFrame" value="2.5mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="0mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="checkStop" value="0"/>
<param name="checkValues" value="0"/>
<param name="checkNames" value="1"/>
<param name="checkWireStubs" value="1"/>
<param name="checkPolygonWidth" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="50mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="a"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="a"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="J1" library="DF12-20DP" package="DF12-20DP" value="" x="6.62" y="9.12" smashed="yes">
<attribute name="NAME" x="0.02" y="13.72" size="1.27" layer="25" display="off"/>
<attribute name="VALUE" x="0.02" y="12.32" size="1.27" layer="27"/>
</element>
<element name="J2" library="SparkFun-Connectors" library_urn="urn:adsk.eagle:library:513" package="2X5_NOSILK" package3d_urn="urn:adsk.eagle:package:38114/1" value="" x="5.35" y="1.9" smashed="yes">
<attribute name="NAME" x="4.461" y="5.71" size="0.6096" layer="25" font="vector" ratio="20" display="off"/>
<attribute name="VALUE" x="4.588" y="-0.259" size="0.6096" layer="27" font="vector" ratio="20"/>
</element>
<element name="J3" library="SparkFun-Connectors" library_urn="urn:adsk.eagle:library:513" package="2X5_NOSILK" package3d_urn="urn:adsk.eagle:package:38114/1" value="" x="2" y="14.5" smashed="yes">
<attribute name="NAME" x="1.111" y="18.31" size="0.6096" layer="25" font="vector" ratio="20" display="off"/>
<attribute name="VALUE" x="1.238" y="12.341" size="0.6096" layer="27" font="vector" ratio="20"/>
</element>
<element name="J4" library="SparkFun-Connectors" library_urn="urn:adsk.eagle:library:513" package="1X01" package3d_urn="urn:adsk.eagle:package:38028/1" value="" x="1.9" y="6.1" smashed="yes">
<attribute name="NAME" x="0.63" y="7.497" size="0.6096" layer="25" font="vector" ratio="20" display="off"/>
<attribute name="VALUE" x="0.63" y="4.576" size="0.6096" layer="27" font="vector" ratio="20" align="top-left"/>
</element>
<element name="J5" library="SparkFun-Connectors" library_urn="urn:adsk.eagle:library:513" package="1X01" package3d_urn="urn:adsk.eagle:package:38028/1" value="" x="15.5" y="12.9" smashed="yes">
<attribute name="NAME" x="14.23" y="14.297" size="0.6096" layer="25" font="vector" ratio="20" display="off"/>
<attribute name="VALUE" x="14.23" y="11.376" size="0.6096" layer="27" font="vector" ratio="20" align="top-left"/>
</element>
</elements>
<signals>
<signal name="N$21">
<contactref element="J1" pad="TAB1"/>
<contactref element="J4" pad="1"/>
<wire x1="4.87" y1="9.12" x2="4.85" y2="9.1" width="0.1524" layer="1"/>
<wire x1="4.85" y1="9.1" x2="2.5" y2="9.1" width="0.1524" layer="1"/>
<wire x1="2.5" y1="9.1" x2="1.9" y2="8.5" width="0.1524" layer="1"/>
<wire x1="1.9" y1="8.5" x2="1.9" y2="6.1" width="0.1524" layer="1"/>
</signal>
<signal name="N$22">
<contactref element="J1" pad="TAB2"/>
<contactref element="J5" pad="1"/>
<wire x1="15.5" y1="12.9" x2="15.2934875" y2="12.97250625" width="0.1524" layer="1"/>
<wire x1="15.2934875" y1="12.97250625" x2="12.87" y2="9.12" width="0.1524" layer="1"/>
</signal>
<signal name="N$2">
<contactref element="J1" pad="3"/>
<contactref element="J3" pad="2"/>
<wire x1="7.12" y1="10.92" x2="7.12" y2="11.78" width="0.1524" layer="1"/>
<wire x1="6.3" y1="12.6" x2="3.8" y2="12.6" width="0.1524" layer="1"/>
<wire x1="3.8" y1="12.6" x2="3.3" y2="13.1" width="0.1524" layer="1"/>
<wire x1="3.3" y1="15.74" x2="2" y2="17.04" width="0.1524" layer="1"/>
<wire x1="7.12" y1="11.78" x2="6.3" y2="12.6" width="0.1524" layer="1"/>
<wire x1="3.3" y1="13.1" x2="3.3" y2="15.74" width="0.1524" layer="1"/>
</signal>
<signal name="N$3">
<contactref element="J1" pad="1"/>
<contactref element="J3" pad="1"/>
<wire x1="6.62" y1="10.92" x2="6.62" y2="11.28" width="0.1524" layer="1"/>
<wire x1="5.7" y1="12.2" x2="2.1" y2="12.2" width="0.1524" layer="1"/>
<wire x1="2.1" y1="12.2" x2="2" y2="12.3" width="0.1524" layer="1"/>
<wire x1="2" y1="12.3" x2="2" y2="14.5" width="0.1524" layer="1"/>
<wire x1="6.62" y1="11.28" x2="5.7" y2="12.2" width="0.1524" layer="1"/>
</signal>
<signal name="N$4">
<contactref element="J1" pad="5"/>
<contactref element="J3" pad="3"/>
<wire x1="7.62" y1="10.92" x2="7.62" y2="11.78" width="0.1524" layer="1"/>
<wire x1="7.62" y1="11.78" x2="6.4" y2="13" width="0.1524" layer="1"/>
<wire x1="6.4" y1="13" x2="5" y2="13" width="0.1524" layer="1"/>
<wire x1="5" y1="13" x2="4.54" y2="13.46" width="0.1524" layer="1"/>
<wire x1="4.54" y1="13.46" x2="4.54" y2="14.5" width="0.1524" layer="1"/>
</signal>
<signal name="N$5">
<contactref element="J1" pad="7"/>
<contactref element="J3" pad="4"/>
<wire x1="8.12" y1="10.92" x2="8.12" y2="11.78" width="0.1524" layer="1"/>
<wire x1="6.5952" y1="13.3048" x2="6.1" y2="13.3048" width="0.1524" layer="1"/>
<wire x1="6.1" y1="13.3048" x2="5.8" y2="13.6048" width="0.1524" layer="1"/>
<wire x1="5.8" y1="15.78" x2="4.54" y2="17.04" width="0.1524" layer="1"/>
<wire x1="8.12" y1="11.78" x2="6.5952" y2="13.3048" width="0.1524" layer="1"/>
<wire x1="5.8" y1="13.6048" x2="5.8" y2="15.78" width="0.1524" layer="1"/>
</signal>
<signal name="N$6">
<contactref element="J1" pad="9"/>
<contactref element="J3" pad="5"/>
<wire x1="8.62" y1="10.92" x2="8.62" y2="11.88" width="0.1524" layer="1"/>
<wire x1="7.08" y1="13.42" x2="7.08" y2="14.5" width="0.1524" layer="1"/>
<wire x1="8.62" y1="11.88" x2="7.08" y2="13.42" width="0.1524" layer="1"/>
</signal>
<signal name="N$7">
<contactref element="J1" pad="11"/>
<contactref element="J3" pad="6"/>
<wire x1="9.12" y1="10.92" x2="9.12" y2="12.08" width="0.1524" layer="1"/>
<wire x1="8.3" y1="15.82" x2="7.08" y2="17.04" width="0.1524" layer="1"/>
<wire x1="9.12" y1="12.08" x2="8.3" y2="12.9" width="0.1524" layer="1"/>
<wire x1="8.3" y1="12.9" x2="8.3" y2="15.82" width="0.1524" layer="1"/>
</signal>
<signal name="N$8">
<contactref element="J1" pad="13"/>
<contactref element="J3" pad="7"/>
<wire x1="9.62" y1="10.92" x2="9.62" y2="14.5" width="0.1524" layer="1"/>
</signal>
<signal name="N$9">
<contactref element="J1" pad="15"/>
<contactref element="J3" pad="8"/>
<wire x1="10.12" y1="10.92" x2="10.12" y2="13.02" width="0.1524" layer="1"/>
<wire x1="10.12" y1="13.02" x2="10.9" y2="13.8" width="0.1524" layer="1"/>
<wire x1="10.9" y1="13.8" x2="10.9" y2="15.4" width="0.1524" layer="1"/>
<wire x1="9.62" y1="16.68" x2="9.62" y2="17.04" width="0.1524" layer="1"/>
<wire x1="10.9" y1="15.4" x2="9.62" y2="16.68" width="0.1524" layer="1"/>
</signal>
<signal name="N$10">
<contactref element="J1" pad="17"/>
<contactref element="J3" pad="9"/>
<wire x1="10.62" y1="10.92" x2="10.62" y2="12.52" width="0.1524" layer="1"/>
<wire x1="12.16" y1="14.06" x2="12.16" y2="14.5" width="0.1524" layer="1"/>
<wire x1="10.62" y1="12.52" x2="12.16" y2="14.06" width="0.1524" layer="1"/>
</signal>
<signal name="N$1">
<contactref element="J1" pad="19"/>
<contactref element="J3" pad="10"/>
<wire x1="11.12" y1="10.92" x2="11.12" y2="12.02" width="0.1524" layer="1"/>
<wire x1="12" y1="12.9" x2="13.2" y2="12.9" width="0.1524" layer="1"/>
<wire x1="13.2" y1="12.9" x2="13.4" y2="13.1" width="0.1524" layer="1"/>
<wire x1="13.4" y1="15.8" x2="12.16" y2="17.04" width="0.1524" layer="1"/>
<wire x1="11.12" y1="12.02" x2="12" y2="12.9" width="0.1524" layer="1"/>
<wire x1="13.4" y1="13.1" x2="13.4" y2="15.8" width="0.1524" layer="1"/>
</signal>
<signal name="N$11">
<contactref element="J1" pad="2"/>
<contactref element="J2" pad="2"/>
<wire x1="6.62" y1="7.32" x2="6.62" y2="6.72" width="0.1524" layer="1"/>
<wire x1="6.62" y1="6.72" x2="5.3" y2="5.4" width="0.1524" layer="1"/>
<wire x1="5.3" y1="5.4" x2="5.3" y2="4.59" width="0.1524" layer="1"/>
<wire x1="5.3" y1="4.59" x2="5.35" y2="4.44" width="0.1524" layer="1"/>
</signal>
<signal name="N$12">
<contactref element="J1" pad="4"/>
<contactref element="J2" pad="1"/>
<wire x1="5.35" y1="1.9" x2="5.35" y2="2.65" width="0.1524" layer="1"/>
<wire x1="7.12" y1="6.42" x2="7.12" y2="7.32" width="0.1524" layer="1"/>
<wire x1="5.35" y1="2.65" x2="6.7" y2="4" width="0.1524" layer="1"/>
<wire x1="6.7" y1="4" x2="6.7" y2="6" width="0.1524" layer="1"/>
<wire x1="6.7" y1="6" x2="7.12" y2="6.42" width="0.1524" layer="1"/>
</signal>
<signal name="N$13">
<contactref element="J1" pad="6"/>
<contactref element="J2" pad="4"/>
<wire x1="7.89" y1="4.44" x2="7.89" y2="5.41" width="0.1524" layer="1"/>
<wire x1="7.62" y1="5.68" x2="7.62" y2="7.32" width="0.1524" layer="1"/>
<wire x1="7.89" y1="5.41" x2="7.62" y2="5.68" width="0.1524" layer="1"/>
</signal>
<signal name="N$14">
<contactref element="J1" pad="8"/>
<contactref element="J2" pad="3"/>
<wire x1="7.89" y1="1.9" x2="9.2" y2="3.31" width="0.1524" layer="1"/>
<wire x1="9.2" y1="3.31" x2="9.2" y2="5" width="0.1524" layer="1"/>
<wire x1="8.12" y1="6.08" x2="8.12" y2="7.32" width="0.1524" layer="1"/>
<wire x1="9.2" y1="5" x2="8.12" y2="6.08" width="0.1524" layer="1"/>
</signal>
<signal name="N$15">
<contactref element="J1" pad="10"/>
<contactref element="J2" pad="6"/>
<wire x1="10.43" y1="4.44" x2="8.62" y2="6.35" width="0.1524" layer="1"/>
<wire x1="8.62" y1="6.35" x2="8.62" y2="7.32" width="0.1524" layer="1"/>
</signal>
<signal name="N$16">
<contactref element="J1" pad="12"/>
<contactref element="J2" pad="5"/>
<wire x1="10.43" y1="1.9" x2="10.43" y2="2.63" width="0.1524" layer="1"/>
<wire x1="10.43" y1="2.63" x2="11.8" y2="4" width="0.1524" layer="1"/>
<wire x1="11.8" y1="4" x2="11.8" y2="4.82236875" width="0.1524" layer="1"/>
<wire x1="11.8" y1="4.82236875" x2="11.01396875" y2="5.6084" width="0.1524" layer="1"/>
<wire x1="9.12" y1="6.28105625" x2="9.12" y2="7.32" width="0.1524" layer="1"/>
<wire x1="11.01396875" y1="5.6084" x2="9.79265625" y2="5.6084" width="0.1524" layer="1"/>
<wire x1="9.79265625" y1="5.6084" x2="9.12" y2="6.28105625" width="0.1524" layer="1"/>
</signal>
<signal name="N$17">
<contactref element="J1" pad="14"/>
<contactref element="J2" pad="8"/>
<wire x1="9.62" y1="7.32" x2="9.62" y2="6.2932" width="0.1524" layer="1"/>
<wire x1="9.62" y1="6.2932" x2="10" y2="5.9132" width="0.1524" layer="1"/>
<wire x1="10" y1="5.9132" x2="11.140225" y2="5.9132" width="0.1524" layer="1"/>
<wire x1="12.513425" y1="4.54" x2="12.97" y2="4.44" width="0.1524" layer="1"/>
<wire x1="11.140225" y1="5.9132" x2="12.513425" y2="4.54" width="0.1524" layer="1"/>
</signal>
<signal name="N$18">
<contactref element="J1" pad="16"/>
<contactref element="J2" pad="7"/>
<wire x1="10.12" y1="7.32" x2="10.12" y2="6.38" width="0.1524" layer="1"/>
<wire x1="10.282" y1="6.218" x2="13.782" y2="6.218" width="0.1524" layer="1"/>
<wire x1="13.782" y1="6.218" x2="14.2" y2="5.8" width="0.1524" layer="1"/>
<wire x1="14.2" y1="3.13" x2="12.97" y2="1.9" width="0.1524" layer="1"/>
<wire x1="10.12" y1="6.38" x2="10.282" y2="6.218" width="0.1524" layer="1"/>
<wire x1="14.2" y1="5.8" x2="14.2" y2="3.13" width="0.1524" layer="1"/>
</signal>
<signal name="N$19">
<contactref element="J1" pad="18"/>
<contactref element="J2" pad="10"/>
<wire x1="10.62" y1="7.32" x2="10.62" y2="8.62" width="0.1524" layer="1"/>
<wire x1="10.8" y1="8.8" x2="11.6" y2="8.8" width="0.1524" layer="1"/>
<wire x1="11.6" y1="8.8" x2="11.9" y2="8.5" width="0.1524" layer="1"/>
<wire x1="11.9" y1="8.5" x2="11.9" y2="8" width="0.1524" layer="1"/>
<wire x1="11.9" y1="8" x2="12" y2="7.9" width="0.1524" layer="1"/>
<wire x1="12" y1="7.9" x2="14.8" y2="7.9" width="0.1524" layer="1"/>
<via x="14.8" y="7.9" extent="1-16" drill="0.35"/>
<wire x1="14.8" y1="7.9" x2="15.51" y2="7.19" width="0.1524" layer="16"/>
<wire x1="15.51" y1="7.19" x2="15.51" y2="4.44" width="0.1524" layer="16"/>
<wire x1="10.62" y1="8.62" x2="10.8" y2="8.8" width="0.1524" layer="1"/>
</signal>
<signal name="N$20">
<contactref element="J1" pad="20"/>
<contactref element="J2" pad="9"/>
<wire x1="15.51" y1="1.9" x2="16.8" y2="3.276578125" width="0.1524" layer="1"/>
<wire x1="16.8" y1="3.276578125" x2="16.8" y2="7" width="0.1524" layer="1"/>
<wire x1="16.8" y1="7" x2="16.48" y2="7.32" width="0.1524" layer="1"/>
<wire x1="16.48" y1="7.32" x2="11.12" y2="7.32" width="0.1524" layer="1"/>
</signal>
</signals>
<mfgpreviewcolors>
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
<mfgpreviewcolor name="silkscreencolor" color="0xFFFEFEFE"/>
<mfgpreviewcolor name="backgroundcolor" color="0xFF282828"/>
<mfgpreviewcolor name="coppercolor" color="0xFFFFBF00"/>
<mfgpreviewcolor name="substratecolor" color="0xFF786E46"/>
</mfgpreviewcolors>
</board>
</drawing>
<compatibility>
<note version="6.3" minversion="6.2.2" severity="warning">
Since Version 6.2.2 text objects can contain more than one line,
which will not be processed correctly with this version.
</note>
<note version="8.2" severity="warning">
Since Version 8.2, EAGLE supports online libraries. The ids
of those online libraries will not be understood (or retained)
with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports URNs for individual library
assets (packages, symbols, and devices). The URNs of those assets
will not be understood (or retained) with this version.
</note>
<note version="8.3" severity="warning">
Since Version 8.3, EAGLE supports the association of 3D packages
with devices in libraries, schematics, and board files. Those 3D
packages will not be understood (or retained) with this version.
</note>
</compatibility>
</eagle>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,94 @@
cntrl-l 10 22
cntrl-r 26 22
shift-l 30 21
shift-r 26 21
alt-l 32 1
alt-r 24 1
gui
fn
a 28 20
b 29 24
c 27 26
d 28 27
e 11 27
f 29 28
g 32 29
h 33 32
i 8 11
j 33 28
k 8 28
l 7 28
m 33 26
n 33 24
o 7 11
p 11 6
q 11 20
r 11 29
s 28 25
t 30 29
u 33 11
v 29 26
w 11 25
x 26 25
y 33 30
z 26 20
` 10 20
1 12 20
2 12 25
3 12 27
4 29 12
5 10 29
6 33 10
7 33 12
8 8 12
9 7 12
0 6 12
- 10 6
= 8 10
bckspace 31 30
esc 32 20
f1 10 25
f2 10 27
f3 30 27
f4 32 27
f5 32 31
f6 32 8
f7 30 7
f8 10 7
f9 10 31
f10 31 12
f11 12 5
f12 12 4
insert 10 4
delete 10 5
home 10 2
pg-up 10 3
pg-dn 12 3
end 12 2
arrow-r 24 4
arrow-l 24 2
arrow-u 32 2
arrow-d 5 24
menu
/ 6 24
period 7 26
comma 8 26
; 28 6
' 32 6
enter 31 26
[ 30 6
] 8 30
\ 31 28
caps-lck 30 25
tab 30 20
space 31 24
prt-sc 12 1
screen-lk 11 1
pause 26 2
access IBM 32 5
vol down 30 5
vol up 11 5
mute 28 5
page left 26 3
page right 24 3