├── enclosure models ├── diffuser75.ipt ├── screwflare74.ipt └── tipthick1024.ipt ├── .gitattributes ├── electric imp source ├── agent.nut └── device.nut ├── README.md ├── .gitignore ├── arduino source ├── gb112ship.ino └── gbot1219.ino └── pcbs └── v1 ├── encoder.brd ├── relay10.sch ├── relay10.brd ├── probings.brd └── lcdmount.brd /enclosure models/diffuser75.ipt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liseman/growerbot/HEAD/enclosure models/diffuser75.ipt -------------------------------------------------------------------------------- /enclosure models/screwflare74.ipt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liseman/growerbot/HEAD/enclosure models/screwflare74.ipt -------------------------------------------------------------------------------- /enclosure models/tipthick1024.ipt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liseman/growerbot/HEAD/enclosure models/tipthick1024.ipt -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /electric imp source/agent.nut: -------------------------------------------------------------------------------- 1 | const FEED_ID = "874455613"; 2 | const API_KEY = "wu15xJAHf39lmYqOsIaTNfGFBRR8vxYfAdq0UYumkgqKlshM"; 3 | function send_xively(body) { //take in csv value 4 | local xively_url = "https://api.xively.com/v2/feeds/" + FEED_ID + ".csv"; //setup url for csv 5 | server.log(xively_url); 6 | server.log(body); //pring body for testing 7 | local req = http.put(xively_url, {"X-ApiKey":API_KEY, "Content-Type":"text/csv", "User-Agent":"Xively-Imp-Lib/1.0"}, body); //add headers 8 | local res = req.sendsync(); //send request 9 | if(res.statuscode != 200) { 10 | server.log("error sending message: "+res.body); 11 | }else device.send("status", (res.statuscode + " OK")); //sends status to uart. this can be removed if not desired 12 | } 13 | 14 | device.on("data", function(feedCSV) { //take csv body in from device 15 | server.log("device on"); 16 | 17 | //send preformatted multi-ds csv 18 | send_xively(feedCSV); //send to function to call xively 19 | }); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Growerbot 2 | 3 | Welcome to the Growerbot github repository. The growerbot is a social gardening assistant, more details at [growerbot.com](http://www.growerbot.com/) 4 | 5 | ## Arduino source 6 | 7 | To use the Arduino source you'll need those three libraries : 8 | 9 | * [Time Library](http://www.arduino.cc/playground/uploads/Code/Time.zip) 10 | * [Adafruits Lux sensor library](https://github.com/adafruit/TSL2561-Arduino-Library) 11 | * [Adafruits DHT sensor library](https://github.com/adafruit/DHT-sensor-library) 12 | 13 | Download them and put them into the libraries folder of your Aduino IDE installation. 14 | 15 | To install Arduino IDE please go to : [http://arduino.cc/en/Main/Software](http://arduino.cc/en/Main/Software) 16 | 17 | To upload the program into the Growerbot please follow the instruction on the fifth video of the [assembly videos](http://www.growerbot.com/2013/02/03/growerbot-kit-assembly-videos/). 18 | 19 | ### Linux Users 20 | 21 | If you have installed Arduino IDE via an installer (i.e. apt-get) note that your library may be in your home folder at ~/sketchbook/libraries (Tested only with Ubuntu). 22 | Also if you have problems compiling the Time library and it's the Time/DateString.cpp file that cause the problem you can remove all the "PROGMEM" keywords to make it compile without problems. 23 | 24 | ## Electric Imp Source 25 | 26 | Those file are samples to use with the Electrc Imp SD card. Please refer to the Readme file into the folder for more help. 27 | 28 | 29 | ## PCBs 30 | 31 | Those are the schematics and board design to build a Growerbot, you can also buy a kit at [www.growerbot.com/buy/](http://www.growerbot.com/buy/). 32 | 33 | To learn what you need and how to build your Growerbot please watch the assembly videos at [www.growerbot.com/blog/](http://www.growerbot.com/2013/02/03/growerbot-kit-assembly-videos/) 34 | -------------------------------------------------------------------------------- /electric imp source/device.nut: -------------------------------------------------------------------------------- 1 | local index = 0; 2 | local masterUART = array(100); //serial buffer 3 | //these should be changed to non character values 4 | local startbit = 124; //which is | 5 | local endbit = 126; //which is ~ 6 | //uart initialization 7 | function startUART() 8 | { 9 | hardware.configure(UART_57); 10 | hardware.uart57.configure(19200, 8, PARITY_NONE, 1, NO_CTSRTS); //baud:19200, dataBits:8, parity, stopbit 11 | } 12 | //uart check 13 | function checkUART() 14 | { 15 | //define sleepy time here 16 | imp.wakeup(60, checkUART.bindenv(this)); 17 | 18 | local byte = hardware.uart57.read(); //read uart 19 | 20 | while (byte != -1) 21 | { 22 | //server.log(byte); 23 | if(byte == endbit){ //check if endbit 24 | local startint = masterUART.find(startbit); //find startbit 25 | if(startint != null){ 26 | local fullTrans = masterUART.slice((startint + 1),index); //slice transmission from checkbits 27 | local transString = ""; 28 | for(local a=0;a 23 | #include 24 | SoftwareSerial mySerial(2, 3); 25 | 26 | //sleep stuff 27 | #include 28 | #include 29 | #include 30 | volatile int f_wdt=1; 31 | 32 | void setup(void) 33 | { 34 | mySerial.begin(19200); 35 | 36 | Serial.begin(115200); 37 | 38 | //dht 39 | dht.setup(10); // data pin 2 40 | 41 | delay(1000); 42 | 43 | //sleepstuff 44 | /*** Setup the WDT ***/ 45 | 46 | /* Clear the reset flag. */ 47 | MCUSR &= ~(1< 13 | // initialize the library with the numbers of the interface pins 14 | LiquidCrystal lcd(5, 6, 7, 8, 9, 10); 15 | 16 | //rotary encoder 17 | int encoderPin1 = 2; 18 | int encoderPin2 = 3; 19 | volatile int lastEncoded = 0; 20 | volatile long encoderValue = 0; 21 | long lastEncoderValue = 0; 22 | int lastMSB = 0; 23 | int lastLSB = 0; 24 | int buttonPin = 4; 25 | bool buttonState = 0; 26 | int menu = 0; 27 | int menuSub = 0; 28 | int pRotationIncrement = 25; 29 | int nRotationIncrement = -25; 30 | boolean menuChange = false; 31 | boolean valueChange = false; 32 | bool subMenu = 0; 33 | float time = 0; 34 | int debounce = 50; 35 | bool previous = 0; 36 | 37 | //light sensor 38 | #include 39 | #include 40 | TSL2561 tsl(TSL2561_ADDR_FLOAT); 41 | uint16_t ir, full, visible, luxOld, luxNew, lum; 42 | //set target light level here 43 | uint16_t luxGoal = 250; 44 | //set target light proportion here 45 | float lightProportionGoal = .7; 46 | float lightProportion = 0; 47 | //indicates current status of light. ? todo switch to just reading if relay pin is high or low? 48 | bool lightOn = 0; 49 | //mimimum and maximum amounts of time for light to turn on in seconds. only used if lightCycle = 1 50 | bool lightCycle = 0; 51 | int minLightCycleTime = 5; 52 | int maxLightCycleTime = 600; 53 | //minimum and maximum numbers of times for light to turn on per day. only used if lightDaily = 1 54 | bool lightDaily = 0; 55 | int minLightsDaily = 0; 56 | int maxLightsDaily = 10; 57 | //times light has been on today 58 | int lightsToday = 0; 59 | //seconds light is on 60 | float timeLightOn = 0; 61 | //seconds during which light level is at or above minimum lux 62 | float timeBrightEnough = 0; 63 | //number of seconds between turning lights off (makes sure we don't keep our assisted lighting on when it's bright enough naturally for the plants) 64 | int lightCheckFrequency = 1200; 65 | 66 | //temp, humidity sensor 67 | #include 68 | #define DHTPIN 11 69 | #define DHTTYPE DHT22 70 | DHT dht(DHTPIN, DHTTYPE); 71 | float humidOld, humidNew, tempOld, tempNew; 72 | 73 | //moisture probes 74 | int moisturePin = 3; 75 | int moistOld = 0, moistNew = 0; 76 | //set target moisture level here 77 | int moistGoal = 200; 78 | bool pumpOn = 0; 79 | //mimimum and maximum amounts of time for pump to turn on in seconds 80 | int minPumpCycleTime = 5; 81 | int maxPumpCycleTime = 600; 82 | //length of current pump cycle 83 | int currentCycleTime = 0; 84 | //minimum and maximum numbers of times for pump to turn on per day 85 | int minPumpsDaily = 0; 86 | int maxPumpsDaily = 10; 87 | //number of times pump has run today 88 | int pumpsToday = 0; 89 | //seconds pump is on 90 | long timePumpOn = 0; 91 | //total time elapsed 92 | float timeTotal = 0; 93 | float timeNew = 0; 94 | float timeOld = 0; 95 | int daysLeft = 30, daysElapsed = 0; 96 | 97 | //relays 98 | int relayWater = 12; 99 | int relayLight = 13; 100 | 101 | //imp 102 | #include 103 | SoftwareSerial softSerial(14,15); //rx, tx 104 | 105 | //timers 106 | #include 107 | #include 108 | 109 | //variables for input from server 110 | boolean stringComplete = false; 111 | String inputString = ""; 112 | 113 | //array to hold all variables we care about passing between cloud and garden 114 | //String variablesPassing[] = {relayWater + humidNew + profileName}; 115 | String toSend; 116 | 117 | //long resetInterval = 118 | 119 | void setup() 120 | { 121 | inputString.reserve(200); 122 | 123 | //lcd 124 | lcd.begin(16, 2); 125 | lcd.print("growerbot v1.0"); 126 | 127 | //rotary 128 | pinMode(encoderPin1, INPUT); 129 | pinMode(encoderPin2, INPUT); 130 | pinMode(buttonPin, INPUT); 131 | digitalWrite(encoderPin1, HIGH); 132 | digitalWrite(encoderPin2, HIGH); 133 | attachInterrupt(0, updateEncoder, CHANGE); 134 | attachInterrupt(1, updateEncoder, CHANGE); 135 | 136 | //light 137 | tsl.setGain(TSL2561_GAIN_16X); 138 | tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS); 139 | 140 | //temp 141 | pinMode(DHTPIN, INPUT); 142 | dht.begin(); 143 | 144 | //relays 145 | pinMode(relayWater, OUTPUT); 146 | pinMode(relayLight, OUTPUT); 147 | digitalWrite(relayWater, LOW); 148 | digitalWrite(relayLight, LOW); 149 | 150 | //define how many seconds to pass between sensor, relay checks, send data, and receive settings 151 | int sensorCheckFrequency = 1; 152 | int relayCheckFrequency = 5; 153 | int dataSendFrequency = 60; 154 | int settingReceiveFrequency = 3600; 155 | 156 | //timers 157 | //read sensors every 1 second 158 | Alarm.timerRepeat(sensorCheckFrequency, checkSensors); 159 | //check if relays should be on every 5 seconds, watering or lighting as necessary 160 | Alarm.timerRepeat(relayCheckFrequency, relayCheck); 161 | //send data to server every minute 162 | Alarm.timerRepeat(dataSendFrequency, sendData); 163 | //blink lights this frequency, to make sure we're not leaving them on when natural light is sufficient 164 | Alarm.timerRepeat(lightCheckFrequency, lightCheck); 165 | //todo: reset daily stuff, proportions every day 166 | Alarm.timerRepeat(86400, dayUpdate); 167 | //serial 168 | Serial.begin(9600); 169 | softSerial.begin(2400); 170 | } 171 | 172 | void loop() 173 | { 174 | //checks state of scheduled events, as per http://answers.oreilly.com/topic/2704-how-to-create-an-arduino-alarm-that-calls-a-function/ 175 | Alarm.delay(1); 176 | encodeDisplay(); 177 | //check for input on softSerial 178 | softSerialCheck(); 179 | } 180 | 181 | void encodeDisplay() 182 | { 183 | //update display based on menu rotation 184 | if (encoderValue > pRotationIncrement) 185 | { 186 | if ( subMenu == 0) menu++; 187 | else menuSub++; 188 | encoderValue = 0; 189 | menuChange = true; 190 | } 191 | if (encoderValue < nRotationIncrement) 192 | { 193 | if ( subMenu == 0) menu--; 194 | else menuSub--; 195 | encoderValue = 0; 196 | menuChange = true; 197 | } 198 | 199 | //update lcd whenever sensor value or menu change 200 | if (subMenu == 0 && (menuChange == true || valueChange == true)) 201 | { 202 | lcd.clear(); 203 | lcd.setCursor(0,0); 204 | switch(menu) 205 | { 206 | case -1: 207 | menu = 5; 208 | break; 209 | case 0: 210 | //grow menu 211 | lcd.print(growName); 212 | lcd.setCursor(0,1); 213 | lcd.print(daysLeft); 214 | lcd.print(" days left"); 215 | break; 216 | case 1: 217 | //light menu 218 | lcd.print("light "); 219 | lcd.print(luxNew); 220 | lcd.print(" lux"); 221 | lcd.setCursor(0,1); 222 | lcd.print("proportion "); 223 | lcd.print(lightProportion); 224 | break; 225 | case 2: 226 | //moisture menu 227 | lcd.print("moisture level"); 228 | lcd.setCursor(0,1); 229 | lcd.print(moistNew); 230 | break; 231 | case 3: 232 | //temp/humidity 233 | lcd.print(tempNew); 234 | lcd.print(" Celsius"); 235 | lcd.setCursor(0,1); 236 | lcd.print(humidNew); 237 | lcd.print("% humidity"); 238 | break; 239 | case 4: 240 | //connection 241 | lcd.print("AP "); 242 | lcd.print(apName); 243 | lcd.setCursor(0,1); 244 | lcd.print(urlName); 245 | break; 246 | case 5: 247 | menu = 0; 248 | break; 249 | } 250 | } 251 | 252 | //update lcd whenever sensor value or submenu change 253 | if (subMenu == 1 && (menuChange == true || valueChange == true)) 254 | { 255 | lcd.clear(); 256 | lcd.setCursor(0,0); 257 | //decide which submenu to show based on main menu 258 | switch(menu) 259 | { 260 | case -1: 261 | menu = 5; 262 | break; 263 | //growMenu's submenus 264 | case 0: 265 | switch(menuSub) 266 | { 267 | case -1: 268 | menuSub = 1; 269 | break; 270 | case 0: 271 | lcd.print("planted "); 272 | lcd.print(daysElapsed); 273 | lcd.setCursor(0,1); 274 | lcd.print("days ago"); 275 | break; 276 | case 1: 277 | lcd.print(sourceName); 278 | lcd.setCursor(0,1); 279 | lcd.print(sourceVariety); 280 | break; 281 | case 2: 282 | menuSub = 0; 283 | break; 284 | } 285 | break; 286 | //lightMenu's submenus 287 | case 1: 288 | switch(menuSub) 289 | { 290 | case -1: 291 | menuSub = 3; 292 | break; 293 | case 0: 294 | lcd.print("target "); 295 | lcd.print(luxGoal); 296 | lcd.print(" lux"); 297 | lcd.setCursor(0,1); 298 | lcd.print("proportion "); 299 | lcd.print(lightProportionGoal); 300 | break; 301 | case 1: 302 | lcd.print("infrared"); 303 | lcd.setCursor(0,1); 304 | lcd.print(ir); 305 | break; 306 | case 2: 307 | lcd.print("visible"); 308 | lcd.setCursor(0,1); 309 | lcd.print(visible); 310 | break; 311 | case 3: 312 | lcd.print("lumens"); 313 | lcd.print(lum); 314 | break; 315 | case 4: 316 | menuSub = 0; 317 | break; 318 | } 319 | break; 320 | //moistMenu's submenus 321 | case 2: 322 | lcd.print("target level"); 323 | lcd.setCursor(0,1); 324 | lcd.print(moistGoal); 325 | break; 326 | //tempMenu's submenus 327 | case 3: 328 | break; 329 | //connMenu's submenus 330 | case 4: 331 | break; 332 | case 5: 333 | menu = 0; 334 | break; 335 | } 336 | } 337 | 338 | //read button press. use debounce to adjust. thx to arduino.cc for some of code 339 | buttonState=digitalRead(buttonPin); 340 | if (buttonState == 1 && previous == 0 && millis() - time > debounce) 341 | { 342 | if (subMenu == 1) 343 | { 344 | subMenu = 0; 345 | menuSub = 0; 346 | } 347 | else subMenu = 1; 348 | time = millis(); 349 | menuChange == true; 350 | } 351 | previous = buttonState; 352 | menuChange = false; 353 | valueChange = false; 354 | } 355 | 356 | void softSerialCheck() 357 | { 358 | while (softSerial.available()) 359 | { 360 | char inChar = (char)softSerial.read(); 361 | inputString += inChar; 362 | //Serial.println(inputString); 363 | if (inChar == '\n') 364 | { 365 | stringComplete = true; 366 | } 367 | } 368 | 369 | if (stringComplete) 370 | { 371 | Serial.println(inputString); 372 | //use light proportion setting if sent from imp cloud 373 | if (inputString.indexOf("L") > -1) 374 | { 375 | int start = inputString.indexOf("L") + 1; 376 | int end = inputString.lastIndexOf("L"); 377 | String lightSection = inputString.substring(start, end); 378 | char lightChar[] = ""; 379 | lightSection.toCharArray(lightChar, sizeof(lightSection)); 380 | lightProportionGoal = atof(lightChar); 381 | } 382 | //use light brightness setting if sent from imp cloud 383 | if (inputString.indexOf("B") > -1) 384 | { 385 | int start = inputString.indexOf("B") + 1; 386 | int end = inputString.lastIndexOf("B"); 387 | String luxSection = inputString.substring(start, end); 388 | char luxChar[] = ""; 389 | luxSection.toCharArray(luxChar, sizeof(luxSection)); 390 | luxGoal = atoi(luxChar); 391 | Serial.println(luxGoal); 392 | } 393 | //use moisture setting if sent from imp cloud 394 | if (inputString.indexOf("M") > -1) 395 | { 396 | int start = inputString.indexOf("M") + 1; 397 | int end = inputString.lastIndexOf("M"); 398 | String moistSection = inputString.substring(start, end); 399 | char moistChar[] = ""; 400 | moistSection.toCharArray(moistChar, sizeof(moistSection)); 401 | moistGoal = atoi(moistChar); 402 | } 403 | //turn on light if Ll1 is received from imp cloud. note that normal cycling still applies: may go off moments later 404 | if (inputString.indexOf("Ll1") > -1) digitalWrite(relayLight, HIGH); 405 | //turn on pump if Pp1 is received from imp cloud. note that normal cycling still applies: may go off moments later 406 | if (inputString.indexOf("Pp1") > -1) digitalWrite(relayWater, HIGH); 407 | inputString = ""; 408 | stringComplete = false; 409 | } 410 | } 411 | 412 | //read light, temperature, humidity, and moisture from sensors 413 | void checkSensors() 414 | { 415 | light(); 416 | temphum(); 417 | moist(); 418 | //check if any values have changed. if so, update display. 419 | if (luxOld != luxNew || moistOld != moistNew || humidOld != humidNew || tempOld != tempNew) valueChange = true; 420 | } 421 | 422 | void light() 423 | { 424 | luxOld = luxNew; 425 | lum = tsl.getFullLuminosity(); 426 | ir = lum >> 16; 427 | full = lum & 0xFFFF; 428 | visible = full - ir; 429 | luxNew = tsl.calculateLux(full, ir); 430 | } 431 | 432 | void temphum() 433 | { 434 | humidOld = humidNew; 435 | tempOld = tempNew; 436 | humidNew = dht.readHumidity(); 437 | tempNew = dht.readTemperature(); 438 | } 439 | 440 | void moist() 441 | { 442 | moistOld = moistNew; 443 | moistNew = analogRead(moisturePin); 444 | //Serial.print("moisture level "); 445 | //Serial.println(moistNew); 446 | } 447 | 448 | //read encoder turning 449 | void updateEncoder() 450 | { 451 | int MSB = digitalRead(encoderPin1); //MSB = most significant bit 452 | int LSB = digitalRead(encoderPin2); //LSB = least significant bit 453 | int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number 454 | int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value 455 | if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++; 456 | if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --; 457 | lastEncoded = encoded; //store this value for next time 458 | } 459 | 460 | //check whether a relay needs turned on 461 | void relayCheck() 462 | { 463 | //update time elapsed in total 464 | timeTotal = now(); 465 | timeNew = timeTotal - timeOld; 466 | //Serial.print(timeNew); 467 | //Serial.print(now()); 468 | 469 | //check water; turn on & increment time if below optimal level 470 | if (moistNew < moistGoal) 471 | { 472 | Serial.println("turning water on"); 473 | digitalWrite(relayWater, HIGH); 474 | //todo: off by 5 seconds on this and light; fix? 475 | timePumpOn = timePumpOn + timeNew; 476 | } 477 | else digitalWrite(relayWater, LOW); 478 | 479 | //light 480 | //if luxNew > luxGoal, add timeNew to timeBrightEnough 481 | if (luxNew >= luxGoal) 482 | { 483 | timeBrightEnough = timeBrightEnough + timeNew; 484 | //Serial.print("time counts"); 485 | //Serial.println(timeBrightEnough); 486 | //add to timeLightOn if light is on 487 | } 488 | //calculate lightProportion 489 | lightProportion = timeBrightEnough / timeTotal; 490 | 491 | //turn on light if proportion < goal //and (luxNew < luxGoal or light is on) 492 | if (lightProportion < lightProportionGoal && luxNew < luxGoal) 493 | { 494 | Serial.println("turning light on"); 495 | digitalWrite(relayLight, HIGH); 496 | timeLightOn = timeLightOn + timeNew; 497 | } 498 | //turn off light if lightroportion > lightproportiongoal 499 | if (lightProportion >= lightProportionGoal) digitalWrite(relayLight, LOW); 500 | 501 | timeOld = now(); 502 | } 503 | 504 | void sendData() 505 | { 506 | toSend = String(""); 507 | char temp[10]; 508 | dtostrf(tempNew,1,2,temp); 509 | char hum[10]; 510 | dtostrf(humidNew,1,2,hum); 511 | toSend = String(toSend + "L" + luxNew + "L" + "M" + moistNew + "M" + "T" + temp + "T" + "H" + hum + "H"); 512 | //Serial.println(toSend); 513 | Serial.print("sending"); 514 | Serial.println(toSend); 515 | softSerial.print(toSend); 516 | } 517 | 518 | void lightCheck() 519 | { 520 | digitalWrite(relayLight, LOW); 521 | } 522 | 523 | void dayUpdate() 524 | { 525 | daysLeft = daysLeft--; 526 | daysElapsed = daysElapsed++; 527 | } 528 | -------------------------------------------------------------------------------- /pcbs/v1/encoder.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | rotary breakout 127 | 128 | 129 | 130 | <h3>SparkFun Electronics' preferred foot prints</h3> 131 | In this library you'll find anything that moves- switches, relays, buttons, potentiometers. Also, anything that goes on a board but isn't electrical in nature- screws, standoffs, etc.<br><br> 132 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 133 | <br><br> 134 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 135 | 136 | 137 | Simple rotary encoder, no LED, push center<br> 138 | COM-09117 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | >VALUE 147 | >NAME 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | <h3>SparkFun Electronics' preferred foot prints</h3> 161 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 162 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 163 | <br><br> 164 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 165 | 166 | 167 | 1/4W Resistor, 0.4" wide<p> 168 | 169 | Yageo CFR series <a href="http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf">http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf</a> 170 | 171 | 172 | 173 | 174 | 175 | 176 | >Name 177 | >Value 178 | 179 | 180 | 181 | 182 | <h3>SparkFun Electronics' preferred foot prints</h3> 183 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 184 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 185 | <br><br> 186 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | >NAME 227 | >VALUE 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | <b>EAGLE Design Rules</b> 247 | <p> 248 | Die Standard-Design-Rules sind so gewählt, dass sie für 249 | die meisten Anwendungen passen. Sollte ihre Platine 250 | besondere Anforderungen haben, treffen Sie die erforderlichen 251 | Einstellungen hier und speichern die Design Rules unter 252 | einem neuen Namen ab. 253 | <b>EAGLE Design Rules</b> 254 | <p> 255 | The default Design Rules have been set to cover 256 | a wide range of applications. Your particular design 257 | may have different requirements, so please make the 258 | necessary adjustments and save your customized 259 | design rules under a new name. 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | -------------------------------------------------------------------------------- /pcbs/v1/relay10.sch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | <b>PIN HEADER</b> 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | >NAME 165 | >VALUE 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | >NAME 175 | >VALUE 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | >NAME 188 | >VALUE 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | <b>PIN HEADER</b> 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | <b>Relays</b><p> 227 | <ul> 228 | <li>Eichhoff 229 | <li>Finder 230 | <li>Fujitsu 231 | <li>HAMLIN 232 | <li>OMRON 233 | <li>Matsushita 234 | <li>NAiS 235 | <li>Siemens 236 | <li>Schrack 237 | </ul> 238 | <author>Created by librarian@cadsoft.de</author> 239 | 240 | 241 | <b>RELAY</b><p> 242 | 1 x switch, 10 A/120 V AC, 8 A/30 V ADC, Omron 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | >NAME 270 | >VALUE 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | >VALUE 287 | >PART 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | >PART 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | <b>RELAY</b><p> 306 | 1 x switch, 10 A/120 V AC, 8 A/30 V DC, Omron 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | <b>Diodes</b><p> 335 | Based on the following sources: 336 | <ul> 337 | <li>Motorola : www.onsemi.com 338 | <li>Fairchild : www.fairchildsemi.com 339 | <li>Philips : www.semiconductors.com 340 | <li>Vishay : www.vishay.de 341 | </ul> 342 | <author>Created by librarian@cadsoft.de</author> 343 | 344 | 345 | <B>DIODE</B><p> 346 | diameter 2.54 mm, horizontal, grid 10.16 mm 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | >NAME 363 | >VALUE 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | >NAME 377 | >VALUE 378 | 379 | 380 | 381 | 382 | 383 | 384 | <B>DIODE</B><p> 385 | general purpose rectifier, 1 A 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | <h3>SparkFun Electronics' preferred foot prints</h3> 405 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 406 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 407 | <br><br> 408 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | >NAME 419 | >VALUE 420 | 421 | 422 | 423 | 424 | 425 | Through-hole banana jack 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | -------------------------------------------------------------------------------- /pcbs/v1/relay10.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | relay board 142 | 143 | 144 | 145 | 146 | 147 | <b>PIN HEADER</b> 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | >NAME 174 | >VALUE 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | <b>Relays</b><p> 183 | <ul> 184 | <li>Eichhoff 185 | <li>Finder 186 | <li>Fujitsu 187 | <li>HAMLIN 188 | <li>OMRON 189 | <li>Matsushita 190 | <li>NAiS 191 | <li>Siemens 192 | <li>Schrack 193 | </ul> 194 | <author>Created by librarian@cadsoft.de</author> 195 | 196 | 197 | <b>RELAY</b><p> 198 | 1 x switch, 10 A/120 V AC, 8 A/30 V ADC, Omron 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | >NAME 226 | >VALUE 227 | 228 | 229 | 230 | 231 | <b>Diodes</b><p> 232 | Based on the following sources: 233 | <ul> 234 | <li>Motorola : www.onsemi.com 235 | <li>Fairchild : www.fairchildsemi.com 236 | <li>Philips : www.semiconductors.com 237 | <li>Vishay : www.vishay.de 238 | </ul> 239 | <author>Created by librarian@cadsoft.de</author> 240 | 241 | 242 | <B>DIODE</B><p> 243 | diameter 2.54 mm, horizontal, grid 10.16 mm 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | >NAME 260 | >VALUE 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | <h3>SparkFun Electronics' preferred foot prints</h3> 269 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 270 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 271 | <br><br> 272 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | <b>EAGLE Design Rules</b> 291 | <p> 292 | Die Standard-Design-Rules sind so gewählt, dass sie für 293 | die meisten Anwendungen passen. Sollte ihre Platine 294 | besondere Anforderungen haben, treffen Sie die erforderlichen 295 | Einstellungen hier und speichern die Design Rules unter 296 | einem neuen Namen ab. 297 | <b>EAGLE Design Rules</b> 298 | <p> 299 | The default Design Rules have been set to cover 300 | a wide range of applications. Your particular design 301 | may have different requirements, so please make the 302 | necessary adjustments and save your customized 303 | design rules under a new name. 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | -------------------------------------------------------------------------------- /pcbs/v1/probings.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | soil probe 140 | 141 | 142 | 143 | <h3>SparkFun Electronics' preferred foot prints</h3> 144 | We've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 145 | <br><br> 146 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | >NAME 182 | 183 | 184 | <b>CAPACITOR</b><p> 185 | grid 2.5 mm, outline 2.4 x 4.4 mm 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | >NAME 201 | >VALUE 202 | 203 | 204 | <b>RESISTOR</b><p> 205 | type 0204, grid 7.5 mm 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | >NAME 227 | >VALUE 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 2.0x2.0mm DFN (0.65mm pitch) 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | >NAME 249 | >VALUE 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | <h3>SparkFun Electronics' preferred foot prints</h3> 261 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 262 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 263 | <br><br> 264 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | >NAME 298 | >VALUE 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | <b>EAGLE Design Rules</b> 317 | <p> 318 | Die Standard-Design-Rules sind so gewählt, dass sie für 319 | die meisten Anwendungen passen. Sollte ihre Platine 320 | besondere Anforderungen haben, treffen Sie die erforderlichen 321 | Einstellungen hier und speichern die Design Rules unter 322 | einem neuen Namen ab. 323 | <b>EAGLE Design Rules</b> 324 | <p> 325 | The default Design Rules have been set to cover 326 | a wide range of applications. Your particular design 327 | may have different requirements, so please make the 328 | necessary adjustments and save your customized 329 | design rules under a new name. 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | -------------------------------------------------------------------------------- /pcbs/v1/lcdmount.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | lcd mount 127 | 128 | 129 | 130 | <h3>SparkFun Electronics' preferred foot prints</h3> 131 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 132 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 133 | <br><br> 134 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | >NAME 254 | >VALUE 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | <h3>SparkFun Electronics' preferred foot prints</h3> 276 | We've spent an enormous amount of time creating and checking these footprints and parts. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 277 | <br><br> 278 | <b>Licensing:</b> CC v3.0 Share-Alike 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. 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | >NAME 340 | >VALUE 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | <b>EAGLE Design Rules</b> 377 | <p> 378 | Die Standard-Design-Rules sind so gewählt, dass sie für 379 | die meisten Anwendungen passen. Sollte ihre Platine 380 | besondere Anforderungen haben, treffen Sie die erforderlichen 381 | Einstellungen hier und speichern die Design Rules unter 382 | einem neuen Namen ab. 383 | <b>EAGLE Design Rules</b> 384 | <p> 385 | The default Design Rules have been set to cover 386 | a wide range of applications. Your particular design 387 | may have different requirements, so please make the 388 | necessary adjustments and save your customized 389 | design rules under a new name. 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | --------------------------------------------------------------------------------