From 7d02c5d6623b9078004d74266fae58092e8001cb Mon Sep 17 00:00:00 2001 From: Thomas Krahn Date: Wed, 9 Oct 2013 02:02:25 -0500 Subject: [PATCH] first commit --- APRSTelemetryMessages.txt | 15 + README.md | 3 + README.md~ | 2 + aprs.cpp | 389 ++ aprs.h | 26 + ax25.cpp | 214 + ax25.h | 34 + config.h | 398 ++ debug.cpp | 79 + debug.h | 21 + eagle/PecanPico4.brd | 4533 ++++++++++++++++ eagle/PecanPico4.sch | 10187 ++++++++++++++++++++++++++++++++++++ gerber/PecanPico4.GBL | 3075 +++++++++++ gerber/PecanPico4.GBO | 1017 ++++ gerber/PecanPico4.GBP | 401 ++ gerber/PecanPico4.GBS | 438 ++ gerber/PecanPico4.GML | 341 ++ gerber/PecanPico4.GTL | 4271 +++++++++++++++ gerber/PecanPico4.GTO | 1405 +++++ gerber/PecanPico4.GTP | 710 +++ gerber/PecanPico4.GTS | 748 +++ gerber/PecanPico4.TXT | 308 ++ gps.cpp | 1016 ++++ gps.h | 55 + modem.cpp | 321 ++ modem.h | 36 + pecanpico4.ino | 310 ++ radio.cpp | 19 + radio.h | 28 + radio_adf7012.cpp | 680 +++ radio_adf7012.h | 103 + radio_hx1.cpp | 41 + radio_hx1.h | 30 + radio_mx146.cpp | 92 + radio_mx146.h | 35 + radio_si446x.cpp | 318 ++ radio_si446x.h | 54 + scale_audio.ods | Bin 0 -> 26193 bytes sensors.cpp | 454 ++ sensors.h | 34 + trackuino.h | 24 + 41 files changed, 32265 insertions(+) create mode 100644 APRSTelemetryMessages.txt create mode 100644 README.md create mode 100644 README.md~ create mode 100644 aprs.cpp create mode 100644 aprs.h create mode 100644 ax25.cpp create mode 100644 ax25.h create mode 100644 config.h create mode 100644 debug.cpp create mode 100644 debug.h create mode 100644 eagle/PecanPico4.brd create mode 100644 eagle/PecanPico4.sch create mode 100644 gerber/PecanPico4.GBL create mode 100644 gerber/PecanPico4.GBO create mode 100644 gerber/PecanPico4.GBP create mode 100644 gerber/PecanPico4.GBS create mode 100644 gerber/PecanPico4.GML create mode 100644 gerber/PecanPico4.GTL create mode 100644 gerber/PecanPico4.GTO create mode 100644 gerber/PecanPico4.GTP create mode 100644 gerber/PecanPico4.GTS create mode 100644 gerber/PecanPico4.TXT create mode 100644 gps.cpp create mode 100644 gps.h create mode 100644 modem.cpp create mode 100644 modem.h create mode 100644 pecanpico4.ino create mode 100644 radio.cpp create mode 100644 radio.h create mode 100644 radio_adf7012.cpp create mode 100644 radio_adf7012.h create mode 100644 radio_hx1.cpp create mode 100644 radio_hx1.h create mode 100644 radio_mx146.cpp create mode 100644 radio_mx146.h create mode 100644 radio_si446x.cpp create mode 100644 radio_si446x.h create mode 100644 scale_audio.ods create mode 100644 sensors.cpp create mode 100644 sensors.h create mode 100644 trackuino.h diff --git a/APRSTelemetryMessages.txt b/APRSTelemetryMessages.txt new file mode 100644 index 0000000..b666c42 --- /dev/null +++ b/APRSTelemetryMessages.txt @@ -0,0 +1,15 @@ +Send the following messages to the tracker callsign. +In Xastir skip the ":" + +:PARM.Batt,GPSpwr,Alt,TXpwr,ADC3,NA,NA,NA,NA,NA,NA,NA,ISS +:UNIT.V,V,feet,V,V,NA,NA,NA,NA,NA,NA,NA,visible +:EQNS.0,0.05195,0,0,0.01289,0,0,1000,0,0,0.01289,0,0,0.01289,0 +:BITS.11111111,Pecan High Altitude Balloon Telemetry + + +For Argentdata OT+ + +:PARM.InternalTemp,Batt,ExternalTemp,Pressure,Unused,NA,NA,NA,NA,NA,NA,NA,NA +:UNIT.degC,V,degC,kPa,NA,NA,NA,NA,NA,NA,NA,NA,NA +:EQNS.0,1.9608,-273,0,0.07225,0,0,1.9608,-273,0,0.427,10.56,0,1,0 +:BITS.11111111,OTplus Telemetry diff --git a/README.md b/README.md new file mode 100644 index 0000000..c00eb0d --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +The fourth version of the Pecan Pico board and the associated software. +Some more info is on my blog: +http://kt5tk.wordpress.com/2013/07/24/pecan-pico-4-serial-number-1-built-working diff --git a/README.md~ b/README.md~ new file mode 100644 index 0000000..471bc03 --- /dev/null +++ b/README.md~ @@ -0,0 +1,2 @@ +The fourth version of the Pecan Pico board and the associated software. + diff --git a/aprs.cpp b/aprs.cpp new file mode 100644 index 0000000..049ef67 --- /dev/null +++ b/aprs.cpp @@ -0,0 +1,389 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "ax25.h" +#include "gps.h" +#include "aprs.h" +#include "sensors.h" +#include "modem.h" +#include +#include +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +//extern void *__bss_end; +//extern void *__brkval; + + +// Module globals +static unsigned int telemetry_counter = 0; +static unsigned int loss_of_gps_counter = 0; +static unsigned int ariss_counter = 0; + +char gps_aprs_lat_old[10] = "2943.5387"; +char gps_aprs_lon_old[11]= "09530.4670"; +char gps_time_old[7] = "000000"; + +/* +struct s_address { + {const char[7] *d_call, const int *d_id}, + {const char[7] *s_call, const int *s_id}, +#ifdef DIGI_PATH1 + {const char[7] *d1_call, const int *d1_id}, +#endif +#ifdef DIGI_PATH2 + {const char[7] *d2_call, const int *d2_id} +#endif +} ; + + + +//s_address *addresses; + +*/ + + + + +// changed from const +struct s_address addresses[] = +{ + {D_CALLSIGN, D_CALLSIGN_ID}, // Destination callsign + {S_CALLSIGN, S_CALLSIGN_ID}, // Source callsign (-11 = balloon, -9 = car) +#ifdef DIGI_PATH1 + {DIGI_PATH1, DIGI_PATH1_TTL}, // Digi1 (first digi in the chain) +#endif +#ifdef DIGI_PATH2 + {DIGI_PATH2, DIGI_PATH2_TTL}, // Digi2 (second digi in the chain) +#endif +}; + + +// Module functions +float meters_to_feet(float m) +{ + // 10000 ft = 3048 m + return m / 0.3048; +} + +long addtime( unsigned long original, unsigned long seconds2add) +{ + + + unsigned int hours = original / 10000UL; + unsigned int minutes = (original % 10000UL) / 100UL; + unsigned int seconds = (original % 10000UL) % 100UL; + + seconds += seconds2add; + + minutes += seconds / 60UL; + seconds = seconds % 60UL; + + hours += minutes / 60UL; + minutes = minutes % 60UL; + hours = hours % 24UL; + + return 10000UL * (unsigned long)hours + 100UL * (unsigned long)minutes + (unsigned long)seconds; + +} + +// Exported functions +void aprs_send() +{ + char temp[12]; // Temperature (int/ext) + unsigned long frequency; + float altitude = 0; + int value; + short bmp085temp; + long bmp085pressure; + + + bmp085temp = bmp085GetTemperature(bmp085ReadUT()) / 10; // Must read temperature from BMP085 before you can read pressure! + bmp085pressure = bmp085GetPressure(bmp085ReadUP()) ; + + + + // Send a telemetry package + ax25_send_header(addresses, sizeof(addresses)/sizeof(s_address)); + ax25_send_string("T#"); // Telemetry Report + telemetry_counter++; + if (telemetry_counter > 999) { + telemetry_counter = 0; + } + snprintf(temp, 4, "%03d", telemetry_counter); + ax25_send_string(temp); // sequential id + ax25_send_byte(','); + + analogReference(DEFAULT); + +// adc0 = Battery Voltage ; Write to T# pos 1 + analogRead(A1); // Disregard the 1st conversion after changing ref + value = analogRead(A1); // read ADC + snprintf(temp, 4, "%03d", value/4L); // Arduino has 1023 max.; APRS has 255 max.; So divide by 4 + ax25_send_string(temp); // write 8 bit ADC value + ax25_send_byte(','); + +// adc7 = uBlox Voltage ; Write to T# pos 2 + analogRead(A7); // Disregard the 1st conversion after changing ref + value = analogRead(A7); // read ADC + snprintf(temp, 4, "%03d", value/4L); // Arduino has 1023 max.; APRS has 255 max.; So divide by 4 + ax25_send_string(temp); // write 8 bit ADC value + ax25_send_byte(','); + + + // fill the 3rd telemetry value with a number that's proportional to the altitude: + snprintf(temp, 4, "%03d", (long)abs((meters_to_feet(gps_altitude) + 0.5)/1000L)); // Altitude in kfeet; Must be > 0, therefore abs() + ax25_send_string(temp); // write 8 bit value + ax25_send_byte(','); + + +// adc3 = PLL MUX, (skip) + + +// adc6 = ADF7012 MUXOUT; Write to T# pos 4 + snprintf(temp, 4, "%03d", modem_get_powerlevel()); + ax25_send_string(temp); // write power level from last tx cycle + ax25_send_byte(','); + + + +// adc3 = Attach a LM50 temp sensor here ; Write to T# pos 5 + analogRead(A3); // Disregard the 1st conversion after changing ref + value = analogRead(A3); // read ADC + snprintf(temp, 4, "%03d", value/4L); // Arduino has 1023 max.; APRS has 255 max.; So divide by 4 + ax25_send_string(temp); // write 8 bit ADC value + ax25_send_byte(','); + + + +/* + + // fill the fourth telemetry value with the loss_of_gps_counter + snprintf(temp, 4, "%03d", loss_of_gps_counter); + ax25_send_string(temp); // write 8 bit value + ax25_send_byte(','); + + // fill the fifth telemetry value with the number of ARISS packets transmitted + snprintf(temp, 4, "%03d", ariss_counter); + ax25_send_string(temp); // write 8 bit value + ax25_send_byte(','); + +*/ + + + ax25_send_string("0000000"); // More room to send binary info. Still unused bits... + //Todo: PLL MUX info + if(satInView) + { + ax25_send_byte('1'); + + frequency = RADIO_FREQUENCY_ARISS; + ariss_counter++; + if(ariss_counter > 199) // prevent overflow but still produce interpretable graphs + { + ariss_counter = 100; // this will likely never happen :) However just in case... + } + + s_address addresses[] = { + {D_CALLSIGN, D_CALLSIGN_ID}, // Destination callsign still APRS + {S_CALLSIGN, S_CALLSIGN_ID}, // Source callsign (-11 = balloon, -9 = car) +#ifdef DIGI_PATH1 + {DIGI_PATH1_SAT, DIGI_PATH1_TTL_SAT}, // Digi1 = ARISS +#endif +#ifdef DIGI_PATH2 + {DIGI_PATH2_SAT, DIGI_PATH2_TTL_SAT}, // Digi2 = SGATE +#endif + }; + + } + else + { + ax25_send_byte('0'); + + frequency = gps_get_region_frequency(); + + s_address addresses[] = { + {D_CALLSIGN, D_CALLSIGN_ID}, // Destination callsign changed back to normal + {S_CALLSIGN, S_CALLSIGN_ID}, // Source callsign (-11 = balloon, -9 = car) +#ifdef DIGI_PATH1 + {DIGI_PATH1, DIGI_PATH1_TTL}, // Digi1 (first digi in the chain) +#endif +#ifdef DIGI_PATH2 + {DIGI_PATH2, DIGI_PATH2_TTL}, // Digi2 (second digi in the chain) +#endif + }; + + } + + + // Announce the next transmission +// ax25_send_byte(' '); +// snprintf(temp, 4, "%lu", frequency/1000000UL); +// ax25_send_string(temp); +// ax25_send_byte('.'); +// snprintf(temp, 7, "%03lu", (frequency%1000000UL)/1000UL); +// ax25_send_string(temp); +// ax25_send_string("MHz"); // Comment +// ax25_send_string(" next ISS:"); +// snprintf(temp, 7, "%d", iss_lat); +// ax25_send_string(temp); // ISS lat +// ax25_send_byte('/'); +// snprintf(temp, 7, "%d", iss_lon); +// ax25_send_string(temp); // ISS lon +// ax25_send_byte('/'); +// snprintf(temp, 7, "%u", iss_datapoint); +// ax25_send_string(temp); + +// if(newPositionStillUnknown) // append the last known position in case we lost GPS +// { +// ax25_send_string(" old:"); +// ax25_send_string(old_lease); +// } + +// some output for debugging via packet: +// ax25_send_string(gps_date); // 241211 = Christmas 2011 + +// ax25_send_string(dtostrf(gps_get_variable(),7,4,temp)); +// ax25_send_byte('/'); +// ax25_send_string(dtostrf(gps_get_lat(),7,4,temp)); +// ax25_send_byte('/'); +// ax25_send_string(dtostrf(gps_get_lon(),7,4,temp)); +// ax25_send_byte('/'); +// snprintf(temp, 7, "%lu", gps_get_time()); +// ax25_send_string(temp); +// ax25_send_byte('/'); +// snprintf(temp, 7, "%lu", gps_get_date()); +// ax25_send_string(temp); +// snprintf(temp, 7, "%du", p13.Sx); +// ax25_send_string(temp); + + ax25_send_footer(); + ax25_flush_frame(); // Tell the modem to go + + + + // Wait a few seconds (Else aprs.fi reports "[Rate limited (< 5 sec)]") + delay(6000); + + + ax25_send_header(addresses, sizeof(addresses)/sizeof(s_address)); + ax25_send_byte('/'); // Report w/ timestamp, no APRS messaging. $ = NMEA raw data + + altitude = gps_get_altitude(); + + if(newPositionStillUnknown) + { + //use the old position + strcpy(gps_aprs_lat, gps_aprs_lat_old); + strcpy(gps_aprs_lon, gps_aprs_lon_old); + + snprintf(gps_time, 7, "%06ld", addtime( atol(gps_time_old), APRS_PERIOD_SECONDS ) ); + + + //calculate altitude from pressure + + //This is the original formula. Not accurate for high altitudes! + //altitude = (float)44330 * (1 - pow((float)bmp085pressure / P0, 0.190295)); + + //This is the empirical altitude formula determined by a PecanPico1 flight (N0D-11) using BMP085 and GPS altitude data + if (bmp085pressure < 1) { bmp085pressure = 1; } //make sure we can calculate the logaritm without errors + altitude = ((float)-22069 * log( (double)bmp085pressure ) + (float)255946) * 0.3048 ; + + + } +// else +// { +// altitude = gps_get_altitude(); +// } +// if (altitude < 1000.0) // At low altitudes pressure altitude is more precise than GPS +// { +// altitude = (float)44330 * (1 - pow((float)bmp085pressure / P0, 0.190295)); +// } + // ax25_send_string("021709z"); // 021709z = 2nd day of the month, 17:09 zulu (UTC/GMT) + ax25_send_string(gps_time); // 170915 = 17h:09m:15s zulu (not allowed in Status Reports) + ax25_send_byte('h'); + ax25_send_string(gps_aprs_lat); // Lat: 38deg and 22.20 min (.20 are NOT seconds, but 1/100th of minutes) + ax25_send_byte(APRS_SYMBOL_TABLE); // Symbol table + ax25_send_string(gps_aprs_lon); // Lon: 000deg and 25.80 min + ax25_send_byte(APRS_SYMBOL_ID); // Symbol: /O=balloon, /-=QTH, \N=buoy + snprintf(temp, 4, "%03d", (int)(gps_course + 0.5)); + ax25_send_string(temp); // Course (degrees) + ax25_send_byte('/'); // and + snprintf(temp, 4, "%03d", (int)(gps_speed + 0.5)); + ax25_send_string(temp); // speed (knots) + ax25_send_string("/A="); // Altitude (feet). Goes anywhere in the comment area + if (altitude < 0) { altitude = 0.0; }; // Negative altitudes are not displayed correctly at aprs.fi :( + snprintf(temp, 7, "%06ld", (long)abs((meters_to_feet(altitude) + 0.5))); + ax25_send_string(temp); + ax25_send_string(" "); + + ax25_send_string(dtostrf((getUBatt()/1000.0),4,1,temp)); + ax25_send_string("V "); +// ax25_send_string(itoa(sensors_lm335(), temp, 10)); +// ax25_send_string(itoa(sensors_lm50(), temp, 10)); + + ax25_send_string(itoa(bmp085temp, temp, 10)); + ax25_send_string("C "); + + ax25_send_string(ltoa(bmp085pressure, temp, 10)); + ax25_send_string("Pa "); + + ax25_send_string("SATS"); + snprintf(temp, 3, "%02d", gps_sats); + ax25_send_string(temp); + ax25_send_string(" "); + + + + ax25_send_string(APRS_COMMENT); // Comment + + if(newPositionStillUnknown) + { + + loss_of_gps_counter++; + if(loss_of_gps_counter >= 1000) // make sure we don't get above 1000 + { + loss_of_gps_counter = 100; // will show a sawtooth pattern 100 -> 1000 at permanent gps loss. + } + ax25_send_string(" GPS loss "); + snprintf(temp, 4, "%3d", loss_of_gps_counter); + ax25_send_string(temp); // write 8 bit value + + } + else + { + loss_of_gps_counter = 0; + } + + ax25_send_footer(); + ax25_flush_frame(); // Tell the modem to go + strcpy(gps_aprs_lat_old, gps_aprs_lat); + strcpy(gps_aprs_lon_old, gps_aprs_lon); + strcpy(gps_time_old, gps_time); + + + + + modem_set_tx_freq(frequency); // actually do the QSY + +} + + diff --git a/aprs.h b/aprs.h new file mode 100644 index 0000000..a1d6489 --- /dev/null +++ b/aprs.h @@ -0,0 +1,26 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __APRS_H__ +#define __APRS_H__ + +#include "gps.h" +#include "trackuino.h" + +void aprs_send(); +long addtime( unsigned long original, unsigned long seconds2add); +#endif diff --git a/ax25.cpp b/ax25.cpp new file mode 100644 index 0000000..39313ea --- /dev/null +++ b/ax25.cpp @@ -0,0 +1,214 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "ax25.h" +#include "config.h" +#include "modem.h" +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif +// Module globals +unsigned short int crc; +int ones_in_a_row; + +// Module functions +static void +update_crc(unsigned char bit) +{ + crc ^= bit; + if (crc & 1) + crc = (crc >> 1) ^ 0x8408; // X-modem CRC poly + else + crc = crc >> 1; +} + +static void +send_byte(unsigned char byte) +{ + int i; + for (i = 0; i < 8; i++) { + update_crc((byte >> i) & 1); + if ((byte >> i) & 1) { + // Next bit is a '1' + if (modem_packet_size >= MODEM_MAX_PACKET * 8) // Prevent buffer overrun + return; + modem_packet[modem_packet_size >> 3] |= (1 << (modem_packet_size & 7)); + modem_packet_size++; + if (++ones_in_a_row < 5) continue; + } + // Next bit is a '0' or a zero padding after 5 ones in a row + if (modem_packet_size >= MODEM_MAX_PACKET * 8) // Prevent buffer overrun + return; + modem_packet[modem_packet_size >> 3] &= ~(1 << (modem_packet_size & 7)); + modem_packet_size++; + ones_in_a_row = 0; + } +} + +// Exported functions +void +ax25_send_byte(unsigned char byte) +{ + // Wrap around send_byte, but prints debug info + send_byte(byte); +#ifdef DEBUG_AX25 + Serial.print((char)byte); +#endif +} + +void +ax25_send_sync() +{ + unsigned char byte = 0x00; + int i; + for (i = 0; i < 8; i++, modem_packet_size++) { + if (modem_packet_size >= MODEM_MAX_PACKET * 8) // Prevent buffer overrun + return; + if ((byte >> i) & 1) + modem_packet[modem_packet_size >> 3] |= (1 << (modem_packet_size & 7)); + else + modem_packet[modem_packet_size >> 3] &= ~(1 << (modem_packet_size & 7)); + } +} + +void +ax25_send_flag() +{ + unsigned char byte = 0x7e; + int i; + for (i = 0; i < 8; i++, modem_packet_size++) { + if (modem_packet_size >= MODEM_MAX_PACKET * 8) // Prevent buffer overrun + return; + if ((byte >> i) & 1) + modem_packet[modem_packet_size >> 3] |= (1 << (modem_packet_size & 7)); + else + modem_packet[modem_packet_size >> 3] &= ~(1 << (modem_packet_size & 7)); + } +} + +void +ax25_send_string(const char *string) +{ + int i; + for (i = 0; string[i]; i++) { + ax25_send_byte(string[i]); + } +} + +void +ax25_send_header(s_address addresses[], int num_addresses) +{ + int i, j; + modem_packet_size = 0; + ones_in_a_row = 0; + crc = 0xffff; + + // Send sync ("a bunch of 0s") + for (i = 0; i < 60; i++) + { + ax25_send_sync(); + } + + //start the actual frame. Send 3 of them (one empty frame and the real start) + for (i = 0; i < 3; i++) + { + ax25_send_flag(); + } + + for (i = 0; i < num_addresses; i++) { + // Transmit callsign + for (j = 0; addresses[i].callsign[j]; j++) + send_byte(addresses[i].callsign[j] << 1); + // Transmit pad + for ( ; j < 6; j++) + send_byte(' ' << 1); + // Transmit SSID. Termination signaled with last bit = 1 + if (i == num_addresses - 1) + send_byte(('0' + addresses[i].ssid) << 1 | 1); + else + send_byte(('0' + addresses[i].ssid) << 1); + } + + // Control field: 3 = APRS-UI frame + send_byte(0x03); + + // Protocol ID: 0xf0 = no layer 3 data + send_byte(0xf0); + +#ifdef DEBUG_AX25 + // Print source callsign + Serial.println(); + Serial.print(addresses[1].callsign); + if (addresses[1].ssid) { + Serial.print('-'); + Serial.print((unsigned int)addresses[1].ssid); + } + Serial.print('>'); + // Destination callsign + Serial.print(addresses[0].callsign); + if (addresses[0].ssid) { + Serial.print('-'); + Serial.print((unsigned int)addresses[0].ssid); + } + for (i = 2; i < num_addresses; i++) { + Serial.print(','); + Serial.print(addresses[i].callsign); + if (addresses[i].ssid) { + Serial.print('-'); + Serial.print((unsigned int)addresses[i].ssid); + } + } + Serial.print(':'); +#endif +} + +void +ax25_send_footer() +{ + // Save the crc so that it can be treated it atomically + unsigned short int final_crc = crc; + + // Send the CRC + send_byte(~(final_crc & 0xff)); + final_crc >>= 8; + send_byte(~(final_crc & 0xff)); + + // Signal the end of frame + ax25_send_flag(); + + // Send sync ("a bunch of 0s") +// for (int i = 0; i < 30; i++) +// { +// ax25_send_sync(); +// } + + +#ifdef DEBUG_AX25 + Serial.println(); +#endif +} + +void +ax25_flush_frame() +{ + // Key the transmitter and send the frame + modem_flush_frame(); +} + + diff --git a/ax25.h b/ax25.h new file mode 100644 index 0000000..e9a7720 --- /dev/null +++ b/ax25.h @@ -0,0 +1,34 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __AX25_H__ +#define __AX25_H__ + +struct s_address { + char callsign[7]; + unsigned char ssid; +}; + +//void ax25_send_header(struct s_address *addresses, int num_addresses); +void ax25_send_header(s_address addresses[], int num_addresses); + +void ax25_send_byte(unsigned char byte); +void ax25_send_string(const char *string); +void ax25_send_footer(); +void ax25_flush_frame(); + +#endif diff --git a/config.h b/config.h new file mode 100644 index 0000000..3edb4ef --- /dev/null +++ b/config.h @@ -0,0 +1,398 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + + +// -------------------------------------------------------------------------- +// THIS IS THE TRACKUINO FIRMWARE CONFIGURATION FILE. YOUR CALLSIGN AND +// OTHER SETTINGS GO HERE. +// +// NOTE: all pins are Arduino based, not the Atmega chip. Mapping: +// http://www.arduino.cc/en/Hacking/PinMapping +// -------------------------------------------------------------------------- + + +// -------------------------------------------------------------------------- +// APRS config (aprs.c) +// -------------------------------------------------------------------------- + +// Set your callsign and SSID here. Common values for the SSID are +// (from http://zlhams.wikidot.com/aprs-ssidguide): +// +// - Balloons: 11 +// - Cars: 9 +// - Buoy: 8 +// - Home: 0 +// - IGate: 5 +// +#define S_CALLSIGN "KT5TK" +#define S_CALLSIGN_ID 4 + +// Destination callsign: APRS (with SSID=0) is usually okay. +//#define D_CALLSIGN "APZ" // APZ = Experimental +#define D_CALLSIGN "APECAN" // APExxx = Telemetry devices (that's what Pecan actually is) + +#define D_CALLSIGN_ID 0 + + +// APRS Symbol +// Consists of Symbol table (/ or \ or a dew overlay symbols) and the symbol ID +#define APRS_SYMBOL_TABLE '/' // Default table +//#define APRS_SYMBOL_TABLE '\\' // Secondary table (needs to be escaped => two \) + +//#define APRS_SYMBOL_ID '>' // /O = Car +#define APRS_SYMBOL_ID 'O' // /O = Balloon +//#define APRS_SYMBOL_ID 'N' // \N = Buoy + +// Digipeating paths: +// (read more about digipeating paths here: http://wa8lmf.net/DigiPaths/ ) +// The recommended digi path for a balloon is WIDE2-1 or pathless. The default +// is to use WIDE2-1. Comment out the following two lines for pathless: +#define DIGI_PATH1 "WIDE2" +#define DIGI_PATH1_TTL 1 +//#define DIGI_PATH2 "WIDE2" +//#define DIGI_PATH2_TTL 1 + +// If we want to pass selected packets through the International Space Station +#define DIGI_PATH1_SAT "ARISS" +#define DIGI_PATH1_TTL_SAT 0 +//#define DIGI_PATH2_SAT "SGATE" +//#define DIGI_PATH2_TTL_SAT 0 + + +// APRS comment: this goes in the comment portion of the APRS message. You +// might want to keep this short. The longer the packet, the more vulnerable +// it is to noise. +//#define APRS_COMMENT "http://w5acm.net" +#define APRS_COMMENT "http://tkrahn.net" +//#define APRS_COMMENT " Pecan Dev" + + + + +// Pressure in Pascal at sea level. +// Can be adjusted at launch date to get exact altitude from BMP085 +#define P0 101325.0 + + +// -------------------------------------------------------------------------- +// AX.25 config (ax25.cpp) +// -------------------------------------------------------------------------- + +// TX delay in milliseconds +#define TX_DELAY 300 // default was 300 + +// -------------------------------------------------------------------------- +// Tracker config (trackuino.cpp) +// -------------------------------------------------------------------------- + +// APRS_PERIOD is the period between transmissions. Since we're not listening +// before transmitting, it may be wise to choose a "random" value here JUST +// in case someone else is transmitting at fixed intervals like us. 61000 ms +// is the default (1 minute and 1 second). +// +// Low-power transmissions on occasional events (such as a balloon launch) +// might be okay at lower-than-standard APRS periods (< 10m). Check with/ask +// permision to local digipeaters beforehand. +// #define APRS_PERIOD 25000UL + +// APRS_PERIOD is here replaced with APRS_PERIOD_SECONDS because we use the +// watchdog timer to save more power. +#define APRS_PERIOD_SECONDS 120 + +// Set any value here (in ms) if you want to delay the first transmission +// after resetting the device. +#define APRS_DELAY 0UL + +// GPS baud rate (in bits per second) +#define GPS_BAUDRATE 9600 //4800 for Argentdata High Altitude GPS, 9600 for Venus or uBlox MAX-6Q + +// GPS Power Pin +// GPS receivers are real power hogs. To save power we might want to switch the +// GPS module completely off when it's no longer needed (when we already have +// a valid GPS position for this cycle). +#define GPS_POWER_PIN 5 + +// Note that the Venus board has a GPIO_24 jumper. By default it is set to GND +// which means that the receiver is running full power in high resolution +// mode. Unless you use the trackuino on a rocket, you should change this +// jumper with a fine solder iron to the other side (+3.3 V). Then the Venus +// will only draw enough power to supply valid NMEA data to the serial port. +// This is about 70 mA before it gets a lease, but it comes quickly down to +// ~ 40 mA. The board has also a BATT pin. If you permanently power this up +// with 3.3V then the main power can be switched on and off from the Arduino +// with a transistor through the GPS_POWER_PIN. The GPS fix then only takes a +// second. + +#define GPS_RESET_PIN 9 +// The Venus auto reset usually doesn't work. We use this line to force a reset +// pulse from the Arduino to the Venus module each time it should restart. + +// -------------------------------------------------------------------------- +// Modem config (modem.cpp) +// -------------------------------------------------------------------------- + +// AUDIO_PIN is the audio-out pin. The audio is generated by timer 2 using +// PWM, so the only two options are pins 3 and 11. +// Pin 11 doubles as MOSI, so I suggest using pin 3 for PWM and leave 11 free +// in case you ever want to interface with an SPI device. +#define AUDIO_PIN 3 + +// Radio: I've tested trackuino with two different radios: +// Radiometrix HX1 and SRB MX146. The interface with these devices +// is implemented in their respective radio_*.cpp files, and here +// you can choose which one will be hooked up to the tracker. +// The tracker will behave differently depending on the radio used: +// +// RadioHx1 (Radiometrix HX1): +// - Time from PTT-on to transmit: 5ms (per datasheet) +// - PTT is TTL-level driven (on=high) and audio input is 5v pkpk +// filtered and internally DC-coupled by the HX1, so both PTT +// and audio can be wired directly. Very few external components +// are needed for this radio, indeed. +// +// RadioMx146 (SRB MX146): +// - Time from PTT-on to transmit: signaled by MX146 (pin RDY) +// - Uses I2C to set freq (144.8 MHz) on start +// - I2C requires wiring analog pins 4/5 (SDA/SCL) via two level +// converters (one for each, SDA and SCL). DO NOT WIRE A 5V ARDUINO +// DIRECTLY TO THE 3.3V MX146, YOU WILL DESTROY IT!!! +// +// I2C 5-3.3v LEVEL TRANSLATOR: +// +// +3.3v o--------+-----+ +---------o +5v +// / | / +// R \ | \ R +// / G| / +// 3K3 \ _ L _ \ 4K7 +// | T T T | +// 3.3v device o---+--+|_| |+---+---o 5v device +// S| |D +// +-|>|-+ +// N-channel MOSFET +// (BS170, for instance) +// +// (Explanation of the lever translator: +// http://www.neoteo.com/adaptador-de-niveles-para-bus-i2c-3-3v-5v.neo) +// +// - Audio needs a low-pass filter (R=8k2 C=0.1u) plus DC coupling +// (Cc=10u). This also lowers audio to 500mV peak-peak required by +// the MX146. +// +// 8k2 10uF +// Arduino out o--/\/\/\---+---||---o +// R | Cc +// === +// 0.1uF | C +// v +// +// - PTT is pulled internally to 3.3v (off) or shorted (on). Use +// an open-collector BJT to drive it: +// +// o MX146 PTT +// | +// 4k7 b |c +// Arduino PTT o--/\/\/\----K (Any NPN will do) +// R |e +// | +// v GND +// +// - Beware of keying the MX146 for too long, you will BURN it. +// +// So, summing up. Options are: +// +// - RadioMx146 +// - RadioHx1 +// - RadioAdf7012 +// - RadioSi446x +#define RADIO_CLASS RadioSi446x + +// -------------------------------------------------------------------------- +// Radio config (radio_*.cpp) +// -------------------------------------------------------------------------- + +// This is the PTT pin to enable the transmitter and the VCXO; HIGH = on +#define PTT_PIN 8 + +// The ADL5531 PA is switched on separately with the TPS77650 Enable pin; LOW = on +//#define TX_PA_PIN 6 // Not available at PecanPico + +// This is the pin used by the MX146 radio to signal full RF +//#define MX146_READY_PIN 2 // Not available at PecanPico + +#define VCXO_FREQ 27000000L + +//#define ADF7012_CRYSTAL_FREQ 19440000L +//#define ADF7012_CRYSTAL_FREQ 10000000L + +#define ADF7012_CRYSTAL_DIVIDER 15 // [1..15] + +#define ADF7012_TX_DATA_PIN 7 + +// Some radios are frequency agile. Therefore we can set the (default) frequency here: +#define RADIO_FREQUENCY 144390000UL +//#define RADIO_FREQUENCY 432900000UL +//#define RADIO_FREQUENCY 223390000UL + +// In other regions the APRS frequencies are different. Our balloon may travel +// from one region to another, so we may QSY according to GPS defined geographical regions +// Here we set some regional frequencies: + +#define RADIO_FREQUENCY_REGION1 144800000UL // Europe & Africa +#define RADIO_FREQUENCY_REGION2 144390000UL // North and south America (Brazil is different) +//#define RADIO_FREQUENCY_REGION2 432900000UL +//#define RADIO_FREQUENCY_REGION2 223390000UL + +#define RADIO_FREQUENCY_JAPAN 144660000UL +#define RADIO_FREQUENCY_CHINA 144640000UL +#define RADIO_FREQUENCY_BRAZIL 145570000UL +#define RADIO_FREQUENCY_AUSTRALIA 145175000UL +#define RADIO_FREQUENCY_NEWZEALAND 144575000UL +#define RADIO_FREQUENCY_THAILAND 145525000UL + + +#define RADIO_FREQUENCY_ARISS 145825000UL // For remote locations we may get lucky with ISS flying by? +//#define RADIO_FREQUENCY_CW 144050000UL +//#define RADIO_FREQUENCY_TESTING 147435000UL // test area to see if it works + + +/* + 144.390 MHz - Chile, Indonesia, North America + 144.575 MHz - New Zealand + 144.660 MHz - Japan + 144.640 MHz - China + 144.800 MHz - South Africa, Europe, Russia + 144.930 MHz - Argentina, Uruguay (no confirmation found. Hope this is not a typo?) + 145.175 MHz - Australia + 145.570 MHz - Brazil + 145.525 MHz - Thailand + +*/ + +// -------------------------------------------------------------------------- +// Sensors config (sensors.cpp) +// -------------------------------------------------------------------------- + +// Most of the sensors.cpp functions use internal reference voltages (either +// AVCC or 1.1V). If you want to use an external reference, you should +// uncomment the following line: +// +// #define USE_AREF +// +// BEWARE! If you hook up an external voltage to the AREF pin and +// accidentally set the ADC to any of the internal references, YOU WILL +// FRY YOUR AVR. +// +// It is always advised to connect the AREF pin through a pull-up resistor, +// whose value is defined here in ohms (set to 0 if no pull-up): +// +#define AREF_PULLUP 4700 +// +// Since there is already a 32K resistor at the ADC pin, the actual +// voltage read will be VREF * 32 / (32 + AREF_PULLUP) +// +// Read more in the Arduino reference docs: +// http://arduino.cc/en/Reference/AnalogReference?from=Reference.AREF + +// Pin mappings for the internal / external temperature sensors. VS refers +// to (arduino) digital pins, whereas VOUT refers to (arduino) analog pins. + +//#define LM50_VS_PIN #N/A +#define LM50_VOUT_PIN 2 + + +//#define INTERNAL_LM60_VS_PIN 6 +//#define INTERNAL_LM60_VOUT_PIN 0 +//#define EXTERNAL_LM60_VS_PIN 7 +//#define EXTERNAL_LM60_VOUT_PIN 1 + +//#define LM335_VS_PIN 8 +//#define LM335_VOUT_PIN 2 // adc2 + + + +// ADC inputs +#define ADC0_PIN A0 // Occupied by Piezo speaker +#define ADC1_PIN A1 // Battery +#define ADC2_PIN A2 // Custom +#define ADC3_PIN A3 // Custom + // A4 & A5 occupied by I2C +#define ADC6_PIN A6 // Custom +#define ADC7_PIN A7 // uBlox Voltage + + +// Units for temperature sensors (Added by: Kyle Crockett) +// 1 = Celsius, 2 = Kelvin, 3 = Fahrenheit +#define TEMP_UNIT 1 + +// Calibration value in the units selected. Use integer only. +#define CALIBRATION_VAL 0 + +// -------------------------------------------------------------------------- +// Buzzer config (buzzer.cpp) +// -------------------------------------------------------------------------- + +// This is the buzzer frequency. Choose one that maximizes the output volume +// according to your buzzer's datasheet. It must be between L and 65535, +// where L = F_CPU / 65535 and F_CPU is the clock frequency in hertzs. For +// Arduinos (16 MHz), that gives a low limit of 245 Hz. +//#define BUZZER_FREQ 895 // Hz + +// These are the number of seconds the buzzer will stay on/off alternately +//#define BUZZER_ON_TIME 2 // secs +//#define BUZZER_OFF_TIME 2 // secs + +// This option disables the buzzer above BUZZER_ALTITUDE meters. This is a +// float value, so make it really high (eg. 1000000.0 = 1 million meters) +// if you want it to never stop buzzing. +//#define BUZZER_ALTITUDE 3000.0 // meters (divide by 0.3048 for ft.) + +// The buzzer is driven by timer 1, so the options here are pin 9 or 10 +//#define BUZZER_PIN 9 + +// -------------------------------------------------------------------------- +// Debug +// -------------------------------------------------------------------------- + +// This is the LED pin (13 on Arduinos). The LED will be on while the AVR is +// running and off while it's sleeping, so its brightness gives an indication +// of the activity. +#define LED_PIN 13 + + + +// Debug info includes printouts from different modules to aid in testing and +// debugging. +// +// 1. To properly receive debug information, only connect the Arduino RX pin +// to the GPS TX pin, and leave the Arduino TX pin disconnected. +// +// 2. On the serial monitor, set the baudrate to GPS_BAUDRATE (above), +// usually 9600. +// +// 3. When flashing the firmware, disconnect the GPS from the RX pin or you +// will get errors. + +// #define DEBUG_GPS // GPS sentence dump and checksum validation +// #define DEBUG_AX25 // AX.25 frame dump +// #define DEBUG_MODEM // Modem ISR overrun and profiling +// #define DEBUG_RESET // AVR reset + + +#endif diff --git a/debug.cpp b/debug.cpp new file mode 100644 index 0000000..d90f7ff --- /dev/null +++ b/debug.cpp @@ -0,0 +1,79 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "debug.h" +#include "config.h" + +#if 0 +/* Snippet to read from serial buffer. Since gps.encode() may take + * a while to process, we buffer enough data ahead to avoid serial + * data loss */ + +const int GPS_SW_RX = 7; // software-serial read from pin 7 +const int GPS_SW_TX = 8; // software-serial write to pin 8 +SoftwareSerial sw_serial(GPS_SW_RX, GPS_SW_TX); + +// define pin modes for tx, rx +pinMode(GPS_SW_RX, INPUT); +pinMode(GPS_SW_TX, OUTPUT); + +sw_serial.begin(GPS_BAUDRATE); + +int i; +unsigned char buffer[256]; + +valid_gps_data = 0; +while (! valid_gps_data) { + for (i = 0; i < 256; i++) { + buffer[i] = sw_serial.read(); + } + for (i = 0; i < 256; i++) { + if (gps.encode(buffer[i])) { + valid_gps_data = 1; + break; + } + } +} + +#endif + + +#if 0 +/* Another snippet to output the aprs frame to the serial port */ +Serial.write("/"); // Report w/ timestamp, no APRS messaging. $ = NMEA raw data +Serial.write(gps.get_time()); // 170915h = 17h:09m:15s zulu (not allowed in Status Reports) +Serial.write(gps.get_lat()); // Lat: 38deg and 22.20 min (.20 are NOT seconds, but 1/100th of minutes) +Serial.write("/"); // Symbol table +Serial.write(gps.get_lon()); // Lon: 000deg and 25.80 min +Serial.write("O"); // Symbol: O=balloon, -=QTH +Serial.write(gps.get_course()); +Serial.write("/"); +Serial.write(gps.get_speed()); // Course and speed (degrees/knots) +Serial.write( // Comment + "Prueba Trackuino 1200"); +Serial.write("/A="); +Serial.write(gps.get_altitude()); // Altitude (feet). Goes anywhere in the comment area +Serial.println(""); +#endif + +#if 0 +// Another snippet to test the modem +modem_test(); +while (modem_busy()) { } +delay(200); +#endif + diff --git a/debug.h b/debug.h new file mode 100644 index 0000000..25a9c72 --- /dev/null +++ b/debug.h @@ -0,0 +1,21 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __DEBUG_H__ +#define __DEBUG_H__ + +#endif diff --git a/eagle/PecanPico4.brd b/eagle/PecanPico4.brd new file mode 100644 index 0000000..2eb1250 --- /dev/null +++ b/eagle/PecanPico4.brd @@ -0,0 +1,4533 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + +Pecan 4 +1 +1 +1 +http://tkrahn.net +KT5TK +2013-07-07 +Pecan +Pico +PP4 +4 +KT5TK +PP4 +KT5TK +1 +1 +1 +1 +1 ++ +GND +1 +RX +TX +GND ++ +GND + + + + + +<b>CAPACITOR</b><p> +chip + + + + + + + + + +>NAME +>VALUE + + + + + +<B>Thin Plasic Quad Flat Package</B> Grid 0.8 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>CAPACITOR</b><p> +chip + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + +<b>SMA Antenna Connector</b><p> +This is a footprint for an edge mount RF antenna. Works pretty well with SMA type connectors but may also work with other edge mount RF connectors. Keep in mind, these edge mount connectors assume you are using a 0.062" PCB thickness. + + + + + + + + + + + +uBlox MAX-6 + + + + + + + + + + + + + + + + + + + + + + + + +ublox + +MAX-6 + + + + + + + + + + + + + + + + + + + + + + + +<b>Coax Connectors</b><p> +Radiall and M/A COM.<p> +<author>Created by librarian@cadsoft.de</author> + + +<b>COAX. MICROWAVE CONNECTOR O/D diam 2.1</b><p> +Source: www.tycoelectronics.com .. Electronics .. ENG_CD_1775146_A2.pdf + + + + + + + + + + + + + + + + + + + +<b>Texas Instruments Devices</b><p> + <author>Created by librarian@cadsoft.de</author> + + +<b>QFN 10</b> 3 x 3 mm<p> +Source: http://focus.ti.com/lit/ds/symlink/tps61200.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>LPS3015</b><br> +Coilcraft Low Profile Shielded Power Inductor + + +>NAME +>VALUE + + + + + + + + + +<b>Resistors, Capacitors, Inductors</b><p> +Based on the previous libraries: +<ul> +<li>r.lbr +<li>cap.lbr +<li>cap-fe.lbr +<li>captant.lbr +<li>polcap.lbr +<li>ipc-smd.lbr +</ul> +All SMD packages are defined according to the IPC specifications and CECC<p> +<author>Created by librarian@cadsoft.de</author><p> +<p> +for Electrolyt Capacitors see also :<p> +www.bccomponents.com <p> +www.panasonic.com<p> +www.kemet.com<p> +http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> +<p> +for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> + +<table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> +<tr valign="top"> + +<! <td width="10">&nbsp;</td> +<td width="90%"> + +<b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> +<P> +<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> + <TR> + <TD COLSPAN=8> + <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> + </B> + </TD><TD>&nbsp;</TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > + 3005P<BR> + 3006P<BR> + 3006W<BR> + 3006Y<BR> + 3009P<BR> + 3009W<BR> + 3009Y<BR> + 3057J<BR> + 3057L<BR> + 3057P<BR> + 3057Y<BR> + 3059J<BR> + 3059L<BR> + 3059P<BR> + 3059Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 89P<BR> + 89W<BR> + 89X<BR> + 89PH<BR> + 76P<BR> + 89XH<BR> + 78SLT<BR> + 78L&nbsp;ALT<BR> + 56P&nbsp;ALT<BR> + 78P&nbsp;ALT<BR> + T8S<BR> + 78L<BR> + 56P<BR> + 78P<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + T18/784<BR> + 783<BR> + 781<BR> + -<BR> + -<BR> + -<BR> + 2199<BR> + 1697/1897<BR> + 1680/1880<BR> + 2187<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 8035EKP/CT20/RJ-20P<BR> + -<BR> + RJ-20X<BR> + -<BR> + -<BR> + -<BR> + 1211L<BR> + 8012EKQ&nbsp;ALT<BR> + 8012EKR&nbsp;ALT<BR> + 1211P<BR> + 8012EKJ<BR> + 8012EKL<BR> + 8012EKQ<BR> + 8012EKR<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 2101P<BR> + 2101W<BR> + 2101Y<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 2102L<BR> + 2102S<BR> + 2102Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + EVMCOG<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 43P<BR> + 43W<BR> + 43Y<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 40L<BR> + 40P<BR> + 40Y<BR> + 70Y-T602<BR> + 70L<BR> + 70P<BR> + 70Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + RT/RTR12<BR> + RT/RTR12<BR> + RT/RTR12<BR> + -<BR> + RJ/RJR12<BR> + RJ/RJR12<BR> + RJ/RJR12<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=8>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=8> + <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3250L<BR> + 3250P<BR> + 3250W<BR> + 3250X<BR> + 3252P<BR> + 3252W<BR> + 3252X<BR> + 3260P<BR> + 3260W<BR> + 3260X<BR> + 3262P<BR> + 3262W<BR> + 3262X<BR> + 3266P<BR> + 3266W<BR> + 3266X<BR> + 3290H<BR> + 3290P<BR> + 3290W<BR> + 3292P<BR> + 3292W<BR> + 3292X<BR> + 3296P<BR> + 3296W<BR> + 3296X<BR> + 3296Y<BR> + 3296Z<BR> + 3299P<BR> + 3299W<BR> + 3299X<BR> + 3299Y<BR> + 3299Z<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66X&nbsp;ALT<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66X&nbsp;ALT<BR> + -<BR> + 64W&nbsp;ALT<BR> + -<BR> + 64P&nbsp;ALT<BR> + 64W&nbsp;ALT<BR> + 64X&nbsp;ALT<BR> + 64P<BR> + 64W<BR> + 64X<BR> + 66X&nbsp;ALT<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66P<BR> + 66W<BR> + 66X<BR> + 67P<BR> + 67W<BR> + 67X<BR> + 67Y<BR> + 67Z<BR> + 68P<BR> + 68W<BR> + 68X<BR> + 67Y&nbsp;ALT<BR> + 67Z&nbsp;ALT<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 5050<BR> + 5091<BR> + 5080<BR> + 5087<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + T63YB<BR> + T63XB<BR> + -<BR> + -<BR> + -<BR> + 5887<BR> + 5891<BR> + 5880<BR> + -<BR> + -<BR> + -<BR> + T93Z<BR> + T93YA<BR> + T93XA<BR> + T93YB<BR> + T93XB<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 8026EKP<BR> + 8026EKW<BR> + 8026EKM<BR> + 8026EKP<BR> + 8026EKB<BR> + 8026EKM<BR> + 1309X<BR> + 1309P<BR> + 1309W<BR> + 8024EKP<BR> + 8024EKW<BR> + 8024EKN<BR> + RJ-9P/CT9P<BR> + RJ-9W<BR> + RJ-9X<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3103P<BR> + 3103Y<BR> + 3103Z<BR> + 3103P<BR> + 3103Y<BR> + 3103Z<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3105P/3106P<BR> + 3105W/3106W<BR> + 3105X/3106X<BR> + 3105Y/3106Y<BR> + 3105Z/3105Z<BR> + 3102P<BR> + 3102W<BR> + 3102X<BR> + 3102Y<BR> + 3102Z<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + EVMCBG<BR> + EVMCCG<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 55-1-X<BR> + 55-4-X<BR> + 55-3-X<BR> + 55-2-X<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 50-2-X<BR> + 50-4-X<BR> + 50-3-X<BR> + -<BR> + -<BR> + -<BR> + 64P<BR> + 64W<BR> + 64X<BR> + 64Y<BR> + 64Z<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + RT/RTR22<BR> + RT/RTR22<BR> + RT/RTR22<BR> + RT/RTR22<BR> + RJ/RJR22<BR> + RJ/RJR22<BR> + RJ/RJR22<BR> + RT/RTR26<BR> + RT/RTR26<BR> + RT/RTR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RT/RTR24<BR> + RT/RTR24<BR> + RT/RTR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=8>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=8> + <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3323P<BR> + 3323S<BR> + 3323W<BR> + 3329H<BR> + 3329P<BR> + 3329W<BR> + 3339H<BR> + 3339P<BR> + 3339W<BR> + 3352E<BR> + 3352H<BR> + 3352K<BR> + 3352P<BR> + 3352T<BR> + 3352V<BR> + 3352W<BR> + 3362H<BR> + 3362M<BR> + 3362P<BR> + 3362R<BR> + 3362S<BR> + 3362U<BR> + 3362W<BR> + 3362X<BR> + 3386B<BR> + 3386C<BR> + 3386F<BR> + 3386H<BR> + 3386K<BR> + 3386M<BR> + 3386P<BR> + 3386S<BR> + 3386W<BR> + 3386X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 25P<BR> + 25S<BR> + 25RX<BR> + 82P<BR> + 82M<BR> + 82PA<BR> + -<BR> + -<BR> + -<BR> + 91E<BR> + 91X<BR> + 91T<BR> + 91B<BR> + 91A<BR> + 91V<BR> + 91W<BR> + 25W<BR> + 25V<BR> + 25P<BR> + -<BR> + 25S<BR> + 25U<BR> + 25RX<BR> + 25X<BR> + 72XW<BR> + 72XL<BR> + 72PM<BR> + 72RX<BR> + -<BR> + 72PX<BR> + 72P<BR> + 72RXW<BR> + 72RXL<BR> + 72X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + T7YB<BR> + T7YA<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + TXD<BR> + TYA<BR> + TYP<BR> + -<BR> + TYD<BR> + TX<BR> + -<BR> + 150SX<BR> + 100SX<BR> + 102T<BR> + 101S<BR> + 190T<BR> + 150TX<BR> + 101<BR> + -<BR> + -<BR> + 101SX<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ET6P<BR> + ET6S<BR> + ET6X<BR> + RJ-6W/8014EMW<BR> + RJ-6P/8014EMP<BR> + RJ-6X/8014EMX<BR> + TM7W<BR> + TM7P<BR> + TM7X<BR> + -<BR> + 8017SMS<BR> + -<BR> + 8017SMB<BR> + 8017SMA<BR> + -<BR> + -<BR> + CT-6W<BR> + CT-6H<BR> + CT-6P<BR> + CT-6R<BR> + -<BR> + CT-6V<BR> + CT-6X<BR> + -<BR> + -<BR> + 8038EKV<BR> + -<BR> + 8038EKX<BR> + -<BR> + -<BR> + 8038EKP<BR> + 8038EKZ<BR> + 8038EKW<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + 3321H<BR> + 3321P<BR> + 3321N<BR> + 1102H<BR> + 1102P<BR> + 1102T<BR> + RVA0911V304A<BR> + -<BR> + RVA0911H413A<BR> + RVG0707V100A<BR> + RVA0607V(H)306A<BR> + RVA1214H213A<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3104B<BR> + 3104C<BR> + 3104F<BR> + 3104H<BR> + -<BR> + 3104M<BR> + 3104P<BR> + 3104S<BR> + 3104W<BR> + 3104X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + EVMQ0G<BR> + EVMQIG<BR> + EVMQ3G<BR> + EVMS0G<BR> + EVMQ0G<BR> + EVMG0G<BR> + -<BR> + -<BR> + -<BR> + EVMK4GA00B<BR> + EVM30GA00B<BR> + EVMK0GA00B<BR> + EVM38GA00B<BR> + EVMB6<BR> + EVLQ0<BR> + -<BR> + EVMMSG<BR> + EVMMBG<BR> + EVMMAG<BR> + -<BR> + -<BR> + EVMMCS<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + EVMM1<BR> + -<BR> + -<BR> + EVMM0<BR> + -<BR> + -<BR> + EVMM3<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + 62-3-1<BR> + 62-1-2<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 67R<BR> + -<BR> + 67P<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 67X<BR> + 63V<BR> + 63S<BR> + 63M<BR> + -<BR> + -<BR> + 63H<BR> + 63P<BR> + -<BR> + -<BR> + 63X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + RJ/RJR50<BR> + RJ/RJR50<BR> + RJ/RJR50<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> +</TABLE> +<P>&nbsp;<P> +<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> + <TR> + <TD COLSPAN=7> + <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> + <P> + <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3224G<BR> + 3224J<BR> + 3224W<BR> + 3269P<BR> + 3269W<BR> + 3269X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 44G<BR> + 44J<BR> + 44W<BR> + 84P<BR> + 84W<BR> + 84X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + ST63Z<BR> + ST63Y<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + ST5P<BR> + ST5W<BR> + ST5X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=7>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=7> + <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> + </TD> + </TR> + <TR> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3314G<BR> + 3314J<BR> + 3364A/B<BR> + 3364C/D<BR> + 3364W/X<BR> + 3313G<BR> + 3313J<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 23B<BR> + 23A<BR> + 21X<BR> + 21W<BR> + -<BR> + 22B<BR> + 22A<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ST5YL/ST53YL<BR> + ST5YJ/5T53YJ<BR> + ST-23A<BR> + ST-22B<BR> + ST-22<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ST-4B<BR> + ST-4A<BR> + -<BR> + -<BR> + -<BR> + ST-3B<BR> + ST-3A<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + EVM-6YS<BR> + EVM-1E<BR> + EVM-1G<BR> + EVM-1D<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + G4B<BR> + G4A<BR> + TR04-3S1<BR> + TRG04-2S1<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + DVR-43A<BR> + CVR-42C<BR> + CVR-42A/C<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> +</TABLE> +<P> +<FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> +<P> + +&nbsp; +<P> +</td> +</tr> +</table> + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find crystals and oscillators and other things that go "tick".<br><br> +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. +<br><br> +<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. + + +FXO-HC73 Series Oscillator. 7.5x5.2mm 6-pin package + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> +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. +<br><br> +<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. + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + +<b>QFN-20 Package</b><br> +From Silicon Laboratories Si446x datasheet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + + + +1 +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME + + + + + + + + + + + + +<b>Test Pins/Pads</b><p> +Cream on SMD OFF.<br> +new: Attribute TP_SIGNAL_NAME<br> +<author>Created by librarian@cadsoft.de</author> + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + + +projecttree component library + + + + + + + + + + + +>NAME +BMP180 + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find all manner of digital ICs- microcontrollers, memory chips, logic chips, FPGAs, etc.<br><br> +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. +<br><br> +<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. + + +<b>Small Outline Package</b> Fits JEDEC packages (narrow SOIC-8) + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> +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. +<br><br> +<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. + + +Small solder jumper with no paste layer so it will open after reflow. + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +<b>EAGLE Design Rules</b> +<p> +Die Standard-Design-Rules sind so gewählt, dass sie für +die meisten Anwendungen passen. Sollte ihre Platine +besondere Anforderungen haben, treffen Sie die erforderlichen +Einstellungen hier und speichern die Design Rules unter +einem neuen Namen ab. +<b>EAGLE Design Rules</b> +<p> +The default Design Rules have been set to cover +a wide range of applications. Your particular design +may have different requirements, so please make the +necessary adjustments and save your customized +design rules under a new name. +<b>Seeed Studio EAGLE Design Rules</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eagle/PecanPico4.sch b/eagle/PecanPico4.sch new file mode 100644 index 0000000..fcc0c39 --- /dev/null +++ b/eagle/PecanPico4.sch @@ -0,0 +1,10187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + +<b>RESISTOR</b><p> +chip + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + + + + +<b>CAPACITOR</b><p> +chip + + + + + + + + + +>NAME +>VALUE + + + + + +<b>32M1-A</b> Micro Lead Frame package (MLF) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<B>Thin Plasic Quad Flat Package</B> Grid 0.8 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + +>Name +>Value + + +<b>CAPACITOR</b><p> +chip + + + + + + + + +>NAME +>VALUE + + + + + + +1/6W Thru-hole Resistor - *UNPROVEN* + + + + + + +>NAME +>VALUE + + + + + + +>NAME +>VALUE + + + + +1/4W Resistor, 0.4" wide<p> + +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> + + + + + + +>Name +>Value + + +1/2W Resistor, 0.5" wide<p> + +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> + + + + + + +>Name +>Value + + +1W Resistor, 0.6" wide<p> + +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> + + + + + + +>Name +>Value + + +2W Resistor, 0.8" wide<p> + +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> + + + + + + +>Name +>Value + + + + + +>Name +>Value + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>Name +>Value + + + + + + + + + + + + +>Name +>Value + + +CTZ3 Series land pattern for variable capacitor - CTZ3E-50C-W1-PF + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>Name +>Value + + +<h3>AXIAL-0.3-KIT</h3> + +Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.<br> +<br> + +<b>Warning:</b> This is the KIT version of the AXIAL-0.3 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>CAP-PTH-SMALL-KIT</h3> +Commonly used for small ceramic capacitors. Like our 0.1uF (http://www.sparkfun.com/products/8375) or 22pF caps (http://www.sparkfun.com/products/8571).<br> +<br> +<b>Warning:</b> This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +2mm SMD side-entry connector. tDocu layer indicates the actual physical plastic housing. +/- indicate SparkFun standard batteries and wiring. + + + + + + + + + + + + + +>Name +>Value ++ +- + + + + + + + + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + +This footprint was designed to help hold the alignment of a through-hole component (i.e. 6-pin header) while soldering it into place. +You may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line). +This slight alteration caused the pins (the squares in the middle) to touch the edges of the holes. Because they are alternating, it causes a "brace" +to hold the component in place. 0.005 has proven to be the perfect amount of "off-center" position when using our standard breakaway headers. +Although looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice. Also, +if you push a header all the way into place, it is covered up entirely on the bottom side. This idea of altering the position of holes to aid alignment +will be further integrated into the Sparkfun Library for other footprints. It can help hold any component with 3 or more connection pins. + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + +>Name +>Value ++ +- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + +>Name +>Value ++ +- + + +<H3>JST-2-PTH-KIT</h3> +2-Pin JST, through-hole connector<br> +<br> +<b>Warning:</b> This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. + + + + + + + + + +>Name +>Value ++ +- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + +>Name +>Value + + +<b>CAPACITOR</b><p> +chip + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1007 (2518 metric) package + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + +1.3x1.3mm 1.7mm between. Fits Sumida CDRH2D09, CDRH2D18 inductor + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + + + + + +>Name +>Value + + +<B>LED</B><p> +5 mm, round + + + + + + + + + + + +>NAME +>VALUE + + +<B>LED</B><p> +3 mm, round + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME +>VALUE + + + + + + +L +S + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + +<h3>LED 3MM - No Silk</h3> +3 mm, round + + + + + + + + + + + +>NAME +>VALUE + + +<h3>LED5MM-KIT</h3> +5MM Through-hole LED<br> +<br> +<b>Warning:</b> This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>SMA Antenna Connector</b><p> +This is a footprint for an edge mount RF antenna. Works pretty well with SMA type connectors but may also work with other edge mount RF connectors. Keep in mind, these edge mount connectors assume you are using a 0.062" PCB thickness. + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + +>NAME +>VALUE + + + + + + + +>VALUE + + + + + +>VALUE + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE +MOSI +RESET +SCK +MISO ++5 +GND + + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>SUPPLY SYMBOL</b> + + + + + + + + + + + + +<b>SUPPLY SYMBOL</b> + + + + + + + + + + + + +<b>Resistor</b> +Basic schematic elements and footprints for 0603, 1206, and PTH resistors. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Capacitor</b> +Standard 0603 ceramic capacitor, and 0.1" leaded capacitor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>AVR ISP 6 Pin</b> +This is the reduced ISP connector for AVR programming. Common on Arduino. This footprint will take up less PCB space and can be used with a 10-pin to 6-pin adapter such as SKU: BOB-08508 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Header 2</b> +Standard 2-pin 0.1" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08233 with associated crimp pins and housings. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Inductors</b> +Basic Inductor/Choke - 0603 and 1206. Footprints are not proven and vary greatly between part numbers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>LEDs</b> +Standard schematic elements and footprints for 5mm, 3mm, 1206, and 0603 sized LEDs. 5mm - Spark Fun Electronics SKU : COM-00529 (and others) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>SMA Antenna Connector</b> +End launch SMA connector. The paste layer has been removed so that the connector can be hand soldered onto the board after reflow. + + + + + + + + + + + + + + + + + + + + + + + +uBlox MAX-6 + + + + + + + + + + + + + + + + + + + + + + + + +ublox + +MAX-6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE +1 +2 + + + + + + +UBLOX MAX-6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Coax Connectors</b><p> +Radiall and M/A COM.<p> +<author>Created by librarian@cadsoft.de</author> + + +<b>COAX. MICROWAVE CONNECTOR O/D diam 2.1</b><p> +Source: www.tycoelectronics.com .. Electronics .. ENG_CD_1775146_A2.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + +<b>COAX. MICROWAVE CONNECTOR O/D diam 2.1</b><p> +Source: www.tycoelectronics.com .. Electronics .. ENG_CD_1775146_A2.pdf + + + + + + + + + + + + + + + + + + + + + + + + +<b>Texas Instruments Devices</b><p> + <author>Created by librarian@cadsoft.de</author> + + +<b>QFN 10</b> 3 x 3 mm<p> +Source: http://focus.ti.com/lit/ds/symlink/tps61200.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + +<b>LOW INPUT VOLTAGE SYNCHRONOUS BOOST CONVERTER WITH 1.3-A SWITCHES</b><p> +Source: http://focus.ti.com/lit/ds/symlink/tps61200.pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>LPS3015</b><br> +Coilcraft Low Profile Shielded Power Inductor + + +>NAME +>VALUE + + + + + + + + + +<b>LPS3015</b><br> +Coilcraft Low Profile Shielded Power Inductor + + + +>NAME +>VALUE + + + + +<b>LPS3015</b> Series Low Profile Shielded Power Inductors<br> +<a href="0.058">http://www.coilcraft.com/lps3015.cfm</a> + + + + + + + + + + + + + + + + + + +<b>Resistors, Capacitors, Inductors</b><p> +Based on the previous libraries: +<ul> +<li>r.lbr +<li>cap.lbr +<li>cap-fe.lbr +<li>captant.lbr +<li>polcap.lbr +<li>ipc-smd.lbr +</ul> +All SMD packages are defined according to the IPC specifications and CECC<p> +<author>Created by librarian@cadsoft.de</author><p> +<p> +for Electrolyt Capacitors see also :<p> +www.bccomponents.com <p> +www.panasonic.com<p> +www.kemet.com<p> +http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> +<p> +for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> + +<table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> +<tr valign="top"> + +<! <td width="10">&nbsp;</td> +<td width="90%"> + +<b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> +<P> +<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> + <TR> + <TD COLSPAN=8> + <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> + </B> + </TD> + <TD ALIGN=CENTER> + <B> + <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> + </B> + </TD><TD>&nbsp;</TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > + 3005P<BR> + 3006P<BR> + 3006W<BR> + 3006Y<BR> + 3009P<BR> + 3009W<BR> + 3009Y<BR> + 3057J<BR> + 3057L<BR> + 3057P<BR> + 3057Y<BR> + 3059J<BR> + 3059L<BR> + 3059P<BR> + 3059Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 89P<BR> + 89W<BR> + 89X<BR> + 89PH<BR> + 76P<BR> + 89XH<BR> + 78SLT<BR> + 78L&nbsp;ALT<BR> + 56P&nbsp;ALT<BR> + 78P&nbsp;ALT<BR> + T8S<BR> + 78L<BR> + 56P<BR> + 78P<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + T18/784<BR> + 783<BR> + 781<BR> + -<BR> + -<BR> + -<BR> + 2199<BR> + 1697/1897<BR> + 1680/1880<BR> + 2187<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 8035EKP/CT20/RJ-20P<BR> + -<BR> + RJ-20X<BR> + -<BR> + -<BR> + -<BR> + 1211L<BR> + 8012EKQ&nbsp;ALT<BR> + 8012EKR&nbsp;ALT<BR> + 1211P<BR> + 8012EKJ<BR> + 8012EKL<BR> + 8012EKQ<BR> + 8012EKR<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 2101P<BR> + 2101W<BR> + 2101Y<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 2102L<BR> + 2102S<BR> + 2102Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + EVMCOG<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 43P<BR> + 43W<BR> + 43Y<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 40L<BR> + 40P<BR> + 40Y<BR> + 70Y-T602<BR> + 70L<BR> + 70P<BR> + 70Y<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + RT/RTR12<BR> + RT/RTR12<BR> + RT/RTR12<BR> + -<BR> + RJ/RJR12<BR> + RJ/RJR12<BR> + RJ/RJR12<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=8>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=8> + <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3250L<BR> + 3250P<BR> + 3250W<BR> + 3250X<BR> + 3252P<BR> + 3252W<BR> + 3252X<BR> + 3260P<BR> + 3260W<BR> + 3260X<BR> + 3262P<BR> + 3262W<BR> + 3262X<BR> + 3266P<BR> + 3266W<BR> + 3266X<BR> + 3290H<BR> + 3290P<BR> + 3290W<BR> + 3292P<BR> + 3292W<BR> + 3292X<BR> + 3296P<BR> + 3296W<BR> + 3296X<BR> + 3296Y<BR> + 3296Z<BR> + 3299P<BR> + 3299W<BR> + 3299X<BR> + 3299Y<BR> + 3299Z<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66X&nbsp;ALT<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66X&nbsp;ALT<BR> + -<BR> + 64W&nbsp;ALT<BR> + -<BR> + 64P&nbsp;ALT<BR> + 64W&nbsp;ALT<BR> + 64X&nbsp;ALT<BR> + 64P<BR> + 64W<BR> + 64X<BR> + 66X&nbsp;ALT<BR> + 66P&nbsp;ALT<BR> + 66W&nbsp;ALT<BR> + 66P<BR> + 66W<BR> + 66X<BR> + 67P<BR> + 67W<BR> + 67X<BR> + 67Y<BR> + 67Z<BR> + 68P<BR> + 68W<BR> + 68X<BR> + 67Y&nbsp;ALT<BR> + 67Z&nbsp;ALT<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 5050<BR> + 5091<BR> + 5080<BR> + 5087<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + T63YB<BR> + T63XB<BR> + -<BR> + -<BR> + -<BR> + 5887<BR> + 5891<BR> + 5880<BR> + -<BR> + -<BR> + -<BR> + T93Z<BR> + T93YA<BR> + T93XA<BR> + T93YB<BR> + T93XB<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 8026EKP<BR> + 8026EKW<BR> + 8026EKM<BR> + 8026EKP<BR> + 8026EKB<BR> + 8026EKM<BR> + 1309X<BR> + 1309P<BR> + 1309W<BR> + 8024EKP<BR> + 8024EKW<BR> + 8024EKN<BR> + RJ-9P/CT9P<BR> + RJ-9W<BR> + RJ-9X<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3103P<BR> + 3103Y<BR> + 3103Z<BR> + 3103P<BR> + 3103Y<BR> + 3103Z<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3105P/3106P<BR> + 3105W/3106W<BR> + 3105X/3106X<BR> + 3105Y/3106Y<BR> + 3105Z/3105Z<BR> + 3102P<BR> + 3102W<BR> + 3102X<BR> + 3102Y<BR> + 3102Z<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + EVMCBG<BR> + EVMCCG<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 55-1-X<BR> + 55-4-X<BR> + 55-3-X<BR> + 55-2-X<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 50-2-X<BR> + 50-4-X<BR> + 50-3-X<BR> + -<BR> + -<BR> + -<BR> + 64P<BR> + 64W<BR> + 64X<BR> + 64Y<BR> + 64Z<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + RT/RTR22<BR> + RT/RTR22<BR> + RT/RTR22<BR> + RT/RTR22<BR> + RJ/RJR22<BR> + RJ/RJR22<BR> + RJ/RJR22<BR> + RT/RTR26<BR> + RT/RTR26<BR> + RT/RTR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RJ/RJR26<BR> + RT/RTR24<BR> + RT/RTR24<BR> + RT/RTR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + RJ/RJR24<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=8>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=8> + <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> + </TD> + </TR> + <TR> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> + </TD> + <TD ALIGN=CENTER> + <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3323P<BR> + 3323S<BR> + 3323W<BR> + 3329H<BR> + 3329P<BR> + 3329W<BR> + 3339H<BR> + 3339P<BR> + 3339W<BR> + 3352E<BR> + 3352H<BR> + 3352K<BR> + 3352P<BR> + 3352T<BR> + 3352V<BR> + 3352W<BR> + 3362H<BR> + 3362M<BR> + 3362P<BR> + 3362R<BR> + 3362S<BR> + 3362U<BR> + 3362W<BR> + 3362X<BR> + 3386B<BR> + 3386C<BR> + 3386F<BR> + 3386H<BR> + 3386K<BR> + 3386M<BR> + 3386P<BR> + 3386S<BR> + 3386W<BR> + 3386X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 25P<BR> + 25S<BR> + 25RX<BR> + 82P<BR> + 82M<BR> + 82PA<BR> + -<BR> + -<BR> + -<BR> + 91E<BR> + 91X<BR> + 91T<BR> + 91B<BR> + 91A<BR> + 91V<BR> + 91W<BR> + 25W<BR> + 25V<BR> + 25P<BR> + -<BR> + 25S<BR> + 25U<BR> + 25RX<BR> + 25X<BR> + 72XW<BR> + 72XL<BR> + 72PM<BR> + 72RX<BR> + -<BR> + 72PX<BR> + 72P<BR> + 72RXW<BR> + 72RXL<BR> + 72X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + T7YB<BR> + T7YA<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + TXD<BR> + TYA<BR> + TYP<BR> + -<BR> + TYD<BR> + TX<BR> + -<BR> + 150SX<BR> + 100SX<BR> + 102T<BR> + 101S<BR> + 190T<BR> + 150TX<BR> + 101<BR> + -<BR> + -<BR> + 101SX<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ET6P<BR> + ET6S<BR> + ET6X<BR> + RJ-6W/8014EMW<BR> + RJ-6P/8014EMP<BR> + RJ-6X/8014EMX<BR> + TM7W<BR> + TM7P<BR> + TM7X<BR> + -<BR> + 8017SMS<BR> + -<BR> + 8017SMB<BR> + 8017SMA<BR> + -<BR> + -<BR> + CT-6W<BR> + CT-6H<BR> + CT-6P<BR> + CT-6R<BR> + -<BR> + CT-6V<BR> + CT-6X<BR> + -<BR> + -<BR> + 8038EKV<BR> + -<BR> + 8038EKX<BR> + -<BR> + -<BR> + 8038EKP<BR> + 8038EKZ<BR> + 8038EKW<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + 3321H<BR> + 3321P<BR> + 3321N<BR> + 1102H<BR> + 1102P<BR> + 1102T<BR> + RVA0911V304A<BR> + -<BR> + RVA0911H413A<BR> + RVG0707V100A<BR> + RVA0607V(H)306A<BR> + RVA1214H213A<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 3104B<BR> + 3104C<BR> + 3104F<BR> + 3104H<BR> + -<BR> + 3104M<BR> + 3104P<BR> + 3104S<BR> + 3104W<BR> + 3104X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + EVMQ0G<BR> + EVMQIG<BR> + EVMQ3G<BR> + EVMS0G<BR> + EVMQ0G<BR> + EVMG0G<BR> + -<BR> + -<BR> + -<BR> + EVMK4GA00B<BR> + EVM30GA00B<BR> + EVMK0GA00B<BR> + EVM38GA00B<BR> + EVMB6<BR> + EVLQ0<BR> + -<BR> + EVMMSG<BR> + EVMMBG<BR> + EVMMAG<BR> + -<BR> + -<BR> + EVMMCS<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + EVMM1<BR> + -<BR> + -<BR> + EVMM0<BR> + -<BR> + -<BR> + EVMM3<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + 62-3-1<BR> + 62-1-2<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 67R<BR> + -<BR> + 67P<BR> + -<BR> + -<BR> + -<BR> + -<BR> + 67X<BR> + 63V<BR> + 63S<BR> + 63M<BR> + -<BR> + -<BR> + 63H<BR> + 63P<BR> + -<BR> + -<BR> + 63X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + RJ/RJR50<BR> + RJ/RJR50<BR> + RJ/RJR50<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> +</TABLE> +<P>&nbsp;<P> +<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> + <TR> + <TD COLSPAN=7> + <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> + <P> + <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> + </TD> + </TR> + <TR> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3224G<BR> + 3224J<BR> + 3224W<BR> + 3269P<BR> + 3269W<BR> + 3269X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 44G<BR> + 44J<BR> + 44W<BR> + 84P<BR> + 84W<BR> + 84X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + ST63Z<BR> + ST63Y<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + ST5P<BR> + ST5W<BR> + ST5X<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> + <TR> + <TD COLSPAN=7>&nbsp; + </TD> + </TR> + <TR> + <TD COLSPAN=7> + <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> + </TD> + </TR> + <TR> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> + </TD> + <TD> + <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> + </TD> + </TR> + <TR> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 3314G<BR> + 3314J<BR> + 3364A/B<BR> + 3364C/D<BR> + 3364W/X<BR> + 3313G<BR> + 3313J<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + 23B<BR> + 23A<BR> + 21X<BR> + 21W<BR> + -<BR> + 22B<BR> + 22A<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ST5YL/ST53YL<BR> + ST5YJ/5T53YJ<BR> + ST-23A<BR> + ST-22B<BR> + ST-22<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + ST-4B<BR> + ST-4A<BR> + -<BR> + -<BR> + -<BR> + ST-3B<BR> + ST-3A<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + EVM-6YS<BR> + EVM-1E<BR> + EVM-1G<BR> + EVM-1D<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + G4B<BR> + G4A<BR> + TR04-3S1<BR> + TRG04-2S1<BR> + -<BR> + -<BR> + -<BR></FONT> + </TD> + <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> + -<BR> + -<BR> + DVR-43A<BR> + CVR-42C<BR> + CVR-42A/C<BR> + -<BR> + -<BR></FONT> + </TD> + </TR> +</TABLE> +<P> +<FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> +<P> + +&nbsp; +<P> +</td> +</tr> +</table> + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b><p> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b> + + + + + + + + +>NAME +>VALUE + + + + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 2.4 x 4.4 mm + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 2.5 x 5 mm + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 3 x 5 mm + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 4 x 5 mm + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 5 x 5 mm + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm, outline 6 x 5 mm + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 mm + 5 mm, outline 2.4 x 7 mm + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 + 5 mm, outline 2.5 x 7.5 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 + 5 mm, outline 3.5 x 7.5 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 + 5 mm, outline 4.5 x 7.5 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 2.5 + 5 mm, outline 5.5 x 7.5 mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 2.4 x 4.4 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 2.5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 4.5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 3 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 5.5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 7.5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +Horizontal, grid 5 mm, outline 7.5 x 7.5 mm + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + +<b>CAPACITOR</b><p> +grid 7.5 mm, outline 3.2 x 10.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 7.5 mm, outline 4.2 x 10.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 7.5 mm, outline 5.2 x 10.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 10.2 mm, outline 4.3 x 13.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 10.2 mm, outline 5.4 x 13.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 10.2 mm, outline 6.4 x 13.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 15 mm, outline 5.4 x 18.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 15 mm, outline 6.4 x 18.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 15 mm, outline 7.2 x 18.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 15 mm, outline 8.4 x 18.3 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 15 mm, outline 9.1 x 18.2 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 22.5 mm, outline 6.2 x 26.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 22.5 mm, outline 7.4 x 26.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 22.5 mm, outline 8.7 x 26.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 22.5 mm, outline 10.8 x 26.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 22.5 mm, outline 11.3 x 26.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 9.3 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 11.3 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 13.4 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 20.5 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 32.5 mm, outline 13.7 x 37.4 mm + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 32.5 mm, outline 16.2 x 37.4 mm + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 32.5 mm, outline 18.2 x 37.4 mm + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 37.5 mm, outline 19.2 x 41.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 37.5 mm, outline 20.3 x 41.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 5 mm, outline 3.5 x 7.5 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 37.5 mm, outline 15.5 x 41.8 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 7.5 mm, outline 6.3 x 10.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 15.4 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>CAPACITOR</b><p> +grid 27.5 mm, outline 17.3 x 31.6 mm + + + + + + + + + + + + + + + + +>NAME +>VALUE + + +<b>Ceramic Chip Capacitor KEMET 0204 reflow solder</b><p> +Metric Code Size 1005 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 0603 reflow solder</b><p> +Metric Code Size 1608 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 0805 reflow solder</b><p> +Metric Code Size 2012 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 1206 reflow solder</b><p> +Metric Code Size 3216 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 1210 reflow solder</b><p> +Metric Code Size 3225 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 1812 reflow solder</b><p> +Metric Code Size 4532 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 1825 reflow solder</b><p> +Metric Code Size 4564 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 2220 reflow solder</b><p>Metric Code Size 5650 + + + + +>NAME +>VALUE + + + + +<b>Ceramic Chip Capacitor KEMET 2225 reflow solder</b><p>Metric Code Size 5664 + + + + +>NAME +>VALUE + + + + +Source: http://www.avxcorp.com/docs/catalogs/cx5r.pdf + + +>NAME +>VALUE + + + + + + +<b>CAPACITOR</b><p> +Source: AVX .. aphvc.pdf + + + + +>NAME +>VALUE + + + + +<b>CAPACITOR</b><p> +Source: AVX .. aphvc.pdf + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + + + + +<B>CAPACITOR</B>, American symbol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find crystals and oscillators and other things that go "tick".<br><br> +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. +<br><br> +<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. + + + + + + + + + + + + + + +>Name +>Value + + +FXO-HC73 Series Oscillator. 7.5x5.2mm 6-pin package + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>Name +>Value + + + + + + + + + + +Generic 5x3 and 7x5 oscillators + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> +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. +<br><br> +<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. + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + +This footprint was designed to help hold the alignment of a through-hole component (i.e. 6-pin header) while soldering it into place. +You may notice that each hole has been shifted either up or down by 0.005 of an inch from it's more standard position (which is a perfectly straight line). +This slight alteration caused the pins (the squares in the middle) to touch the edges of the holes. Because they are alternating, it causes a "brace" +to hold the component in place. 0.005 has proven to be the perfect amount of "off-center" position when using our standard breakaway headers. +Although looks a little odd when you look at the bare footprint, once you have a header in there, the alteration is very hard to notice. Also, +if you push a header all the way into place, it is covered up entirely on the bottom side. This idea of altering the position of holes to aid alignment +will be further integrated into the Sparkfun Library for other footprints. It can help hold any component with 3 or more connection pins. + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +>Name +>Value ++ +- +S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + +>Name +>Value + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + +>Value +>Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + +<b>Header 3</b> +Standard 3-pin 0.1" header. Use with straight break away headers (SKU : PRT-00116), right angle break away headers (PRT-00553), swiss pins (PRT-00743), machine pins (PRT-00117), and female headers (PRT-00115). Molex polarized connector foot print use with SKU : PRT-08232 with associated crimp pins and housings. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>QFN-20 Package</b><br> +From Silicon Laboratories Si446x datasheet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + + + +1 +>NAME +>VALUE + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME + + + + + + + + + + + + +<b>Si446x Transceiver</b><br> +From SiLabs Si446x datasheet + + + + + + + + + + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + +>NAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>TCS4371FN Color Sensor</b><br> +The TCS3471 family of devices provides red, green, blue, and clear light sensing (RGBC) that detects light intensity under a variety of lighting conditions and through a variety of attenuation materials. An internal state machine provides the ability to put the device into a low power mode in between RGBC measurements providing very low average power consumption. The TCS3471 is directly useful in lighting conditions containing minimal IR content such as LED RGB backlight control, reflected LED color sampler, or fluorescent light color temperature detector. With the addition of an IR blocking filter, the device is an excellent ambient light sensor, color temperature monitor, and general purpose color sensor. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Test Pins/Pads</b><p> +Cream on SMD OFF.<br> +new: Attribute TP_SIGNAL_NAME<br> +<author>Created by librarian@cadsoft.de</author> + + +<b>TEST PAD</b> + + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + + + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + +<b>TEST PAD</b> + +>NAME +>VALUE +>TP_SIGNAL_NAME + + + + + + + + + +>NAME +>TP_SIGNAL_NAME + + + + + +<b>Test pad</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +projecttree component library + + + + + + + + + + + +>NAME +BMP180 + + + + + + + + +>NAME +BMP180 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find all manner of digital ICs- microcontrollers, memory chips, logic chips, FPGAs, etc.<br><br> +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. +<br><br> +<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. + + +<b>Small Outline Package</b> Fits JEDEC packages (narrow SOIC-8) + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + +Fits EIAJ packages (wide version of the SOIC-8). + + + + + + + + + + + + + +>VALUE +>NAME + + + + + + + + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + + + +I2C EEPROM chips, 24LC256 (and others) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>SparkFun Electronics' preferred foot prints</h3> +In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> +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. +<br><br> +<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. + + +Small solder jumper with big paste layer so it will short during reflow. + + + + + + + + + + +>NAME +>VALUE + + + +Solder jumper, small, shorted with trace. No paste layer. Trace is cuttable. + + + + + + + + + +>NAME +>VALUE + + + + + + + + + + +>NAME +>VALUE + + + +Small solder jumper with no paste layer so it will open after reflow. + + + + + + + + +>NAME +>VALUE + + + + + + + + +>NAME +>VALUE + + + + + + +<b>Solder Jumper</b> +Standard SMD solder jumper. Used to automate production. Two varients : Normally Open and Normally Closed are the same, but have different paste layers. NC will have a large amount of paste and should jumper during reflow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +KT5TK Pecan Pico 4 +Barometric Pressure Sensor +Controller +3.3V Power Supply VCC +3.3V Power Supply For GPS +VCXO +GPS +VCXO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gerber/PecanPico4.GBL b/gerber/PecanPico4.GBL new file mode 100644 index 0000000..473f425 --- /dev/null +++ b/gerber/PecanPico4.GBL @@ -0,0 +1,3075 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11OC8,0.0740*% +%ADD12C,0.0740*% +%ADD13C,0.0397*% +%ADD14R,0.1600X0.0600*% +%ADD15C,0.0236*% +%ADD16R,0.0394X0.0157*% +%ADD17C,0.0118*% +%ADD18R,0.0354X0.0276*% +%ADD19R,0.0870X0.0240*% +%ADD20R,0.0250X0.0500*% +%ADD21R,0.0472X0.1575*% +%ADD22R,0.0276X0.0354*% +%ADD23C,0.0240*% +%ADD24C,0.0240*% +%ADD25C,0.0270*% +%ADD26C,0.0080*% +%ADD27C,0.0100*% +%ADD28C,0.0160*% +%ADD29C,0.0120*% +%ADD30C,0.0060*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X013560Y001920D03* +X014560Y001920D03* +X015560Y001920D03* +X015560Y000920D03* +X014560Y000920D03* +X013560Y000920D03* +D12* +X017465Y000880D03* +X018465Y000880D03* +X006980Y006960D03* +X006980Y007960D03* +X006980Y008960D03* +X004060Y001110D03* +X003060Y001110D03* +X002060Y001110D03* +D13* +X007514Y002799D03* +X008026Y002799D03* +X008026Y003311D03* +X007514Y003311D03* +D14* +X001170Y004210D03* +X001170Y006210D03* +D15* +X014490Y005025D03* +D16* +X011775Y003659D03* +D17* +X011913Y003896D02* +X011637Y003896D01* +X011637Y003934D01* +X011913Y003934D01* +X011913Y003896D01* +X011913Y004152D02* +X011637Y004152D01* +X011637Y004190D01* +X011913Y004190D01* +X011913Y004152D01* +X012227Y004190D02* +X012503Y004190D01* +X012503Y004152D01* +X012227Y004152D01* +X012227Y004190D01* +X012227Y003934D02* +X012503Y003934D01* +X012503Y003896D01* +X012227Y003896D01* +X012227Y003934D01* +X012227Y003678D02* +X012503Y003678D01* +X012503Y003640D01* +X012227Y003640D01* +X012227Y003678D01* +D18* +X011245Y003746D03* +X011245Y003234D03* +X019015Y008404D03* +X019015Y008916D03* +D19* +X007110Y005975D03* +X007110Y005475D03* +X007110Y004975D03* +X007110Y004475D03* +X005050Y004475D03* +X005050Y004975D03* +X005050Y005475D03* +X005050Y005975D03* +D20* +X004307Y005900D03* +X003953Y005900D03* +X003943Y005115D03* +X004297Y005115D03* +X004317Y004345D03* +X003963Y004345D03* +D21* +X014120Y007975D03* +X018530Y007975D03* +D22* +X006421Y003795D03* +X005909Y003795D03* +X005541Y003390D03* +X005029Y003390D03* +D23* +X004671Y003390D01* +X004671Y003184D01* +X004686Y003128D01* +X004715Y003078D01* +X004756Y003037D01* +X004779Y003024D01* +X004748Y002990D01* +X004714Y002956D01* +X004712Y002953D01* +X004710Y002950D01* +X004695Y002910D01* +X004667Y002898D01* +X004572Y002803D01* +X004520Y002678D01* +X004520Y002542D01* +X004572Y002417D01* +X004667Y002322D01* +X004792Y002270D01* +X004928Y002270D01* +X005053Y002322D01* +X005148Y002417D01* +X005200Y002542D01* +X005200Y002678D01* +X005191Y002699D01* +X005482Y002993D01* +X005770Y002993D01* +X005899Y003122D01* +X005899Y003380D01* +X005916Y003398D01* +X006138Y003398D01* +X006170Y003429D01* +X006198Y003413D01* +X006254Y003398D01* +X006421Y003398D01* +X006588Y003398D01* +X006644Y003413D01* +X006694Y003442D01* +X006735Y003483D01* +X006764Y003533D01* +X006779Y003589D01* +X006779Y003683D01* +X006829Y003561D01* +X006925Y003465D01* +X007050Y003414D01* +X007185Y003414D01* +X007310Y003465D01* +X007406Y003561D01* +X007458Y003686D01* +X007458Y003821D01* +X007421Y003910D01* +X009342Y003910D01* +X009536Y003704D01* +X009522Y003698D01* +X009427Y003603D01* +X009375Y003478D01* +X009375Y003407D01* +X009372Y003409D01* +X009347Y003413D01* +X009323Y003422D01* +X009296Y003421D01* +X009270Y003425D01* +X009245Y003419D01* +X009219Y003418D01* +X009195Y003407D01* +X009127Y003391D01* +X009109Y003391D01* +X009077Y003379D01* +X009044Y003371D01* +X009030Y003360D01* +X009013Y003354D01* +X008988Y003330D01* +X008960Y003310D01* +X008951Y003295D01* +X008868Y003215D01* +X008832Y003183D01* +X008831Y003180D01* +X008828Y003177D01* +X008809Y003133D01* +X008788Y003089D01* +X008788Y003086D01* +X008786Y003083D01* +X008785Y003034D01* +X008778Y002881D01* +X008776Y002878D01* +X008775Y002830D01* +X008773Y002781D01* +X008774Y002778D01* +X008767Y002490D01* +X008684Y002351D01* +X008564Y002232D01* +X008448Y002280D01* +X008312Y002280D01* +X008187Y002228D01* +X008092Y002133D01* +X008078Y002100D01* +X008065Y002105D01* +X008025Y002125D01* +X008009Y002126D01* +X007995Y002132D01* +X007950Y002130D01* +X007906Y002133D01* +X007891Y002128D01* +X007017Y002100D01* +X006933Y002135D01* +X006797Y002135D01* +X006672Y002083D01* +X006577Y001988D01* +X006525Y001863D01* +X006525Y001727D01* +X006577Y001602D01* +X006672Y001507D01* +X006797Y001455D01* +X006933Y001455D01* +X007043Y001501D01* +X007813Y001526D01* +X007959Y001358D01* +X007997Y001313D01* +X007998Y001313D01* +X007998Y001313D01* +X008051Y001286D01* +X008104Y001260D01* +X008105Y001260D01* +X008164Y001256D01* +X008623Y001223D01* +X008650Y001215D01* +X008682Y001219D01* +X008713Y001217D01* +X008740Y001226D01* +X008769Y001229D01* +X008796Y001244D01* +X008826Y001254D01* +X008848Y001273D01* +X008873Y001287D01* +X008893Y001312D01* +X008917Y001332D01* +X008929Y001358D01* +X009356Y001897D01* +X009400Y001915D01* +X009400Y001756D01* +X009372Y001728D01* +X009320Y001603D01* +X009320Y001467D01* +X009372Y001342D01* +X009467Y001247D01* +X009592Y001195D01* +X009728Y001195D01* +X009853Y001247D01* +X009948Y001342D01* +X010000Y001467D01* +X010000Y001603D01* +X009948Y001728D01* +X009920Y001756D01* +X009920Y001874D01* +X009988Y001902D01* +X010083Y001997D01* +X010086Y002004D01* +X010163Y001963D01* +X010398Y001825D01* +X010297Y001783D01* +X010202Y001688D01* +X010150Y001563D01* +X010150Y001427D01* +X010136Y001403D01* +X010052Y001368D01* +X009957Y001273D01* +X009905Y001148D01* +X009905Y001060D01* +X009021Y001060D01* +X008993Y001088D01* +X008868Y001140D01* +X008732Y001140D01* +X008607Y001088D01* +X008512Y000993D01* +X008460Y000868D01* +X008460Y000732D01* +X008512Y000607D01* +X008607Y000512D01* +X008660Y000490D01* +X000480Y000490D01* +X000480Y003690D01* +X000898Y003690D01* +X000729Y003620D01* +X000590Y003481D01* +X000514Y003299D01* +X000514Y003101D01* +X000590Y002919D01* +X000724Y002785D01* +X000590Y002651D01* +X000514Y002469D01* +X000514Y002271D01* +X000590Y002089D01* +X000729Y001950D01* +X000911Y001874D01* +X001109Y001874D01* +X001291Y001950D01* +X001430Y002089D01* +X001506Y002271D01* +X001506Y002469D01* +X001430Y002651D01* +X001296Y002785D01* +X001430Y002919D01* +X001506Y003101D01* +X001506Y003299D01* +X001430Y003481D01* +X001291Y003620D01* +X001122Y003690D01* +X001140Y003690D01* +X001140Y004180D01* +X001200Y004180D01* +X001200Y004240D01* +X001140Y004240D01* +X001140Y004730D01* +X000480Y004730D01* +X000480Y005690D01* +X001140Y005690D01* +X001140Y006180D01* +X001200Y006180D01* +X001200Y006240D01* +X002190Y006240D01* +X002190Y006539D01* +X002175Y006595D01* +X002146Y006645D01* +X002116Y006675D01* +X003870Y006680D01* +X003870Y010150D01* +X010459Y010150D01* +X010422Y010113D01* +X010370Y009988D01* +X010370Y009852D01* +X010422Y009727D01* +X010517Y009632D01* +X010642Y009580D01* +X010681Y009580D01* +X011756Y008496D01* +X011722Y008463D01* +X011670Y008338D01* +X011670Y008202D01* +X011722Y008077D01* +X011817Y007982D01* +X011930Y007935D01* +X012050Y007767D01* +X012046Y006445D01* +X011555Y006427D01* +X011554Y006427D01* +X011504Y006425D01* +X011453Y006423D01* +X011452Y006422D01* +X010363Y006367D01* +X009643Y007432D01* +X009538Y008137D01* +X009538Y008137D01* +X009590Y008262D01* +X009590Y008398D01* +X009538Y008523D01* +X009443Y008618D01* +X009318Y008670D01* +X009182Y008670D01* +X009057Y008618D01* +X009016Y008577D01* +X008905Y008559D01* +X008901Y008560D01* +X008855Y008551D01* +X008808Y008544D01* +X008804Y008541D01* +X008799Y008540D01* +X008760Y008514D01* +X008720Y008490D01* +X008717Y008486D01* +X007852Y007910D01* +X007742Y007910D01* +X007617Y007858D01* +X007589Y007830D01* +X007565Y007830D01* +X007570Y007843D01* +X007570Y008077D01* +X007480Y008294D01* +X007314Y008460D01* +X007302Y008465D01* +X007364Y008510D01* +X007430Y008576D01* +X007485Y008651D01* +X007527Y008734D01* +X007555Y008822D01* +X007570Y008914D01* +X007570Y008960D01* +X007570Y009006D01* +X007555Y009098D01* +X007527Y009186D01* +X007485Y009269D01* +X007430Y009344D01* +X007364Y009410D01* +X007289Y009465D01* +X007206Y009507D01* +X007118Y009535D01* +X007026Y009550D01* +X006980Y009550D01* +X006980Y008960D01* +X006980Y008960D01* +X007570Y008960D01* +X006980Y008960D01* +X006980Y008960D01* +X006980Y008960D01* +X006390Y008960D01* +X006390Y009006D01* +X006405Y009098D01* +X006433Y009186D01* +X006475Y009269D01* +X006530Y009344D01* +X006596Y009410D01* +X006671Y009465D01* +X006754Y009507D01* +X006842Y009535D01* +X006934Y009550D01* +X006980Y009550D01* +X006980Y008960D01* +X006390Y008960D01* +X006390Y008914D01* +X006405Y008822D01* +X006433Y008734D01* +X006475Y008651D01* +X006530Y008576D01* +X006596Y008510D01* +X006658Y008465D01* +X006646Y008460D01* +X006480Y008294D01* +X006390Y008077D01* +X006390Y007843D01* +X006480Y007626D01* +X006646Y007460D01* +X006480Y007294D01* +X006390Y007077D01* +X006390Y006843D01* +X006480Y006626D01* +X006646Y006460D01* +X006863Y006370D01* +X007097Y006370D01* +X007254Y006435D01* +X007594Y006435D01* +X007622Y006407D01* +X007747Y006355D01* +X007883Y006355D01* +X008008Y006407D01* +X008103Y006502D01* +X008155Y006627D01* +X008155Y006763D01* +X008103Y006888D01* +X008008Y006983D01* +X007883Y007035D01* +X007747Y007035D01* +X007622Y006983D01* +X007594Y006955D01* +X007570Y006955D01* +X007570Y007077D01* +X007480Y007294D01* +X007464Y007310D01* +X007589Y007310D01* +X007617Y007282D01* +X007742Y007230D01* +X007878Y007230D01* +X008003Y007282D01* +X008098Y007377D01* +X008139Y007477D01* +X008739Y007876D01* +X008747Y007857D01* +X008775Y007829D01* +X008775Y007319D01* +X008770Y007292D01* +X008775Y007268D01* +X008775Y007243D01* +X008786Y007218D01* +X008791Y007191D01* +X008805Y007171D01* +X008815Y007148D01* +X008834Y007128D01* +X009621Y005977D01* +X009552Y005948D01* +X009457Y005853D01* +X009405Y005728D01* +X009405Y005686D01* +X009176Y005799D01* +X009158Y005843D01* +X009063Y005938D01* +X008938Y005990D01* +X008802Y005990D01* +X008677Y005938D01* +X008615Y005876D01* +X008543Y005948D01* +X008418Y006000D01* +X008282Y006000D01* +X008157Y005948D01* +X008062Y005853D01* +X008010Y005728D01* +X008010Y005723D01* +X007877Y005720D01* +X007731Y005720D01* +X007726Y005725D01* +X007765Y005764D01* +X007765Y006186D01* +X007636Y006315D01* +X006584Y006315D01* +X006455Y006186D01* +X006455Y006038D01* +X006305Y005887D01* +X006265Y005792D01* +X006265Y005290D01* +X006264Y005289D01* +X006265Y005238D01* +X006265Y005188D01* +X006266Y005187D01* +X006266Y005185D01* +X006285Y005139D01* +X006305Y005093D01* +X006306Y005092D01* +X006306Y005090D01* +X006342Y005055D01* +X006378Y005020D01* +X006379Y005019D01* +X006380Y005018D01* +X006427Y004999D01* +X006455Y004988D01* +X006455Y004975D01* +X006486Y004975D01* +X006486Y004975D01* +X006455Y004975D01* +X006455Y004826D01* +X006470Y004770D01* +X006495Y004726D01* +X006483Y004714D01* +X006464Y004706D01* +X006463Y004705D01* +X006427Y004670D01* +X005943Y004192D01* +X005680Y004192D01* +X005551Y004063D01* +X005551Y003802D01* +X005536Y003787D01* +X005312Y003787D01* +X005280Y003756D01* +X005252Y003772D01* +X005196Y003787D01* +X005029Y003787D01* +X004862Y003787D01* +X004806Y003772D01* +X004756Y003743D01* +X004715Y003702D01* +X004686Y003652D01* +X004671Y003596D01* +X004671Y003390D01* +X005029Y003390D01* +X005029Y003390D01* +X005029Y003787D01* +X005029Y003390D01* +X005029Y003390D01* +X004671Y003371D02* +X001476Y003371D01* +X001506Y003132D02* +X004685Y003132D01* +X004663Y002894D02* +X001404Y002894D01* +X001426Y002655D02* +X004520Y002655D01* +X004573Y002417D02* +X001506Y002417D01* +X001467Y002178D02* +X008137Y002178D01* +X008723Y002417D02* +X005147Y002417D01* +X005200Y002655D02* +X008771Y002655D01* +X008778Y002894D02* +X005384Y002894D01* +X005899Y003132D02* +X008808Y003132D01* +X009044Y003371D02* +X005899Y003371D01* +X006421Y003398D02* +X006421Y003795D01* +X006421Y003398D01* +X006421Y003609D02* +X006421Y003609D01* +X006421Y003795D02* +X006421Y003795D01* +X006779Y003609D02* +X006810Y003609D01* +X007426Y003609D02* +X009433Y003609D01* +X009401Y003848D02* +X007447Y003848D01* +X007765Y004430D02* +X007765Y004599D01* +X007812Y004552D01* +X007937Y004500D01* +X008073Y004500D01* +X008198Y004552D01* +X008224Y004578D01* +X009050Y004571D01* +X009180Y004430D01* +X007765Y004430D01* +X007765Y004563D02* +X007801Y004563D01* +X008209Y004563D02* +X009058Y004563D01* +X009610Y005005D02* +X009616Y005005D01* +X009660Y005002D01* +X009669Y005005D01* +X012681Y005000D01* +X012681Y005000D01* +X012735Y005000D01* +X012788Y005000D01* +X012788Y005000D01* +X014138Y005000D01* +X014097Y004991D01* +X014079Y004992D01* +X014047Y004980D01* +X014014Y004973D01* +X013999Y004963D01* +X013052Y004615D01* +X013003Y004635D01* +X012867Y004635D01* +X012755Y004588D01* +X012755Y004589D01* +X012722Y004603D01* +X012691Y004621D01* +X012675Y004623D01* +X012660Y004629D01* +X012624Y004630D01* +X012588Y004635D01* +X012573Y004630D01* +X012141Y004636D01* +X012045Y004597D01* +X011971Y004525D01* +X011965Y004511D01* +X011942Y004490D01* +X011933Y004487D01* +X011916Y004470D01* +X011775Y004470D01* +X011775Y004214D01* +X011775Y004214D01* +X011775Y004470D01* +X011609Y004470D01* +X011556Y004459D01* +X011505Y004438D01* +X011459Y004407D01* +X011420Y004368D01* +X011390Y004323D01* +X011369Y004272D01* +X011368Y004270D01* +X011002Y004270D01* +X010998Y004272D01* +X010950Y004270D01* +X010903Y004270D01* +X010899Y004268D01* +X010894Y004268D01* +X010851Y004248D01* +X010808Y004230D01* +X010804Y004227D01* +X010509Y004093D01* +X010453Y004095D01* +X009610Y005005D01* +X009799Y004802D02* +X013560Y004802D01* +X013770Y004325D02* +X014206Y004325D01* +X014267Y004350D02* +X014142Y004298D01* +X014093Y004249D01* +X013392Y004186D01* +X014193Y004480D01* +X014290Y004501D01* +X014290Y004372D01* +X014299Y004350D01* +X014267Y004350D01* +X016025Y004552D02* +X016220Y004670D01* +X016100Y004642D01* +X016025Y004552D01* +X016034Y004563D02* +X016044Y004563D01* +X016419Y004717D02* +X016620Y004764D01* +X016636Y004763D01* +X016670Y004775D01* +X016705Y004784D01* +X016718Y004793D01* +X016733Y004799D01* +X016760Y004823D01* +X016789Y004844D01* +X016797Y004858D01* +X016893Y004946D01* +X016925Y004971D01* +X016931Y004981D01* +X016939Y004989D01* +X016956Y005026D01* +X017044Y005180D01* +X017067Y005212D01* +X017070Y005225D01* +X017076Y005236D01* +X017080Y005264D01* +X017163Y005347D01* +X017215Y005472D01* +X017215Y005608D01* +X017163Y005733D01* +X017068Y005828D01* +X017038Y005841D01* +X017417Y006669D01* +X017420Y006673D01* +X017428Y006691D01* +X017442Y006677D01* +X017526Y006642D01* +X017659Y006422D01* +X017858Y005697D01* +X017853Y005596D01* +X017709Y005229D01* +X017414Y004948D01* +X017381Y004945D01* +X017378Y004948D01* +X017253Y005000D01* +X017117Y005000D01* +X016992Y004948D01* +X016897Y004853D01* +X016845Y004728D01* +X016845Y004592D01* +X016897Y004467D01* +X016947Y004417D01* +X016520Y004676D01* +X016487Y004700D01* +X016476Y004703D01* +X016466Y004709D01* +X016426Y004715D01* +X016419Y004717D01* +X016736Y004802D02* +X016876Y004802D01* +X016857Y004563D02* +X016706Y004563D01* +X016964Y005040D02* +X017510Y005040D01* +X017728Y005279D02* +X017094Y005279D01* +X017215Y005517D02* +X017822Y005517D01* +X017842Y005756D02* +X017140Y005756D01* +X017108Y005994D02* +X017776Y005994D01* +X017711Y006233D02* +X017217Y006233D01* +X017326Y006471D02* +X017629Y006471D01* +X018273Y006710D02* +X018691Y006710D01* +X018690Y006948D02* +X018183Y006948D01* +X018202Y006968D02* +X018690Y006968D01* +X018695Y005099D01* +X018648Y005213D01* +X018553Y005308D01* +X018525Y005319D01* +X018529Y005327D01* +X018543Y005344D01* +X018552Y005373D01* +X018566Y005400D01* +X018567Y005422D01* +X018574Y005442D01* +X018571Y005473D01* +X018573Y005503D01* +X018566Y005524D01* +X018541Y005794D01* +X018544Y005820D01* +X018537Y005845D01* +X018534Y005870D01* +X018522Y005894D01* +X018316Y006584D01* +X018317Y006593D01* +X018302Y006633D01* +X018289Y006674D01* +X018283Y006681D01* +X018159Y007011D01* +X018202Y006968D01* +X018074Y007227D02* +X018074Y008319D01* +X018023Y008197D01* +X017928Y008102D01* +X017803Y008050D01* +X017696Y008050D01* +X017363Y007825D01* +X017112Y007629D01* +X017178Y007563D01* +X017192Y007530D01* +X017213Y007530D01* +X017338Y007478D01* +X017352Y007464D01* +X017377Y007523D01* +X017472Y007618D01* +X017597Y007670D01* +X017733Y007670D01* +X017858Y007618D01* +X017953Y007523D01* +X018005Y007398D01* +X018005Y007300D01* +X018045Y007258D01* +X018074Y007227D01* +X018074Y007425D02* +X017994Y007425D01* +X018074Y007664D02* +X017748Y007664D01* +X017582Y007664D02* +X017156Y007664D01* +X017477Y007902D02* +X018074Y007902D01* +X018074Y008141D02* +X017966Y008141D01* +X017404Y008480D02* +X017348Y008442D01* +X017263Y008528D01* +X017138Y008580D01* +X017002Y008580D01* +X016879Y008529D01* +X015990Y008653D01* +X015961Y008769D01* +X015995Y008852D01* +X015995Y008988D01* +X015980Y009025D01* +X016048Y009025D01* +X016173Y009077D01* +X016268Y009172D01* +X016273Y009183D01* +X016277Y009172D01* +X016372Y009077D01* +X016497Y009025D01* +X016633Y009025D01* +X016758Y009077D01* +X016853Y009172D01* +X016905Y009297D01* +X016905Y009433D01* +X016883Y009485D01* +X018160Y009485D01* +X018162Y009484D01* +X018212Y009485D01* +X018262Y009485D01* +X018263Y009486D01* +X018700Y009492D01* +X018700Y009373D01* +X018695Y009350D01* +X018700Y009322D01* +X018700Y009293D01* +X018709Y009271D01* +X018713Y009248D01* +X018716Y009243D01* +X018649Y009176D01* +X018415Y009176D01* +X018238Y009178D01* +X018208Y009208D01* +X018083Y009260D01* +X017947Y009260D01* +X017822Y009208D01* +X017727Y009113D01* +X017675Y008988D01* +X017675Y008852D01* +X017726Y008730D01* +X017667Y008730D01* +X017542Y008678D01* +X017447Y008583D01* +X017404Y008480D01* +X017482Y008618D02* +X016246Y008618D01* +X015995Y008856D02* +X017675Y008856D01* +X017719Y009095D02* +X016775Y009095D01* +X016905Y009333D02* +X018698Y009333D01* +X019493Y009674D02* +X019491Y009859D01* +X019530Y009952D01* +X019530Y010088D01* +X019504Y010150D01* +X019690Y010150D01* +X019690Y009436D01* +X019687Y009440D01* +X019638Y009558D01* +X019543Y009653D01* +X019493Y009674D01* +X019492Y009810D02* +X019690Y009810D01* +X019690Y009572D02* +X019624Y009572D01* +X019690Y010049D02* +X019530Y010049D01* +X016355Y009095D02* +X016190Y009095D01* +X015458Y008636D02* +X015367Y008727D01* +X015315Y008852D01* +X015315Y008988D01* +X015329Y009021D01* +X014512Y008918D01* +X014533Y008897D01* +X014562Y008847D01* +X014576Y008791D01* +X014576Y007975D01* +X014120Y007975D01* +X014120Y007975D01* +X014576Y007975D01* +X014576Y007384D01* +X014688Y007338D01* +X014783Y007243D01* +X014835Y007118D01* +X014835Y006982D01* +X014787Y006867D01* +X014921Y006863D01* +X015301Y007079D01* +X015313Y007090D01* +X015346Y007104D01* +X015376Y007122D01* +X015393Y007124D01* +X015408Y007130D01* +X015444Y007130D01* +X015479Y007134D01* +X015490Y007131D01* +X015517Y007158D01* +X015642Y007210D01* +X015778Y007210D01* +X015895Y007161D01* +X015981Y007292D01* +X015988Y007312D01* +X016009Y007335D01* +X016026Y007361D01* +X016044Y007373D01* +X016273Y007624D01* +X016284Y007643D01* +X016308Y007662D01* +X016328Y007684D01* +X016348Y007693D01* +X016767Y008020D01* +X015794Y008156D01* +X015793Y008155D01* +X015743Y008163D01* +X015693Y008170D01* +X015692Y008170D01* +X015691Y008170D01* +X015647Y008196D01* +X015604Y008222D01* +X015603Y008223D01* +X015602Y008224D01* +X015572Y008264D01* +X015541Y008305D01* +X015541Y008306D01* +X015540Y008307D01* +X015528Y008356D01* +X015515Y008405D01* +X015516Y008406D01* +X015458Y008636D01* +X015463Y008618D02* +X014576Y008618D01* +X014556Y008856D02* +X015315Y008856D01* +X015522Y008379D02* +X014576Y008379D01* +X014576Y008141D02* +X015902Y008141D01* +X016616Y007902D02* +X014576Y007902D01* +X014576Y007664D02* +X016310Y007664D01* +X016091Y007425D02* +X014576Y007425D01* +X014806Y007187D02* +X015586Y007187D01* +X015834Y007187D02* +X015911Y007187D01* +X015071Y006948D02* +X014821Y006948D01* +X013464Y006916D02* +X013132Y006928D01* +X013303Y007690D01* +X013304Y007691D01* +X013314Y007740D01* +X013325Y007789D01* +X013325Y007791D01* +X013354Y007929D01* +X013402Y007812D01* +X013430Y007784D01* +X013430Y006998D01* +X013464Y006916D01* +X013451Y006948D02* +X013137Y006948D01* +X013190Y007187D02* +X013430Y007187D01* +X013430Y007425D02* +X013243Y007425D01* +X013297Y007664D02* +X013430Y007664D01* +X013365Y007902D02* +X013348Y007902D01* +X012817Y007902D02* +X012763Y007902D01* +X012806Y007850D02* +X012779Y007728D01* +X012740Y008146D01* +X012740Y008186D01* +X012735Y008198D01* +X012734Y008210D01* +X012716Y008245D01* +X012701Y008281D01* +X012692Y008291D01* +X012686Y008302D01* +X012656Y008327D01* +X012256Y008730D01* +X012378Y008730D01* +X012503Y008782D01* +X012598Y008877D01* +X012650Y009002D01* +X012650Y009138D01* +X012598Y009263D01* +X012503Y009358D01* +X012378Y009410D01* +X012343Y009410D01* +X012340Y009413D01* +X012599Y009411D01* +X012760Y008642D01* +X012865Y008131D01* +X012806Y007850D01* +X012863Y008141D02* +X012741Y008141D01* +X012814Y008379D02* +X012604Y008379D01* +X012765Y008618D02* +X012368Y008618D01* +X012577Y008856D02* +X012715Y008856D01* +X012665Y009095D02* +X012650Y009095D01* +X012615Y009333D02* +X012528Y009333D01* +X013096Y009572D02* +X014979Y009572D01* +X014987Y009552D02* +X015032Y009507D01* +X013559Y009322D01* +X013558Y009323D01* +X013433Y009375D01* +X013297Y009375D01* +X013172Y009323D01* +X013153Y009304D01* +X013083Y009635D01* +X014833Y009620D01* +X014888Y009618D01* +X014893Y009620D01* +X014897Y009619D01* +X014948Y009640D01* +X014950Y009641D01* +X014987Y009552D01* +X013650Y009333D02* +X013534Y009333D01* +X013196Y009333D02* +X013147Y009333D01* +X011635Y008618D02* +X009443Y008618D01* +X009590Y008379D02* +X011687Y008379D01* +X011696Y008141D02* +X009540Y008141D01* +X009573Y007902D02* +X011953Y007902D01* +X012049Y007664D02* +X009609Y007664D01* +X009648Y007425D02* +X012049Y007425D01* +X012048Y007187D02* +X009809Y007187D01* +X009970Y006948D02* +X012047Y006948D01* +X012047Y006710D02* +X010132Y006710D01* +X010293Y006471D02* +X012046Y006471D01* +X013196Y005760D02* +X013561Y005760D01* +X014812Y005624D01* +X014799Y005619D01* +X014797Y005618D01* +X014574Y005540D01* +X013295Y005540D01* +X013295Y005588D01* +X013243Y005713D01* +X013196Y005760D01* +X013200Y005756D02* +X013602Y005756D01* +X012010Y004563D02* +X010020Y004563D01* +X010241Y004325D02* +X011391Y004325D01* +X011775Y004325D02* +X011775Y004325D01* +X009417Y005756D02* +X009265Y005756D01* +X009610Y005994D02* +X008432Y005994D01* +X008268Y005994D02* +X007765Y005994D01* +X007719Y006233D02* +X009447Y006233D01* +X009284Y006471D02* +X008072Y006471D01* +X008155Y006710D02* +X009120Y006710D01* +X008957Y006948D02* +X008043Y006948D01* +X007525Y007187D02* +X008794Y007187D01* +X008775Y007425D02* +X008118Y007425D01* +X008420Y007664D02* +X008775Y007664D01* +X008198Y008141D02* +X007544Y008141D01* +X007395Y008379D02* +X008557Y008379D01* +X009057Y008618D02* +X007460Y008618D01* +X007561Y008856D02* +X011399Y008856D01* +X011162Y009095D02* +X007556Y009095D01* +X007438Y009333D02* +X010926Y009333D01* +X010689Y009572D02* +X003870Y009572D01* +X003870Y009810D02* +X010388Y009810D01* +X010395Y010049D02* +X003870Y010049D01* +X003870Y009333D02* +X006522Y009333D01* +X006404Y009095D02* +X003870Y009095D01* +X003870Y008856D02* +X006399Y008856D01* +X006500Y008618D02* +X003870Y008618D01* +X003870Y008379D02* +X006565Y008379D01* +X006416Y008141D02* +X003870Y008141D01* +X003870Y007902D02* +X006390Y007902D01* +X006464Y007664D02* +X003870Y007664D01* +X003870Y007425D02* +X006611Y007425D01* +X006435Y007187D02* +X003870Y007187D01* +X003870Y006948D02* +X006390Y006948D01* +X006445Y006710D02* +X003870Y006710D01* +X003799Y006370D02* +X003743Y006355D01* +X003693Y006326D01* +X003652Y006285D01* +X003623Y006235D01* +X003608Y006179D01* +X003608Y005900D01* +X003608Y005621D01* +X003623Y005565D01* +X003652Y005515D01* +X003654Y005512D01* +X003642Y005500D01* +X003613Y005450D01* +X003598Y005394D01* +X003598Y005115D01* +X003598Y004836D01* +X003613Y004780D01* +X003642Y004730D01* +X003654Y004717D01* +X003633Y004680D01* +X003618Y004624D01* +X003618Y004345D01* +X003618Y004066D01* +X003633Y004010D01* +X003662Y003960D01* +X003703Y003919D01* +X003753Y003890D01* +X003809Y003875D01* +X003963Y003875D01* +X004533Y003875D01* +X004662Y004004D01* +X004662Y004079D01* +X004856Y004076D01* +X004858Y004075D01* +X004908Y004075D01* +X004957Y004074D01* +X004959Y004075D01* +X004962Y004075D01* +X005007Y004094D01* +X005054Y004112D01* +X005055Y004114D01* +X005057Y004115D01* +X005078Y004135D01* +X005576Y004135D01* +X005705Y004264D01* +X005705Y004686D01* +X005666Y004725D01* +X005705Y004764D01* +X005705Y005186D01* +X005666Y005225D01* +X005705Y005264D01* +X005705Y005686D01* +X005665Y005726D01* +X005690Y005770D01* +X005705Y005826D01* +X005705Y005975D01* +X005705Y006124D01* +X005690Y006180D01* +X005661Y006230D01* +X005620Y006271D01* +X005570Y006300D01* +X005514Y006315D01* +X005050Y006315D01* +X005050Y005975D01* +X005050Y005975D01* +X005705Y005975D01* +X005050Y005975D01* +X005050Y005975D01* +X005050Y006315D01* +X004586Y006315D01* +X004580Y006313D01* +X004523Y006370D01* +X004091Y006370D01* +X003953Y006370D01* +X003953Y005900D01* +X003953Y005900D01* +X003953Y006370D01* +X003799Y006370D01* +X003953Y006233D02* +X003953Y006233D01* +X003953Y005994D02* +X003953Y005994D01* +X003953Y005900D02* +X003953Y005900D01* +X003608Y005900D01* +X003953Y005900D01* +X003608Y005994D02* +X002190Y005994D01* +X002190Y005881D02* +X002190Y006180D01* +X001200Y006180D01* +X001200Y005690D01* +X001999Y005690D01* +X002055Y005705D01* +X002105Y005734D01* +X002146Y005775D01* +X002175Y005825D01* +X002190Y005881D01* +X002127Y005756D02* +X003608Y005756D01* +X003651Y005517D02* +X000480Y005517D01* +X000480Y005279D02* +X003598Y005279D01* +X003598Y005115D02* +X003943Y005115D01* +X003598Y005115D01* +X003598Y005040D02* +X000480Y005040D01* +X000480Y004802D02* +X003607Y004802D01* +X003618Y004563D02* +X002184Y004563D01* +X002190Y004539D02* +X002175Y004595D01* +X002146Y004645D01* +X002105Y004686D01* +X002055Y004715D01* +X001999Y004730D01* +X001200Y004730D01* +X001200Y004240D01* +X002190Y004240D01* +X002190Y004539D01* +X002190Y004325D02* +X003618Y004325D01* +X003618Y004345D02* +X003963Y004345D01* +X003963Y003875D01* +X003963Y004345D01* +X003963Y004345D01* +X003963Y004345D01* +X003618Y004345D01* +X003618Y004086D02* +X002190Y004086D01* +X002190Y004180D02* +X001200Y004180D01* +X001200Y003690D01* +X001999Y003690D01* +X002055Y003705D01* +X002105Y003734D01* +X002146Y003775D01* +X002175Y003825D01* +X002190Y003881D01* +X002190Y004180D01* +X002181Y003848D02* +X005551Y003848D01* +X005574Y004086D02* +X004988Y004086D01* +X005705Y004325D02* +X006077Y004325D01* +X006319Y004563D02* +X005705Y004563D01* +X005705Y004802D02* +X006462Y004802D01* +X006464Y004706D02* +X006464Y004706D01* +X006357Y005040D02* +X005705Y005040D01* +X005705Y005279D02* +X006265Y005279D01* +X006265Y005517D02* +X005705Y005517D01* +X005682Y005756D02* +X006265Y005756D01* +X006411Y005994D02* +X005705Y005994D01* +X005659Y006233D02* +X006501Y006233D01* +X006635Y006471D02* +X002190Y006471D01* +X001200Y006233D02* +X003622Y006233D01* +X005050Y006233D02* +X005050Y006233D01* +X005050Y005994D02* +X005050Y005994D01* +X003943Y005115D02* +X003943Y005115D01* +X003963Y004325D02* +X003963Y004325D01* +X003963Y004086D02* +X003963Y004086D01* +X004675Y003609D02* +X001302Y003609D01* +X001200Y003848D02* +X001140Y003848D01* +X000718Y003609D02* +X000480Y003609D01* +X000480Y003371D02* +X000544Y003371D01* +X000514Y003132D02* +X000480Y003132D01* +X000480Y002894D02* +X000616Y002894D01* +X000594Y002655D02* +X000480Y002655D01* +X000480Y002417D02* +X000514Y002417D01* +X000480Y002178D02* +X000553Y002178D01* +X000480Y001940D02* +X000754Y001940D01* +X000480Y001701D02* +X006536Y001701D01* +X006779Y001463D02* +X004533Y001463D01* +X004510Y001494D02* +X004444Y001560D01* +X004369Y001615D01* +X004286Y001657D01* +X004198Y001685D01* +X004106Y001700D01* +X004060Y001700D01* +X004060Y001110D01* +X004060Y001110D01* +X004650Y001110D01* +X004650Y001156D01* +X004635Y001248D01* +X004607Y001336D01* +X004565Y001419D01* +X004510Y001494D01* +X004639Y001224D02* +X008608Y001224D01* +X008736Y001224D02* +X009522Y001224D01* +X009798Y001224D02* +X009937Y001224D01* +X009998Y001463D02* +X010150Y001463D01* +X010150Y001427D02* +X010150Y001427D01* +X010215Y001701D02* +X009959Y001701D01* +X010025Y001940D02* +X010203Y001940D01* +X010825Y001575D02* +X012495Y000596D01* +X012648Y000490D01* +X011450Y000490D01* +X011503Y000512D01* +X011598Y000607D01* +X011650Y000732D01* +X011650Y000868D01* +X011598Y000993D01* +X011503Y001088D01* +X011378Y001140D01* +X011242Y001140D01* +X011117Y001088D01* +X011089Y001060D01* +X010585Y001060D01* +X010585Y001140D01* +X010605Y001175D01* +X010683Y001207D01* +X010778Y001302D01* +X010830Y001427D01* +X010830Y001563D01* +X010825Y001575D01* +X010830Y001463D02* +X011017Y001463D01* +X010700Y001224D02* +X011423Y001224D01* +X011601Y000986D02* +X011830Y000986D01* +X011650Y000747D02* +X012237Y000747D01* +X012621Y000509D02* +X011495Y000509D01* +X011170Y000490D02* +X008940Y000490D01* +X008993Y000512D01* +X009021Y000540D01* +X011089Y000540D01* +X011117Y000512D01* +X011170Y000490D01* +X011125Y000509D02* +X008985Y000509D01* +X008615Y000509D02* +X000480Y000509D01* +X000590Y000739D02* +X000729Y000600D01* +X000911Y000524D01* +X001109Y000524D01* +X001291Y000600D01* +X001430Y000739D01* +X001503Y000914D01* +X001560Y000776D01* +X001726Y000610D01* +X001943Y000520D01* +X002177Y000520D01* +X002394Y000610D01* +X002560Y000776D01* +X002726Y000610D01* +X002943Y000520D01* +X003177Y000520D01* +X003394Y000610D01* +X003560Y000776D01* +X003565Y000788D01* +X003610Y000726D01* +X003676Y000660D01* +X003751Y000605D01* +X003834Y000563D01* +X003922Y000535D01* +X004014Y000520D01* +X004060Y000520D01* +X004106Y000520D01* +X004198Y000535D01* +X004286Y000563D01* +X004369Y000605D01* +X004444Y000660D01* +X004510Y000726D01* +X004565Y000801D01* +X004607Y000884D01* +X004635Y000972D01* +X004650Y001064D01* +X004650Y001110D01* +X004060Y001110D01* +X004060Y001110D01* +X004060Y001700D01* +X004014Y001700D01* +X003922Y001685D01* +X003834Y001657D01* +X003751Y001615D01* +X003676Y001560D01* +X003610Y001494D01* +X003565Y001432D01* +X003560Y001444D01* +X003394Y001610D01* +X003177Y001700D01* +X002943Y001700D01* +X002726Y001610D01* +X002560Y001444D01* +X002394Y001610D01* +X002177Y001700D01* +X001943Y001700D01* +X001726Y001610D01* +X001560Y001444D01* +X001470Y001227D01* +X001470Y001204D01* +X001430Y001301D01* +X001291Y001440D01* +X001109Y001516D01* +X000911Y001516D01* +X000729Y001440D01* +X000590Y001301D01* +X000514Y001119D01* +X000514Y000921D01* +X000590Y000739D01* +X000587Y000747D02* +X000480Y000747D01* +X000480Y000986D02* +X000514Y000986D01* +X000480Y001224D02* +X000558Y001224D01* +X000480Y001463D02* +X000783Y001463D01* +X001237Y001463D02* +X001578Y001463D01* +X001470Y001224D02* +X001462Y001224D01* +X001433Y000747D02* +X001589Y000747D01* +X002531Y000747D02* +X002589Y000747D01* +X003531Y000747D02* +X003594Y000747D01* +X004060Y000747D02* +X004060Y000747D01* +X004060Y000520D02* +X004060Y001110D01* +X004060Y000520D01* +X004526Y000747D02* +X008460Y000747D01* +X008509Y000986D02* +X004638Y000986D01* +X004060Y000986D02* +X004060Y000986D01* +X004060Y001110D02* +X004060Y001110D01* +X004060Y001224D02* +X004060Y001224D01* +X004060Y001463D02* +X004060Y001463D01* +X003587Y001463D02* +X003542Y001463D01* +X002578Y001463D02* +X002542Y001463D01* +X001266Y001940D02* +X006557Y001940D01* +X006951Y001463D02* +X007868Y001463D01* +X008105Y001260D02* +X008105Y001260D01* +X009012Y001463D02* +X009322Y001463D01* +X009361Y001701D02* +X009201Y001701D01* +X010941Y002515D02* +X011373Y002526D01* +X011297Y002434D01* +X011210Y002405D01* +X011155Y002413D01* +X010941Y002515D01* +X011146Y002417D02* +X011244Y002417D01* +X011669Y002067D02* +X011869Y002312D01* +X012074Y002424D01* +X012835Y002534D01* +X013307Y002521D01* +X013322Y002516D01* +X013358Y002520D01* +X013394Y002519D01* +X013409Y002524D01* +X014544Y002625D01* +X014586Y002626D01* +X014595Y002630D01* +X014605Y002631D01* +X014642Y002650D01* +X014703Y002677D01* +X014709Y002667D01* +X014753Y002510D01* +X014316Y002510D01* +X014060Y002254D01* +X013804Y002510D01* +X013316Y002510D01* +X012970Y002164D01* +X012970Y001676D01* +X013053Y001593D01* +X013004Y001549D01* +X012376Y001946D01* +X012338Y002038D01* +X012243Y002133D01* +X012118Y002185D01* +X011982Y002185D01* +X011857Y002133D01* +X011762Y002038D01* +X011710Y001913D01* +X011710Y001859D01* +X011537Y001962D01* +X011552Y001970D01* +X011580Y001979D01* +X011598Y001994D01* +X011618Y002005D01* +X011636Y002027D01* +X011658Y002046D01* +X011669Y002067D01* +X011721Y001940D02* +X011574Y001940D01* +X011760Y002178D02* +X011965Y002178D01* +X012135Y002178D02* +X012984Y002178D01* +X012970Y001940D02* +X012387Y001940D01* +X012764Y001701D02* +X012970Y001701D01* +X013222Y002417D02* +X012060Y002417D01* +X012940Y002465D02* +X013985Y002550D01* +X013898Y002417D02* +X014222Y002417D01* +X014653Y002655D02* +X014712Y002655D01* +X015417Y002638D02* +X015453Y002510D01* +X015560Y002510D01* +X015560Y001920D01* +X015560Y001920D01* +X015560Y002510D01* +X015679Y002510D01* +X015657Y002532D01* +X015605Y002657D01* +X015605Y002793D01* +X015657Y002918D01* +X015703Y002964D01* +X015704Y002981D01* +X015417Y002638D01* +X015431Y002655D02* +X015606Y002655D01* +X015560Y002417D02* +X015560Y002417D01* +X015560Y002178D02* +X015560Y002178D01* +X015560Y001940D02* +X015560Y001940D01* +X016220Y001463D02* +X016431Y001463D01* +X016452Y001513D02* +X016400Y001388D01* +X016400Y001252D01* +X016452Y001127D01* +X016547Y001032D01* +X016672Y000980D01* +X016808Y000980D01* +X016889Y001014D01* +X016875Y000926D01* +X016875Y000880D01* +X017465Y000880D01* +X017465Y000880D01* +X016875Y000880D01* +X016875Y000834D01* +X016890Y000742D01* +X016918Y000654D01* +X016960Y000571D01* +X017015Y000496D01* +X017021Y000490D01* +X015964Y000490D01* +X016150Y000676D01* +X016150Y001164D01* +X016036Y001278D01* +X016480Y001723D01* +X016520Y001818D01* +X016520Y002906D01* +X017224Y003379D01* +X017254Y003393D01* +X017267Y003407D01* +X017283Y003418D01* +X017301Y003446D01* +X018405Y004680D01* +X018428Y004680D01* +X018553Y004732D01* +X018648Y004827D01* +X018696Y004943D01* +X018700Y003550D01* +X017912Y002402D01* +X017807Y002358D01* +X017712Y002263D01* +X017660Y002138D01* +X017660Y002002D01* +X017712Y001877D01* +X017735Y001854D01* +X017477Y001641D01* +X016986Y001645D01* +X016949Y001649D01* +X016935Y001645D01* +X016920Y001645D01* +X016886Y001631D01* +X016880Y001630D01* +X016808Y001660D01* +X016672Y001660D01* +X016547Y001608D01* +X016452Y001513D01* +X016459Y001701D02* +X017550Y001701D01* +X017686Y001940D02* +X016520Y001940D01* +X016520Y002178D02* +X017677Y002178D01* +X017922Y002417D02* +X016520Y002417D01* +X016520Y002655D02* +X018086Y002655D01* +X018249Y002894D02* +X016520Y002894D01* +X016857Y003132D02* +X018413Y003132D01* +X018577Y003371D02* +X017212Y003371D01* +X017447Y003609D02* +X018700Y003609D01* +X018699Y003848D02* +X017661Y003848D01* +X017874Y004086D02* +X018698Y004086D01* +X018698Y004325D02* +X018087Y004325D01* +X018300Y004563D02* +X018697Y004563D01* +X018696Y004802D02* +X018622Y004802D01* +X019216Y004802D02* +X019690Y004802D01* +X019690Y004563D02* +X019217Y004563D01* +X019218Y004325D02* +X019690Y004325D01* +X019690Y004086D02* +X019455Y004086D01* +X019468Y004073D02* +X019373Y004168D01* +X019248Y004220D01* +X019218Y004220D01* +X019214Y005550D01* +X019267Y005497D01* +X019392Y005445D01* +X019528Y005445D01* +X019653Y005497D01* +X019690Y005534D01* +X019690Y002721D01* +X019653Y002758D01* +X019528Y002810D01* +X019392Y002810D01* +X019267Y002758D01* +X019172Y002663D01* +X019132Y002566D01* +X018582Y002017D01* +X019289Y003055D01* +X019305Y003070D01* +X019317Y003097D01* +X019334Y003122D01* +X019339Y003144D01* +X019421Y003326D01* +X019560Y003564D01* +X019575Y003579D01* +X019586Y003608D01* +X019601Y003634D01* +X019604Y003656D01* +X019611Y003676D01* +X019611Y003706D01* +X019615Y003736D01* +X019609Y003758D01* +X019608Y003780D01* +X019596Y003807D01* +X019588Y003836D01* +X019575Y003854D01* +X019566Y003874D01* +X019544Y003895D01* +X019525Y003919D01* +X019520Y003922D01* +X019520Y003948D01* +X019468Y004073D01* +X019580Y003848D02* +X019690Y003848D01* +X019690Y003609D02* +X019586Y003609D01* +X019690Y003371D02* +X019447Y003371D01* +X019336Y003132D02* +X019690Y003132D01* +X019690Y002894D02* +X019179Y002894D01* +X019169Y002655D02* +X019017Y002655D01* +X018982Y002417D02* +X018854Y002417D01* +X018744Y002178D02* +X018692Y002178D01* +X019354Y001940D02* +X019690Y001940D01* +X019690Y002178D02* +X019644Y002178D01* +X019653Y002182D02* +X019556Y002142D01* +X018796Y001382D01* +X018799Y001380D01* +X018965Y001214D01* +X019055Y000997D01* +X019055Y000763D01* +X018965Y000546D01* +X018909Y000490D01* +X019690Y000490D01* +X019690Y002219D01* +X019653Y002182D01* +X019690Y001701D02* +X019115Y001701D01* +X018877Y001463D02* +X019690Y001463D01* +X019690Y001224D02* +X018955Y001224D01* +X019055Y000986D02* +X019690Y000986D01* +X019690Y000747D02* +X019049Y000747D01* +X018928Y000509D02* +X019690Y000509D01* +X017006Y000509D02* +X015983Y000509D01* +X016150Y000747D02* +X016889Y000747D01* +X016884Y000986D02* +X016821Y000986D01* +X016659Y000986D02* +X016150Y000986D01* +X016090Y001224D02* +X016412Y001224D01* +X015647Y002894D02* +X015631Y002894D01* +X019216Y005040D02* +X019690Y005040D01* +X019690Y005279D02* +X019215Y005279D01* +X019214Y005517D02* +X019247Y005517D01* +X019673Y005517D02* +X019690Y005517D01* +X018694Y005517D02* +X018568Y005517D01* +X018582Y005279D02* +X018695Y005279D01* +X018694Y005756D02* +X018545Y005756D01* +X018492Y005994D02* +X018693Y005994D01* +X018692Y006233D02* +X018421Y006233D01* +X018350Y006471D02* +X018692Y006471D01* +X008022Y005756D02* +X007757Y005756D01* +X007723Y007902D02* +X007570Y007902D01* +X006980Y009095D02* +X006980Y009095D01* +X006980Y009333D02* +X006980Y009333D01* +X001200Y005994D02* +X001140Y005994D01* +X001140Y005756D02* +X001200Y005756D01* +X001200Y004563D02* +X001140Y004563D01* +X001140Y004325D02* +X001200Y004325D01* +X001200Y004086D02* +X001140Y004086D01* +X005029Y003609D02* +X005029Y003609D01* +D24* +X004860Y002610D03* +X006865Y001795D03* +X008380Y001940D03* +X009260Y002225D03* +X009795Y002190D03* +X009265Y002570D03* +X009270Y002900D03* +X009830Y003030D03* +X009715Y003410D03* +X010730Y003250D03* +X010470Y004095D03* +X011355Y004625D03* +X011740Y004625D03* +X011745Y004960D03* +X011360Y004960D03* +X010120Y004865D03* +X008970Y004565D03* +X008005Y004840D03* +X007945Y004455D03* +X007118Y003754D03* +X008350Y005660D03* +X008870Y005650D03* +X008055Y005900D03* +X007825Y006280D03* +X007450Y006355D03* +X007065Y006360D03* +X006695Y006370D03* +X007815Y006695D03* +X007810Y007570D03* +X009035Y008050D03* +X009250Y008330D03* +X009895Y007085D03* +X012010Y008270D03* +X012790Y007860D03* +X013325Y007720D03* +X013690Y008005D03* +X014380Y007890D03* +X015515Y007500D03* +X016090Y007540D03* +X016085Y007880D03* +X015520Y008270D03* +X016010Y008670D03* +X015655Y008920D03* +X015980Y009365D03* +X016565Y009365D03* +X017395Y009305D03* +X017865Y009300D03* +X018015Y008920D03* +X017655Y008785D03* +X017270Y008755D03* +X017735Y008390D03* +X017070Y008240D03* +X017820Y007915D03* +X017890Y007585D03* +X017665Y007330D03* +X017635Y006965D03* +X017145Y007190D03* +X016890Y007370D03* +X016610Y007215D03* +X016960Y006920D03* +X015710Y006870D03* +X014965Y006365D03* +X015925Y006105D03* +X016360Y005970D03* +X015940Y005750D03* +X015645Y005440D03* +X015170Y005495D03* +X014690Y005600D03* +X014100Y005000D03* +X014155Y004475D03* +X014630Y004440D03* +X014335Y004010D03* +X015195Y003545D03* +X016160Y003860D03* +X016465Y003735D03* +X016815Y003890D03* +X016380Y004190D03* +X015715Y004235D03* +X016080Y004605D03* +X015162Y004830D03* +X016510Y005250D03* +X016875Y005540D03* +X018360Y005020D03* +X018530Y005330D03* +X019430Y005075D03* +X019435Y004690D03* +X019440Y004260D03* +X019180Y003880D03* +X018585Y003990D03* +X017540Y003735D03* +X017110Y004345D03* +X017185Y004660D03* +X018415Y004645D03* +X019460Y005785D03* +X018625Y005990D03* +X018535Y006520D03* +X019755Y007810D03* +X019675Y009400D03* +X019350Y009365D03* +X018715Y009505D03* +X019495Y009760D03* +X019190Y010020D03* +X015275Y009745D03* +X014705Y010190D03* +X014440Y009460D03* +X014525Y008950D03* +X013365Y009035D03* +X012310Y009070D03* +X012020Y009675D03* +X011510Y009950D03* +X011225Y010170D03* +X010710Y009920D03* +X013145Y006955D03* +X012655Y006255D03* +X012610Y005800D03* +X012955Y005520D03* +X013395Y005795D03* +X014495Y007050D03* +X010390Y005825D03* +X009745Y005660D03* +X012935Y004295D03* +X013355Y004205D03* +X013275Y003390D03* +X013820Y003225D03* +X012920Y002560D03* +X011795Y002185D03* +X012050Y001845D03* +X013015Y001585D03* +X011310Y000800D03* +X010245Y001080D03* +X010490Y001495D03* +X009660Y001535D03* +X008800Y000800D03* +X014755Y002510D03* +X015435Y002605D03* +X015945Y002725D03* +X018000Y002070D03* +X018805Y002280D03* +X019460Y002470D03* +X019610Y001470D03* +X016740Y001320D03* +X002450Y003475D03* +D25* +X002825Y003470D03* +X002820Y003140D03* +X002505Y003045D03* +X002400Y002715D03* +X002405Y002390D03* +X002395Y002035D03* +X002160Y001795D03* +X001845Y001790D03* +X001565Y001630D03* +X001200Y001625D03* +X000820Y001595D03* +X000510Y001720D03* +X000510Y002070D03* +X001470Y002015D03* +X002510Y001710D03* +X002830Y001780D03* +X003175Y001815D03* +X003565Y001650D03* +X004425Y001715D03* +X004440Y002080D03* +X004445Y002455D03* +X004445Y002855D03* +X005290Y002760D03* +X005895Y002460D03* +X006990Y002275D03* +X005955Y001745D03* +X005650Y001770D03* +X006875Y000895D03* +X006860Y000535D03* +X007915Y000505D03* +X008580Y000510D03* +X009285Y000515D03* +X010110Y000510D03* +X010530Y000515D03* +X010990Y000510D03* +X011605Y000535D03* +X012180Y000535D03* +X012565Y000515D03* +X010110Y002005D03* +X011340Y002515D03* +X009255Y001105D03* +X007775Y003055D03* +X004720Y003750D03* +X004080Y003735D03* +X002835Y003800D03* +X002835Y004135D03* +X002840Y004440D03* +X002855Y004760D03* +X002545Y004765D03* +X002210Y004765D03* +X002210Y004430D03* +X002200Y004110D03* +X002195Y003755D03* +X001905Y003610D03* +X001570Y003610D03* +X000505Y003670D03* +X000605Y002775D03* +X001375Y002780D03* +X000510Y001370D03* +X000560Y000570D03* +X001310Y000520D03* +X001660Y000520D03* +X002000Y000505D03* +X002340Y000510D03* +X002710Y000520D03* +X003060Y000520D03* +X003410Y000520D03* +X003755Y000530D03* +X004110Y000520D03* +X004495Y000520D03* +X004845Y000515D03* +X005215Y000515D03* +X005620Y000515D03* +X013100Y004855D03* +X018590Y003495D03* +X016370Y001035D03* +X016765Y000535D03* +X006360Y006200D03* +X006000Y006205D03* +X005655Y006305D03* +X005290Y006560D03* +X005300Y006985D03* +X005310Y007370D03* +X005310Y007770D03* +X005310Y008170D03* +X005310Y008570D03* +X005310Y008970D03* +X005310Y009370D03* +X005310Y009770D03* +X005085Y010125D03* +X005560Y010120D03* +X006010Y010120D03* +X006410Y010120D03* +X006810Y010120D03* +X007240Y010120D03* +X007645Y010105D03* +X007580Y009755D03* +X007570Y009370D03* +X007760Y009020D03* +X007760Y008520D03* +X007755Y008035D03* +X007625Y007120D03* +X006050Y005785D03* +X005740Y005790D03* +X004035Y006385D03* +X003740Y006325D03* +X003465Y006460D03* +X003145Y006450D03* +X002830Y006750D03* +X002425Y006750D03* +X002085Y006755D03* +X002260Y006355D03* +X002245Y005975D03* +X002205Y005660D03* +X002575Y005650D03* +X002935Y005665D03* +X003260Y005670D03* +X003575Y005660D03* +X003050Y005935D03* +X004010Y007520D03* +X003905Y009730D03* +X003900Y010130D03* +X004645Y010130D03* +X010160Y009070D03* +X011090Y008935D03* +X012655Y009115D03* +X013205Y009570D03* +D26* +X012810Y009670D02* +X013015Y008695D01* +X013130Y008130D01* +X013060Y007795D01* +X012810Y006680D01* +X014985Y006600D01* +X015460Y006870D01* +X015710Y006870D01* +X015975Y006810D02* +X015580Y006415D01* +X014895Y006060D01* +X014645Y006220D01* +X012655Y006255D01* +X012630Y006510D02* +X012480Y008135D01* +X010710Y009920D01* +X010250Y010170D02* +X014705Y010190D01* +X015275Y009745D02* +X016550Y009745D01* +X018210Y009745D01* +X018960Y009755D01* +X018960Y009345D01* +X019370Y009060D01* +X019370Y008270D01* +X019255Y007950D01* +X018950Y007075D01* +X018960Y003470D01* +X018000Y002070D01* +X018175Y001880D02* +X017570Y001380D01* +X016970Y001385D01* +X016740Y001320D01* +X016370Y001035D02* +X016510Y000870D01* +X017465Y000880D01* +X016760Y000820D01* +X016760Y000420D01* +X017020Y000400D01* +X018760Y000390D01* +X018910Y000570D01* +X019610Y001470D01* +X018175Y001880D02* +X019090Y003225D01* +X019190Y003445D01* +X019350Y003720D01* +X019180Y003880D01* +X017930Y005080D02* +X017530Y004700D01* +X017185Y004660D01* +X017110Y004345D02* +X016660Y004770D01* +X016080Y004605D01* +X015955Y004875D02* +X016595Y005025D01* +X016725Y005145D01* +X016825Y005320D01* +X016875Y005540D01* +X016745Y005825D02* +X016510Y005250D01* +X016205Y005675D02* +X015860Y005335D01* +X015405Y004785D01* +X014425Y003505D01* +X013800Y003470D01* +X013690Y003440D01* +X013620Y003365D01* +X013535Y003275D01* +X013360Y003165D01* +X012790Y003120D01* +X012435Y003100D01* +X011665Y002965D01* +X010730Y002965D01* +X010550Y003075D01* +X009995Y003595D01* +X009455Y004170D01* +X007145Y004170D01* +X007145Y004175D01* +X007118Y003754D01* +X007110Y004475D02* +X007100Y004485D01* +X006610Y004485D01* +X005915Y003800D01* +X005914Y003800D01* +X005909Y003795D01* +X005909Y003758D01* +X005541Y003390D01* +X005915Y003800D02* +X004935Y002810D01* +X004860Y002610D01* +X004910Y004335D02* +X004317Y004345D01* +X004910Y004335D02* +X005050Y004475D01* +X005050Y004975D02* +X004437Y004975D01* +X004297Y005115D01* +X004535Y005590D02* +X005045Y005480D01* +X005050Y005475D01* +X004535Y005590D02* +X004307Y005900D01* +X006050Y005785D02* +X006050Y005195D01* +X006170Y005075D01* +X006401Y005075D01* +X006445Y005031D01* +X007054Y005031D01* +X007110Y004975D01* +X006550Y005230D02* +X006525Y005240D01* +X006525Y005740D01* +X006760Y005975D01* +X007110Y005975D01* +X007450Y006355D02* +X007825Y006280D01* +X007815Y006695D02* +X007245Y006695D01* +X006980Y006960D01* +X007370Y007570D02* +X007810Y007570D01* +X008900Y008295D01* +X009237Y008348D01* +X009230Y008325D01* +X009265Y008330D01* +X009250Y008330D01* +X009237Y008348D02* +X009250Y008305D01* +X009395Y007335D01* +X010230Y006100D01* +X011515Y006165D01* +X012305Y006195D01* +X012310Y007850D01* +X012010Y008270D01* +X013325Y007720D02* +X013145Y006965D01* +X013145Y006955D02* +X013335Y006955D01* +X013455Y006835D01* +X014905Y006790D01* +X014495Y007050D02* +X013690Y007050D01* +X013690Y008005D01* +X014120Y007975D02* +X014155Y008115D01* +X014380Y007890D01* +X014640Y008726D02* +X015591Y007775D01* +X016095Y007775D01* +X016485Y007470D02* +X016215Y007175D01* +X015975Y006810D01* +X016380Y006985D02* +X015650Y006235D01* +X014905Y005875D01* +X013575Y006020D01* +X012470Y006020D01* +X012355Y005990D01* +X012115Y005965D01* +X011670Y005815D01* +X010390Y005825D01* +X010071Y005780D02* +X009035Y007295D01* +X009035Y008050D01* +X007370Y007570D02* +X006980Y007960D01* +X008350Y005660D02* +X008315Y005468D01* +X008304Y005476D01* +X008296Y005466D01* +X008295Y005460D01* +X008270Y005470D01* +X007880Y005460D01* +X007435Y005460D01* +X007110Y005475D01* +X006550Y005230D02* +X007740Y005230D01* +X007820Y005150D01* +X007820Y005025D01* +X008005Y004840D01* +X009165Y004830D01* +X010235Y003670D01* +X010905Y003490D01* +X011445Y003490D01* +X011545Y003455D01* +X011955Y003455D01* +X012155Y003485D01* +X012375Y003651D01* +X012365Y003659D01* +X012375Y003651D02* +X012780Y003655D01* +X013000Y003665D01* +X014055Y003765D01* +X014405Y003760D01* +X014525Y003880D01* +X014615Y004020D01* +X014630Y004440D01* +X014525Y004665D02* +X014415Y004595D01* +X014155Y004475D01* +X014525Y004665D02* +X014705Y004685D01* +X014962Y004555D01* +X015162Y004830D01* +X015020Y005025D02* +X015170Y005090D01* +X015415Y005110D01* +X015645Y005440D01* +X015370Y005350D02* +X015490Y005690D01* +X015925Y006105D01* +X016115Y005960D02* +X016170Y006105D01* +X016215Y006270D01* +X016630Y006795D01* +X016705Y006935D01* +X016710Y006955D01* +X016845Y007140D01* +X016890Y007370D01* +X017145Y007190D02* +X017200Y007000D01* +X017200Y006820D01* +X016745Y005825D01* +X016560Y005830D02* +X015780Y004995D01* +X014400Y003215D01* +X013845Y003215D01* +X013820Y003225D01* +X013345Y002955D02* +X012860Y002965D01* +X011740Y002795D01* +X010720Y002770D01* +X009730Y003390D01* +X009715Y003410D01* +X009580Y003200D02* +X009375Y003460D01* +X009280Y003160D02* +X009400Y003115D01* +X009490Y003015D01* +X009585Y002915D01* +X009680Y002835D01* +X009845Y002760D01* +X010105Y002680D01* +X010305Y002575D01* +X010580Y002400D01* +X011080Y002160D01* +X011235Y002140D01* +X011450Y002210D01* +X011700Y002515D01* +X011990Y002675D01* +X012820Y002795D01* +X013350Y002780D01* +X014530Y002885D01* +X014645Y002935D01* +X015195Y003545D01* +X015775Y003180D02* +X015555Y001915D01* +X015060Y002085D02* +X015225Y002360D01* +X015130Y002700D01* +X016110Y003870D01* +X016160Y003860D01* +X015925Y004065D02* +X014950Y002770D01* +X015060Y002380D01* +X014820Y002155D01* +X014715Y002055D01* +X014560Y001920D01* +X014510Y001920D01* +X013810Y001420D01* +X013255Y001425D01* +X013030Y001225D01* +X012050Y001845D01* +X011350Y001770D02* +X010005Y002530D01* +X009520Y002695D01* +X009270Y002900D01* +X009035Y002820D02* +X009045Y003025D01* +X009155Y003130D01* +X009280Y003160D01* +X009580Y003200D02* +X009820Y003040D01* +X009705Y003155D01* +X009645Y003155D01* +X009770Y003030D01* +X009830Y003030D01* +X009820Y003040D02* +X010860Y002495D01* +X011310Y002500D01* +X010290Y002190D02* +X009875Y002410D01* +X009265Y002570D01* +X009025Y002415D02* +X009035Y002820D01* +X009025Y002415D02* +X008890Y002190D01* +X008640Y001940D01* +X008380Y001940D01* +X009260Y002225D02* +X009785Y002185D01* +X009780Y002190D01* +X009795Y002190D02* +X009660Y002055D01* +X009660Y001535D01* +X010110Y002005D02* +X010280Y001860D01* +X010450Y001860D01* +X010830Y001630D01* +X010490Y001495D02* +X010270Y001115D01* +X010245Y001080D01* +X011310Y000800D02* +X008800Y000800D01* +X008020Y000470D02* +X007915Y000505D01* +X008020Y000470D02* +X007700Y000470D01* +X012375Y000480D01* +X012635Y000815D02* +X010290Y002190D01* +X011350Y001770D02* +X012790Y000920D01* +X013560Y000920D01* +X013710Y000920D01* +X014310Y001420D01* +X014760Y001420D01* +X015060Y001720D01* +X015060Y002085D01* +X014755Y002510D02* +X014025Y002510D01* +X013985Y002550D01* +X014475Y003040D02* +X013345Y002955D01* +X014475Y003040D02* +X015550Y004385D01* +X015955Y004875D01* +X016375Y004460D02* +X016960Y004105D01* +X017170Y004065D01* +X018060Y004970D01* +X018310Y005470D01* +X018280Y005795D01* +X018055Y006550D01* +X017855Y007080D01* +X017710Y007235D01* +X017665Y007330D01* +X017890Y007275D02* +X017890Y007585D01* +X017890Y007890D01* +X017990Y007990D01* +X017875Y007990D01* +X017380Y007495D01* +X017380Y006625D01* +X017635Y006965D02* +X017900Y006525D01* +X018120Y005725D01* +X018110Y005540D01* +X017930Y005080D01* +X018360Y005020D02* +X017095Y003605D01* +X016260Y003045D01* +X016260Y001870D01* +X015810Y001420D01* +X015060Y001420D01* +X014560Y000920D01* +X014060Y000425D01* +X013200Y000425D01* +X012635Y000815D01* +X015945Y002725D02* +X015975Y003105D01* +X016710Y003570D01* +X016815Y003890D01* +X016465Y003755D02* +X015775Y003180D01* +X014335Y004010D02* +X012840Y003875D01* +X012700Y004150D01* +X012670Y004285D01* +X012605Y004370D01* +X012190Y004375D01* +X012935Y004295D02* +X014120Y004730D01* +X014420Y004795D01* +X014720Y004835D01* +X014820Y004900D01* +X015020Y005025D01* +X014960Y005180D02* +X015180Y005250D01* +X015370Y005350D01* +X014960Y005180D02* +X014490Y005025D01* +X014690Y005600D02* +X013420Y005540D01* +X013395Y005795D01* +X013230Y005775D02* +X012610Y005800D01* +X012630Y006510D02* +X014810Y006420D01* +X014965Y006365D01* +X015940Y005750D02* +X016115Y005960D01* +X016360Y005970D02* +X016205Y005675D01* +X016560Y005830D02* +X016790Y006320D01* +X016960Y006920D01* +X016610Y007215D02* +X016380Y006985D01* +X016485Y007470D02* +X017210Y008035D01* +X017735Y008390D01* +X017935Y008585D02* +X018070Y008305D01* +X018080Y008270D02* +X017820Y008010D01* +X017820Y007915D01* +X018080Y008270D02* +X018080Y007125D01* +X018125Y007080D01* +X018125Y006860D01* +X018595Y006390D01* +X018575Y006490D01* +X018525Y006540D01* +X018535Y006510D01* +X018225Y006820D01* +X018225Y006940D01* +X017890Y007275D01* +X018530Y007975D02* +X018530Y008425D01* +X018530Y008425D01* +X018994Y008425D01* +X019015Y008404D01* +X019015Y008916D02* +X018414Y008916D01* +X018015Y008920D01* +X017935Y008585D02* +X017635Y008760D01* +X017070Y008240D02* +X015780Y008420D01* +X015655Y008920D01* +X015980Y009365D02* +X013365Y009035D01* +X012810Y009670D02* +X012020Y009675D01* +X014459Y009004D02* +X014525Y008950D01* +X014541Y009004D02* +X014640Y008905D01* +X014640Y008726D01* +X014541Y009004D02* +X014459Y009004D01* +X018540Y006540D02* +X018545Y006535D01* +X018545Y006525D01* +X018540Y006520D02* +X018540Y006540D01* +X018535Y006520D02* +X018540Y006520D01* +X018595Y006390D02* +X018715Y006270D01* +X018715Y006330D01* +X018625Y005990D01* +X016375Y004460D02* +X016095Y004290D01* +X015715Y004235D01* +X015925Y004065D02* +X016380Y004190D01* +X011995Y003915D02* +X011790Y003916D01* +X011775Y003915D01* +X011790Y003916D02* +X011595Y003915D01* +X011440Y004010D01* +X010955Y004010D01* +X010560Y003830D01* +X010335Y003840D01* +X009205Y005060D01* +X008350Y005660D01* +X007770Y004710D02* +X006390Y004710D01* +X010730Y003250D02* +X011080Y003250D01* +X011160Y003170D01* +X011201Y003170D01* +X011245Y003234D01* +X011312Y003659D02* +X011775Y003659D01* +X011312Y003659D02* +X011245Y003746D01* +D27* +X012735Y005270D02* +X009625Y005275D01* +X008870Y005650D01* +X012735Y005270D02* +X014620Y005270D01* +X014935Y005380D01* +X014930Y005370D01* +X015170Y005495D01* +X016465Y003755D02* +X016465Y003735D01* +X017850Y009290D02* +X018130Y009510D01* +X018715Y009505D01* +X018695Y009490D01* +X018715Y009505D02* +X018160Y009500D01* +X017865Y009300D01* +X017850Y009290D01* +X016565Y009365D02* +X016550Y009745D01* +X019190Y010020D02* +X019190Y010020D01* +X019350Y009365D02* +X019330Y009345D01* +X001485Y001270D02* +X001485Y000925D01* +X001315Y000510D01* +D28* +X006865Y001795D02* +X007945Y001830D01* +X008185Y001555D01* +X008675Y001520D01* +X009245Y002240D01* +X009795Y002190D01* +X009790Y002185D01* +X009785Y002185D01* +X010730Y003250D02* +X011730Y003245D01* +X012530Y003310D01* +X012785Y003315D01* +X013275Y003390D01* +X010315Y004855D02* +X010320Y005000D01* +X010315Y004855D02* +X010135Y004855D01* +X010135Y004734D01* +X010138Y004844D01* +X010048Y004860D01* +X010120Y004865D01* +X010225Y005555D02* +X010400Y005520D01* +X012955Y005520D01* +X010225Y005555D02* +X010071Y005780D01* +X009745Y005660D01* +X012210Y009120D02* +X012310Y009070D01* +X012210Y009120D02* +X011500Y009815D01* +X011995Y009945D01* +X014840Y009920D01* +X015150Y010035D01* +X019190Y010035D01* +X019190Y010020D01* +X019195Y009470D01* +X019330Y009345D01* +X019350Y009365D02* +X019685Y008995D01* +X019685Y008485D01* +X019465Y007890D01* +X019465Y006105D01* +X019460Y005785D01* +X019460Y002470D02* +X018360Y001370D01* +X018465Y000880D01* +X017480Y000835D02* +X018725Y002160D01* +X011510Y009820D02* +X011500Y009815D01* +X011510Y009820D02* +X011510Y009950D01* +D29* +X019755Y007810D02* +X019755Y005540D01* +X019355Y005140D01* +X019430Y005075D01* +D30* +X012190Y004375D02* +X012075Y004275D01* +X012075Y004025D01* +X011995Y003915D01* +M02* diff --git a/gerber/PecanPico4.GBO b/gerber/PecanPico4.GBO new file mode 100644 index 0000000..ecce9b6 --- /dev/null +++ b/gerber/PecanPico4.GBO @@ -0,0 +1,1017 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11C,0.0020*% +%ADD12C,0.0030*% +%ADD13C,0.0060*% +%ADD14C,0.0050*% +%ADD15R,0.0280X0.0160*% +%ADD16C,0.0080*% +%ADD17C,0.0160*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X004585Y009706D02* +X004622Y009669D01* +X004768Y009669D01* +X004732Y009633D02* +X004732Y009706D01* +X004695Y009559D02* +X004658Y009559D01* +X004658Y009412D01* +X004622Y009412D02* +X004695Y009412D01* +X004732Y009448D01* +X004732Y009522D01* +X004695Y009559D01* +X004585Y009522D02* +X004585Y009448D01* +X004622Y009412D01* +X004585Y009338D02* +X004695Y009338D01* +X004732Y009301D01* +X004732Y009191D01* +X004585Y009191D01* +X004585Y009117D02* +X004585Y009080D01* +X004622Y009080D01* +X004622Y009117D01* +X004585Y009117D01* +X004585Y009006D02* +X004695Y009006D01* +X004732Y008969D01* +X004732Y008859D01* +X004585Y008859D01* +X004585Y008785D02* +X004695Y008785D01* +X004732Y008748D01* +X004732Y008675D01* +X004695Y008638D01* +X004695Y008564D02* +X004585Y008564D01* +X004585Y008454D01* +X004622Y008417D01* +X004658Y008454D01* +X004658Y008564D01* +X004695Y008564D02* +X004732Y008527D01* +X004732Y008454D01* +X004732Y008343D02* +X004732Y008307D01* +X004658Y008233D01* +X004585Y008233D02* +X004732Y008233D01* +X004732Y008159D02* +X004658Y008049D01* +X004585Y008159D01* +X004585Y008049D02* +X004805Y008049D01* +X004732Y007975D02* +X004732Y007902D01* +X004768Y007938D02* +X004622Y007938D01* +X004585Y007975D01* +X004805Y007827D02* +X004585Y007681D01* +X004585Y007460D02* +X004805Y007606D01* +X004732Y007386D02* +X004695Y007386D01* +X004695Y007349D01* +X004732Y007349D01* +X004732Y007386D01* +X004622Y007386D02* +X004622Y007349D01* +X004585Y007349D01* +X004585Y007386D01* +X004622Y007386D01* +X004622Y007275D02* +X004585Y007238D01* +X004585Y007128D01* +X004512Y007128D02* +X004732Y007128D01* +X004732Y007238D01* +X004695Y007275D01* +X004622Y007275D01* +X004585Y007054D02* +X004622Y007018D01* +X004768Y007018D01* +X004732Y007054D02* +X004732Y006981D01* +X004732Y006907D02* +X004732Y006834D01* +X004768Y006870D02* +X004622Y006870D01* +X004585Y006907D01* +X004585Y006759D02* +X004695Y006759D01* +X004732Y006723D01* +X004732Y006649D01* +X004695Y006613D01* +X004805Y006613D02* +X004585Y006613D01* +X005565Y007364D02* +X005602Y007328D01* +X005565Y007364D02* +X005565Y007438D01* +X005602Y007475D01* +X005638Y007475D01* +X005675Y007438D01* +X005675Y007364D01* +X005712Y007328D01* +X005748Y007328D01* +X005785Y007364D01* +X005785Y007438D01* +X005748Y007475D01* +X005785Y007549D02* +X005565Y007549D01* +X005565Y007696D01* +X005565Y007770D02* +X005785Y007770D01* +X005785Y007880D01* +X005748Y007916D01* +X005675Y007916D01* +X005638Y007880D01* +X005638Y007770D01* +X005638Y007843D02* +X005565Y007916D01* +X005565Y007991D02* +X005565Y008064D01* +X005565Y008027D02* +X005785Y008027D01* +X005785Y007991D02* +X005785Y008064D01* +X005712Y008138D02* +X005565Y008138D01* +X005675Y008138D02* +X005675Y008285D01* +X005712Y008285D02* +X005565Y008285D01* +X005565Y008359D02* +X005565Y008506D01* +X005565Y008359D02* +X005785Y008359D01* +X005712Y008285D02* +X005785Y008211D01* +X005712Y008138D01* +X006090Y008106D02* +X006310Y007959D01* +X006273Y007885D02* +X006200Y007885D01* +X006163Y007848D01* +X006163Y007738D01* +X006090Y007738D02* +X006310Y007738D01* +X006310Y007848D01* +X006273Y007885D01* +X006163Y007811D02* +X006090Y007885D01* +X006090Y007959D02* +X006310Y008106D01* +X005785Y007696D02* +X005785Y007549D01* +X005675Y007549D02* +X005675Y007622D01* +X006090Y007086D02* +X006310Y006939D01* +X006310Y006865D02* +X006310Y006718D01* +X006310Y006791D02* +X006090Y006791D01* +X006090Y006939D02* +X006310Y007086D01* +X004805Y008638D02* +X004585Y008638D01* +X006090Y008714D02* +X006090Y008787D01* +X006127Y008824D01* +X006200Y008824D01* +X006200Y008750D01* +X006127Y008677D02* +X006090Y008714D01* +X006127Y008677D02* +X006273Y008677D01* +X006310Y008714D01* +X006310Y008787D01* +X006273Y008824D01* +X006310Y008898D02* +X006090Y008898D01* +X006090Y009045D02* +X006310Y009045D01* +X006310Y009119D02* +X006090Y009119D01* +X006090Y009229D01* +X006127Y009266D01* +X006273Y009266D01* +X006310Y009229D01* +X006310Y009119D01* +X006310Y008898D02* +X006090Y009045D01* +X009554Y008355D02* +X009554Y008319D01* +X009701Y008172D01* +X009701Y008135D01* +X009775Y008172D02* +X009775Y008319D01* +X009922Y008172D01* +X009885Y008135D01* +X009812Y008135D01* +X009775Y008172D01* +X009775Y008319D02* +X009812Y008355D01* +X009885Y008355D01* +X009922Y008319D01* +X009922Y008172D01* +X009996Y008245D02* +X010143Y008245D01* +X010217Y008319D02* +X010364Y008172D01* +X010364Y008135D01* +X010438Y008172D02* +X010475Y008135D01* +X010548Y008135D01* +X010585Y008172D01* +X010438Y008319D01* +X010438Y008172D01* +X010438Y008319D02* +X010475Y008355D01* +X010548Y008355D01* +X010585Y008319D01* +X010585Y008172D01* +X010659Y008245D02* +X010806Y008245D01* +X010880Y008208D02* +X010917Y008245D01* +X010954Y008245D01* +X010917Y008245D02* +X010880Y008282D01* +X010880Y008319D01* +X010917Y008355D01* +X010990Y008355D01* +X011027Y008319D01* +X011027Y008172D02* +X010990Y008135D01* +X010917Y008135D01* +X010880Y008172D01* +X010880Y008208D01* +X011101Y008135D02* +X011248Y008135D01* +X011175Y008135D02* +X011175Y008355D01* +X011248Y008282D01* +X011322Y008319D02* +X011469Y008172D01* +X011432Y008135D01* +X011359Y008135D01* +X011322Y008172D01* +X011322Y008319D01* +X011359Y008355D01* +X011432Y008355D01* +X011469Y008319D01* +X011469Y008172D01* +X011543Y008135D02* +X011690Y008135D01* +X011543Y008282D01* +X011543Y008319D01* +X011580Y008355D01* +X011653Y008355D01* +X011690Y008319D01* +X010364Y008355D02* +X010217Y008355D01* +X010217Y008319D01* +X009701Y008355D02* +X009554Y008355D01* +X016338Y000880D02* +X016448Y000880D01* +X016448Y000660D01* +X016338Y000660D01* +X016301Y000697D01* +X016301Y000843D01* +X016338Y000880D01* +X016522Y000880D02* +X016522Y000660D01* +X016669Y000880D01* +X016669Y000660D01* +X016743Y000697D02* +X016743Y000770D01* +X016817Y000770D01* +X016890Y000843D02* +X016890Y000697D01* +X016853Y000660D01* +X016780Y000660D01* +X016743Y000697D01* +X016743Y000843D02* +X016780Y000880D01* +X016853Y000880D01* +X016890Y000843D01* +D12* +X019178Y000930D02* +X019425Y000930D01* +X019302Y000807D02* +X019302Y001054D01* +X011565Y003240D02* +X011372Y003240D01* +X011468Y003240D02* +X011468Y003530D01* +X011565Y003434D01* +X005165Y003900D02* +X004972Y003900D01* +X005068Y003900D02* +X005068Y004190D01* +X005165Y004094D01* +X008949Y008830D02* +X008901Y008878D01* +X008901Y008975D01* +X008949Y009024D01* +X009046Y009024D01* +X009094Y008975D01* +X009094Y008878D01* +X009046Y008830D01* +X008949Y008830D01* +X009196Y008830D02* +X009341Y008830D01* +X009389Y008878D01* +X009389Y008975D01* +X009341Y009024D01* +X009196Y009024D01* +X009537Y009024D02* +X009537Y008830D01* +X009585Y008830D02* +X009489Y008830D01* +X009687Y008975D02* +X009735Y008927D01* +X009880Y008927D01* +X009880Y008830D02* +X009880Y009120D01* +X009735Y009120D01* +X009687Y009072D01* +X009687Y008975D01* +X009585Y009024D02* +X009537Y009024D01* +X009537Y009120D02* +X009537Y009169D01* +X009552Y009465D02* +X009455Y009465D01* +X009552Y009465D02* +X009600Y009513D01* +X009600Y009610D01* +X009552Y009659D01* +X009455Y009659D01* +X009407Y009610D01* +X009407Y009562D01* +X009600Y009562D01* +X009702Y009610D02* +X009750Y009562D01* +X009895Y009562D01* +X009895Y009465D02* +X009895Y009755D01* +X009750Y009755D01* +X009702Y009707D01* +X009702Y009610D01* +X009306Y009610D02* +X009306Y009513D01* +X009257Y009465D01* +X009112Y009465D01* +X009011Y009513D02* +X008963Y009562D01* +X008818Y009562D01* +X008818Y009610D02* +X008818Y009465D01* +X008963Y009465D01* +X009011Y009513D01* +X008866Y009659D02* +X008818Y009610D01* +X008866Y009659D02* +X008963Y009659D01* +X009112Y009659D02* +X009257Y009659D01* +X009306Y009610D01* +X008716Y009659D02* +X008716Y009465D01* +X008523Y009465D02* +X008523Y009610D01* +X008571Y009659D01* +X008716Y009659D01* +X007410Y009640D02* +X007410Y009930D01* +X007362Y009785D02* +X007217Y009640D01* +X007019Y009640D02* +X007019Y009930D01* +X007115Y009930D02* +X006922Y009930D01* +X006821Y009930D02* +X006821Y009785D01* +X006724Y009834D01* +X006676Y009834D01* +X006627Y009785D01* +X006627Y009688D01* +X006676Y009640D01* +X006772Y009640D01* +X006821Y009688D01* +X006821Y009930D02* +X006627Y009930D01* +X006526Y009930D02* +X006333Y009930D01* +X006429Y009930D02* +X006429Y009640D01* +X006231Y009640D02* +X006231Y009930D01* +X006183Y009785D02* +X006038Y009640D01* +X006231Y009737D02* +X006038Y009930D01* +X007217Y009930D02* +X007410Y009737D01* +X003355Y009855D02* +X003355Y010225D01* +X003355Y009979D02* +X003108Y010225D01* +X002987Y010225D02* +X002740Y010225D01* +X002618Y010225D02* +X002618Y010040D01* +X002495Y010102D01* +X002433Y010102D01* +X002372Y010040D01* +X002372Y009917D01* +X002433Y009855D01* +X002557Y009855D01* +X002618Y009917D01* +X002863Y009855D02* +X002863Y010225D01* +X002618Y010225D02* +X002372Y010225D01* +X002250Y010225D02* +X002003Y010225D01* +X001882Y010225D02* +X001882Y009855D01* +X001882Y009979D02* +X001635Y010225D01* +X001820Y010040D02* +X001635Y009855D01* +X002127Y009855D02* +X002127Y010225D01* +X003108Y009855D02* +X003293Y010040D01* +D13* +X008193Y008880D02* +X008620Y008880D01* +X008300Y009201D01* +X008300Y008560D01* +X006790Y006155D02* +X005370Y006155D01* +X005370Y004295D02* +X006790Y004295D01* +D14* +X011676Y004269D02* +X011676Y004387D01* +X011794Y004387D01* +X012346Y004387D02* +X012464Y004387D01* +X012464Y004269D01* +X012464Y003561D02* +X012464Y003443D01* +X012346Y003443D01* +X012149Y003443D02* +X012070Y003521D01* +X011991Y003443D01* +X011794Y003443D02* +X011676Y003443D01* +X011676Y003561D01* +X013963Y005613D02* +X013963Y005928D01* +X013963Y005613D02* +X014278Y005613D01* +X018372Y005613D02* +X018687Y005613D01* +X018687Y005928D01* +X018687Y010022D02* +X018687Y010337D01* +X018372Y010337D01* +X014278Y010337D02* +X013963Y010337D01* +X013963Y010022D01* +D15* +X019015Y008660D03* +X011245Y003490D03* +D16* +X005633Y004515D02* +X005635Y004530D01* +X005641Y004543D01* +X005650Y004555D01* +X005661Y004564D01* +X005675Y004570D01* +X005690Y004572D01* +X005705Y004570D01* +X005718Y004564D01* +X005730Y004555D01* +X005739Y004544D01* +X005745Y004530D01* +X005747Y004515D01* +X005745Y004500D01* +X005739Y004487D01* +X005730Y004475D01* +X005719Y004466D01* +X005705Y004460D01* +X005690Y004458D01* +X005675Y004460D01* +X005662Y004466D01* +X005650Y004475D01* +X005641Y004486D01* +X005635Y004500D01* +X005633Y004515D01* +X004455Y004739D02* +X003825Y004739D01* +X003805Y004721D02* +X004435Y004721D01* +X004455Y004738D02* +X004471Y004733D01* +X004487Y004725D01* +X004501Y004715D01* +X004513Y004703D01* +X004523Y004688D01* +X004530Y004672D01* +X004534Y004655D01* +X004535Y004638D01* +X004533Y004620D01* +X004435Y004722D02* +X004451Y004727D01* +X004467Y004735D01* +X004481Y004745D01* +X004493Y004757D01* +X004503Y004772D01* +X004510Y004788D01* +X004514Y004805D01* +X004515Y004822D01* +X004513Y004840D01* +X003805Y004722D02* +X003789Y004727D01* +X003773Y004735D01* +X003759Y004745D01* +X003747Y004757D01* +X003737Y004772D01* +X003730Y004788D01* +X003726Y004805D01* +X003725Y004822D01* +X003727Y004840D01* +X003825Y004738D02* +X003809Y004733D01* +X003793Y004725D01* +X003779Y004715D01* +X003767Y004703D01* +X003757Y004688D01* +X003750Y004672D01* +X003746Y004655D01* +X003745Y004638D01* +X003747Y004620D01* +X003747Y004070D02* +X003745Y004052D01* +X003746Y004035D01* +X003750Y004018D01* +X003757Y004002D01* +X003767Y003987D01* +X003779Y003975D01* +X003793Y003965D01* +X003809Y003957D01* +X003825Y003952D01* +X003825Y003951D02* +X004455Y003951D01* +X004455Y003952D02* +X004471Y003957D01* +X004487Y003965D01* +X004501Y003975D01* +X004513Y003987D01* +X004523Y004002D01* +X004530Y004018D01* +X004534Y004035D01* +X004535Y004052D01* +X004533Y004070D01* +X004513Y005390D02* +X004515Y005408D01* +X004514Y005425D01* +X004510Y005442D01* +X004503Y005458D01* +X004493Y005473D01* +X004481Y005485D01* +X004467Y005495D01* +X004451Y005503D01* +X004435Y005508D01* +X004435Y005509D02* +X003805Y005509D01* +X003815Y005506D02* +X004445Y005506D01* +X004445Y005507D02* +X004461Y005512D01* +X004477Y005520D01* +X004491Y005530D01* +X004503Y005542D01* +X004513Y005557D01* +X004520Y005573D01* +X004524Y005590D01* +X004525Y005607D01* +X004523Y005625D01* +X003815Y005507D02* +X003799Y005512D01* +X003783Y005520D01* +X003769Y005530D01* +X003757Y005542D01* +X003747Y005557D01* +X003740Y005573D01* +X003736Y005590D01* +X003735Y005607D01* +X003737Y005625D01* +X003805Y005508D02* +X003789Y005503D01* +X003773Y005495D01* +X003759Y005485D01* +X003747Y005473D01* +X003737Y005458D01* +X003730Y005442D01* +X003726Y005425D01* +X003725Y005408D01* +X003727Y005390D01* +X003737Y006175D02* +X003735Y006193D01* +X003736Y006210D01* +X003740Y006227D01* +X003747Y006243D01* +X003757Y006258D01* +X003769Y006270D01* +X003783Y006280D01* +X003799Y006288D01* +X003815Y006293D01* +X003815Y006294D02* +X004445Y006294D01* +X004445Y006293D02* +X004461Y006288D01* +X004477Y006280D01* +X004491Y006270D01* +X004503Y006258D01* +X004513Y006243D01* +X004520Y006227D01* +X004524Y006210D01* +X004525Y006193D01* +X004523Y006175D01* +X006480Y006710D02* +X006480Y007210D01* +X006730Y007460D01* +X006480Y007710D01* +X006480Y008210D01* +X006730Y008460D01* +X006480Y008710D01* +X006480Y009210D01* +X006730Y009460D01* +X007230Y009460D01* +X007480Y009210D01* +X007480Y008710D01* +X007230Y008460D01* +X007480Y008210D01* +X007480Y007710D01* +X007230Y007460D01* +X007480Y007210D01* +X007480Y006710D01* +X007230Y006460D01* +X006730Y006460D01* +X006480Y006710D01* +D17* +X006165Y003807D02* +X006165Y003783D01* +X005285Y003402D02* +X005285Y003378D01* +M02* diff --git a/gerber/PecanPico4.GBP b/gerber/PecanPico4.GBP new file mode 100644 index 0000000..423ee1d --- /dev/null +++ b/gerber/PecanPico4.GBP @@ -0,0 +1,401 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11R,0.1600X0.0600*% +%ADD12R,0.0394X0.0157*% +%ADD13C,0.0118*% +%ADD14R,0.0354X0.0276*% +%ADD15R,0.0870X0.0240*% +%ADD16R,0.0472X0.1575*% +%ADD17R,0.0276X0.0354*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X001170Y006210D03* +X001170Y004210D03* +D12* +X011775Y003659D03* +D13* +X011913Y003896D02* +X011637Y003896D01* +X011637Y003934D01* +X011913Y003934D01* +X011913Y003896D01* +X011913Y004152D02* +X011637Y004152D01* +X011637Y004190D01* +X011913Y004190D01* +X011913Y004152D01* +X012227Y004190D02* +X012503Y004190D01* +X012503Y004152D01* +X012227Y004152D01* +X012227Y004190D01* +X012227Y003934D02* +X012503Y003934D01* +X012503Y003896D01* +X012227Y003896D01* +X012227Y003934D01* +X012227Y003678D02* +X012503Y003678D01* +X012503Y003640D01* +X012227Y003640D01* +X012227Y003678D01* +D14* +X011245Y003746D03* +X011245Y003234D03* +X019015Y008404D03* +X019015Y008916D03* +D15* +X007110Y005975D03* +X007110Y005475D03* +X007110Y004975D03* +X007110Y004475D03* +X005050Y004475D03* +X005050Y004975D03* +X005050Y005475D03* +X005050Y005975D03* +D16* +X014120Y007975D03* +X018530Y007975D03* +D17* +X006421Y003795D03* +X005909Y003795D03* +X005541Y003390D03* +X005029Y003390D03* +M02* diff --git a/gerber/PecanPico4.GBS b/gerber/PecanPico4.GBS new file mode 100644 index 0000000..31edb08 --- /dev/null +++ b/gerber/PecanPico4.GBS @@ -0,0 +1,438 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11C,0.0591*% +%ADD12OC8,0.0780*% +%ADD13C,0.0780*% +%ADD14R,0.1640X0.0640*% +%ADD15C,0.0276*% +%ADD16R,0.0434X0.0197*% +%ADD17C,0.0148*% +%ADD18R,0.0394X0.0316*% +%ADD19R,0.0910X0.0280*% +%ADD20R,0.0290X0.0540*% +%ADD21R,0.0512X0.1615*% +%ADD22R,0.0316X0.0394*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X001010Y009920D03* +X001010Y008420D03* +X001010Y007570D03* +X001010Y003200D03* +X001010Y002370D03* +X001010Y001020D03* +D12* +X013560Y000920D03* +X014560Y000920D03* +X015560Y000920D03* +X015560Y001920D03* +X014560Y001920D03* +X013560Y001920D03* +D13* +X017465Y000880D03* +X018465Y000880D03* +X006980Y006960D03* +X006980Y007960D03* +X006980Y008960D03* +X004060Y001110D03* +X003060Y001110D03* +X002060Y001110D03* +D14* +X001170Y004210D03* +X001170Y006210D03* +D15* +X014490Y005025D03* +D16* +X011775Y003659D03* +D17* +X011918Y003891D02* +X011632Y003891D01* +X011632Y003939D01* +X011918Y003939D01* +X011918Y003891D01* +X011918Y004147D02* +X011632Y004147D01* +X011632Y004195D01* +X011918Y004195D01* +X011918Y004147D01* +X012222Y004195D02* +X012508Y004195D01* +X012508Y004147D01* +X012222Y004147D01* +X012222Y004195D01* +X012222Y003939D02* +X012508Y003939D01* +X012508Y003891D01* +X012222Y003891D01* +X012222Y003939D01* +X012222Y003683D02* +X012508Y003683D01* +X012508Y003635D01* +X012222Y003635D01* +X012222Y003683D01* +D18* +X011245Y003746D03* +X011245Y003234D03* +X019015Y008404D03* +X019015Y008916D03* +D19* +X007110Y005975D03* +X007110Y005475D03* +X007110Y004975D03* +X007110Y004475D03* +X005050Y004475D03* +X005050Y004975D03* +X005050Y005475D03* +X005050Y005975D03* +D20* +X004307Y005900D03* +X003953Y005900D03* +X003943Y005115D03* +X004297Y005115D03* +X004317Y004345D03* +X003963Y004345D03* +D21* +X014120Y007975D03* +X018530Y007975D03* +D22* +X006421Y003795D03* +X005909Y003795D03* +X005541Y003390D03* +X005029Y003390D03* +M02* diff --git a/gerber/PecanPico4.GML b/gerber/PecanPico4.GML new file mode 100644 index 0000000..56d8eae --- /dev/null +++ b/gerber/PecanPico4.GML @@ -0,0 +1,341 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +M02* diff --git a/gerber/PecanPico4.GTL b/gerber/PecanPico4.GTL new file mode 100644 index 0000000..eb1a6da --- /dev/null +++ b/gerber/PecanPico4.GTL @@ -0,0 +1,4271 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11R,0.0354X0.0276*% +%ADD12R,0.0276X0.0354*% +%ADD13R,0.0500X0.0220*% +%ADD14R,0.0220X0.0500*% +%ADD15R,0.0709X0.0315*% +%ADD16R,0.0709X0.0276*% +%ADD17R,0.0394X0.0787*% +%ADD18OC8,0.0740*% +%ADD19R,0.0394X0.0433*% +%ADD20R,0.0315X0.0315*% +%ADD21R,0.0413X0.0866*% +%ADD22R,0.0394X0.0413*% +%ADD23C,0.0740*% +%ADD24R,0.0110X0.1496*% +%ADD25R,0.0650X0.0945*% +%ADD26C,0.0055*% +%ADD27R,0.1500X0.0760*% +%ADD28R,0.0709X0.0630*% +%ADD29R,0.0630X0.0709*% +%ADD30R,0.1496X0.0110*% +%ADD31R,0.0945X0.0650*% +%ADD32R,0.0760X0.1500*% +%ADD33R,0.0700X0.0700*% +%ADD34R,0.0450X0.0450*% +%ADD35R,0.0700X0.0280*% +%ADD36R,0.0560X0.0350*% +%ADD37R,0.0787X0.0512*% +%ADD38R,0.0276X0.0098*% +%ADD39R,0.0098X0.0276*% +%ADD40R,0.1024X0.1024*% +%ADD41C,0.0397*% +%ADD42R,0.0433X0.0394*% +%ADD43R,0.1600X0.0600*% +%ADD44R,0.0197X0.0315*% +%ADD45C,0.0236*% +%ADD46R,0.0197X0.0236*% +%ADD47R,0.0236X0.0197*% +%ADD48C,0.0240*% +%ADD49C,0.0100*% +%ADD50C,0.0240*% +%ADD51C,0.0080*% +%ADD52C,0.0160*% +%ADD53C,0.0270*% +%ADD54C,0.0120*% +%ADD55C,0.0560*% +%ADD56C,0.0320*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X003245Y009056D03* +X003245Y008544D03* +X003405Y007431D03* +X003405Y006919D03* +X006445Y005031D03* +X007075Y004841D03* +X007575Y004836D03* +X007575Y004324D03* +X007075Y004329D03* +X006445Y004519D03* +X005735Y003371D03* +X005735Y002859D03* +X003925Y004104D03* +X003925Y004616D03* +X002845Y002691D03* +X002845Y002179D03* +X008330Y001381D03* +X008800Y001516D03* +X009255Y001519D03* +X009675Y001271D03* +X009675Y000759D03* +X008800Y001004D03* +X008330Y000869D03* +X009255Y002031D03* +X010775Y001546D03* +X011310Y001526D03* +X011910Y001526D03* +X012650Y001341D03* +X011910Y001014D03* +X011310Y001014D03* +X010775Y001034D03* +X012650Y000829D03* +X015755Y003159D03* +X015755Y003671D03* +X013030Y005779D03* +X013030Y006291D03* +X012760Y006969D03* +X012760Y007481D03* +X009160Y007676D03* +X009160Y007164D03* +X009725Y005361D03* +X009725Y004849D03* +X009005Y004171D03* +X009005Y003659D03* +X009060Y009214D03* +X009510Y009214D03* +X009510Y009726D03* +X009060Y009726D03* +D12* +X013649Y009350D03* +X014161Y009350D03* +X013954Y009830D03* +X014466Y009830D03* +X019009Y008985D03* +X019521Y008985D03* +X019516Y008470D03* +X019004Y008470D03* +X019004Y007800D03* +X019516Y007800D03* +X019511Y007285D03* +X018999Y007285D03* +X018994Y006780D03* +X019506Y006780D03* +X015646Y005800D03* +X015134Y005800D03* +X014211Y005525D03* +X013699Y005525D03* +X013654Y006220D03* +X014166Y006220D03* +X011566Y006070D03* +X011054Y006070D03* +X009961Y004315D03* +X009449Y004315D03* +X009449Y003825D03* +X009961Y003825D03* +X007761Y001795D03* +X007249Y001795D03* +X007279Y001330D03* +X007791Y001330D03* +X007791Y000890D03* +X007279Y000890D03* +X006466Y000890D03* +X005954Y000890D03* +X005954Y001330D03* +X006466Y001330D03* +X003981Y002160D03* +X003469Y002160D03* +X003469Y002700D03* +X003981Y002700D03* +X005104Y003925D03* +X005616Y003925D03* +X005871Y005185D03* +X005359Y005185D03* +X004201Y005215D03* +X003689Y005215D03* +X002986Y005215D03* +X002474Y005215D03* +X003439Y007970D03* +X003951Y007970D03* +X013894Y002720D03* +X014406Y002720D03* +D13* +X015020Y007018D03* +X015020Y007333D03* +X015020Y007648D03* +X015020Y007963D03* +X015020Y008277D03* +X015020Y008592D03* +X015020Y008907D03* +X015020Y009222D03* +X018400Y009222D03* +X018400Y008907D03* +X018400Y008592D03* +X018400Y008277D03* +X018400Y007963D03* +X018400Y007648D03* +X018400Y007333D03* +X018400Y007018D03* +D14* +X017812Y006430D03* +X017497Y006430D03* +X017182Y006430D03* +X016867Y006430D03* +X016553Y006430D03* +X016238Y006430D03* +X015923Y006430D03* +X015608Y006430D03* +X015608Y009810D03* +X015923Y009810D03* +X016238Y009810D03* +X016553Y009810D03* +X016867Y009810D03* +X017182Y009810D03* +X017497Y009810D03* +X017812Y009810D03* +D15* +X008409Y009300D03* +X008409Y008866D03* +X008409Y008433D03* +X008409Y008000D03* +X008409Y007567D03* +X008409Y007134D03* +X008409Y006701D03* +X004669Y006701D03* +X004669Y007134D03* +X004669Y007567D03* +X004669Y008000D03* +X004669Y008433D03* +X004669Y008866D03* +X004669Y009300D03* +D16* +X004669Y009713D03* +X008409Y009713D03* +X008409Y006288D03* +X004669Y006288D03* +D17* +X003260Y009320D03* +X000465Y009320D03* +D18* +X013560Y001920D03* +X014560Y001920D03* +X015560Y001920D03* +X015560Y000920D03* +X014560Y000920D03* +X013560Y000920D03* +D19* +X006455Y002040D03* +X006455Y002710D03* +X006365Y003225D03* +X006365Y003895D03* +X003310Y004020D03* +X003310Y004690D03* +X003860Y008435D03* +X003860Y009105D03* +D20* +X009265Y006670D03* +X009265Y006080D03* +X007575Y005790D03* +X007075Y005785D03* +X007075Y005195D03* +X007575Y005200D03* +X018715Y006270D03* +X019305Y006270D03* +D21* +X002891Y007490D03* +X001729Y007490D03* +D22* +X002310Y008091D03* +D23* +X006980Y007960D03* +X006980Y006960D03* +X006980Y008960D03* +X004060Y001110D03* +X003060Y001110D03* +X002060Y001110D03* +X017465Y000880D03* +X018465Y000880D03* +D24* +X018652Y003170D03* +X018868Y003170D03* +D25* +X018760Y003170D03* +D26* +X018319Y003142D02* +X018039Y003142D01* +X018039Y003198D01* +X018319Y003198D01* +X018319Y003142D01* +X018319Y003196D02* +X018039Y003196D01* +X018039Y003339D02* +X018319Y003339D01* +X018039Y003339D02* +X018039Y003395D01* +X018319Y003395D01* +X018319Y003339D01* +X018319Y003393D02* +X018039Y003393D01* +X018039Y003536D02* +X018319Y003536D01* +X018039Y003536D02* +X018039Y003592D01* +X018319Y003592D01* +X018319Y003536D01* +X018319Y003590D02* +X018039Y003590D01* +X018039Y002945D02* +X018319Y002945D01* +X018039Y002945D02* +X018039Y003001D01* +X018319Y003001D01* +X018319Y002945D01* +X018319Y002999D02* +X018039Y002999D01* +X018039Y002748D02* +X018319Y002748D01* +X018039Y002748D02* +X018039Y002804D01* +X018319Y002804D01* +X018319Y002748D01* +X018319Y002802D02* +X018039Y002802D01* +X019201Y002804D02* +X019481Y002804D01* +X019481Y002748D01* +X019201Y002748D01* +X019201Y002804D01* +X019201Y002802D02* +X019481Y002802D01* +X019481Y003001D02* +X019201Y003001D01* +X019481Y003001D02* +X019481Y002945D01* +X019201Y002945D01* +X019201Y003001D01* +X019201Y002999D02* +X019481Y002999D01* +X019481Y003198D02* +X019201Y003198D01* +X019481Y003198D02* +X019481Y003142D01* +X019201Y003142D01* +X019201Y003198D01* +X019201Y003196D02* +X019481Y003196D01* +X019481Y003395D02* +X019201Y003395D01* +X019481Y003395D02* +X019481Y003339D01* +X019201Y003339D01* +X019201Y003395D01* +X019201Y003393D02* +X019481Y003393D01* +X019481Y003592D02* +X019201Y003592D01* +X019481Y003592D02* +X019481Y003536D01* +X019201Y003536D01* +X019201Y003592D01* +X019201Y003590D02* +X019481Y003590D01* +X011782Y008349D02* +X011782Y008629D01* +X011782Y008349D02* +X011726Y008349D01* +X011726Y008629D01* +X011782Y008629D01* +X011782Y008403D02* +X011726Y008403D01* +X011726Y008457D02* +X011782Y008457D01* +X011782Y008511D02* +X011726Y008511D01* +X011726Y008565D02* +X011782Y008565D01* +X011782Y008619D02* +X011726Y008619D01* +X011585Y008629D02* +X011585Y008349D01* +X011529Y008349D01* +X011529Y008629D01* +X011585Y008629D01* +X011585Y008403D02* +X011529Y008403D01* +X011529Y008457D02* +X011585Y008457D01* +X011585Y008511D02* +X011529Y008511D01* +X011529Y008565D02* +X011585Y008565D01* +X011585Y008619D02* +X011529Y008619D01* +X011388Y008629D02* +X011388Y008349D01* +X011332Y008349D01* +X011332Y008629D01* +X011388Y008629D01* +X011388Y008403D02* +X011332Y008403D01* +X011332Y008457D02* +X011388Y008457D01* +X011388Y008511D02* +X011332Y008511D01* +X011332Y008565D02* +X011388Y008565D01* +X011388Y008619D02* +X011332Y008619D01* +X011191Y008629D02* +X011191Y008349D01* +X011135Y008349D01* +X011135Y008629D01* +X011191Y008629D01* +X011191Y008403D02* +X011135Y008403D01* +X011135Y008457D02* +X011191Y008457D01* +X011191Y008511D02* +X011135Y008511D01* +X011135Y008565D02* +X011191Y008565D01* +X011191Y008619D02* +X011135Y008619D01* +X010994Y008629D02* +X010994Y008349D01* +X010938Y008349D01* +X010938Y008629D01* +X010994Y008629D01* +X010994Y008403D02* +X010938Y008403D01* +X010938Y008457D02* +X010994Y008457D01* +X010994Y008511D02* +X010938Y008511D01* +X010938Y008565D02* +X010994Y008565D01* +X010994Y008619D02* +X010938Y008619D01* +X010938Y009511D02* +X010938Y009791D01* +X010994Y009791D01* +X010994Y009511D01* +X010938Y009511D01* +X010938Y009565D02* +X010994Y009565D01* +X010994Y009619D02* +X010938Y009619D01* +X010938Y009673D02* +X010994Y009673D01* +X010994Y009727D02* +X010938Y009727D01* +X010938Y009781D02* +X010994Y009781D01* +X011135Y009791D02* +X011135Y009511D01* +X011135Y009791D02* +X011191Y009791D01* +X011191Y009511D01* +X011135Y009511D01* +X011135Y009565D02* +X011191Y009565D01* +X011191Y009619D02* +X011135Y009619D01* +X011135Y009673D02* +X011191Y009673D01* +X011191Y009727D02* +X011135Y009727D01* +X011135Y009781D02* +X011191Y009781D01* +X011332Y009791D02* +X011332Y009511D01* +X011332Y009791D02* +X011388Y009791D01* +X011388Y009511D01* +X011332Y009511D01* +X011332Y009565D02* +X011388Y009565D01* +X011388Y009619D02* +X011332Y009619D01* +X011332Y009673D02* +X011388Y009673D01* +X011388Y009727D02* +X011332Y009727D01* +X011332Y009781D02* +X011388Y009781D01* +X011529Y009791D02* +X011529Y009511D01* +X011529Y009791D02* +X011585Y009791D01* +X011585Y009511D01* +X011529Y009511D01* +X011529Y009565D02* +X011585Y009565D01* +X011585Y009619D02* +X011529Y009619D01* +X011529Y009673D02* +X011585Y009673D01* +X011585Y009727D02* +X011529Y009727D01* +X011529Y009781D02* +X011585Y009781D01* +X011726Y009791D02* +X011726Y009511D01* +X011726Y009791D02* +X011782Y009791D01* +X011782Y009511D01* +X011726Y009511D01* +X011726Y009565D02* +X011782Y009565D01* +X011782Y009619D02* +X011726Y009619D01* +X011726Y009673D02* +X011782Y009673D01* +X011782Y009727D02* +X011726Y009727D01* +X011726Y009781D02* +X011782Y009781D01* +D27* +X017060Y002970D03* +X017060Y001970D03* +D28* +X019410Y001971D03* +X019410Y000869D03* +X010225Y006534D03* +X010225Y007636D03* +X010160Y008519D03* +X010160Y009621D03* +X012560Y009621D03* +X012560Y008519D03* +X005045Y002176D03* +X005045Y001074D03* +D29* +X017809Y005370D03* +X018911Y005370D03* +X018961Y004470D03* +X017859Y004470D03* +D30* +X011360Y008962D03* +X011360Y009178D03* +D31* +X011360Y009070D03* +D32* +X011110Y007120D03* +X012110Y007120D03* +D33* +X012387Y004670D03* +X010733Y004670D03* +X010733Y002670D03* +X012387Y002670D03* +D34* +X012537Y003670D03* +X010583Y003670D03* +D35* +X011110Y003670D03* +X012010Y003670D03* +D36* +X011960Y004170D03* +X011160Y004170D03* +X011160Y003170D03* +X011960Y003170D03* +D37* +X013881Y006931D03* +X013881Y008427D03* +D38* +X008557Y003449D03* +X008557Y003252D03* +X008557Y003055D03* +X008557Y002858D03* +X008557Y002661D03* +X006983Y002661D03* +X006983Y002858D03* +X006983Y003055D03* +X006983Y003252D03* +X006983Y003449D03* +D39* +X007376Y003842D03* +X007573Y003842D03* +X007770Y003842D03* +X007967Y003842D03* +X008164Y003842D03* +X008164Y002268D03* +X007967Y002268D03* +X007770Y002268D03* +X007573Y002268D03* +X007376Y002268D03* +D40* +X007770Y003055D03* +D41* +X007514Y002799D03* +X008026Y002799D03* +X008026Y003311D03* +X007514Y003311D03* +D42* +X005960Y004565D03* +X005290Y004565D03* +X005190Y003315D03* +X004520Y003315D03* +X003985Y003310D03* +X003315Y003310D03* +D43* +X001170Y004210D03* +X001170Y005210D03* +X001170Y006210D03* +D44* +X008269Y005356D03* +X008623Y005356D03* +X008977Y005356D03* +X009331Y005356D03* +X009331Y004884D03* +X008977Y004884D03* +X008623Y004884D03* +X008269Y004884D03* +D45* +X008665Y005880D03* +X010060Y005815D03* +X009645Y007840D03* +X009285Y008580D03* +X013615Y009905D03* +X014970Y009930D03* +X018405Y009705D03* +X018935Y010135D03* +X019685Y010140D03* +X003820Y007135D03* +X003815Y006700D03* +D46* +X013674Y004751D03* +X013674Y004160D03* +X013674Y003569D03* +X014816Y003569D03* +X014816Y004160D03* +X014816Y004751D03* +D47* +X014245Y004770D03* +D48* +X013529Y005089D02* +X013485Y005089D01* +X013356Y004960D01* +X013356Y004541D01* +X013442Y004455D01* +X013356Y004369D01* +X013356Y003951D01* +X013442Y003865D01* +X013358Y003781D01* +X013268Y003730D01* +X013207Y003730D01* +X013082Y003678D01* +X012987Y003583D01* +X012982Y003571D01* +X012982Y003946D01* +X012989Y003955D01* +X013003Y003955D01* +X013128Y004007D01* +X013223Y004102D01* +X013275Y004227D01* +X013275Y004363D01* +X013223Y004488D01* +X013128Y004583D01* +X013003Y004635D01* +X012867Y004635D01* +X012819Y004615D01* +X012442Y004615D01* +X012442Y004725D01* +X012957Y004725D01* +X012957Y005049D01* +X012942Y005105D01* +X012913Y005155D01* +X012888Y005180D01* +X013023Y005180D01* +X013111Y005216D01* +X013388Y005210D01* +X013470Y005128D01* +X013512Y005128D01* +X013529Y005089D01* +X013436Y005040D02* +X012957Y005040D01* +X012754Y005240D02* +X012442Y005240D01* +X012442Y004725D01* +X012332Y004725D01* +X012332Y005240D01* +X012008Y005240D01* +X011952Y005225D01* +X011902Y005196D01* +X011861Y005155D01* +X011832Y005105D01* +X011817Y005049D01* +X011817Y004725D01* +X012332Y004725D01* +X012332Y004615D01* +X011817Y004615D01* +X011817Y004565D01* +X011651Y004565D01* +X011595Y004550D01* +X011564Y004532D01* +X011531Y004565D01* +X011303Y004565D01* +X011303Y005111D01* +X011174Y005240D01* +X010292Y005240D01* +X010163Y005111D01* +X010163Y004712D01* +X010122Y004712D01* +X010122Y004849D01* +X009725Y004849D01* +X009725Y004849D01* +X009331Y004884D01* +X009328Y004884D02* +X009328Y004884D01* +X008977Y004884D01* +X008977Y004884D01* +X008977Y004529D01* +X008977Y004529D01* +X008977Y004884D01* +X008977Y004884D01* +X009013Y004884D01* +X009328Y004884D01* +X008977Y004802D02* +X008977Y004802D01* +X008977Y004563D02* +X008977Y004563D01* +X008714Y004506D02* +X008658Y004450D01* +X007972Y004450D01* +X007972Y004500D01* +X008073Y004500D01* +X008088Y004506D01* +X008714Y004506D01* +X009725Y004849D02* +X010122Y004849D01* +X010122Y005016D01* +X010107Y005072D01* +X010091Y005100D01* +X010122Y005132D01* +X010122Y005477D01* +X010127Y005477D01* +X010235Y005521D01* +X010322Y005485D01* +X010458Y005485D01* +X010583Y005537D01* +X010678Y005632D01* +X010730Y005757D01* +X010730Y005768D01* +X010825Y005673D01* +X011283Y005673D01* +X011310Y005700D01* +X011337Y005673D01* +X011795Y005673D01* +X011924Y005802D01* +X011924Y005829D01* +X011943Y005838D01* +X011986Y005857D01* +X011989Y005860D01* +X012273Y005995D01* +X012434Y005995D01* +X012462Y005967D01* +X012587Y005915D01* +X012633Y005915D01* +X012633Y005631D01* +X012615Y005588D01* +X012615Y005452D01* +X012667Y005327D01* +X012754Y005240D01* +X012716Y005279D02* +X010122Y005279D01* +X010116Y005040D02* +X010163Y005040D01* +X010163Y004802D02* +X010122Y004802D01* +X011303Y004802D02* +X011817Y004802D01* +X011644Y004563D02* +X011533Y004563D01* +X012332Y004802D02* +X012442Y004802D01* +X012957Y004802D02* +X013356Y004802D01* +X013356Y004563D02* +X013148Y004563D01* +X013275Y004325D02* +X013356Y004325D01* +X013356Y004086D02* +X013207Y004086D01* +X013425Y003848D02* +X012982Y003848D01* +X012982Y003609D02* +X013013Y003609D01* +X011589Y002775D02* +X011560Y002804D01* +X011531Y002775D01* +X011303Y002775D01* +X011303Y002229D01* +X011174Y002100D01* +X010292Y002100D01* +X010287Y002105D01* +X010117Y002018D01* +X010141Y002004D01* +X010474Y002043D01* +X010484Y002048D01* +X010525Y002049D01* +X010565Y002054D01* +X010576Y002051D01* +X011821Y002097D01* +X011857Y002133D01* +X011896Y002149D01* +X011817Y002229D01* +X011817Y002775D01* +X011589Y002775D01* +X011817Y002655D02* +X011303Y002655D01* +X011303Y002417D02* +X011817Y002417D01* +X011868Y002178D02* +X011252Y002178D01* +X010163Y002715D02* +X009801Y002530D01* +X009800Y002530D01* +X009800Y003027D01* +X009804Y003066D01* +X009800Y003077D01* +X009908Y003122D01* +X010003Y003217D01* +X010055Y003342D01* +X010055Y003428D01* +X010138Y003428D01* +X010138Y003354D01* +X010267Y003225D01* +X010277Y003225D01* +X010163Y003111D01* +X010163Y002715D01* +X010045Y002655D02* +X009800Y002655D01* +X009800Y002894D02* +X010163Y002894D01* +X010184Y003132D02* +X009918Y003132D01* +X010055Y003371D02* +X010138Y003371D01* +X008200Y003175D02* +X008200Y002935D01* +X007890Y002935D01* +X007890Y003175D01* +X007650Y003175D01* +X007650Y003485D01* +X007696Y003485D01* +X007770Y003485D01* +X007890Y003485D01* +X007890Y003175D01* +X008200Y003175D01* +X008200Y003132D02* +X007890Y003132D01* +X007650Y003132D02* +X007340Y003132D01* +X007340Y003175D02* +X007650Y003175D01* +X007650Y002935D01* +X007890Y002935D01* +X007890Y002625D01* +X007650Y002625D01* +X007650Y002935D01* +X007340Y002935D01* +X007340Y003175D01* +X007650Y003371D02* +X007890Y003371D01* +X007770Y003485D02* +X007770Y003541D01* +X007770Y003541D01* +X007770Y003485D01* +X007770Y003541D02* +X007770Y003541D01* +X007650Y002894D02* +X007890Y002894D01* +X007890Y002655D02* +X007650Y002655D01* +X007107Y002383D02* +X007107Y002324D01* +X007107Y002322D01* +X007106Y002192D01* +X007020Y002192D01* +X006954Y002126D01* +X006933Y002135D01* +X006872Y002135D01* +X006872Y002348D01* +X006845Y002375D01* +X006862Y002392D01* +X006983Y002392D01* +X007098Y002392D01* +X007107Y002383D01* +X006983Y002392D02* +X006983Y002578D01* +X006983Y002578D01* +X006983Y002392D01* +X006983Y002417D02* +X006983Y002417D01* +X007006Y002178D02* +X006872Y002178D01* +X006060Y002380D02* +X005619Y002422D01* +X005619Y002501D01* +X006003Y002501D01* +X006038Y002536D01* +X006038Y002402D01* +X006060Y002380D01* +X006038Y002417D02* +X005679Y002417D01* +X005338Y002711D02* +X005186Y002711D01* +X005148Y002803D01* +X005053Y002898D01* +X005338Y002898D01* +X005338Y002711D01* +X005338Y002894D02* +X005057Y002894D01* +X004667Y002898D02* +X004572Y002803D01* +X004520Y002678D01* +X004520Y002632D01* +X004471Y002582D01* +X004471Y001770D01* +X004600Y001641D01* +X005490Y001641D01* +X005619Y001770D01* +X005619Y001819D01* +X006038Y001779D01* +X006038Y001733D01* +X006044Y001727D01* +X005954Y001727D01* +X005787Y001727D01* +X005731Y001712D01* +X005681Y001683D01* +X005640Y001642D01* +X005611Y001592D01* +X005596Y001536D01* +X005596Y001488D01* +X005575Y001524D01* +X005534Y001565D01* +X005484Y001594D01* +X005428Y001609D01* +X005082Y001609D01* +X005082Y001111D01* +X005008Y001111D01* +X005008Y001609D01* +X004662Y001609D01* +X004606Y001594D01* +X004556Y001565D01* +X004515Y001524D01* +X004502Y001502D01* +X004444Y001560D01* +X004369Y001615D01* +X004286Y001657D01* +X004198Y001685D01* +X004106Y001700D01* +X004060Y001700D01* +X004060Y001110D01* +X004060Y001110D01* +X004650Y001110D01* +X004650Y001111D01* +X005008Y001111D01* +X005008Y001036D01* +X005082Y001036D01* +X005082Y000539D01* +X005428Y000539D01* +X005484Y000554D01* +X005534Y000583D01* +X005575Y000624D01* +X005601Y000668D01* +X005611Y000628D01* +X005640Y000578D01* +X005681Y000537D01* +X005731Y000508D01* +X005787Y000493D01* +X005954Y000493D01* +X005954Y000890D01* +X005954Y000890D01* +X005954Y001287D01* +X005954Y001330D01* +X005954Y001727D01* +X005954Y001330D01* +X005954Y001330D01* +X005954Y001330D01* +X005954Y000890D01* +X005954Y000890D01* +X005954Y000493D01* +X006121Y000493D01* +X006177Y000508D01* +X006205Y000524D01* +X006237Y000493D01* +X006695Y000493D01* +X006824Y000622D01* +X006824Y001030D01* +X006921Y001030D01* +X006921Y000622D01* +X007050Y000493D01* +X007508Y000493D01* +X007540Y000524D01* +X007568Y000508D01* +X007624Y000493D01* +X007791Y000493D01* +X007958Y000493D01* +X008014Y000508D01* +X008057Y000533D01* +X008068Y000526D01* +X008124Y000511D01* +X008330Y000511D01* +X008330Y000869D01* +X008330Y000511D01* +X008536Y000511D01* +X008592Y000526D01* +X008593Y000527D01* +X008607Y000512D01* +X008660Y000490D01* +X000480Y000490D01* +X000480Y003690D01* +X000898Y003690D01* +X000729Y003620D01* +X000590Y003481D01* +X000514Y003299D01* +X000514Y003101D01* +X000590Y002919D01* +X000724Y002785D01* +X000590Y002651D01* +X000514Y002469D01* +X000514Y002271D01* +X000590Y002089D01* +X000729Y001950D01* +X000911Y001874D01* +X001109Y001874D01* +X001291Y001950D01* +X001430Y002089D01* +X001506Y002271D01* +X001506Y002469D01* +X001430Y002651D01* +X001296Y002785D01* +X001430Y002919D01* +X001506Y003101D01* +X001506Y003299D01* +X001430Y003481D01* +X001291Y003620D01* +X001122Y003690D01* +X001140Y003690D01* +X001140Y004180D01* +X001200Y004180D01* +X001200Y004240D01* +X002190Y004240D01* +X002190Y004539D01* +X002175Y004595D01* +X002146Y004645D01* +X002105Y004686D01* +X002075Y004704D01* +X002190Y004819D01* +X002190Y004834D01* +X002229Y004834D01* +X002245Y004818D01* +X002703Y004818D01* +X002730Y004845D01* +X002757Y004818D01* +X002893Y004818D01* +X002893Y004382D01* +X002920Y004355D01* +X002893Y004328D01* +X002893Y003713D01* +X002933Y003673D01* +X002933Y003652D01* +X002879Y003598D01* +X002879Y003071D01* +X002764Y003070D01* +X002715Y003049D01* +X002577Y003049D01* +X002448Y002920D01* +X002448Y002462D01* +X002479Y002430D01* +X002463Y002402D01* +X002448Y002346D01* +X002448Y002179D01* +X002448Y002012D01* +X002463Y001956D01* +X002492Y001906D01* +X002533Y001865D01* +X002583Y001836D01* +X002639Y001821D01* +X002845Y001821D01* +X003051Y001821D01* +X003107Y001836D01* +X003148Y001860D01* +X003155Y001848D01* +X003196Y001807D01* +X003246Y001778D01* +X003302Y001763D01* +X003469Y001763D01* +X003469Y002160D01* +X003469Y002160D01* +X003469Y001763D01* +X003636Y001763D01* +X003692Y001778D01* +X003720Y001794D01* +X003752Y001763D01* +X004210Y001763D01* +X004339Y001892D01* +X004339Y002031D01* +X004361Y002084D01* +X004361Y002699D01* +X004362Y002898D01* +X004667Y002898D01* +X004663Y002894D02* +X004362Y002894D01* +X004361Y002655D02* +X004520Y002655D01* +X004471Y002417D02* +X004361Y002417D01* +X004361Y002178D02* +X004471Y002178D01* +X004471Y001940D02* +X004339Y001940D01* +X004540Y001701D02* +X000480Y001701D01* +X000480Y001463D02* +X000783Y001463D01* +X000729Y001440D02* +X000590Y001301D01* +X000514Y001119D01* +X000514Y000921D01* +X000590Y000739D01* +X000729Y000600D01* +X000911Y000524D01* +X001109Y000524D01* +X001291Y000600D01* +X001430Y000739D01* +X001503Y000914D01* +X001560Y000776D01* +X001726Y000610D01* +X001943Y000520D01* +X002177Y000520D01* +X002394Y000610D01* +X002554Y000770D01* +X002566Y000770D01* +X002726Y000610D01* +X002943Y000520D01* +X003177Y000520D01* +X003394Y000610D01* +X003560Y000776D01* +X003565Y000788D01* +X003610Y000726D01* +X003676Y000660D01* +X003751Y000605D01* +X003834Y000563D01* +X003922Y000535D01* +X004014Y000520D01* +X004060Y000520D01* +X004106Y000520D01* +X004198Y000535D01* +X004286Y000563D01* +X004369Y000605D01* +X004444Y000660D01* +X004480Y000696D01* +X004486Y000674D01* +X004515Y000624D01* +X004556Y000583D01* +X004606Y000554D01* +X004662Y000539D01* +X005008Y000539D01* +X005008Y001036D01* +X004646Y001036D01* +X004650Y001064D01* +X004650Y001110D01* +X004060Y001110D01* +X004060Y001110D01* +X004060Y000520D01* +X004060Y001110D01* +X004060Y001110D01* +X004060Y001700D01* +X004014Y001700D01* +X003922Y001685D01* +X003834Y001657D01* +X003751Y001615D01* +X003676Y001560D01* +X003610Y001494D01* +X003565Y001432D01* +X003560Y001444D01* +X003394Y001610D01* +X003177Y001700D01* +X002943Y001700D01* +X002726Y001610D01* +X002566Y001450D01* +X002554Y001450D01* +X002394Y001610D01* +X002177Y001700D01* +X001943Y001700D01* +X001726Y001610D01* +X001560Y001444D01* +X001470Y001227D01* +X001470Y001204D01* +X001430Y001301D01* +X001291Y001440D01* +X001109Y001516D01* +X000911Y001516D01* +X000729Y001440D01* +X000558Y001224D02* +X000480Y001224D01* +X000480Y000986D02* +X000514Y000986D01* +X000480Y000747D02* +X000587Y000747D01* +X000480Y000509D02* +X005730Y000509D01* +X005954Y000509D02* +X005954Y000509D01* +X006178Y000509D02* +X006221Y000509D01* +X005954Y000747D02* +X005954Y000747D01* +X005954Y000986D02* +X005954Y000986D01* +X005954Y001224D02* +X005954Y001224D01* +X005954Y001463D02* +X005954Y001463D01* +X005954Y001701D02* +X005954Y001701D01* +X005712Y001701D02* +X005550Y001701D01* +X005082Y001463D02* +X005008Y001463D01* +X005008Y001224D02* +X005082Y001224D01* +X005082Y000986D02* +X005008Y000986D01* +X005008Y000747D02* +X005082Y000747D01* +X004060Y000747D02* +X004060Y000747D01* +X004060Y000986D02* +X004060Y000986D01* +X004060Y001224D02* +X004060Y001224D01* +X004060Y001463D02* +X004060Y001463D01* +X003587Y001463D02* +X003542Y001463D01* +X003060Y001110D02* +X002060Y001110D01* +X002542Y001463D02* +X002578Y001463D01* +X002845Y001821D02* +X002845Y002179D01* +X002845Y001821D01* +X002845Y001940D02* +X002845Y001940D01* +X002845Y002178D02* +X002845Y002178D01* +X002845Y002179D02* +X002845Y002179D01* +X002448Y002179D01* +X002845Y002179D01* +X002845Y002179D01* +X002448Y002178D02* +X001467Y002178D01* +X001506Y002417D02* +X002471Y002417D01* +X002448Y002655D02* +X001426Y002655D01* +X001404Y002894D02* +X002448Y002894D01* +X002879Y003132D02* +X001506Y003132D01* +X001476Y003371D02* +X002879Y003371D01* +X002890Y003609D02* +X001302Y003609D01* +X001200Y003690D02* +X001999Y003690D01* +X002055Y003705D01* +X002105Y003734D01* +X002146Y003775D01* +X002175Y003825D01* +X002190Y003881D01* +X002190Y004180D01* +X001200Y004180D01* +X001200Y003690D01* +X001200Y003848D02* +X001140Y003848D01* +X000718Y003609D02* +X000480Y003609D01* +X000480Y003371D02* +X000544Y003371D01* +X000514Y003132D02* +X000480Y003132D01* +X000480Y002894D02* +X000616Y002894D01* +X000594Y002655D02* +X000480Y002655D01* +X000480Y002417D02* +X000514Y002417D01* +X000480Y002178D02* +X000553Y002178D01* +X000480Y001940D02* +X000754Y001940D01* +X001266Y001940D02* +X002473Y001940D01* +X003469Y001940D02* +X003469Y001940D01* +X001578Y001463D02* +X001237Y001463D01* +X001462Y001224D02* +X001470Y001224D01* +X001433Y000747D02* +X001589Y000747D01* +X002531Y000747D02* +X002589Y000747D01* +X003531Y000747D02* +X003594Y000747D01* +X006710Y000509D02* +X007035Y000509D01* +X006921Y000747D02* +X006824Y000747D01* +X006824Y000986D02* +X006921Y000986D01* +X007791Y000986D02* +X007791Y000986D01* +X007791Y000933D02* +X007791Y001330D01* +X007791Y001330D01* +X007791Y000890D01* +X007791Y000493D01* +X007791Y000890D01* +X007791Y000890D01* +X007791Y000890D01* +X007791Y000933D01* +X007791Y000747D02* +X007791Y000747D01* +X007791Y000509D02* +X007791Y000509D01* +X008015Y000509D02* +X008615Y000509D01* +X008940Y000490D02* +X008993Y000512D01* +X009088Y000607D01* +X009130Y000708D01* +X009197Y000775D01* +X009197Y001161D01* +X009255Y001161D01* +X009255Y001505D01* +X009255Y001161D01* +X009278Y001161D01* +X009278Y001042D01* +X009305Y001015D01* +X009278Y000988D01* +X009278Y000530D01* +X009318Y000490D01* +X008940Y000490D01* +X008985Y000509D02* +X009300Y000509D01* +X009278Y000747D02* +X009169Y000747D01* +X009197Y000986D02* +X009278Y000986D01* +X009255Y001224D02* +X009255Y001224D01* +X009255Y001463D02* +X009255Y001463D01* +X009255Y001505D02* +X009255Y001505D01* +X008330Y000869D02* +X008330Y000869D01* +X008330Y000747D02* +X008330Y000747D01* +X007567Y000509D02* +X007524Y000509D01* +X007791Y001224D02* +X007791Y001224D01* +X010072Y000691D02* +X010072Y000530D01* +X010032Y000490D01* +X011170Y000490D01* +X011117Y000512D01* +X011022Y000607D01* +X010992Y000679D01* +X010981Y000676D01* +X010775Y000676D01* +X010775Y001015D01* +X010775Y000676D01* +X010569Y000676D01* +X010513Y000691D01* +X010463Y000720D01* +X010422Y000761D01* +X010411Y000781D01* +X010313Y000740D01* +X010177Y000740D01* +X010154Y000749D01* +X010072Y000691D01* +X010151Y000747D02* +X010160Y000747D01* +X010330Y000747D02* +X010436Y000747D01* +X010775Y000747D02* +X010775Y000747D01* +X011125Y000509D02* +X010050Y000509D01* +X010775Y000986D02* +X010775Y000986D01* +X010775Y001015D02* +X010775Y001015D01* +X011503Y000512D02* +X011598Y000607D01* +X011625Y000673D01* +X011642Y000656D01* +X012178Y000656D01* +X012253Y000731D01* +X012253Y000662D01* +X012268Y000606D01* +X012297Y000556D01* +X012338Y000515D01* +X012381Y000490D01* +X011450Y000490D01* +X011503Y000512D01* +X011495Y000509D02* +X012349Y000509D01* +X012319Y000829D02* +X012319Y000829D01* +X012650Y000829D01* +X012319Y000829D01* +X012650Y000829D02* +X012650Y000829D01* +X013034Y000612D02* +X013156Y000490D01* +X012919Y000490D01* +X012962Y000515D01* +X013003Y000556D01* +X013032Y000606D01* +X013034Y000612D01* +X012951Y000509D02* +X013137Y000509D01* +X013047Y001242D02* +X013047Y001570D01* +X013016Y001601D01* +X013027Y001618D01* +X013226Y001420D01* +X013047Y001242D01* +X013047Y001463D02* +X013183Y001463D01* +X014894Y001420D02* +X015060Y001586D01* +X015226Y001420D01* +X015060Y001254D01* +X014894Y001420D01* +X014937Y001463D02* +X015183Y001463D01* +X015560Y001920D02* +X015560Y002510D01* +X015679Y002510D01* +X015657Y002532D01* +X015654Y002538D01* +X015412Y002608D01* +X014764Y002565D01* +X014764Y002510D01* +X014804Y002510D01* +X015060Y002254D01* +X015316Y002510D01* +X015560Y002510D01* +X015560Y001920D01* +X015560Y001920D01* +X015560Y001940D02* +X015560Y001940D01* +X015560Y002178D02* +X015560Y002178D01* +X015560Y002417D02* +X015560Y002417D01* +X015222Y002417D02* +X014898Y002417D01* +X015894Y001420D02* +X015950Y001476D01* +X015950Y001468D01* +X015951Y001466D01* +X015951Y001464D01* +X015971Y001419D01* +X015990Y001373D01* +X015991Y001371D01* +X015992Y001369D01* +X016028Y001335D01* +X016164Y001198D01* +X016185Y001171D01* +X016200Y001162D01* +X016213Y001150D01* +X016245Y001136D01* +X016275Y001119D01* +X016292Y001117D01* +X016308Y001110D01* +X016343Y001110D01* +X016488Y001091D01* +X016513Y001066D01* +X016398Y000951D01* +X016240Y000966D01* +X016150Y000996D01* +X016150Y001164D01* +X015894Y001420D01* +X015937Y001463D02* +X015952Y001463D01* +X016090Y001224D02* +X016138Y001224D01* +X016181Y000986D02* +X016433Y000986D01* +X016886Y000703D02* +X016896Y000709D01* +X016899Y000712D01* +X016918Y000654D01* +X016960Y000571D01* +X017015Y000496D01* +X017021Y000490D01* +X016673Y000490D01* +X016700Y000512D01* +X016706Y000524D01* +X016886Y000703D01* +X017006Y000509D02* +X016696Y000509D01* +X018567Y001470D02* +X018569Y002202D01* +X018652Y002202D01* +X018736Y002202D01* +X018760Y002208D01* +X018784Y002202D01* +X018836Y002202D01* +X018836Y002009D01* +X019373Y002009D01* +X019373Y001934D01* +X019447Y001934D01* +X019447Y001436D01* +X019690Y001436D01* +X019690Y001404D01* +X018965Y001404D01* +X018870Y001309D01* +X018799Y001380D01* +X018582Y001470D01* +X018567Y001470D01* +X018600Y001463D02* +X018951Y001463D01* +X018971Y001451D02* +X019027Y001436D01* +X019373Y001436D01* +X019373Y001934D01* +X018836Y001934D01* +X018836Y001627D01* +X018851Y001571D01* +X018880Y001521D01* +X018921Y001480D01* +X018971Y001451D01* +X018836Y001701D02* +X018567Y001701D01* +X018568Y001940D02* +X019373Y001940D01* +X019410Y001971D02* +X018810Y001970D01* +X018810Y002870D01* +X018910Y003170D01* +X018868Y003170D02* +X018953Y003170D01* +X018953Y003170D01* +X018868Y003170D01* +X018802Y003170D01* +X018802Y003170D01* +X018868Y003170D01* +X018868Y003170D01* +X018868Y003170D01* +X018760Y003170D02* +X018760Y004400D01* +X018760Y004470D01* +X018961Y004470D01* +X018924Y004507D02* +X018924Y004433D01* +X018426Y004433D01* +X018426Y004087D01* +X018432Y004065D01* +X018421Y004053D01* +X018405Y004025D01* +X018394Y004110D01* +X018394Y004680D01* +X018426Y004680D01* +X018426Y004507D01* +X018924Y004507D01* +X018924Y005044D01* +X018874Y005044D01* +X018874Y005333D01* +X018949Y005333D01* +X019394Y005333D01* +X019346Y005407D01* +X018949Y005407D01* +X018949Y005333D01* +X018949Y004796D01* +X018999Y004796D01* +X018999Y004507D01* +X019455Y004507D01* +X019455Y004433D01* +X018999Y004433D01* +X018999Y004507D01* +X018924Y004507D01* +X018924Y004563D02* +X018999Y004563D01* +X019175Y004460D02* +X019450Y004245D01* +X019450Y004925D01* +X019425Y005070D01* +X019430Y005075D02* +X019355Y005140D01* +X018949Y005040D02* +X018924Y005040D01* +X018949Y005279D02* +X018874Y005279D01* +X018924Y004802D02* +X018949Y004802D01* +X018426Y004563D02* +X018394Y004563D01* +X018394Y004325D02* +X018426Y004325D01* +X018426Y004086D02* +X018397Y004086D01* +X018567Y003170D02* +X018593Y003170D01* +X018652Y003170D01* +X018718Y003170D01* +X018718Y003170D01* +X018652Y003170D01* +X018652Y003170D01* +X018567Y003170D01* +X018567Y003170D01* +X018652Y003170D02* +X018652Y003170D01* +X018652Y002272D02* +X018652Y002272D01* +X018652Y002202D01* +X018652Y002272D01* +X018569Y002178D02* +X018836Y002178D01* +X019373Y001701D02* +X019447Y001701D01* +X019447Y001463D02* +X019373Y001463D01* +X015974Y004457D02* +X015908Y004523D01* +X015783Y004575D01* +X015647Y004575D01* +X015522Y004523D01* +X015494Y004495D01* +X015396Y004495D01* +X015278Y004597D01* +X015267Y004613D01* +X015240Y004630D01* +X015215Y004651D01* +X015196Y004657D01* +X015165Y004677D01* +X015134Y004738D01* +X015134Y004960D01* +X015058Y005036D01* +X015055Y005042D01* +X015035Y005062D01* +X014664Y005595D01* +X014655Y005617D01* +X014635Y005637D01* +X014619Y005661D01* +X014599Y005674D01* +X014582Y005690D01* +X014569Y005696D01* +X014569Y005761D01* +X014630Y005823D01* +X014670Y005918D01* +X014670Y006062D01* +X014728Y006121D01* +X014772Y006077D01* +X014781Y006073D01* +X014776Y006068D01* +X014776Y005532D01* +X014830Y005478D01* +X014830Y005427D01* +X014882Y005302D01* +X014977Y005207D01* +X015102Y005155D01* +X015163Y005155D01* +X015168Y005148D01* +X015175Y005133D01* +X015200Y005107D01* +X015222Y005079D01* +X015236Y005071D01* +X015248Y005060D01* +X015281Y005046D01* +X015463Y004943D01* +X015471Y004934D01* +X015507Y004918D01* +X015542Y004898D01* +X015554Y004897D01* +X015565Y004892D01* +X015605Y004890D01* +X015645Y004886D01* +X015657Y004889D01* +X015669Y004889D01* +X015706Y004903D01* +X015744Y004913D01* +X015754Y004921D01* +X016014Y005019D01* +X016031Y005021D01* +X016062Y005038D01* +X016095Y005050D01* +X016107Y005061D01* +X016200Y005110D01* +X016222Y005057D01* +X016232Y005047D01* +X016219Y004863D01* +X016073Y004586D01* +X015974Y004457D01* +X016056Y004563D02* +X015812Y004563D01* +X015618Y004563D02* +X015317Y004563D01* +X015134Y004802D02* +X016187Y004802D01* +X016231Y005040D02* +X016069Y005040D01* +X015291Y005040D02* +X015056Y005040D01* +X014906Y005279D02* +X014885Y005279D01* +X014791Y005517D02* +X014719Y005517D01* +X014776Y005756D02* +X014569Y005756D01* +X014670Y005994D02* +X014776Y005994D01* +X013650Y006220D02* +X013427Y006220D01* +X013650Y006220D01* +X013650Y006220D01* +X013427Y006220D02* +X013427Y006220D01* +X012633Y005756D02* +X011877Y005756D01* +X012271Y005994D02* +X012435Y005994D01* +X012615Y005517D02* +X010535Y005517D01* +X010245Y005517D02* +X010224Y005517D01* +X010729Y005756D02* +X010743Y005756D01* +X011303Y005040D02* +X011817Y005040D01* +X012332Y005040D02* +X012442Y005040D01* +X010262Y006571D02* +X010188Y006571D01* +X010188Y007069D01* +X009914Y007069D01* +X009956Y007101D01* +X010510Y007101D01* +X010510Y007069D01* +X010262Y007069D01* +X010262Y006571D01* +X010262Y006710D02* +X010188Y006710D01* +X010188Y006948D02* +X010262Y006948D01* +X008409Y006288D02* +X008409Y006288D01* +X007834Y006288D01* +X007834Y006355D01* +X007747Y006355D01* +X007622Y006407D01* +X007527Y006502D01* +X007477Y006623D01* +X007314Y006460D01* +X007097Y006370D01* +X006863Y006370D01* +X006646Y006460D01* +X006480Y006626D01* +X006390Y006843D01* +X006390Y007077D01* +X006480Y007294D01* +X006646Y007460D01* +X006480Y007626D01* +X006390Y007843D01* +X006390Y008077D01* +X006480Y008294D01* +X006646Y008460D01* +X006658Y008465D01* +X006596Y008510D01* +X006530Y008576D01* +X006475Y008651D01* +X006433Y008734D01* +X006405Y008822D01* +X006390Y008914D01* +X006390Y008960D01* +X006980Y008960D01* +X007570Y008960D01* +X007570Y009006D01* +X007555Y009098D01* +X007527Y009186D01* +X007485Y009269D01* +X007430Y009344D01* +X007364Y009410D01* +X007289Y009465D01* +X007206Y009507D01* +X007118Y009535D01* +X007026Y009550D01* +X006980Y009550D01* +X006980Y008960D01* +X006980Y008960D01* +X006980Y008960D01* +X007570Y008960D01* +X007570Y008914D01* +X007555Y008822D01* +X007527Y008734D01* +X007485Y008651D01* +X007430Y008576D01* +X007364Y008510D01* +X007302Y008465D01* +X007314Y008460D01* +X007480Y008294D01* +X007570Y008077D01* +X007570Y007843D01* +X007548Y007788D01* +X007617Y007858D01* +X007742Y007910D01* +X007834Y007910D01* +X007834Y009028D01* +X007690Y009173D01* +X007650Y009268D01* +X007650Y009922D01* +X007690Y010017D01* +X007763Y010090D01* +X007822Y010150D01* +X003860Y010150D01* +X003860Y009620D01* +X004094Y009620D01* +X004094Y009713D01* +X004669Y009713D01* +X005243Y009713D01* +X005243Y009880D01* +X005228Y009936D01* +X005199Y009986D01* +X005158Y010027D01* +X005108Y010056D01* +X005052Y010071D01* +X004669Y010071D01* +X004669Y009713D01* +X004669Y009713D01* +X005243Y009713D01* +X005243Y009053D01* +X005243Y008866D01* +X004669Y008866D01* +X004669Y008866D01* +X005243Y008866D01* +X005243Y006059D01* +X005114Y005930D01* +X004223Y005930D01* +X004094Y006059D01* +X004094Y006440D01* +X004033Y006440D01* +X004007Y006413D01* +X003882Y006362D01* +X003748Y006362D01* +X003728Y006370D01* +X002190Y006370D01* +X002190Y006240D01* +X001200Y006240D01* +X001200Y006180D01* +X002190Y006180D01* +X002190Y005881D01* +X002175Y005825D01* +X002146Y005775D01* +X002105Y005734D01* +X002075Y005716D01* +X002190Y005601D01* +X002190Y005594D01* +X002227Y005594D01* +X002245Y005612D01* +X002703Y005612D01* +X002730Y005585D01* +X002757Y005612D01* +X003215Y005612D01* +X003232Y005595D01* +X003443Y005595D01* +X003460Y005612D01* +X003918Y005612D01* +X003950Y005581D01* +X003978Y005597D01* +X004034Y005612D01* +X004201Y005612D01* +X004201Y005215D01* +X004559Y005215D01* +X004559Y005421D01* +X004544Y005477D01* +X004515Y005527D01* +X004474Y005568D01* +X004424Y005597D01* +X004368Y005612D01* +X004201Y005612D01* +X004201Y005215D01* +X004201Y005215D01* +X004559Y005215D01* +X004559Y005009D01* +X004544Y004953D01* +X004515Y004903D01* +X004474Y004862D01* +X004424Y004833D01* +X004368Y004818D01* +X004322Y004818D01* +X004322Y004387D01* +X004295Y004360D01* +X004322Y004333D01* +X004322Y003875D01* +X004193Y003746D01* +X004054Y003746D01* +X004035Y003727D01* +X004208Y003727D01* +X004213Y003732D01* +X004746Y003732D01* +X004746Y004193D01* +X004854Y004301D01* +X004854Y004853D01* +X004983Y004982D01* +X005001Y004982D01* +X005001Y005185D01* +X005359Y005185D01* +X005359Y005185D01* +X005001Y005185D01* +X005001Y005391D01* +X005016Y005447D01* +X005045Y005497D01* +X005086Y005538D01* +X005136Y005567D01* +X005192Y005582D01* +X005359Y005582D01* +X005359Y005185D01* +X005359Y005185D01* +X005359Y005582D01* +X005526Y005582D01* +X005582Y005567D01* +X005610Y005551D01* +X005642Y005582D01* +X006100Y005582D01* +X006229Y005453D01* +X006229Y005386D01* +X006239Y005389D01* +X006445Y005389D01* +X006445Y005031D01* +X006445Y005031D01* +X006445Y005389D01* +X006651Y005389D01* +X006698Y005376D01* +X006698Y005443D01* +X006744Y005490D01* +X006741Y005493D01* +X006713Y005543D01* +X006698Y005599D01* +X006698Y005785D01* +X007075Y005785D01* +X007075Y005785D01* +X006698Y005785D01* +X006698Y005972D01* +X006713Y006028D01* +X006741Y006078D01* +X006782Y006119D01* +X006833Y006148D01* +X006889Y006163D01* +X007075Y006163D01* +X007075Y005785D01* +X007075Y006163D01* +X007261Y006163D01* +X007317Y006148D01* +X007321Y006146D01* +X007333Y006153D01* +X007389Y006168D01* +X007575Y006168D01* +X007575Y005790D01* +X007575Y005790D01* +X007952Y005790D01* +X007952Y005607D01* +X008010Y005665D01* +X008010Y005728D01* +X008062Y005853D01* +X008139Y005930D01* +X008026Y005930D01* +X007970Y005945D01* +X007952Y005955D01* +X007952Y005790D01* +X007575Y005790D01* +X007575Y006168D01* +X007761Y006168D01* +X007817Y006153D01* +X007834Y006143D01* +X007834Y006288D01* +X008409Y006288D01* +X007834Y006233D02* +X005243Y006233D01* +X005243Y006471D02* +X006635Y006471D01* +X006445Y006710D02* +X005243Y006710D01* +X005243Y006948D02* +X006390Y006948D01* +X006435Y007187D02* +X005243Y007187D01* +X005243Y007425D02* +X006611Y007425D01* +X006464Y007664D02* +X005243Y007664D01* +X005243Y007902D02* +X006390Y007902D01* +X006416Y008141D02* +X005243Y008141D01* +X005243Y008379D02* +X006565Y008379D01* +X006500Y008618D02* +X005243Y008618D01* +X005243Y008856D02* +X006399Y008856D01* +X006390Y008960D02* +X006980Y008960D01* +X006980Y008960D01* +X006980Y009550D01* +X006934Y009550D01* +X006842Y009535D01* +X006754Y009507D01* +X006671Y009465D01* +X006596Y009410D01* +X006530Y009344D01* +X006475Y009269D01* +X006433Y009186D01* +X006405Y009098D01* +X006390Y009006D01* +X006390Y008960D01* +X006404Y009095D02* +X005243Y009095D01* +X005243Y009333D02* +X006522Y009333D01* +X006980Y009333D02* +X006980Y009333D01* +X006980Y009095D02* +X006980Y009095D01* +X007438Y009333D02* +X007650Y009333D01* +X007650Y009572D02* +X005243Y009572D01* +X005243Y009810D02* +X007650Y009810D01* +X007721Y010049D02* +X005120Y010049D01* +X004669Y010049D02* +X004669Y010049D01* +X004669Y010071D02* +X004285Y010071D01* +X004229Y010056D01* +X004179Y010027D01* +X004138Y009986D01* +X004109Y009936D01* +X004094Y009880D01* +X004094Y009713D01* +X004669Y009713D01* +X004669Y009713D01* +X004669Y010071D01* +X004669Y009810D02* +X004669Y009810D01* +X004669Y009713D02* +X004669Y009713D01* +X004217Y010049D02* +X003860Y010049D01* +X003860Y009810D02* +X004094Y009810D01* +X007460Y008618D02* +X007834Y008618D01* +X007834Y008856D02* +X007561Y008856D01* +X007556Y009095D02* +X007768Y009095D01* +X007834Y008379D02* +X007395Y008379D01* +X007544Y008141D02* +X007834Y008141D01* +X007723Y007902D02* +X007570Y007902D01* +X007470Y007616D02* +X007470Y007502D01* +X007522Y007377D01* +X007617Y007282D01* +X007693Y007250D01* +X007783Y007092D01* +X007808Y007049D01* +X007809Y007048D01* +X007810Y007046D01* +X007824Y007035D01* +X007747Y007035D01* +X007622Y006983D01* +X007570Y006931D01* +X007570Y007077D01* +X007480Y007294D01* +X007314Y007460D01* +X007470Y007616D01* +X007502Y007425D02* +X007349Y007425D01* +X007525Y007187D02* +X007730Y007187D01* +X007587Y006948D02* +X007570Y006948D01* +X007558Y006471D02* +X007325Y006471D01* +X007575Y005994D02* +X007575Y005994D01* +X007575Y005790D02* +X007575Y005790D01* +X007952Y005756D02* +X008022Y005756D01* +X007075Y005785D02* +X007075Y005785D01* +X006698Y005756D02* +X002127Y005756D01* +X002190Y005994D02* +X004159Y005994D01* +X004094Y006233D02* +X001200Y006233D01* +X002173Y004802D02* +X002893Y004802D01* +X002893Y004563D02* +X002184Y004563D01* +X002190Y004325D02* +X002893Y004325D01* +X002893Y004086D02* +X002190Y004086D01* +X002181Y003848D02* +X002893Y003848D01* +X004294Y003848D02* +X004746Y003848D01* +X004746Y004086D02* +X004322Y004086D01* +X004322Y004325D02* +X004854Y004325D01* +X004854Y004563D02* +X004322Y004563D01* +X004322Y004802D02* +X004854Y004802D01* +X005001Y005040D02* +X004559Y005040D01* +X004559Y005279D02* +X005001Y005279D01* +X005065Y005517D02* +X004521Y005517D01* +X004201Y005517D02* +X004201Y005517D01* +X004201Y005279D02* +X004201Y005279D01* +X004201Y005215D02* +X004201Y005215D01* +X005359Y005279D02* +X005359Y005279D01* +X005359Y005517D02* +X005359Y005517D01* +X006165Y005517D02* +X006727Y005517D01* +X006440Y005350D02* +X006445Y005031D01* +X006445Y005040D02* +X006445Y005040D01* +X006445Y005279D02* +X006445Y005279D01* +X006703Y005994D02* +X005178Y005994D01* +X007075Y005994D02* +X007075Y005994D01* +X004094Y007395D02* +X004094Y007573D01* +X003860Y007573D01* +X003860Y007473D01* +X003887Y007473D01* +X004012Y007422D01* +X004038Y007395D01* +X004094Y007395D01* +X004094Y007425D02* +X004003Y007425D01* +X009907Y009054D02* +X009907Y009086D01* +X010123Y009086D01* +X010123Y009584D01* +X010197Y009584D01* +X010197Y009086D01* +X010394Y009086D01* +X010398Y009070D01* +X010394Y009054D01* +X009907Y009054D01* +X010123Y009095D02* +X010197Y009095D01* +X010197Y009333D02* +X010123Y009333D01* +X010123Y009572D02* +X010197Y009572D01* +X011360Y009263D02* +X011360Y009178D01* +X011360Y009112D01* +X011360Y009112D01* +X011360Y009178D01* +X011360Y009178D01* +X011360Y009263D01* +X011360Y009263D01* +X011360Y009178D02* +X011360Y009178D01* +X011360Y009028D02* +X011360Y008962D01* +X011360Y009028D01* +X011360Y009028D01* +X011360Y008962D02* +X011360Y008962D01* +X011360Y008877D01* +X011360Y008903D01* +X011360Y008962D01* +X011360Y008962D01* +X011360Y008877D02* +X011360Y008877D01* +X012597Y009584D02* +X012597Y009659D01* +X013134Y009659D01* +X013134Y009965D01* +X013119Y010021D01* +X013090Y010071D01* +X013049Y010112D01* +X012999Y010141D01* +X012966Y010150D01* +X013382Y010150D01* +X013328Y010097D01* +X013277Y009972D01* +X013277Y009838D01* +X013328Y009713D01* +X013357Y009684D01* +X013291Y009618D01* +X013291Y009372D01* +X013172Y009323D01* +X013134Y009285D01* +X013134Y009584D01* +X012597Y009584D01* +X013134Y009572D02* +X013291Y009572D01* +X013288Y009810D02* +X013134Y009810D01* +X013103Y010049D02* +X013308Y010049D01* +X013196Y009333D02* +X013134Y009333D01* +X014161Y009350D02* +X014525Y008950D01* +X014546Y008937D02* +X014520Y008975D01* +X014515Y008978D01* +X014511Y008983D01* +X014472Y009006D01* +X014454Y009017D01* +X014475Y009038D01* +X014504Y009088D01* +X014519Y009144D01* +X014519Y009350D01* +X014519Y009433D01* +X014559Y009433D01* +X014550Y009423D01* +X014550Y008932D01* +X014546Y008937D01* +X014550Y009095D02* +X014505Y009095D01* +X014519Y009333D02* +X014550Y009333D01* +X014519Y009350D02* +X014165Y009350D01* +X014519Y009350D01* +X014165Y009350D02* +X014165Y009350D01* +X015490Y008323D02* +X015524Y008294D01* +X015552Y007445D01* +X015490Y007381D01* +X015490Y007534D01* +X015490Y007849D01* +X015490Y007963D01* +X015490Y008323D01* +X015490Y008141D02* +X015529Y008141D01* +X015490Y007963D02* +X015376Y007963D01* +X015376Y007963D01* +X015376Y007963D01* +X015490Y007963D01* +X015490Y007902D02* +X015537Y007902D01* +X015544Y007664D02* +X015490Y007664D01* +X015490Y007425D02* +X015532Y007425D01* +X015969Y007130D02* +X016004Y007166D01* +X016039Y007203D01* +X016039Y007204D01* +X016040Y007205D01* +X016058Y007252D01* +X016076Y007300D01* +X016076Y007301D01* +X016077Y007302D01* +X016075Y007352D01* +X016074Y007403D01* +X016073Y007404D01* +X016044Y008303D01* +X016115Y007874D01* +X016115Y006932D01* +X016114Y006900D01* +X016050Y006900D01* +X016050Y006938D01* +X015998Y007063D01* +X015951Y007110D01* +X015968Y007129D01* +X015969Y007130D01* +X016023Y007187D02* +X016115Y007187D01* +X016115Y007425D02* +X016073Y007425D01* +X016065Y007664D02* +X016115Y007664D01* +X016110Y007902D02* +X016057Y007902D01* +X016049Y008141D02* +X016071Y008141D01* +X017226Y008701D02* +X017364Y008636D01* +X017408Y008616D01* +X017410Y008614D01* +X017413Y008613D01* +X017445Y008578D01* +X017447Y008583D01* +X017542Y008678D01* +X017667Y008730D01* +X017726Y008730D01* +X017675Y008852D01* +X017675Y008988D01* +X017727Y009113D01* +X017822Y009208D01* +X017930Y009253D01* +X017930Y009340D01* +X017370Y009340D01* +X017359Y009324D01* +X017205Y008958D01* +X017226Y008701D01* +X017213Y008856D02* +X017675Y008856D01* +X017482Y008618D02* +X017406Y008618D01* +X017262Y009095D02* +X017719Y009095D01* +X017930Y009333D02* +X017365Y009333D01* +X018142Y009921D02* +X018142Y010150D01* +X018597Y010150D01* +X018597Y010068D01* +X018648Y009943D01* +X018743Y009848D01* +X018868Y009797D01* +X018932Y009797D01* +X018997Y009732D01* +X019122Y009680D01* +X019222Y009680D01* +X019157Y009653D01* +X019062Y009558D01* +X019010Y009433D01* +X019010Y009382D01* +X018980Y009382D01* +X018919Y009443D01* +X018823Y009482D01* +X018811Y009482D01* +X018741Y009552D01* +X018708Y009552D01* +X018743Y009638D01* +X018743Y009772D01* +X018692Y009897D01* +X018597Y009992D01* +X018472Y010043D01* +X018338Y010043D01* +X018213Y009992D01* +X018142Y009921D01* +X018142Y010049D02* +X018605Y010049D01* +X018727Y009810D02* +X018836Y009810D01* +X018716Y009572D02* +X019076Y009572D01* +X019318Y009705D02* +X019383Y009732D01* +X019478Y009827D01* +X019493Y009862D01* +X019525Y009840D01* +X019586Y009815D01* +X019652Y009802D01* +X019685Y009802D01* +X019685Y010140D01* +X019685Y009802D01* +X019690Y009802D01* +X019690Y009382D01* +X019690Y009433D01* +X019638Y009558D01* +X019543Y009653D01* +X019418Y009705D01* +X019318Y009705D01* +X019461Y009810D02* +X019611Y009810D01* +X019685Y009810D02* +X019685Y009810D01* +X019685Y010049D02* +X019685Y010049D01* +X019685Y010140D02* +X019685Y010140D01* +X019690Y009572D02* +X019624Y009572D01* +X019690Y009382D02* +X019690Y009382D01* +X019516Y008470D02* +X019362Y008470D01* +X019516Y008470D01* +X019516Y008197D01* +X019516Y007800D01* +X019516Y007800D01* +X019516Y008470D01* +X019516Y008470D01* +X019516Y008470D01* +X019516Y008379D02* +X019516Y008379D01* +X019362Y008470D02* +X019362Y008470D01* +X019516Y008141D02* +X019516Y008141D01* +X019516Y007902D02* +X019516Y007902D01* +X017930Y007902D02* +X017724Y007902D01* +X017930Y007761D02* +X017930Y008104D01* +X017928Y008102D01* +X017803Y008050D01* +X017668Y008050D01* +X017828Y007630D01* +X017858Y007618D01* +X017930Y007546D01* +X017930Y007761D01* +X017930Y007664D02* +X017816Y007664D01* +X016115Y006948D02* +X016046Y006948D01* +X014409Y007829D02* +X014401Y007827D01* +X014371Y007824D01* +X014352Y007815D01* +X013383Y007569D01* +X013157Y007632D01* +X013157Y007710D01* +X013032Y007835D01* +X013092Y007835D01* +X013187Y007875D01* +X013260Y007948D01* +X013300Y008043D01* +X013300Y008047D01* +X013350Y007997D01* +X013350Y007937D01* +X013402Y007812D01* +X013497Y007717D01* +X013622Y007665D01* +X013758Y007665D01* +X013883Y007717D01* +X013978Y007812D01* +X014030Y007937D01* +X014030Y007952D01* +X014365Y007952D01* +X014408Y007994D01* +X014409Y007829D01* +X014409Y007902D02* +X014015Y007902D01* +X013756Y007664D02* +X013157Y007664D01* +X013215Y007902D02* +X013365Y007902D01* +X018570Y006270D02* +X018715Y006270D01* +X018570Y006270D01* +X018570Y006270D01* +X018715Y006270D02* +X018715Y006270D01* +X001200Y004086D02* +X001140Y004086D01* +D49* +X005616Y003925D02* +X005995Y003650D01* +X006365Y003225D01* +X007775Y003055D02* +X008245Y003520D01* +X008370Y003635D01* +X008820Y003670D01* +X008954Y003710D01* +X009005Y003659D01* +X009239Y003910D02* +X008750Y003910D01* +X008574Y003964D01* +X008560Y003950D01* +X008574Y003964D02* +X008520Y003980D01* +X008165Y003980D01* +X008165Y003842D01* +X008164Y003842D01* +X007967Y003842D02* +X007960Y003849D01* +X007960Y004180D01* +X009010Y004180D01* +X009005Y004175D01* +X009005Y004171D01* +X009010Y004180D02* +X009100Y004180D01* +X009449Y004315D01* +X008970Y004565D02* +X008970Y004830D01* +X008977Y004837D01* +X008977Y004884D01* +X008977Y005356D02* +X008870Y005650D01* +X008665Y005880D01* +X008630Y006255D02* +X007825Y006280D01* +X007815Y006695D02* +X008110Y006670D01* +X010390Y005825D02* +X010375Y005780D01* +X010130Y004845D02* +X010140Y004825D01* +X010450Y004470D02* +X010650Y004670D01* +X010733Y004670D01* +X011160Y004243D01* +X011160Y004170D01* +X011160Y004165D01* +X010733Y004592D01* +X010733Y004670D01* +X010750Y004670D01* +X010745Y004665D01* +X010745Y004675D01* +X011160Y004260D01* +X011160Y004170D01* +X010450Y004470D02* +X010461Y004510D01* +X009961Y004315D01* +X009961Y003825D01* +X010150Y003485D02* +X010150Y003365D01* +X009830Y003030D01* +X009449Y003825D02* +X009239Y003910D01* +X010730Y004655D02* +X010735Y004655D01* +X010745Y004665D01* +X011960Y004270D02* +X011960Y004170D01* +X011960Y004270D02* +X012360Y004670D01* +X012387Y004670D01* +X015170Y005495D02* +X015185Y005774D01* +X015134Y005800D01* +X011760Y007820D02* +X011754Y008489D01* +X011760Y008520D01* +X012310Y008520D01* +X012560Y008519D01* +X012560Y008520D01* +X012310Y008520D01* +X011560Y008520D02* +X011557Y008489D01* +X011560Y008520D02* +X011560Y008720D01* +X011360Y008920D01* +X011360Y009070D01* +X011360Y009220D01* +X011160Y009420D01* +X011160Y009620D01* +X011163Y009651D01* +X011160Y009670D01* +X011360Y009670D02* +X011360Y009651D01* +X011360Y009670D02* +X011510Y009670D01* +X011557Y009651D01* +X011510Y009720D01* +X013210Y009920D02* +X013310Y009984D01* +X014705Y010185D02* +X018610Y010185D01* +X018140Y010190D02* +X018140Y009580D01* +X017860Y009295D01* +X016565Y009365D02* +X016530Y009830D01* +X016240Y009810D02* +X016238Y009810D01* +X015572Y008302D02* +X015540Y008280D01* +X015230Y007970D01* +X015020Y007970D01* +X015020Y007963D01* +X011360Y007815D02* +X011360Y008489D01* +X011160Y008320D02* +X011010Y008160D01* +X010590Y007990D01* +X009850Y007990D02* +X009650Y008125D01* +X009655Y008134D01* +X009505Y008870D01* +X010160Y008520D02* +X010960Y008520D01* +X003249Y008550D02* +X003245Y008544D01* +X003245Y009056D02* +X003111Y009156D01* +X003260Y009320D01* +X001729Y007490D02* +X001729Y006761D01* +X001735Y006755D01* +X002085Y006755D01* +X007376Y002268D02* +X007375Y001950D01* +X007770Y001985D02* +X007770Y002268D01* +X007967Y002268D02* +X007967Y002088D01* +X009285Y000515D02* +X009440Y000420D01* +X010230Y000425D01* +X015060Y000685D02* +X015060Y001420D01* +X015060Y002175D01* +X015395Y002615D01* +X018179Y002776D02* +X018210Y002770D01* +X018210Y002970D02* +X018179Y002973D01* +X018210Y002970D02* +X018410Y002970D01* +X018610Y003170D01* +X018760Y003170D01* +X018910Y003170D01* +X019110Y003370D01* +X019310Y003370D01* +X019341Y003367D01* +X019360Y003370D01* +X019360Y003170D02* +X019341Y003170D01* +X019360Y003170D02* +X019360Y003020D01* +X019341Y002973D01* +X019360Y002970D01* +X019360Y002820D01* +X019341Y002776D01* +X019410Y001971D02* +X019410Y001970D01* +X019610Y001770D01* +X019610Y001470D01* +X019410Y000870D02* +X019410Y000869D01* +X016770Y000535D02* +X016765Y000535D01* +X016770Y000535D02* +X016530Y000425D01* +X015320Y000425D01* +X015060Y000685D01* +X001490Y000780D02* +X001490Y001395D01* +X019420Y009175D02* +X019521Y008985D01* +X019510Y008920D01* +X019420Y009175D02* +X019350Y009365D01* +D50* +X019350Y009365D03* +X019675Y009400D03* +X019495Y009760D03* +X019190Y010020D03* +X018715Y009505D03* +X017865Y009300D03* +X018015Y008920D03* +X017655Y008785D03* +X017270Y008755D03* +X017735Y008390D03* +X017070Y008240D03* +X017820Y007915D03* +X017890Y007585D03* +X017665Y007330D03* +X017635Y006965D03* +X017145Y007190D03* +X016890Y007370D03* +X016610Y007215D03* +X016960Y006920D03* +X016090Y007540D03* +X016085Y007880D03* +X015515Y007500D03* +X014495Y007050D03* +X014965Y006365D03* +X015710Y006870D03* +X015925Y006105D03* +X016360Y005970D03* +X015940Y005750D03* +X015645Y005440D03* +X015170Y005495D03* +X014690Y005600D03* +X014100Y005000D03* +X014155Y004475D03* +X014630Y004440D03* +X014335Y004010D03* +X015195Y003545D03* +X016160Y003860D03* +X016465Y003735D03* +X016815Y003890D03* +X016380Y004190D03* +X015715Y004235D03* +X016080Y004605D03* +X015162Y004830D03* +X016510Y005250D03* +X016875Y005540D03* +X018360Y005020D03* +X018530Y005330D03* +X019430Y005075D03* +X019435Y004690D03* +X019440Y004260D03* +X019180Y003880D03* +X018585Y003990D03* +X017540Y003735D03* +X017110Y004345D03* +X017185Y004660D03* +X018415Y004645D03* +X019460Y005785D03* +X018625Y005990D03* +X018535Y006520D03* +X019755Y007810D03* +X017395Y009305D03* +X016565Y009365D03* +X015980Y009365D03* +X015655Y008920D03* +X016010Y008670D03* +X015520Y008270D03* +X014380Y007890D03* +X013690Y008005D03* +X013325Y007720D03* +X012790Y007860D03* +X012010Y008270D03* +X012310Y009070D03* +X013365Y009035D03* +X014440Y009460D03* +X015275Y009745D03* +X014705Y010190D03* +X014525Y008950D03* +X012020Y009675D03* +X011510Y009950D03* +X011225Y010170D03* +X010710Y009920D03* +X009250Y008330D03* +X009035Y008050D03* +X007810Y007570D03* +X007815Y006695D03* +X007450Y006355D03* +X007825Y006280D03* +X008055Y005900D03* +X008350Y005660D03* +X008870Y005650D03* +X009745Y005660D03* +X010390Y005825D03* +X011360Y004960D03* +X011745Y004960D03* +X011740Y004625D03* +X011355Y004625D03* +X010470Y004095D03* +X010120Y004865D03* +X008970Y004565D03* +X008005Y004840D03* +X007945Y004455D03* +X007118Y003754D03* +X009270Y002900D03* +X009265Y002570D03* +X009260Y002225D03* +X009795Y002190D03* +X009660Y001535D03* +X010245Y001080D03* +X010490Y001495D03* +X011310Y000800D03* +X013015Y001585D03* +X012050Y001845D03* +X011795Y002185D03* +X012920Y002560D03* +X013820Y003225D03* +X013275Y003390D03* +X013355Y004205D03* +X012935Y004295D03* +X012955Y005520D03* +X012610Y005800D03* +X012655Y006255D03* +X013395Y005795D03* +X013145Y006955D03* +X009895Y007085D03* +X007065Y006360D03* +X006695Y006370D03* +X002450Y003475D03* +X004860Y002610D03* +X006865Y001795D03* +X008380Y001940D03* +X009830Y003030D03* +X009715Y003410D03* +X010730Y003250D03* +X014755Y002510D03* +X015435Y002605D03* +X015945Y002725D03* +X018000Y002070D03* +X018805Y002280D03* +X019460Y002470D03* +X019610Y001470D03* +X016740Y001320D03* +X008800Y000800D03* +D51* +X008800Y001004D01* +X008330Y000869D02* +X008315Y000505D01* +X008580Y000510D01* +X009675Y000759D02* +X009766Y000870D01* +X009875Y000870D01* +X010030Y000980D01* +X010245Y001080D01* +X010365Y001275D02* +X009950Y001625D01* +X009705Y001775D01* +X009705Y001765D01* +X008975Y001765D01* +X008730Y002655D01* +X008565Y002665D01* +X008565Y002660D01* +X008560Y002860D02* +X008895Y002805D01* +X009265Y002570D01* +X009270Y002900D02* +X008557Y003055D01* +X008557Y003252D02* +X008775Y003245D01* +X009240Y003245D01* +X009400Y003210D01* +X009540Y003040D01* +X009540Y002055D01* +X010085Y001735D01* +X010545Y001790D01* +X012050Y001845D01* +X012250Y001695D02* +X012400Y002640D01* +X012387Y002670D01* +X012310Y002670D01* +X012360Y002670D02* +X012387Y002670D01* +X012360Y002670D02* +X011960Y003070D01* +X011960Y003170D01* +X011160Y003170D02* +X011160Y003070D01* +X010760Y002670D01* +X010733Y002670D01* +X010960Y002920D01* +X010120Y002820D02* +X009978Y002962D01* +X009972Y002962D01* +X009986Y002948D01* +X010000Y002948D01* +X010040Y002820D02* +X009830Y003030D01* +X009820Y003040D01* +X009750Y002845D01* +X010040Y002820D02* +X010120Y002820D01* +X009715Y003410D02* +X008760Y003395D01* +X008759Y003407D01* +X008755Y003418D01* +X008748Y003429D01* +X008740Y003437D01* +X008729Y003444D01* +X008718Y003448D01* +X008706Y003449D01* +X008557Y003449D01* +X008240Y003535D02* +X008170Y003535D01* +X007775Y003055D01* +X007770Y003405D01* +X007775Y003055D02* +X007770Y003842D01* +X007573Y003842D02* +X007575Y004324D01* +X007075Y004329D02* +X007376Y003842D01* +X007118Y003754D02* +X006840Y004010D01* +X006445Y004519D01* +X007075Y004841D02* +X007075Y005195D01* +X007575Y005200D02* +X007575Y004836D01* +X008005Y004840D02* +X008269Y004884D01* +X008269Y005356D02* +X008350Y005660D01* +X008895Y006075D02* +X009025Y005810D01* +X009495Y005810D01* +X009720Y005920D01* +X010390Y005825D01* +X010060Y005815D01* +X009570Y006070D02* +X009645Y007190D01* +X010225Y007636D01* +X010590Y007990D02* +X009850Y007990D01* +X009655Y008134D02* +X009645Y007840D01* +X009160Y007720D02* +X009160Y007676D01* +X009160Y007720D02* +X008710Y007670D01* +X008410Y007570D01* +X008409Y007567D01* +X008360Y007120D02* +X008010Y007220D01* +X007810Y007570D01* +X008360Y007120D02* +X008409Y007134D01* +X008409Y006701D02* +X008360Y006670D01* +X008110Y006670D01* +X008395Y006700D02* +X008400Y006685D01* +X008408Y006697D02* +X008395Y006700D01* +X008408Y006697D02* +X008795Y006595D01* +X008895Y006435D01* +X008895Y006075D01* +X008710Y006270D02* +X008630Y006270D01* +X008630Y006255D01* +X008630Y006270D02* +X008410Y006270D01* +X008409Y006288D01* +X008410Y006270D02* +X008410Y006320D01* +X008710Y006270D02* +X007825Y006280D01* +X007075Y005785D02* +X006490Y005590D01* +X006430Y005415D01* +X006420Y005400D01* +X006435Y005395D01* +X006450Y005385D01* +X006430Y005355D01* +X006440Y005350D01* +X004669Y006701D02* +X003815Y006700D01* +X003405Y006919D02* +X002900Y006900D01* +X002880Y006880D01* +X002830Y006750D01* +X002890Y006920D01* +X002900Y006900D02* +X002891Y007490D01* +X003405Y007431D02* +X003405Y007925D01* +X003610Y008175D01* +X003860Y008435D01* +X003951Y007970D02* +X004610Y008070D01* +X004660Y008020D01* +X004669Y008000D01* +X003439Y007970D02* +X003360Y008070D01* +X003439Y007970D02* +X003405Y007925D01* +X003820Y007135D02* +X004680Y007135D01* +X004665Y007130D01* +X004669Y007134D01* +X003315Y006750D02* +X003145Y006450D01* +X002425Y006750D02* +X002135Y006705D01* +X002085Y006755D01* +X003860Y009105D02* +X003860Y009320D01* +X004660Y009320D02* +X004669Y009300D01* +X007910Y009320D02* +X008160Y009070D01* +X008360Y009270D01* +X008409Y009300D01* +X008160Y009070D02* +X008360Y008870D01* +X008409Y008866D01* +X008410Y008870D01* +X009505Y008870D01* +X009510Y009214D01* +X009510Y009220D01* +X009060Y009220D01* +X009060Y009214D01* +X009060Y009720D02* +X008410Y009720D01* +X008409Y009713D01* +X007910Y009870D02* +X007910Y009320D01* +X007910Y009870D02* +X008260Y010220D01* +X010760Y010220D01* +X010960Y010020D01* +X010960Y009670D01* +X010966Y009651D01* +X011160Y009670D02* +X011160Y009220D01* +X012010Y009220D01* +X012260Y009370D01* +X012710Y009870D01* +X012960Y010170D01* +X013310Y010170D01* +X014705Y010190D01* +X014970Y009930D02* +X015009Y009716D01* +X014740Y009720D01* +X014466Y009830D01* +X014440Y009460D02* +X014600Y008740D01* +X015020Y008592D01* +X015460Y008470D01* +X015572Y008302D01* +X015520Y008270D01* +X015780Y008415D02* +X015815Y007345D01* +X015410Y006920D01* +X015410Y006870D01* +X015160Y006620D01* +X014860Y006620D01* +X014410Y006170D01* +X014410Y005970D01* +X014310Y005870D01* +X014010Y005870D01* +X013960Y005820D01* +X013960Y005255D01* +X014165Y005230D01* +X014375Y005140D01* +X014435Y005025D01* +X014520Y004770D01* +X014410Y004500D01* +X014405Y004350D01* +X014360Y004270D01* +X014210Y004225D01* +X014070Y004120D01* +X014065Y003940D01* +X014130Y003775D01* +X014320Y003740D01* +X014555Y003810D01* +X014845Y003845D01* +X015130Y003835D01* +X015240Y003670D01* +X015195Y003545D01* +X015760Y003580D02* +X015755Y003671D01* +X014981Y004160D01* +X014816Y004160D01* +X014631Y004115D01* +X014335Y004010D01* +X013910Y004165D02* +X013905Y004160D01* +X013674Y004160D01* +X013910Y004165D02* +X013910Y004870D01* +X013630Y005505D01* +X013710Y005570D01* +X013710Y005770D01* +X013910Y005970D01* +X013910Y006470D01* +X013860Y006520D01* +X013460Y006520D01* +X013380Y006650D01* +X013380Y007300D01* +X014445Y007570D01* +X015010Y007620D01* +X015020Y007648D01* +X015060Y007670D01* +X014780Y007700D01* +X014670Y007770D01* +X014665Y008285D01* +X015060Y008270D01* +X015020Y008277D01* +X015010Y008320D01* +X014690Y008315D01* +X014665Y008285D01* +X014690Y008315D02* +X014335Y008785D01* +X013905Y009065D01* +X013905Y009740D01* +X013954Y009830D01* +X013615Y009905D01* +X013310Y010170D02* +X013210Y010020D01* +X012960Y010170D02* +X011225Y010170D01* +X010710Y009920D02* +X010560Y010070D01* +X009360Y010070D01* +X009060Y009770D01* +X009060Y009726D01* +X009060Y009720D01* +X009510Y009726D02* +X010160Y009621D01* +X010210Y009070D01* +X010160Y008520D02* +X010160Y008519D01* +X010960Y008520D02* +X010966Y008489D01* +X011160Y008470D02* +X011163Y008489D01* +X011160Y008470D02* +X011160Y008320D01* +X010590Y007990D02* +X009645Y007190D01* +X009160Y007164D02* +X009265Y006670D01* +X009160Y006120D02* +X009265Y006080D01* +X009290Y006065D01* +X009570Y006070D01* +X009430Y006095D01* +X009570Y006070D02* +X011054Y006070D01* +X011566Y006070D02* +X011835Y006075D01* +X012215Y006255D01* +X012655Y006255D01* +X013030Y006291D02* +X013220Y006540D01* +X013145Y006955D01* +X012760Y006969D01* +X012345Y007120D02* +X012345Y007820D01* +X011760Y007820D01* +X011360Y007815D02* +X010820Y007800D01* +X010815Y007125D01* +X011110Y007120D01* +X012110Y007120D02* +X012345Y007120D01* +X012760Y007481D02* +X012915Y007430D01* +X013380Y007300D01* +X013325Y007720D02* +X012780Y007855D01* +X013040Y008095D02* +X013040Y008755D01* +X013050Y008810D01* +X013365Y009035D01* +X012560Y009621D02* +X012410Y009486D01* +X012020Y009675D02* +X011760Y009670D01* +X011754Y009651D01* +X013830Y008400D02* +X014005Y008305D01* +X013690Y008005D01* +X013040Y008095D02* +X012100Y008095D01* +X012010Y008270D01* +X014495Y007050D02* +X014700Y007330D01* +X015010Y007370D01* +X015020Y007333D01* +X015010Y007020D02* +X015020Y007018D01* +X015010Y007020D02* +X014410Y006420D01* +X013960Y006870D01* +X013250Y006525D02* +X013221Y006445D01* +X013030Y006291D01* +X013250Y006525D02* +X013510Y006220D01* +X013654Y006220D01* +X013395Y005795D01* +X013040Y005855D02* +X013030Y005779D01* +X013040Y005855D02* +X012955Y005810D01* +X012955Y005520D01* +X013699Y005525D02* +X013710Y005570D01* +X014211Y005525D02* +X014260Y005570D01* +X014260Y005470D01* +X014435Y005470D01* +X014835Y004895D01* +X014835Y004755D01* +X014821Y004751D01* +X014816Y004751D01* +X014690Y004625D01* +X014670Y004585D01* +X014630Y004440D01* +X014965Y004495D02* +X015085Y004420D01* +X015300Y004235D01* +X015715Y004235D01* +X015900Y003930D02* +X016293Y004445D01* +X016475Y004790D01* +X016505Y005235D01* +X016510Y005250D01* +X016875Y005540D02* +X017075Y006125D01* +X017210Y006470D01* +X017182Y006430D01* +X016867Y006430D02* +X016860Y006420D01* +X016785Y005970D01* +X016730Y005740D01* +X016675Y005655D01* +X015955Y005275D01* +X015625Y005150D01* +X015395Y005280D01* +X015395Y006055D01* +X015110Y006320D01* +X014965Y006365D01* +X014410Y006420D02* +X014210Y006220D01* +X014166Y006220D01* +X015608Y006430D02* +X015610Y006470D01* +X015710Y006570D01* +X015710Y006870D01* +X016375Y006930D02* +X016960Y006920D01* +X017145Y007190D02* +X017140Y007455D01* +X016990Y007725D01* +X016870Y007985D01* +X016830Y008265D01* +X016780Y009050D01* +X016815Y009230D01* +X016850Y009375D01* +X016867Y009810D01* +X016860Y009770D01* +X017182Y009810D02* +X017210Y009820D01* +X017130Y009450D01* +X016940Y009000D01* +X016980Y008530D01* +X017255Y008400D01* +X017665Y007330D01* +X017445Y007220D02* +X017070Y008240D01* +X017410Y008500D02* +X017605Y008120D01* +X017695Y007795D01* +X017890Y007585D01* +X018160Y007320D02* +X018010Y007170D01* +X018010Y006770D01* +X018060Y006720D01* +X018060Y005620D01* +X017860Y005420D01* +X017809Y005370D01* +X017810Y005420D01* +X017810Y005270D01* +X017410Y004870D01* +X017410Y003995D01* +X017845Y003995D01* +X017845Y003470D01* +X017860Y003470D01* +X017995Y003365D02* +X018195Y003365D01* +X018179Y003367D01* +X018179Y003564D02* +X018160Y003570D01* +X017540Y003735D02* +X017185Y003690D01* +X016730Y003650D01* +X016465Y003735D01* +X016730Y003645D02* +X017520Y003735D01* +X017185Y003690D01* +X016815Y003890D02* +X016860Y004010D01* +X016850Y004310D01* +X016890Y004460D01* +X016990Y004575D01* +X017185Y004660D01* +X017125Y005065D02* +X016740Y004545D01* +X016550Y004010D01* +X016160Y003860D01* +X015900Y003930D02* +X015760Y003580D01* +X015760Y003585D02* +X015755Y003671D01* +X015885Y003915D02* +X016293Y004445D01* +X016380Y004190D02* +X016580Y004620D01* +X017080Y005410D01* +X017155Y005750D01* +X017220Y005975D01* +X017430Y006075D01* +X017460Y006420D01* +X017497Y006430D01* +X017810Y006420D02* +X017812Y006430D01* +X017810Y006420D02* +X017810Y006070D01* +X017710Y005970D01* +X017355Y005830D01* +X017265Y005345D01* +X017125Y005065D01* +X016570Y005800D02* +X016005Y005510D01* +X015645Y005440D01* +X015646Y005800D02* +X015940Y005750D01* +X016360Y005970D02* +X016238Y006430D01* +X016553Y006430D02* +X016625Y006155D01* +X016570Y005800D01* +X015925Y006105D02* +X015923Y006430D01* +X016375Y006930D02* +X016375Y007895D01* +X016225Y008800D01* +X015760Y009190D01* +X015608Y009810D01* +X015910Y009770D02* +X015923Y009810D01* +X015910Y009770D02* +X015910Y009570D01* +X015980Y009365D01* +X016260Y009200D02* +X016390Y008960D01* +X016540Y007940D01* +X016610Y007215D01* +X016890Y007370D02* +X016705Y007945D01* +X016565Y009365D01* +X016260Y009200D02* +X016240Y009810D01* +X016510Y009820D02* +X016553Y009810D01* +X016530Y009830D02* +X016510Y009820D01* +X015275Y009745D02* +X015275Y009740D01* +X015060Y009715D01* +X015009Y009716D01* +X015020Y009222D02* +X015370Y009125D01* +X015400Y009120D01* +X015565Y008955D01* +X015655Y008920D01* +X015260Y008870D02* +X015780Y008415D01* +X016025Y008655D02* +X016010Y008670D01* +X016025Y008655D02* +X016025Y008060D01* +X016045Y008040D01* +X017410Y008500D02* +X017500Y008775D01* +X017655Y008785D01* +X018015Y008920D02* +X018400Y008907D01* +X018388Y008895D01* +X018400Y008592D02* +X018360Y008570D01* +X018150Y008580D01* +X017735Y008390D01* +X017930Y008180D02* +X018027Y008277D01* +X018400Y008277D01* +X018400Y008245D01* +X018665Y008245D01* +X018785Y008160D01* +X019500Y008160D01* +X019500Y008470D01* +X019516Y008470D01* +X019795Y008565D01* +X019795Y009135D01* +X019675Y009400D01* +X019009Y008985D02* +X019010Y008920D01* +X019010Y008470D01* +X019004Y008470D01* +X018400Y008277D02* +X017605Y008120D01* +X017760Y007990D02* +X017930Y008160D01* +X017930Y008180D01* +X017760Y007990D02* +X017760Y007975D01* +X017820Y007915D01* +X018400Y007963D02* +X018410Y007920D01* +X019004Y007800D01* +X019060Y007920D01* +X019130Y007670D01* +X019260Y007605D01* +X019310Y007480D01* +X019525Y007385D01* +X019525Y007360D01* +X019511Y007285D01* +X018999Y007285D02* +X018985Y007345D01* +X018620Y007345D01* +X018410Y007370D01* +X018400Y007333D01* +X018360Y007320D01* +X018160Y007320D01* +X018310Y006970D02* +X018310Y005070D01* +X018360Y005020D01* +X018911Y005370D02* +X018710Y006270D01* +X018715Y006270D02* +X018545Y006440D01* +X018535Y006520D01* +X018410Y007020D02* +X018994Y006780D01* +X019506Y006780D02* +X019510Y006780D01* +X019510Y006420D01* +X019305Y006270D01* +X018410Y007020D02* +X018400Y007018D01* +X018360Y006970D01* +X018310Y006970D01* +X017635Y006965D02* +X017445Y007220D01* +X015260Y008870D02* +X015060Y008870D01* +X015020Y008907D01* +X018400Y009222D02* +X018403Y009222D01* +X018405Y009220D01* +X018400Y009230D01* +X018400Y009222D02* +X018772Y009222D01* +X019009Y008985D01* +X018405Y009220D02* +X018405Y009705D01* +X009745Y005361D02* +X009725Y005361D01* +X010470Y004095D02* +X010230Y003975D01* +X010230Y003565D01* +X010150Y003485D01* +X012010Y003670D02* +X012410Y003670D01* +X012935Y004295D01* +X013910Y004165D02* +X013910Y003650D01* +X014145Y003520D01* +X013910Y003620D02* +X013849Y003604D01* +X013910Y003620D02* +X013910Y003650D01* +X013674Y003570D02* +X013674Y003569D01* +X013674Y003570D02* +X013595Y003570D01* +X013820Y003225D02* +X013590Y002890D01* +X013390Y002700D01* +X013130Y002455D01* +X012890Y002215D01* +X012350Y001570D01* +X012160Y001270D01* +X011040Y001275D01* +X010365Y001275D01* +X010490Y001495D02* +X010506Y001526D01* +X010775Y001526D01* +X011310Y001526D01* +X011340Y001530D01* +X011880Y001530D01* +X011910Y001526D01* +X011950Y001530D01* +X012250Y001695D01* +X011910Y001526D02* +X011910Y001520D01* +X012160Y001040D02* +X012545Y001440D01* +X012715Y001625D01* +X013095Y002170D01* +X013330Y002405D01* +X013894Y002720D01* +X014155Y002395D02* +X014155Y003245D01* +X014406Y002720D02* +X014685Y002820D01* +X015440Y002870D01* +X015945Y002725D01* +X015765Y003075D02* +X015755Y003159D01* +X016180Y003455D02* +X016210Y001520D01* +X016360Y001370D01* +X016740Y001320D01* +X017110Y001370D02* +X016730Y000915D01* +X016495Y000680D01* +X016185Y000710D01* +X015560Y000920D01* +X015960Y001420D02* +X015060Y001420D01* +X013210Y001420D01* +X013210Y001380D01* +X013020Y001190D01* +X012160Y001040D02* +X012000Y001035D01* +X011940Y001040D01* +X011910Y001014D01* +X011880Y001020D01* +X011350Y001020D01* +X011310Y001014D01* +X011310Y000800D01* +X011280Y000990D02* +X011310Y001014D01* +X011310Y001020D01* +X011910Y001020D02* +X011910Y001014D01* +X011310Y001520D02* +X011310Y001526D01* +X009675Y001495D02* +X009675Y001271D01* +X009675Y001495D02* +X009660Y001535D01* +X009255Y002031D02* +X009260Y002225D01* +X008800Y001785D02* +X008630Y002400D01* +X008330Y002400D01* +X008166Y002270D01* +X008164Y002268D01* +X007967Y002088D02* +X008180Y001875D01* +X008315Y001875D01* +X008380Y001940D01* +X008800Y001785D02* +X008805Y001695D01* +X008800Y001516D01* +X007761Y001795D02* +X007770Y001985D01* +X007375Y001950D02* +X007249Y001795D01* +X007220Y001790D02* +X007220Y001355D01* +X006530Y001345D01* +X006530Y001790D01* +X007220Y001790D01* +X007220Y001762D02* +X006530Y001762D01* +X006530Y001683D02* +X007220Y001683D01* +X007220Y001605D02* +X006530Y001605D01* +X006530Y001526D02* +X007220Y001526D01* +X007220Y001448D02* +X006530Y001448D01* +X006530Y001369D02* +X007220Y001369D01* +X007279Y001330D02* +X007279Y000890D01* +X006466Y000890D02* +X006466Y001330D01* +X006458Y001841D02* +X006455Y002040D01* +X006795Y002375D02* +X006035Y002375D01* +X005550Y002510D02* +X005415Y002685D01* +X005290Y002760D01* +X004860Y002610D02* +X004873Y002567D01* +X004903Y002318D01* +X004845Y002376D01* +X004903Y002318D02* +X005045Y002176D01* +X004565Y002855D02* +X004445Y002855D01* +X004565Y002855D02* +X004665Y002955D01* +X006365Y003225D02* +X006690Y003055D01* +X006983Y003055D01* +X006983Y003252D02* +X006755Y003260D01* +X006715Y003615D01* +X006365Y003895D01* +X006980Y003460D02* +X007118Y003754D01* +X007514Y002799D02* +X007925Y002665D01* +X006983Y002661D01* +X006795Y002375D02* +X006990Y002275D01* +X006455Y002710D02* +X006485Y002859D01* +X009701Y000865D02* +X009675Y000759D01* +X012915Y002565D02* +X012920Y002560D01* +X012915Y002565D02* +X012925Y002575D01* +X012955Y003535D01* +X012537Y003670D02* +X012510Y003670D01* +X012537Y003670D02* +X012410Y003670D01* +X014155Y004475D02* +X014225Y004785D01* +X014210Y004900D01* +X014100Y005000D01* +X014225Y004895D01* +X014245Y004770D01* +X014835Y004755D02* +X014965Y004495D01* +X015162Y004830D02* +X015274Y005030D01* +X015271Y005032D01* +X017859Y004470D02* +X017860Y004470D01* +X018080Y004200D01* +X018585Y004400D02* +X018585Y003990D01* +X019180Y003880D02* +X019210Y003770D01* +X019310Y003670D01* +X019310Y003570D01* +X019341Y003564D01* +X018760Y004400D02* +X018585Y004400D01* +X017710Y003170D02* +X017060Y002970D01* +X018000Y002070D02* +X018000Y001585D01* +X017760Y001370D01* +X017110Y001370D01* +X014155Y002395D02* +X013560Y001920D01* +X013020Y000495D02* +X012995Y000470D01* +X012995Y000435D01* +X009035Y008050D02* +X008660Y008435D01* +X008655Y008445D01* +X008660Y008435D02* +X008545Y008435D01* +X008410Y008420D01* +X008409Y008433D01* +X009250Y008330D02* +X009285Y008580D01* +D52* +X010210Y009070D02* +X011360Y009070D01* +X011360Y009220D02* +X012010Y009220D01* +X012410Y009486D01* +X012655Y009115D01* +X012310Y009070D02* +X012310Y008520D01* +X013685Y008775D02* +X013649Y009350D01* +X013685Y008775D02* +X014005Y008305D01* +X013886Y008400D02* +X013881Y008427D01* +X013886Y008400D02* +X013830Y008400D01* +X012560Y009621D02* +X012860Y010020D01* +X013210Y010020D01* +X013210Y009920D01* +X011510Y009950D02* +X011510Y009720D01* +X007625Y007120D02* +X007625Y006890D01* +X007540Y006890D01* +X007480Y006630D01* +X008408Y006697D02* +X008409Y006701D01* +X009745Y005660D02* +X009745Y005361D01* +X009725Y005361D02* +X009725Y005311D01* +X009331Y005356D01* +X008970Y004565D02* +X008700Y004455D01* +X010730Y003250D02* +X010960Y002920D01* +X010733Y002670D02* +X009795Y002190D01* +X010775Y001546D02* +X010775Y001526D01* +X012545Y001440D02* +X012545Y001341D01* +X012650Y001341D01* +X013020Y001190D02* +X013020Y000495D01* +X012680Y000495D01* +X012680Y000515D01* +X012565Y000515D01* +X012565Y000829D01* +X012650Y000829D01* +X015560Y001920D02* +X016370Y001035D01* +X017060Y001970D02* +X017960Y002370D01* +X018270Y002370D01* +X018210Y002770D01* +X018270Y002370D02* +X018265Y001065D01* +X018465Y000880D01* +X019410Y000870D01* +X019460Y002470D02* +X019350Y002735D01* +X019341Y002973D01* +X019750Y002980D01* +X019755Y003290D01* +X019755Y005325D01* +X019460Y005785D01* +X018080Y004200D02* +X018160Y003570D01* +X016180Y003455D02* +X015765Y003075D01* +X014155Y003245D01* +X014145Y003520D01* +X013910Y003620D01* +X013849Y003604D02* +X013674Y003569D01* +X013595Y003570D02* +X013275Y003390D01* +X015162Y004830D02* +X015810Y004805D01* +X015162Y004830D02* +X015110Y005100D01* +X013630Y005505D02* +X012955Y005520D01* +X013960Y006870D02* +X013960Y006911D01* +X013881Y006931D01* +X018140Y009910D02* +X018405Y010015D01* +X018700Y009910D01* +X018610Y010185D01* +X018935Y010135D02* +X019190Y010020D01* +X018140Y009910D02* +X018140Y010190D01* +X006365Y003895D02* +X005960Y004565D01* +X005871Y005185D01* +X005290Y004565D02* +X005104Y003925D01* +X005190Y003315D01* +X005735Y002859D02* +X006485Y002859D01* +X006455Y002040D02* +X005045Y002176D01* +X006458Y001841D02* +X006865Y001795D01* +X007249Y001795D02* +X007279Y001330D01* +X006466Y001330D01* +X006458Y001841D01* +X007761Y001795D02* +X008065Y001620D01* +X008330Y001381D01* +X003469Y002700D02* +X003320Y002705D01* +X003795Y004025D02* +X003925Y004104D01* +X002310Y008091D02* +X003249Y008550D01* +X003260Y009320D02* +X003860Y009320D01* +X004660Y009320D01* +D53* +X005310Y009370D03* +X005310Y008970D03* +X005310Y008570D03* +X005310Y008170D03* +X005310Y007770D03* +X005310Y007370D03* +X005300Y006985D03* +X005290Y006560D03* +X005655Y006305D03* +X006000Y006205D03* +X006360Y006200D03* +X006050Y005785D03* +X005740Y005790D03* +X004035Y006385D03* +X003740Y006325D03* +X003465Y006460D03* +X003145Y006450D03* +X002830Y006750D03* +X002425Y006750D03* +X002085Y006755D03* +X002260Y006355D03* +X002245Y005975D03* +X002205Y005660D03* +X002575Y005650D03* +X002935Y005665D03* +X003260Y005670D03* +X003575Y005660D03* +X003050Y005935D03* +X002855Y004760D03* +X002545Y004765D03* +X002210Y004765D03* +X002210Y004430D03* +X002200Y004110D03* +X002195Y003755D03* +X001905Y003610D03* +X001570Y003610D03* +X000505Y003670D03* +X000605Y002775D03* +X001375Y002780D03* +X002400Y002715D03* +X002405Y002390D03* +X002395Y002035D03* +X002160Y001795D03* +X001845Y001790D03* +X001565Y001630D03* +X001200Y001625D03* +X000820Y001595D03* +X000510Y001720D03* +X000510Y002070D03* +X001470Y002015D03* +X002510Y001710D03* +X002830Y001780D03* +X003175Y001815D03* +X003565Y001650D03* +X004425Y001715D03* +X004440Y002080D03* +X004445Y002455D03* +X004445Y002855D03* +X005290Y002760D03* +X005895Y002460D03* +X006990Y002275D03* +X005955Y001745D03* +X005650Y001770D03* +X006875Y000895D03* +X006860Y000535D03* +X007915Y000505D03* +X008580Y000510D03* +X009285Y000515D03* +X010110Y000510D03* +X010530Y000515D03* +X010990Y000510D03* +X011605Y000535D03* +X012180Y000535D03* +X012565Y000515D03* +X010110Y002005D03* +X011340Y002515D03* +X009255Y001105D03* +X007775Y003055D03* +X004720Y003750D03* +X004080Y003735D03* +X002835Y003800D03* +X002825Y003470D03* +X002820Y003140D03* +X002505Y003045D03* +X002835Y004135D03* +X002840Y004440D03* +X007625Y007120D03* +X007755Y008035D03* +X007760Y008520D03* +X007760Y009020D03* +X007570Y009370D03* +X007580Y009755D03* +X007645Y010105D03* +X007240Y010120D03* +X006810Y010120D03* +X006410Y010120D03* +X006010Y010120D03* +X005560Y010120D03* +X005085Y010125D03* +X005310Y009770D03* +X004645Y010130D03* +X003900Y010130D03* +X003905Y009730D03* +X004010Y007520D03* +X010160Y009070D03* +X011090Y008935D03* +X012655Y009115D03* +X013205Y009570D03* +X013100Y004855D03* +X018590Y003495D03* +X016370Y001035D03* +X016765Y000535D03* +X005620Y000515D03* +X005215Y000515D03* +X004845Y000515D03* +X004495Y000520D03* +X004110Y000520D03* +X003755Y000530D03* +X003410Y000520D03* +X003060Y000520D03* +X002710Y000520D03* +X002340Y000510D03* +X002000Y000505D03* +X001660Y000520D03* +X001310Y000520D03* +X000560Y000570D03* +X000510Y001370D03* +D54* +X004665Y002955D02* +X005080Y002955D01* +X006485Y002859D02* +X006983Y002858D01* +X007605Y000435D02* +X012995Y000435D01* +X017710Y003170D02* +X018179Y003170D01* +X017995Y003365D02* +X017860Y003470D01* +X017845Y003470D02* +X016210Y003470D01* +X016180Y003455D01* +X017185Y003690D02* +X017110Y004345D01* +X018911Y005370D02* +X019125Y005370D01* +X019355Y005140D01* +X019425Y005070D02* +X019430Y005075D01* +X004025Y005900D02* +X003050Y005935D01* +X003740Y006325D02* +X004025Y005900D01* +D55* +X003315Y006750D02* +X001710Y006755D01* +D56* +X001170Y005210D02* +X002474Y005215D01* +X002986Y005215D02* +X003689Y005215D01* +X003310Y005190D01* +X003310Y004690D01* +X003925Y004690D01* +X003925Y004616D01* +X003795Y004025D02* +X003310Y004020D01* +X003315Y003310D01* +X003320Y002705D01* +X003469Y002700D02* +X002845Y002691D01* +X003981Y002700D02* +X003981Y002160D01* +X003981Y002700D02* +X003985Y003310D01* +X004520Y003315D01* +X005190Y003315D02* +X005735Y003371D01* +M02* diff --git a/gerber/PecanPico4.GTO b/gerber/PecanPico4.GTO new file mode 100644 index 0000000..f407d86 --- /dev/null +++ b/gerber/PecanPico4.GTO @@ -0,0 +1,1405 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11C,0.0020*% +%ADD12C,0.0030*% +%ADD13C,0.0040*% +%ADD14C,0.0160*% +%ADD15C,0.0060*% +%ADD16C,0.0039*% +%ADD17C,0.0050*% +%ADD18R,0.0591X0.0236*% +%ADD19R,0.0160X0.0280*% +%ADD20C,0.0080*% +%ADD21R,0.0280X0.0160*% +%ADD22C,0.0010*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X006368Y008510D02* +X006404Y008436D01* +X006478Y008363D01* +X006478Y008473D01* +X006514Y008510D01* +X006551Y008510D01* +X006588Y008473D01* +X006588Y008399D01* +X006551Y008363D01* +X006478Y008363D01* +X006478Y008289D02* +X006478Y008142D01* +X006588Y008068D02* +X006368Y007921D01* +X006441Y007847D02* +X006588Y007847D01* +X006588Y007921D02* +X006368Y008068D01* +X006441Y007847D02* +X006368Y007773D01* +X006441Y007700D01* +X006588Y007700D01* +X006588Y007626D02* +X006368Y007626D01* +X006441Y007552D01* +X006368Y007479D01* +X006588Y007479D01* +X006478Y007700D02* +X006478Y007847D01* +X007563Y007452D02* +X007710Y007305D01* +X007673Y007231D02* +X007600Y007231D01* +X007563Y007194D01* +X007563Y007121D01* +X007600Y007084D01* +X007673Y007084D01* +X007710Y007121D01* +X007710Y007194D01* +X007673Y007231D01* +X007563Y007305D02* +X007710Y007452D01* +X007710Y007010D02* +X007710Y006937D01* +X007710Y006973D02* +X007490Y006973D01* +X007490Y006937D01* +X007563Y006826D02* +X007600Y006862D01* +X007673Y006862D01* +X007710Y006826D01* +X007710Y006716D01* +X007490Y006716D01* +X007563Y006716D02* +X007563Y006826D01* +X007563Y006641D02* +X007710Y006641D01* +X007710Y006531D01* +X007673Y006495D01* +X007563Y006495D01* +X014925Y009380D02* +X015072Y009380D01* +X014998Y009380D02* +X014998Y009600D01* +X014925Y009527D01* +X004221Y001870D02* +X004128Y001870D01* +X004128Y001730D01* +X004221Y001730D01* +X004174Y001800D02* +X004128Y001800D01* +X004074Y001730D02* +X003980Y001730D01* +X003980Y001870D01* +X003926Y001847D02* +X003926Y001823D01* +X003903Y001800D01* +X003833Y001800D01* +X003779Y001800D02* +X003686Y001800D01* +X003686Y001823D02* +X003686Y001730D01* +X003632Y001730D02* +X003632Y001870D01* +X003686Y001823D02* +X003732Y001870D01* +X003779Y001823D01* +X003779Y001730D01* +X003833Y001730D02* +X003903Y001730D01* +X003926Y001753D01* +X003926Y001777D01* +X003903Y001800D01* +X003926Y001847D02* +X003903Y001870D01* +X003833Y001870D01* +X003833Y001730D01* +X003632Y001730D02* +X003538Y001870D01* +X003538Y001730D01* +X003484Y001730D02* +X003391Y001730D01* +X003391Y001870D01* +X003484Y001870D01* +X003438Y001800D02* +X003391Y001800D01* +X012850Y000867D02* +X012923Y000940D01* +X012923Y000720D01* +X012850Y000720D02* +X012997Y000720D01* +X016170Y000697D02* +X016207Y000660D01* +X016280Y000660D01* +X016317Y000697D01* +X016317Y000770D01* +X016243Y000770D01* +X016170Y000843D02* +X016170Y000697D01* +X016170Y000843D02* +X016207Y000880D01* +X016280Y000880D01* +X016317Y000843D01* +X016391Y000880D02* +X016391Y000660D01* +X016538Y000660D02* +X016538Y000880D01* +X016612Y000880D02* +X016722Y000880D01* +X016759Y000843D01* +X016759Y000697D01* +X016722Y000660D01* +X016612Y000660D01* +X016612Y000880D01* +X016391Y000880D02* +X016538Y000660D01* +D12* +X012734Y001860D02* +X012540Y001860D01* +X012637Y001860D02* +X012637Y002150D01* +X012540Y002054D01* +X008189Y004520D02* +X007995Y004520D01* +X008092Y004520D02* +X008092Y004810D01* +X007995Y004714D01* +X006892Y004090D02* +X006892Y003800D01* +X006795Y003800D02* +X006989Y003800D01* +X006795Y003994D02* +X006892Y004090D01* +X008375Y005740D02* +X008569Y005740D01* +X008472Y005740D02* +X008472Y006030D01* +X008375Y005934D01* +X006013Y007110D02* +X005643Y007110D01* +X005643Y007295D01* +X005705Y007357D01* +X005828Y007357D01* +X005890Y007295D01* +X005890Y007110D01* +X005890Y007478D02* +X005890Y007725D01* +X005828Y007725D01* +X005766Y007663D01* +X005766Y007540D01* +X005828Y007478D01* +X005952Y007478D01* +X006013Y007540D01* +X006013Y007663D01* +X005952Y007847D02* +X005828Y007847D01* +X005766Y007908D01* +X005766Y008093D01* +X005890Y008277D02* +X005952Y008215D01* +X006013Y008277D01* +X006013Y008462D01* +X005828Y008462D01* +X005766Y008400D01* +X005766Y008277D01* +X005890Y008277D02* +X005890Y008462D01* +X006013Y008583D02* +X005766Y008583D01* +X005766Y008768D01* +X005828Y008830D01* +X006013Y008830D01* +X005828Y009320D02* +X005828Y009567D01* +X005643Y009505D02* +X005828Y009320D01* +X006013Y009505D02* +X005643Y009505D01* +X003345Y009855D02* +X003160Y010040D01* +X003098Y009979D02* +X003345Y010225D01* +X003098Y010225D02* +X003098Y009855D01* +X002853Y009855D02* +X002853Y010225D01* +X002730Y010225D02* +X002977Y010225D01* +X002609Y010225D02* +X002362Y010225D01* +X002362Y010040D01* +X002485Y010102D01* +X002547Y010102D01* +X002609Y010040D01* +X002609Y009917D01* +X002547Y009855D01* +X002423Y009855D01* +X002362Y009917D01* +X002117Y009855D02* +X002117Y010225D01* +X002240Y010225D02* +X001993Y010225D01* +X001872Y010225D02* +X001625Y009979D01* +X001687Y010040D02* +X001872Y009855D01* +X001625Y009855D02* +X001625Y010225D01* +X001680Y008920D02* +X001865Y008920D01* +X001927Y008859D01* +X001927Y008735D01* +X001865Y008674D01* +X001680Y008674D01* +X001680Y008550D02* +X001680Y008920D01* +X002048Y008920D02* +X002234Y008920D01* +X002295Y008859D01* +X002295Y008735D01* +X002234Y008674D01* +X002048Y008674D01* +X002417Y008735D02* +X002664Y008735D01* +X002602Y008550D02* +X002602Y008920D01* +X002417Y008735D01* +X002048Y008550D02* +X002048Y008920D01* +X005952Y007847D02* +X006013Y007908D01* +X006013Y008093D01* +X010575Y008100D02* +X010769Y008100D01* +X010672Y008100D02* +X010672Y008390D01* +X010575Y008294D01* +X017860Y003899D02* +X017957Y003995D01* +X017957Y003705D01* +X017860Y003705D02* +X018054Y003705D01* +D13* +X018233Y001854D02* +X018233Y001547D01* +X018080Y001700D02* +X018387Y001700D01* +X002241Y007490D02* +X002243Y007506D01* +X002248Y007521D01* +X002257Y007534D01* +X002269Y007545D01* +X002283Y007553D01* +X002298Y007558D01* +X002314Y007559D01* +X002330Y007556D01* +X002344Y007550D01* +X002357Y007540D01* +X002368Y007528D01* +X002375Y007514D01* +X002379Y007498D01* +X002379Y007482D01* +X002375Y007466D01* +X002368Y007452D01* +X002357Y007440D01* +X002345Y007430D01* +X002330Y007424D01* +X002314Y007421D01* +X002298Y007422D01* +X002283Y007427D01* +X002269Y007435D01* +X002257Y007446D01* +X002248Y007459D01* +X002243Y007474D01* +X002241Y007490D01* +X002034Y007490D02* +X002036Y007523D01* +X002042Y007555D01* +X002051Y007586D01* +X002064Y007616D01* +X002081Y007644D01* +X002101Y007670D01* +X002124Y007694D01* +X002149Y007714D01* +X002177Y007732D01* +X002206Y007746D01* +X002237Y007756D01* +X002269Y007763D01* +X002302Y007766D01* +X002335Y007765D01* +X002367Y007760D01* +X002398Y007751D01* +X002429Y007739D01* +X002457Y007723D01* +X002484Y007704D01* +X002508Y007682D01* +X002529Y007657D01* +X002548Y007630D01* +X002563Y007601D01* +X002574Y007571D01* +X002582Y007539D01* +X002586Y007506D01* +X002586Y007474D01* +X002582Y007441D01* +X002574Y007409D01* +X002563Y007379D01* +X002548Y007350D01* +X002529Y007323D01* +X002508Y007298D01* +X002484Y007276D01* +X002457Y007257D01* +X002429Y007241D01* +X002398Y007229D01* +X002367Y007220D01* +X002335Y007215D01* +X002302Y007214D01* +X002269Y007217D01* +X002237Y007224D01* +X002206Y007234D01* +X002177Y007248D01* +X002149Y007266D01* +X002124Y007286D01* +X002101Y007310D01* +X002081Y007336D01* +X002064Y007364D01* +X002051Y007394D01* +X002042Y007425D01* +X002036Y007457D01* +X002034Y007490D01* +X001958Y003308D02* +X001958Y003001D01* +X001728Y003231D01* +X002188Y003231D01* +X001958Y002847D02* +X001805Y002847D01* +X001728Y002770D01* +X001728Y002540D01* +X002188Y002540D01* +X002035Y002540D02* +X002035Y002770D01* +X001958Y002847D01* +X001958Y002387D02* +X001805Y002387D01* +X001728Y002310D01* +X001728Y002080D01* +X002188Y002080D01* +X002035Y002080D02* +X002035Y002310D01* +X001958Y002387D01* +D14* +X002833Y002435D02* +X002857Y002435D01* +X003725Y002688D02* +X003725Y002712D01* +X003725Y002172D02* +X003725Y002148D01* +X005723Y003115D02* +X005747Y003115D01* +X005360Y003913D02* +X005360Y003937D01* +X003937Y004360D02* +X003913Y004360D01* +X003945Y005203D02* +X003945Y005227D01* +X002730Y005227D02* +X002730Y005203D01* +X005615Y005197D02* +X005615Y005173D01* +X008993Y003915D02* +X009017Y003915D01* +X009705Y003837D02* +X009705Y003813D01* +X009705Y004303D02* +X009705Y004327D01* +X009737Y005105D02* +X009713Y005105D01* +X013018Y006035D02* +X013042Y006035D01* +X013910Y006208D02* +X013910Y006232D01* +X012772Y007225D02* +X012748Y007225D01* +X013905Y009338D02* +X013905Y009362D01* +X009522Y009470D02* +X009498Y009470D01* +X003417Y007175D02* +X003393Y007175D01* +X009243Y001775D02* +X009267Y001775D01* +X008342Y001125D02* +X008318Y001125D01* +X007535Y001318D02* +X007535Y001342D01* +X007535Y000902D02* +X007535Y000878D01* +X006210Y000902D02* +X006210Y000878D01* +X006210Y001318D02* +X006210Y001342D01* +X011898Y001270D02* +X011922Y001270D01* +X012638Y001085D02* +X012662Y001085D01* +X019260Y007788D02* +X019260Y007812D01* +D15* +X018090Y006740D02* +X015330Y006740D01* +X015330Y009360D01* +X015470Y009500D01* +X018090Y009500D01* +X018090Y006740D01* +X015489Y009200D02* +X015491Y009223D01* +X015497Y009246D01* +X015506Y009267D01* +X015519Y009287D01* +X015535Y009304D01* +X015553Y009318D01* +X015573Y009329D01* +X015595Y009337D01* +X015618Y009341D01* +X015642Y009341D01* +X015665Y009337D01* +X015687Y009329D01* +X015707Y009318D01* +X015725Y009304D01* +X015741Y009287D01* +X015754Y009267D01* +X015763Y009246D01* +X015769Y009223D01* +X015771Y009200D01* +X015769Y009177D01* +X015763Y009154D01* +X015754Y009133D01* +X015741Y009113D01* +X015725Y009096D01* +X015707Y009082D01* +X015687Y009071D01* +X015665Y009063D01* +X015642Y009059D01* +X015618Y009059D01* +X015595Y009063D01* +X015573Y009071D01* +X015553Y009082D01* +X015535Y009096D01* +X015519Y009113D01* +X015506Y009133D01* +X015497Y009154D01* +X015491Y009177D01* +X015489Y009200D01* +D16* +X008448Y009910D02* +X008448Y009969D01* +X004629Y009969D01* +X004629Y009910D01* +X004629Y006091D02* +X004629Y005992D01* +X008448Y005992D01* +X008448Y006091D01* +D17* +X007423Y006465D02* +X007425Y006490D01* +X007431Y006514D01* +X007440Y006537D01* +X007453Y006558D01* +X007470Y006577D01* +X007489Y006594D01* +X007510Y006607D01* +X007533Y006616D01* +X007557Y006622D01* +X007582Y006624D01* +X007607Y006622D01* +X007631Y006616D01* +X007654Y006607D01* +X007675Y006594D01* +X007694Y006577D01* +X007711Y006558D01* +X007724Y006537D01* +X007733Y006514D01* +X007739Y006490D01* +X007741Y006465D01* +X007739Y006440D01* +X007733Y006416D01* +X007724Y006393D01* +X007711Y006372D01* +X007694Y006353D01* +X007675Y006336D01* +X007654Y006323D01* +X007631Y006314D01* +X007607Y006308D01* +X007582Y006306D01* +X007557Y006308D01* +X007533Y006314D01* +X007510Y006323D01* +X007489Y006336D01* +X007470Y006353D01* +X007453Y006372D01* +X007440Y006393D01* +X007431Y006416D01* +X007425Y006440D01* +X007423Y006465D01* +X010615Y005166D02* +X012505Y005166D01* +X013608Y005010D02* +X013610Y005023D01* +X013615Y005035D01* +X013624Y005045D01* +X013635Y005052D01* +X013647Y005056D01* +X013661Y005056D01* +X013673Y005052D01* +X013684Y005045D01* +X013693Y005035D01* +X013698Y005023D01* +X013700Y005010D01* +X013698Y004997D01* +X013693Y004985D01* +X013684Y004975D01* +X013673Y004968D01* +X013661Y004964D01* +X013647Y004964D01* +X013635Y004968D01* +X013624Y004975D01* +X013615Y004985D01* +X013610Y004997D01* +X013608Y005010D01* +X013851Y003373D02* +X014639Y003373D01* +X012505Y002174D02* +X010615Y002174D01* +X011615Y002489D02* +X011617Y002512D01* +X011623Y002535D01* +X011632Y002557D01* +X011645Y002576D01* +X011661Y002593D01* +X011679Y002608D01* +X011700Y002619D01* +X011722Y002627D01* +X011745Y002631D01* +X011769Y002631D01* +X011792Y002627D01* +X011814Y002619D01* +X011835Y002608D01* +X011853Y002593D01* +X011869Y002576D01* +X011882Y002557D01* +X011891Y002535D01* +X011897Y002512D01* +X011899Y002489D01* +X011897Y002466D01* +X011891Y002443D01* +X011882Y002421D01* +X011869Y002402D01* +X011853Y002385D01* +X011835Y002370D01* +X011814Y002359D01* +X011792Y002351D01* +X011769Y002347D01* +X011745Y002347D01* +X011722Y002351D01* +X011700Y002359D01* +X011679Y002370D01* +X011661Y002385D01* +X011645Y002402D01* +X011632Y002421D01* +X011623Y002443D01* +X011617Y002466D01* +X011615Y002489D01* +X008557Y002504D02* +X008557Y002268D01* +X008321Y002268D01* +X007219Y002268D02* +X006983Y002268D01* +X006983Y002504D01* +X006983Y003586D02* +X007239Y003842D01* +X008321Y003842D02* +X008557Y003842D01* +X008557Y003606D01* +X013133Y006853D02* +X013290Y006695D01* +X013448Y006695D01* +X013133Y006853D02* +X013133Y008546D01* +X013290Y008703D01* +X013448Y008703D01* +X014314Y008703D02* +X014471Y008703D01* +X014629Y008585D01* +X014629Y006853D01* +X014432Y006695D01* +X014314Y006695D01* +D18* +X002528Y009332D03* +D19* +X003695Y007970D03* +X011310Y006070D03* +X013955Y005525D03* +X015390Y005800D03* +X019250Y006780D03* +X019255Y007285D03* +X019260Y008470D03* +X019265Y008985D03* +X014210Y009830D03* +X014150Y002720D03* +X007505Y001795D03* +D20* +X004560Y001360D02* +X004560Y000860D01* +X004310Y000610D01* +X003810Y000610D01* +X003560Y000860D01* +X003310Y000610D01* +X002810Y000610D01* +X002560Y000860D01* +X002310Y000610D01* +X001810Y000610D01* +X001560Y000860D01* +X001560Y001360D01* +X001810Y001610D01* +X002310Y001610D01* +X002560Y001360D01* +X002810Y001610D01* +X003310Y001610D01* +X003560Y001360D01* +X003810Y001610D01* +X004310Y001610D01* +X004560Y001360D01* +X006989Y005435D02* +X007065Y005551D01* +X007075Y005557D02* +X007167Y005435D01* +X007256Y005557D02* +X007075Y005557D01* +X006894Y005557D01* +X007394Y005562D02* +X007575Y005562D01* +X007667Y005440D01* +X007565Y005556D02* +X007489Y005440D01* +X007575Y005562D02* +X007756Y005562D01* +X009179Y006320D02* +X009255Y006436D01* +X009265Y006442D02* +X009357Y006320D01* +X009446Y006442D02* +X009265Y006442D01* +X009084Y006442D01* +X010779Y008489D02* +X010779Y008776D01* +X010779Y009364D02* +X010779Y009651D01* +X011941Y009651D02* +X011941Y009364D01* +X011941Y008776D02* +X011941Y008489D01* +X018943Y006451D02* +X018943Y006270D01* +X019065Y006362D01* +X018943Y006270D02* +X018943Y006089D01* +X019065Y006184D02* +X018949Y006260D01* +X019054Y003751D02* +X019341Y003751D01* +X018466Y003751D02* +X018179Y003751D01* +X018179Y002589D02* +X018466Y002589D01* +X019054Y002589D02* +X019341Y002589D01* +X018715Y001380D02* +X018215Y001380D01* +X017965Y001130D01* +X017715Y001380D01* +X017215Y001380D01* +X016965Y001130D01* +X016965Y000630D01* +X017215Y000380D01* +X017715Y000380D01* +X017965Y000630D01* +X018215Y000380D01* +X018715Y000380D01* +X018965Y000630D01* +X018965Y001130D01* +X018715Y001380D01* +X016060Y000670D02* +X016060Y002170D01* +X015810Y002420D01* +X015310Y002420D01* +X015060Y002170D01* +X015060Y000670D01* +X015310Y000420D01* +X015810Y000420D01* +X016060Y000670D01* +X015060Y000670D02* +X014810Y000420D01* +X014310Y000420D01* +X014060Y000670D01* +X014060Y002170D01* +X014310Y002420D01* +X014810Y002420D01* +X015060Y002170D01* +X014060Y002170D02* +X013810Y002420D01* +X013310Y002420D01* +X013060Y002170D01* +X013060Y000670D01* +X013310Y000420D01* +X013810Y000420D01* +X014060Y000670D01* +X013810Y000288D02* +X013310Y000288D01* +X002507Y007018D02* +X002113Y007018D01* +D21* +X003245Y008800D03* +X009060Y009470D03* +X009160Y007420D03* +X006445Y004775D03* +X007075Y004585D03* +X007575Y004580D03* +X010775Y001290D03* +X011310Y001270D03* +X009675Y001015D03* +X008800Y001260D03* +X015755Y003415D03* +D22* +X010587Y005483D02* +X010587Y005583D01* +X010562Y005608D01* +X010487Y005608D01* +X010487Y005458D01* +X010562Y005458D01* +X010587Y005483D01* +X010439Y005458D02* +X010339Y005608D01* +X010292Y005608D02* +X010192Y005608D01* +X010242Y005608D02* +X010242Y005458D01* +X010339Y005458D02* +X010439Y005608D01* +X009722Y006727D02* +X009747Y006752D01* +X009747Y006802D01* +X009722Y006827D01* +X009697Y006827D01* +X009672Y006802D01* +X009672Y006777D01* +X009672Y006802D02* +X009647Y006827D01* +X009622Y006827D01* +X009597Y006802D01* +X009597Y006752D01* +X009622Y006727D01* +X009722Y006874D02* +X009722Y006899D01* +X009747Y006899D01* +X009747Y006874D01* +X009722Y006874D01* +X009722Y006948D02* +X009747Y006973D01* +X009747Y007023D01* +X009722Y007048D01* +X009697Y007048D01* +X009672Y007023D01* +X009672Y006998D01* +X009672Y007023D02* +X009647Y007048D01* +X009622Y007048D01* +X009597Y007023D01* +X009597Y006973D01* +X009622Y006948D01* +X009597Y007095D02* +X009697Y007095D01* +X009747Y007145D01* +X009697Y007195D01* +X009597Y007195D01* +X009622Y007243D02* +X009722Y007243D01* +X009747Y007268D01* +X009747Y007318D01* +X009722Y007343D01* +X009672Y007343D01* +X009672Y007293D01* +X009622Y007343D02* +X009597Y007318D01* +X009597Y007268D01* +X009622Y007243D01* +X009597Y007390D02* +X009597Y007465D01* +X009622Y007490D01* +X009672Y007490D01* +X009697Y007465D01* +X009697Y007390D01* +X009747Y007390D02* +X009597Y007390D01* +X009622Y007537D02* +X009647Y007537D01* +X009672Y007562D01* +X009672Y007612D01* +X009697Y007637D01* +X009722Y007637D01* +X009747Y007612D01* +X009747Y007562D01* +X009722Y007537D01* +X009622Y007537D02* +X009597Y007562D01* +X009597Y007612D01* +X009622Y007637D01* +X009082Y008267D02* +X008932Y008267D01* +X008932Y008342D01* +X008957Y008367D01* +X009007Y008367D01* +X009032Y008342D01* +X009032Y008267D01* +X009032Y008317D02* +X009082Y008367D01* +X009082Y008414D02* +X008932Y008514D01* +X008932Y008562D02* +X008932Y008637D01* +X008957Y008662D01* +X009057Y008662D01* +X009082Y008637D01* +X009082Y008562D01* +X008932Y008562D01* +X008932Y008414D02* +X009082Y008514D01* +X012867Y010058D02* +X012892Y010032D01* +X012943Y010032D01* +X012968Y010058D01* +X012968Y010083D01* +X012943Y010108D01* +X012918Y010108D01* +X012943Y010108D02* +X012968Y010133D01* +X012968Y010158D01* +X012943Y010183D01* +X012892Y010183D01* +X012867Y010158D01* +X013015Y010058D02* +X013015Y010032D01* +X013040Y010032D01* +X013040Y010058D01* +X013015Y010058D01* +X013088Y010058D02* +X013113Y010032D01* +X013164Y010032D01* +X013189Y010058D01* +X013189Y010083D01* +X013164Y010108D01* +X013139Y010108D01* +X013164Y010108D02* +X013189Y010133D01* +X013189Y010158D01* +X013164Y010183D01* +X013113Y010183D01* +X013088Y010158D01* +X013236Y010183D02* +X013236Y010083D01* +X013286Y010032D01* +X013336Y010083D01* +X013336Y010183D01* +X015137Y010166D02* +X015288Y010166D01* +X015262Y010069D02* +X015288Y010044D01* +X015288Y009993D01* +X015262Y009968D01* +X015288Y009921D02* +X015237Y009871D01* +X015237Y009896D02* +X015237Y009821D01* +X015288Y009821D02* +X015137Y009821D01* +X015137Y009896D01* +X015162Y009921D01* +X015212Y009921D01* +X015237Y009896D01* +X015187Y009968D02* +X015212Y009993D01* +X015212Y010044D01* +X015237Y010069D01* +X015262Y010069D01* +X015162Y010069D02* +X015137Y010044D01* +X015137Y009993D01* +X015162Y009968D01* +X015187Y009968D01* +X015137Y010116D02* +X015137Y010216D01* +X018142Y010053D02* +X018192Y010103D01* +X018242Y010053D01* +X018242Y009953D01* +X018289Y009953D02* +X018364Y009953D01* +X018389Y009978D01* +X018389Y010078D01* +X018364Y010103D01* +X018289Y010103D01* +X018289Y009953D01* +X018242Y010028D02* +X018142Y010028D01* +X018142Y010053D02* +X018142Y009953D01* +X018437Y009978D02* +X018437Y010078D01* +X018462Y010103D01* +X018512Y010103D01* +X018537Y010078D01* +X018584Y010053D02* +X018634Y010103D01* +X018634Y009953D01* +X018584Y009953D02* +X018684Y009953D01* +X018537Y009978D02* +X018512Y009953D01* +X018462Y009953D01* +X018437Y009978D01* +X018857Y009989D02* +X018857Y009889D01* +X018857Y009939D02* +X019007Y009939D01* +X019007Y009842D02* +X018907Y009842D01* +X018857Y009792D01* +X018907Y009742D01* +X019007Y009742D01* +X018982Y009694D02* +X019007Y009669D01* +X019007Y009594D01* +X018857Y009594D01* +X018857Y009669D01* +X018882Y009694D01* +X018907Y009694D01* +X018932Y009669D01* +X018932Y009594D01* +X018932Y009547D02* +X018932Y009447D01* +X018882Y009497D02* +X018982Y009497D01* +X018932Y009669D02* +X018957Y009694D01* +X018982Y009694D01* +X018932Y009742D02* +X018932Y009842D01* +X019632Y009822D02* +X019632Y009897D01* +X019657Y009922D01* +X019757Y009922D01* +X019782Y009897D01* +X019782Y009822D01* +X019632Y009822D01* +X019632Y009774D02* +X019782Y009774D01* +X019632Y009674D01* +X019782Y009674D01* +X019757Y009627D02* +X019707Y009627D01* +X019707Y009577D01* +X019657Y009627D02* +X019632Y009602D01* +X019632Y009552D01* +X019657Y009527D01* +X019757Y009527D01* +X019782Y009552D01* +X019782Y009602D01* +X019757Y009627D01* +X004198Y007341D02* +X004097Y007341D01* +X004047Y007291D01* +X004097Y007241D01* +X004198Y007241D01* +X004172Y007194D02* +X004072Y007194D01* +X004047Y007169D01* +X004047Y007093D01* +X004198Y007093D01* +X004198Y007169D01* +X004172Y007194D01* +X004122Y007241D02* +X004122Y007341D01* +X004147Y007046D02* +X004172Y007046D01* +X004198Y007021D01* +X004198Y006971D01* +X004172Y006946D01* +X004122Y006971D02* +X004097Y006946D01* +X004072Y006946D01* +X004047Y006971D01* +X004047Y007021D01* +X004072Y007046D01* +X004122Y007021D02* +X004147Y007046D01* +X004122Y007021D02* +X004122Y006971D01* +X004207Y006862D02* +X004207Y006762D01* +X004057Y006762D01* +X004082Y006714D02* +X004057Y006689D01* +X004057Y006639D01* +X004082Y006614D01* +X004182Y006614D01* +X004207Y006639D01* +X004207Y006689D01* +X004182Y006714D01* +X004182Y006567D02* +X004207Y006542D01* +X004207Y006492D01* +X004182Y006467D01* +X004132Y006492D02* +X004132Y006542D01* +X004157Y006567D01* +X004182Y006567D01* +X004132Y006492D02* +X004107Y006467D01* +X004082Y006467D01* +X004057Y006492D01* +X004057Y006542D01* +X004082Y006567D01* +M02* diff --git a/gerber/PecanPico4.GTP b/gerber/PecanPico4.GTP new file mode 100644 index 0000000..1d43395 --- /dev/null +++ b/gerber/PecanPico4.GTP @@ -0,0 +1,710 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11R,0.0354X0.0276*% +%ADD12R,0.0276X0.0354*% +%ADD13R,0.0500X0.0220*% +%ADD14R,0.0220X0.0500*% +%ADD15R,0.0709X0.0315*% +%ADD16R,0.0709X0.0276*% +%ADD17R,0.0394X0.0787*% +%ADD18R,0.0394X0.0433*% +%ADD19R,0.0315X0.0315*% +%ADD20R,0.0413X0.0866*% +%ADD21R,0.0394X0.0413*% +%ADD22C,0.0091*% +%ADD23R,0.0098X0.0226*% +%ADD24R,0.0256X0.0404*% +%ADD25R,0.0270X0.0091*% +%ADD26R,0.1500X0.0760*% +%ADD27R,0.0709X0.0630*% +%ADD28R,0.0630X0.0709*% +%ADD29R,0.0226X0.0098*% +%ADD30R,0.0404X0.0256*% +%ADD31R,0.0091X0.0270*% +%ADD32R,0.0760X0.1500*% +%ADD33R,0.0700X0.0700*% +%ADD34R,0.0450X0.0450*% +%ADD35R,0.0700X0.0280*% +%ADD36R,0.0560X0.0350*% +%ADD37R,0.0787X0.0512*% +%ADD38R,0.0276X0.0098*% +%ADD39R,0.0098X0.0276*% +%ADD40R,0.1024X0.1024*% +%ADD41R,0.0433X0.0394*% +%ADD42R,0.0197X0.0315*% +%ADD43R,0.0197X0.0236*% +%ADD44R,0.0236X0.0197*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X003245Y009056D03* +X003245Y008544D03* +X003405Y007431D03* +X003405Y006919D03* +X006445Y005031D03* +X007075Y004841D03* +X007575Y004836D03* +X007575Y004324D03* +X007075Y004329D03* +X006445Y004519D03* +X005735Y003371D03* +X005735Y002859D03* +X003925Y004104D03* +X003925Y004616D03* +X002845Y002691D03* +X002845Y002179D03* +X008330Y001381D03* +X008800Y001516D03* +X009255Y001519D03* +X009675Y001271D03* +X009675Y000759D03* +X008800Y001004D03* +X008330Y000869D03* +X009255Y002031D03* +X010775Y001546D03* +X011310Y001526D03* +X011910Y001526D03* +X012650Y001341D03* +X011910Y001014D03* +X011310Y001014D03* +X010775Y001034D03* +X012650Y000829D03* +X015755Y003159D03* +X015755Y003671D03* +X013030Y005779D03* +X013030Y006291D03* +X012760Y006969D03* +X012760Y007481D03* +X009160Y007676D03* +X009160Y007164D03* +X009725Y005361D03* +X009725Y004849D03* +X009005Y004171D03* +X009005Y003659D03* +X009060Y009214D03* +X009510Y009214D03* +X009510Y009726D03* +X009060Y009726D03* +D12* +X013649Y009350D03* +X014161Y009350D03* +X013954Y009830D03* +X014466Y009830D03* +X019009Y008985D03* +X019521Y008985D03* +X019516Y008470D03* +X019004Y008470D03* +X019004Y007800D03* +X019516Y007800D03* +X019511Y007285D03* +X018999Y007285D03* +X018994Y006780D03* +X019506Y006780D03* +X015646Y005800D03* +X015134Y005800D03* +X014211Y005525D03* +X013699Y005525D03* +X013654Y006220D03* +X014166Y006220D03* +X011566Y006070D03* +X011054Y006070D03* +X009961Y004315D03* +X009449Y004315D03* +X009449Y003825D03* +X009961Y003825D03* +X007761Y001795D03* +X007249Y001795D03* +X007279Y001330D03* +X007791Y001330D03* +X007791Y000890D03* +X007279Y000890D03* +X006466Y000890D03* +X005954Y000890D03* +X005954Y001330D03* +X006466Y001330D03* +X003981Y002160D03* +X003469Y002160D03* +X003469Y002700D03* +X003981Y002700D03* +X005104Y003925D03* +X005616Y003925D03* +X005871Y005185D03* +X005359Y005185D03* +X004201Y005215D03* +X003689Y005215D03* +X002986Y005215D03* +X002474Y005215D03* +X003439Y007970D03* +X003951Y007970D03* +X013894Y002720D03* +X014406Y002720D03* +D13* +X015020Y007018D03* +X015020Y007333D03* +X015020Y007648D03* +X015020Y007963D03* +X015020Y008277D03* +X015020Y008592D03* +X015020Y008907D03* +X015020Y009222D03* +X018400Y009222D03* +X018400Y008907D03* +X018400Y008592D03* +X018400Y008277D03* +X018400Y007963D03* +X018400Y007648D03* +X018400Y007333D03* +X018400Y007018D03* +D14* +X017812Y006430D03* +X017497Y006430D03* +X017182Y006430D03* +X016867Y006430D03* +X016553Y006430D03* +X016238Y006430D03* +X015923Y006430D03* +X015608Y006430D03* +X015608Y009810D03* +X015923Y009810D03* +X016238Y009810D03* +X016553Y009810D03* +X016867Y009810D03* +X017182Y009810D03* +X017497Y009810D03* +X017812Y009810D03* +D15* +X008409Y009300D03* +X008409Y008866D03* +X008409Y008433D03* +X008409Y008000D03* +X008409Y007567D03* +X008409Y007134D03* +X008409Y006701D03* +X004669Y006701D03* +X004669Y007134D03* +X004669Y007567D03* +X004669Y008000D03* +X004669Y008433D03* +X004669Y008866D03* +X004669Y009300D03* +D16* +X004669Y009713D03* +X008409Y009713D03* +X008409Y006288D03* +X004669Y006288D03* +D17* +X003260Y009320D03* +X000465Y009320D03* +D18* +X003860Y009105D03* +X003860Y008435D03* +X003310Y004690D03* +X003310Y004020D03* +X006365Y003895D03* +X006365Y003225D03* +X006455Y002710D03* +X006455Y002040D03* +D19* +X007075Y005195D03* +X007575Y005200D03* +X007575Y005790D03* +X007075Y005785D03* +X009265Y006080D03* +X009265Y006670D03* +X018715Y006270D03* +X019305Y006270D03* +D20* +X002891Y007490D03* +X001729Y007490D03* +D21* +X002310Y008091D03* +D22* +X010966Y008611D03* +X011163Y008611D03* +X011360Y008611D03* +X011557Y008611D03* +X011754Y008611D03* +X011754Y009529D03* +X011557Y009529D03* +X011360Y009529D03* +X011163Y009529D03* +X010966Y009529D03* +X018301Y003564D03* +X018301Y003367D03* +X018301Y003170D03* +X018301Y002973D03* +X018301Y002776D03* +X019219Y002776D03* +X019219Y002973D03* +X019219Y003170D03* +X019219Y003367D03* +X019219Y003564D03* +D23* +X018868Y003805D03* +X018652Y003805D03* +X018652Y002535D03* +X018868Y002535D03* +D24* +X018947Y002909D03* +X018573Y002909D03* +X018573Y003431D03* +X018947Y003431D03* +D25* +X019354Y003367D03* +X019354Y003564D03* +X019354Y003170D03* +X019354Y002973D03* +X019354Y002776D03* +X018166Y002776D03* +X018166Y002973D03* +X018166Y003170D03* +X018166Y003367D03* +X018166Y003564D03* +D26* +X017060Y002970D03* +X017060Y001970D03* +D27* +X019410Y001971D03* +X019410Y000869D03* +X010225Y006534D03* +X010225Y007636D03* +X010160Y008519D03* +X010160Y009621D03* +X012560Y009621D03* +X012560Y008519D03* +X005045Y002176D03* +X005045Y001074D03* +D28* +X017809Y005370D03* +X018911Y005370D03* +X018961Y004470D03* +X017859Y004470D03* +D29* +X011995Y008962D03* +X011995Y009178D03* +X010725Y009178D03* +X010725Y008962D03* +D30* +X011099Y008883D03* +X011099Y009257D03* +X011621Y009257D03* +X011621Y008883D03* +D31* +X011557Y008476D03* +X011754Y008476D03* +X011360Y008476D03* +X011163Y008476D03* +X010966Y008476D03* +X010966Y009664D03* +X011163Y009664D03* +X011360Y009664D03* +X011557Y009664D03* +X011754Y009664D03* +D32* +X012110Y007120D03* +X011110Y007120D03* +D33* +X010733Y004670D03* +X012387Y004670D03* +X012387Y002670D03* +X010733Y002670D03* +D34* +X010583Y003670D03* +X012537Y003670D03* +D35* +X012010Y003670D03* +X011110Y003670D03* +D36* +X011160Y004170D03* +X011960Y004170D03* +X011960Y003170D03* +X011160Y003170D03* +D37* +X013881Y006931D03* +X013881Y008427D03* +D38* +X008557Y003449D03* +X008557Y003252D03* +X008557Y003055D03* +X008557Y002858D03* +X008557Y002661D03* +X006983Y002661D03* +X006983Y002858D03* +X006983Y003055D03* +X006983Y003252D03* +X006983Y003449D03* +D39* +X007376Y003842D03* +X007573Y003842D03* +X007770Y003842D03* +X007967Y003842D03* +X008164Y003842D03* +X008164Y002268D03* +X007967Y002268D03* +X007770Y002268D03* +X007573Y002268D03* +X007376Y002268D03* +D40* +X007770Y003055D03* +D41* +X005190Y003315D03* +X004520Y003315D03* +X003985Y003310D03* +X003315Y003310D03* +X005290Y004565D03* +X005960Y004565D03* +D42* +X008269Y004884D03* +X008623Y004884D03* +X008977Y004884D03* +X009331Y004884D03* +X009331Y005356D03* +X008977Y005356D03* +X008623Y005356D03* +X008269Y005356D03* +D43* +X013674Y004751D03* +X013674Y004160D03* +X013674Y003569D03* +X014816Y003569D03* +X014816Y004160D03* +X014816Y004751D03* +D44* +X014245Y004770D03* +M02* diff --git a/gerber/PecanPico4.GTS b/gerber/PecanPico4.GTS new file mode 100644 index 0000000..b1701fc --- /dev/null +++ b/gerber/PecanPico4.GTS @@ -0,0 +1,748 @@ +G75* +G70* +%OFA0B0*% +%FSLAX24Y24*% +%IPPOS*% +%LPD*% +%AMOC8* +5,1,8,0,0,1.08239X$1,22.5* +% +%ADD10C,0.0000*% +%ADD11C,0.0591*% +%ADD12R,0.0394X0.0316*% +%ADD13R,0.0316X0.0394*% +%ADD14R,0.0540X0.0260*% +%ADD15R,0.0260X0.0540*% +%ADD16R,0.0749X0.0355*% +%ADD17R,0.0749X0.0316*% +%ADD18R,0.0434X0.0827*% +%ADD19OC8,0.0780*% +%ADD20R,0.0434X0.0473*% +%ADD21R,0.0355X0.0355*% +%ADD22R,0.0453X0.0906*% +%ADD23R,0.0434X0.0453*% +%ADD24C,0.0780*% +%ADD25C,0.0138*% +%ADD26R,0.0118X0.0236*% +%ADD27R,0.0669X0.0965*% +%ADD28R,0.0299X0.0138*% +%ADD29R,0.1540X0.0800*% +%ADD30R,0.0749X0.0670*% +%ADD31R,0.0670X0.0749*% +%ADD32R,0.0236X0.0118*% +%ADD33R,0.0965X0.0669*% +%ADD34R,0.0138X0.0299*% +%ADD35R,0.0800X0.1540*% +%ADD36R,0.0740X0.0740*% +%ADD37R,0.0490X0.0490*% +%ADD38R,0.0740X0.0320*% +%ADD39R,0.0600X0.0390*% +%ADD40R,0.0827X0.0552*% +%ADD41R,0.0316X0.0138*% +%ADD42R,0.0138X0.0316*% +%ADD43R,0.1064X0.1064*% +%ADD44R,0.0473X0.0434*% +%ADD45R,0.1640X0.0640*% +%ADD46R,0.0237X0.0355*% +%ADD47C,0.0276*% +%ADD48R,0.0237X0.0276*% +%ADD49R,0.0276X0.0237*% +D10* +X000260Y000270D02* +X000260Y010370D01* +X019910Y010370D01* +X019910Y000270D01* +X000260Y000270D01* +X000734Y001020D02* +X000736Y001053D01* +X000742Y001085D01* +X000751Y001116D01* +X000764Y001146D01* +X000781Y001174D01* +X000801Y001200D01* +X000824Y001224D01* +X000849Y001244D01* +X000877Y001262D01* +X000906Y001276D01* +X000937Y001286D01* +X000969Y001293D01* +X001002Y001296D01* +X001035Y001295D01* +X001067Y001290D01* +X001098Y001281D01* +X001129Y001269D01* +X001157Y001253D01* +X001184Y001234D01* +X001208Y001212D01* +X001229Y001187D01* +X001248Y001160D01* +X001263Y001131D01* +X001274Y001101D01* +X001282Y001069D01* +X001286Y001036D01* +X001286Y001004D01* +X001282Y000971D01* +X001274Y000939D01* +X001263Y000909D01* +X001248Y000880D01* +X001229Y000853D01* +X001208Y000828D01* +X001184Y000806D01* +X001157Y000787D01* +X001129Y000771D01* +X001098Y000759D01* +X001067Y000750D01* +X001035Y000745D01* +X001002Y000744D01* +X000969Y000747D01* +X000937Y000754D01* +X000906Y000764D01* +X000877Y000778D01* +X000849Y000796D01* +X000824Y000816D01* +X000801Y000840D01* +X000781Y000866D01* +X000764Y000894D01* +X000751Y000924D01* +X000742Y000955D01* +X000736Y000987D01* +X000734Y001020D01* +X000734Y002370D02* +X000736Y002403D01* +X000742Y002435D01* +X000751Y002466D01* +X000764Y002496D01* +X000781Y002524D01* +X000801Y002550D01* +X000824Y002574D01* +X000849Y002594D01* +X000877Y002612D01* +X000906Y002626D01* +X000937Y002636D01* +X000969Y002643D01* +X001002Y002646D01* +X001035Y002645D01* +X001067Y002640D01* +X001098Y002631D01* +X001129Y002619D01* +X001157Y002603D01* +X001184Y002584D01* +X001208Y002562D01* +X001229Y002537D01* +X001248Y002510D01* +X001263Y002481D01* +X001274Y002451D01* +X001282Y002419D01* +X001286Y002386D01* +X001286Y002354D01* +X001282Y002321D01* +X001274Y002289D01* +X001263Y002259D01* +X001248Y002230D01* +X001229Y002203D01* +X001208Y002178D01* +X001184Y002156D01* +X001157Y002137D01* +X001129Y002121D01* +X001098Y002109D01* +X001067Y002100D01* +X001035Y002095D01* +X001002Y002094D01* +X000969Y002097D01* +X000937Y002104D01* +X000906Y002114D01* +X000877Y002128D01* +X000849Y002146D01* +X000824Y002166D01* +X000801Y002190D01* +X000781Y002216D01* +X000764Y002244D01* +X000751Y002274D01* +X000742Y002305D01* +X000736Y002337D01* +X000734Y002370D01* +X000734Y003200D02* +X000736Y003233D01* +X000742Y003265D01* +X000751Y003296D01* +X000764Y003326D01* +X000781Y003354D01* +X000801Y003380D01* +X000824Y003404D01* +X000849Y003424D01* +X000877Y003442D01* +X000906Y003456D01* +X000937Y003466D01* +X000969Y003473D01* +X001002Y003476D01* +X001035Y003475D01* +X001067Y003470D01* +X001098Y003461D01* +X001129Y003449D01* +X001157Y003433D01* +X001184Y003414D01* +X001208Y003392D01* +X001229Y003367D01* +X001248Y003340D01* +X001263Y003311D01* +X001274Y003281D01* +X001282Y003249D01* +X001286Y003216D01* +X001286Y003184D01* +X001282Y003151D01* +X001274Y003119D01* +X001263Y003089D01* +X001248Y003060D01* +X001229Y003033D01* +X001208Y003008D01* +X001184Y002986D01* +X001157Y002967D01* +X001129Y002951D01* +X001098Y002939D01* +X001067Y002930D01* +X001035Y002925D01* +X001002Y002924D01* +X000969Y002927D01* +X000937Y002934D01* +X000906Y002944D01* +X000877Y002958D01* +X000849Y002976D01* +X000824Y002996D01* +X000801Y003020D01* +X000781Y003046D01* +X000764Y003074D01* +X000751Y003104D01* +X000742Y003135D01* +X000736Y003167D01* +X000734Y003200D01* +X000734Y007570D02* +X000736Y007603D01* +X000742Y007635D01* +X000751Y007666D01* +X000764Y007696D01* +X000781Y007724D01* +X000801Y007750D01* +X000824Y007774D01* +X000849Y007794D01* +X000877Y007812D01* +X000906Y007826D01* +X000937Y007836D01* +X000969Y007843D01* +X001002Y007846D01* +X001035Y007845D01* +X001067Y007840D01* +X001098Y007831D01* +X001129Y007819D01* +X001157Y007803D01* +X001184Y007784D01* +X001208Y007762D01* +X001229Y007737D01* +X001248Y007710D01* +X001263Y007681D01* +X001274Y007651D01* +X001282Y007619D01* +X001286Y007586D01* +X001286Y007554D01* +X001282Y007521D01* +X001274Y007489D01* +X001263Y007459D01* +X001248Y007430D01* +X001229Y007403D01* +X001208Y007378D01* +X001184Y007356D01* +X001157Y007337D01* +X001129Y007321D01* +X001098Y007309D01* +X001067Y007300D01* +X001035Y007295D01* +X001002Y007294D01* +X000969Y007297D01* +X000937Y007304D01* +X000906Y007314D01* +X000877Y007328D01* +X000849Y007346D01* +X000824Y007366D01* +X000801Y007390D01* +X000781Y007416D01* +X000764Y007444D01* +X000751Y007474D01* +X000742Y007505D01* +X000736Y007537D01* +X000734Y007570D01* +X000734Y008420D02* +X000736Y008453D01* +X000742Y008485D01* +X000751Y008516D01* +X000764Y008546D01* +X000781Y008574D01* +X000801Y008600D01* +X000824Y008624D01* +X000849Y008644D01* +X000877Y008662D01* +X000906Y008676D01* +X000937Y008686D01* +X000969Y008693D01* +X001002Y008696D01* +X001035Y008695D01* +X001067Y008690D01* +X001098Y008681D01* +X001129Y008669D01* +X001157Y008653D01* +X001184Y008634D01* +X001208Y008612D01* +X001229Y008587D01* +X001248Y008560D01* +X001263Y008531D01* +X001274Y008501D01* +X001282Y008469D01* +X001286Y008436D01* +X001286Y008404D01* +X001282Y008371D01* +X001274Y008339D01* +X001263Y008309D01* +X001248Y008280D01* +X001229Y008253D01* +X001208Y008228D01* +X001184Y008206D01* +X001157Y008187D01* +X001129Y008171D01* +X001098Y008159D01* +X001067Y008150D01* +X001035Y008145D01* +X001002Y008144D01* +X000969Y008147D01* +X000937Y008154D01* +X000906Y008164D01* +X000877Y008178D01* +X000849Y008196D01* +X000824Y008216D01* +X000801Y008240D01* +X000781Y008266D01* +X000764Y008294D01* +X000751Y008324D01* +X000742Y008355D01* +X000736Y008387D01* +X000734Y008420D01* +X000734Y009920D02* +X000736Y009953D01* +X000742Y009985D01* +X000751Y010016D01* +X000764Y010046D01* +X000781Y010074D01* +X000801Y010100D01* +X000824Y010124D01* +X000849Y010144D01* +X000877Y010162D01* +X000906Y010176D01* +X000937Y010186D01* +X000969Y010193D01* +X001002Y010196D01* +X001035Y010195D01* +X001067Y010190D01* +X001098Y010181D01* +X001129Y010169D01* +X001157Y010153D01* +X001184Y010134D01* +X001208Y010112D01* +X001229Y010087D01* +X001248Y010060D01* +X001263Y010031D01* +X001274Y010001D01* +X001282Y009969D01* +X001286Y009936D01* +X001286Y009904D01* +X001282Y009871D01* +X001274Y009839D01* +X001263Y009809D01* +X001248Y009780D01* +X001229Y009753D01* +X001208Y009728D01* +X001184Y009706D01* +X001157Y009687D01* +X001129Y009671D01* +X001098Y009659D01* +X001067Y009650D01* +X001035Y009645D01* +X001002Y009644D01* +X000969Y009647D01* +X000937Y009654D01* +X000906Y009664D01* +X000877Y009678D01* +X000849Y009696D01* +X000824Y009716D01* +X000801Y009740D01* +X000781Y009766D01* +X000764Y009794D01* +X000751Y009824D01* +X000742Y009855D01* +X000736Y009887D01* +X000734Y009920D01* +D11* +X001010Y009920D03* +X001010Y008420D03* +X001010Y007570D03* +X001010Y003200D03* +X001010Y002370D03* +X001010Y001020D03* +D12* +X002845Y002179D03* +X002845Y002691D03* +X003925Y004104D03* +X003925Y004616D03* +X005735Y003371D03* +X005735Y002859D03* +X007075Y004329D03* +X007575Y004324D03* +X007575Y004836D03* +X007075Y004841D03* +X006445Y005031D03* +X006445Y004519D03* +X009005Y004171D03* +X009005Y003659D03* +X009725Y004849D03* +X009725Y005361D03* +X012760Y006969D03* +X012760Y007481D03* +X013030Y006291D03* +X013030Y005779D03* +X009160Y007164D03* +X009160Y007676D03* +X009060Y009214D03* +X009510Y009214D03* +X009510Y009726D03* +X009060Y009726D03* +X003245Y009056D03* +X003245Y008544D03* +X003405Y007431D03* +X003405Y006919D03* +X009255Y002031D03* +X009255Y001519D03* +X008800Y001516D03* +X008330Y001381D03* +X008800Y001004D03* +X008330Y000869D03* +X009675Y000759D03* +X009675Y001271D03* +X010775Y001034D03* +X011310Y001014D03* +X011910Y001014D03* +X012650Y000829D03* +X012650Y001341D03* +X011910Y001526D03* +X011310Y001526D03* +X010775Y001546D03* +X015755Y003159D03* +X015755Y003671D03* +D13* +X014406Y002720D03* +X013894Y002720D03* +X009961Y003825D03* +X009449Y003825D03* +X009449Y004315D03* +X009961Y004315D03* +X011054Y006070D03* +X011566Y006070D03* +X013654Y006220D03* +X014166Y006220D03* +X015134Y005800D03* +X015646Y005800D03* +X014211Y005525D03* +X013699Y005525D03* +X018994Y006780D03* +X019506Y006780D03* +X019511Y007285D03* +X018999Y007285D03* +X019004Y007800D03* +X019516Y007800D03* +X019516Y008470D03* +X019004Y008470D03* +X019009Y008985D03* +X019521Y008985D03* +X014466Y009830D03* +X013954Y009830D03* +X014161Y009350D03* +X013649Y009350D03* +X005871Y005185D03* +X005359Y005185D03* +X004201Y005215D03* +X003689Y005215D03* +X002986Y005215D03* +X002474Y005215D03* +X005104Y003925D03* +X005616Y003925D03* +X003981Y002700D03* +X003469Y002700D03* +X003469Y002160D03* +X003981Y002160D03* +X005954Y001330D03* +X006466Y001330D03* +X006466Y000890D03* +X005954Y000890D03* +X007279Y000890D03* +X007791Y000890D03* +X007791Y001330D03* +X007279Y001330D03* +X007249Y001795D03* +X007761Y001795D03* +X003951Y007970D03* +X003439Y007970D03* +D14* +X015020Y007963D03* +X015020Y008277D03* +X015020Y008592D03* +X015020Y008907D03* +X015020Y009222D03* +X015020Y007648D03* +X015020Y007333D03* +X015020Y007018D03* +X018400Y007018D03* +X018400Y007333D03* +X018400Y007648D03* +X018400Y007963D03* +X018400Y008277D03* +X018400Y008592D03* +X018400Y008907D03* +X018400Y009222D03* +D15* +X017812Y009810D03* +X017497Y009810D03* +X017182Y009810D03* +X016867Y009810D03* +X016553Y009810D03* +X016238Y009810D03* +X015923Y009810D03* +X015608Y009810D03* +X015608Y006430D03* +X015923Y006430D03* +X016238Y006430D03* +X016553Y006430D03* +X016867Y006430D03* +X017182Y006430D03* +X017497Y006430D03* +X017812Y006430D03* +D16* +X008409Y006701D03* +X008409Y007134D03* +X008409Y007567D03* +X008409Y008000D03* +X008409Y008433D03* +X008409Y008866D03* +X008409Y009300D03* +X004669Y009300D03* +X004669Y008866D03* +X004669Y008433D03* +X004669Y008000D03* +X004669Y007567D03* +X004669Y007134D03* +X004669Y006701D03* +D17* +X004669Y006288D03* +X008409Y006288D03* +X008409Y009713D03* +X004669Y009713D03* +D18* +X003260Y009320D03* +X000465Y009320D03* +D19* +X013560Y001920D03* +X014560Y001920D03* +X015560Y001920D03* +X015560Y000920D03* +X014560Y000920D03* +X013560Y000920D03* +D20* +X006455Y002040D03* +X006455Y002710D03* +X006365Y003225D03* +X006365Y003895D03* +X003310Y004020D03* +X003310Y004690D03* +X003860Y008435D03* +X003860Y009105D03* +D21* +X009265Y006670D03* +X009265Y006080D03* +X007575Y005790D03* +X007075Y005785D03* +X007075Y005195D03* +X007575Y005200D03* +X018715Y006270D03* +X019305Y006270D03* +D22* +X002891Y007490D03* +X001729Y007490D03* +D23* +X002310Y008091D03* +D24* +X006980Y007960D03* +X006980Y006960D03* +X006980Y008960D03* +X004060Y001110D03* +X003060Y001110D03* +X002060Y001110D03* +X017465Y000880D03* +X018465Y000880D03* +D25* +X018301Y002776D03* +X018301Y002973D03* +X018301Y003170D03* +X018301Y003367D03* +X018301Y003564D03* +X019219Y003564D03* +X019219Y003367D03* +X019219Y003170D03* +X019219Y002973D03* +X019219Y002776D03* +X011754Y008611D03* +X011557Y008611D03* +X011360Y008611D03* +X011163Y008611D03* +X010966Y008611D03* +X010966Y009529D03* +X011163Y009529D03* +X011360Y009529D03* +X011557Y009529D03* +X011754Y009529D03* +D26* +X018652Y003810D03* +X018868Y003810D03* +X018868Y002530D03* +X018652Y002530D03* +D27* +X018760Y003170D03* +D28* +X018152Y003170D03* +X018152Y002973D03* +X018152Y002776D03* +X018152Y003367D03* +X018152Y003564D03* +X019368Y003564D03* +X019368Y003367D03* +X019368Y003170D03* +X019368Y002973D03* +X019368Y002776D03* +D29* +X017060Y002970D03* +X017060Y001970D03* +D30* +X019410Y001971D03* +X019410Y000869D03* +X010225Y006534D03* +X010225Y007636D03* +X010160Y008519D03* +X010160Y009621D03* +X012560Y009621D03* +X012560Y008519D03* +X005045Y002176D03* +X005045Y001074D03* +D31* +X017809Y005370D03* +X018911Y005370D03* +X018961Y004470D03* +X017859Y004470D03* +D32* +X012000Y008962D03* +X012000Y009178D03* +X010720Y009178D03* +X010720Y008962D03* +D33* +X011360Y009070D03* +D34* +X011360Y008462D03* +X011163Y008462D03* +X010966Y008462D03* +X011557Y008462D03* +X011754Y008462D03* +X011754Y009678D03* +X011557Y009678D03* +X011360Y009678D03* +X011163Y009678D03* +X010966Y009678D03* +D35* +X011110Y007120D03* +X012110Y007120D03* +D36* +X012387Y004670D03* +X010733Y004670D03* +X010733Y002670D03* +X012387Y002670D03* +D37* +X012537Y003670D03* +X010583Y003670D03* +D38* +X011110Y003670D03* +X012010Y003670D03* +D39* +X011960Y004170D03* +X011160Y004170D03* +X011160Y003170D03* +X011960Y003170D03* +D40* +X013881Y006931D03* +X013881Y008427D03* +D41* +X008557Y003449D03* +X008557Y003252D03* +X008557Y003055D03* +X008557Y002858D03* +X008557Y002661D03* +X006983Y002661D03* +X006983Y002858D03* +X006983Y003055D03* +X006983Y003252D03* +X006983Y003449D03* +D42* +X007376Y003842D03* +X007573Y003842D03* +X007770Y003842D03* +X007967Y003842D03* +X008164Y003842D03* +X008164Y002268D03* +X007967Y002268D03* +X007770Y002268D03* +X007573Y002268D03* +X007376Y002268D03* +D43* +X007770Y003055D03* +D44* +X005190Y003315D03* +X004520Y003315D03* +X003985Y003310D03* +X003315Y003310D03* +X005290Y004565D03* +X005960Y004565D03* +D45* +X001170Y004210D03* +X001170Y005210D03* +X001170Y006210D03* +D46* +X008269Y005356D03* +X008623Y005356D03* +X008977Y005356D03* +X009331Y005356D03* +X009331Y004884D03* +X008977Y004884D03* +X008623Y004884D03* +X008269Y004884D03* +D47* +X008665Y005880D03* +X010060Y005815D03* +X009645Y007840D03* +X009285Y008580D03* +X013615Y009905D03* +X014970Y009930D03* +X018405Y009705D03* +X018935Y010135D03* +X019685Y010140D03* +X003820Y007135D03* +X003815Y006700D03* +D48* +X013674Y004751D03* +X013674Y004160D03* +X013674Y003569D03* +X014816Y003569D03* +X014816Y004160D03* +X014816Y004751D03* +D49* +X014245Y004770D03* +M02* diff --git a/gerber/PecanPico4.TXT b/gerber/PecanPico4.TXT new file mode 100644 index 0000000..b5b5454 --- /dev/null +++ b/gerber/PecanPico4.TXT @@ -0,0 +1,308 @@ +% +M48 +M72 +T01C0.0120 +T02C0.0150 +T03C0.0197 +T04C0.0400 +T05C0.0551 +% +T01 +X2450Y3475 +X4860Y2610 +X6865Y1795 +X8380Y1940 +X9260Y2225 +X9795Y2190 +X9265Y2570 +X9270Y2900 +X9830Y3030 +X9715Y3410 +X10730Y3250 +X10470Y4095 +X11355Y4625 +X11740Y4625 +X11745Y4960 +X11360Y4960 +X10120Y4865 +X8970Y4565 +X8005Y4840 +X7945Y4455 +X7118Y3754 +X8350Y5660 +X8870Y5650 +X8055Y5900 +X7825Y6280 +X7450Y6355 +X7065Y6360 +X6695Y6370 +X7815Y6695 +X7810Y7570 +X9035Y8050 +X9250Y8330 +X9895Y7085 +X12010Y8270 +X12790Y7860 +X13325Y7720 +X13690Y8005 +X14380Y7890 +X15515Y7500 +X16090Y7540 +X16085Y7880 +X15520Y8270 +X16010Y8670 +X15655Y8920 +X15980Y9365 +X16565Y9365 +X17395Y9305 +X17865Y9300 +X18015Y8920 +X17655Y8785 +X17270Y8755 +X17735Y8390 +X17070Y8240 +X17820Y7915 +X17890Y7585 +X17665Y7330 +X17635Y6965 +X17145Y7190 +X16890Y7370 +X16610Y7215 +X16960Y6920 +X15710Y6870 +X14965Y6365 +X15925Y6105 +X16360Y5970 +X15940Y5750 +X15645Y5440 +X15170Y5495 +X14690Y5600 +X14100Y5000 +X14155Y4475 +X14630Y4440 +X14335Y4010 +X15195Y3545 +X16160Y3860 +X16465Y3735 +X16815Y3890 +X16380Y4190 +X15715Y4235 +X16080Y4605 +X15162Y4830 +X16510Y5250 +X16875Y5540 +X18360Y5020 +X18530Y5330 +X19430Y5075 +X19435Y4690 +X19440Y4260 +X19180Y3880 +X18585Y3990 +X17540Y3735 +X17110Y4345 +X17185Y4660 +X18415Y4645 +X19460Y5785 +X18625Y5990 +X18535Y6520 +X19755Y7810 +X19675Y9400 +X19350Y9365 +X18715Y9505 +X19495Y9760 +X19190Y10020 +X15275Y9745 +X14705Y10190 +X14440Y9460 +X14525Y8950 +X13365Y9035 +X12310Y9070 +X12020Y9675 +X11510Y9950 +X11225Y10170 +X10710Y9920 +X13145Y6955 +X12655Y6255 +X12610Y5800 +X12955Y5520 +X13395Y5795 +X14495Y7050 +X10390Y5825 +X9745Y5660 +X12935Y4295 +X13355Y4205 +X13275Y3390 +X13820Y3225 +X12920Y2560 +X11795Y2185 +X12050Y1845 +X13015Y1585 +X11310Y800 +X10245Y1080 +X10490Y1495 +X9660Y1535 +X8800Y800 +X14755Y2510 +X15435Y2605 +X15945Y2725 +X18000Y2070 +X18805Y2280 +X19460Y2470 +X19610Y1470 +X16740Y1320 +T02 +X2085Y6755 +X2425Y6750 +X2830Y6750 +X3145Y6450 +X3465Y6460 +X3740Y6325 +X4035Y6385 +X3050Y5935 +X3260Y5670 +X3575Y5660 +X2935Y5665 +X2575Y5650 +X2205Y5660 +X2245Y5975 +X2260Y6355 +X4010Y7520 +X5310Y7370 +X5300Y6985 +X5290Y6560 +X5655Y6305 +X6000Y6205 +X6360Y6200 +X6050Y5785 +X5740Y5790 +X7625Y7120 +X7755Y8035 +X7760Y8520 +X7760Y9020 +X7570Y9370 +X7580Y9755 +X7645Y10105 +X7240Y10120 +X6810Y10120 +X6410Y10120 +X6010Y10120 +X5560Y10120 +X5085Y10125 +X5310Y9770 +X5310Y9370 +X5310Y8970 +X5310Y8570 +X5310Y8170 +X5310Y7770 +X3905Y9730 +X3900Y10130 +X4645Y10130 +X10160Y9070 +X11090Y8935 +X12655Y9115 +X13205Y9570 +X13100Y4855 +X11340Y2515 +X10110Y2005 +X9255Y1105 +X9285Y515 +X8580Y510 +X7915Y505 +X6860Y535 +X6875Y895 +X5620Y515 +X5215Y515 +X4845Y515 +X4495Y520 +X4110Y520 +X3755Y530 +X3410Y520 +X3060Y520 +X2710Y520 +X2340Y510 +X2000Y505 +X1660Y520 +X1310Y520 +X560Y570 +X510Y1370 +X820Y1595 +X1200Y1625 +X1565Y1630 +X1845Y1790 +X2160Y1795 +X2510Y1710 +X2830Y1780 +X3175Y1815 +X3565Y1650 +X4425Y1715 +X4440Y2080 +X4445Y2455 +X4445Y2855 +X5290Y2760 +X5895Y2460 +X6990Y2275 +X5955Y1745 +X5650Y1770 +X7775Y3055 +X4720Y3750 +X4080Y3735 +X2835Y3800 +X2825Y3470 +X2820Y3140 +X2505Y3045 +X2400Y2715 +X2405Y2390 +X2395Y2035 +X1470Y2015 +X510Y2070 +X510Y1720 +X605Y2775 +X1375Y2780 +X1570Y3610 +X1905Y3610 +X2195Y3755 +X2200Y4110 +X2210Y4430 +X2210Y4765 +X2545Y4765 +X2855Y4760 +X2840Y4440 +X2835Y4135 +X505Y3670 +X10110Y510 +X10530Y515 +X10990Y510 +X11605Y535 +X12180Y535 +X12565Y515 +X16370Y1035 +X16765Y535 +X18590Y3495 +T03 +X7514Y3311 +X8026Y3311 +X8026Y2799 +X7514Y2799 +T04 +X6980Y7960 +X6980Y6960 +X6980Y8960 +X2060Y1110 +X3060Y1110 +X4060Y1110 +X13560Y920 +X14560Y920 +X15560Y920 +X15560Y1920 +X14560Y1920 +X13560Y1920 +X17465Y880 +X18465Y880 +T05 +X1010Y1020 +X1010Y2370 +X1010Y3200 +X1010Y7570 +X1010Y8420 +X1010Y9920 +M30 diff --git a/gps.cpp b/gps.cpp new file mode 100644 index 0000000..5a24b9a --- /dev/null +++ b/gps.cpp @@ -0,0 +1,1016 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#include "config.h" +#include "gps.h" + + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif +#include +#include +#include + + +PROGMEM const prog_uchar ubx_setNav[] = { + 0xB5, 0x62, 0x06, 0x24, 0x24, 0x00, 0xFF, 0xFF, 0x06, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x05, 0x00, + 0xFA, 0x00, 0xFA, 0x00, 0x64, 0x00, 0x2C, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x16, 0xDC +}; + +// The ISS Kepplerian Elements calculated dataset (starting at Apr. 8th 23:00:00 UTC) +PROGMEM const prog_uint16_t ISSData[] = { + 26392, 24859, 23325, 21792, 20258, 18725, 17192, 16171, + 14638, 13618, 12085, 11065, 10046, 9026, 8519, 8013, + 7506, 7000, 6494, 6500, 6146, 6663, 7181, 7699, + 8216, 9245, 10273, 11301, 12329, 13357, 14896, 16436, + 17463, 19001, 20540, 22079, 23617, 25156, 26694, 28232, + 29770, 31309, 32847, 34385, 35923, 37461, 38999, 40538, + 42076, 43615, 45153, 46692, 47719, 49258, 50797, 51824, + 53364, 54392, 55420, 56449, 56965, 57995, 58512, 59030, + 59548, 59554, 59560, 59053, 59059, 58553, 57534, 57027, + 56008, 54988, 53968, 52436, 51416, 49883, 48862, 47329, + 45796, 44262, 42729, 41195, 39662, 38128, 36594, 35060, + 33526, 31993, 30459, 28925, 27391, 25857, 24324, 22790, + 21257, 19723, 18190, 17169, 15636, 14616, 13083, 12063, + 11043, 10023, 9004, 8497, 7479, 6972, 6978, 6472, + 6478, 6996, 7002, 7519, 8037, 8706, 9222, 10251, + 11279, 12819, 13846, 15386, 16413, 17952, 19491, 21029, + 22056, 23594, 25133, 26671, 28209, 29747, 31286, 33336, + 34874, 36412, 37950, 39489, 41027, 42565, 44104, 45642, + 46669, 48208, 49747, 50774, 52314, 53341, 54369, 55398, + 56426, 57455, 57972, 58490, 59008, 59526, 59532, 59538, + 59032, 58525, 58019, 57512, 56493, 55474, 54454, 53434, + 52414, 50881, 49860, 48327, 46794, 45261, 43727, 42194, + 40660, 39127, 37593, 36059, 34525, 32991, 31458, 29924, + 28390, 26856, 25322, 23789, 22255, 20722, 19189, 18167, + 16634, 15102, 14081, 12549, 11529, 10509, 9489, 8982, + 7963, 7457, 6950, 6444, 6450, 6456, 6974, 6980, + 7497, 8526, 9043, 10072, 11100, 12129, 13156, 14696, + 15363, 16902, 18441, 19980, 21007, 22545, 24083, 25622, + 27160, 28698, 30236, 31775, 33313, 34851, 36901, 38439, + 39978, 41516, 43054, 44081, 45619, 47158, 48697, 50236, + 51264, 52803, 53831, 54859, 55887, 56916, 57433, 58462, + 58980, 58986, 59504, 59510, 59516, 59010, 58503, 57997, + 56978, 56471, 55451, 54431, 52899, 51879, 50346, 49326, + 47793, 46259, 44726, 43705, 42171, 40637, 39104, 37570, + 35524, 33990, 32456, 30923, 29389, 27855, 26321, 24788, + 23254, 21720, 20187, 19166, 17633, 16100, 15079, 13546, + 12526, 11506, 10486, 9467, 8448, 7941, 7435, 6928, + 6422, 6428, 6434, 6952, 7470, 7987, 8504, 9533, + 10562, 11590, 12618, 13646, 15185, 16212, 17752, 19290, + 20317, 21856, 23394, 24933, 26471, 27649, 29187, 30726, + 32264, 33802, 35340, 36878, 38416, 39955, 41493, 43031, + 44570, 46109, 47647, 49186, 50214, 51753, 52781, 53809, + 55349, 56377, 56894, 57923, 58440, 58958, 58964, 59482, + 59488, 58982, 58988, 58481, 57463, 56956, 55936, 54917, + 53897, 52877, 51344, 50324, 48791, 47258, 45725, 44703, + 43170, 41636, 40102, 38569, 37035, 35501, 33967, 31922, + 30388, 28854, 27320, 25786, 24253, 22719, 21186, 20164, + 18631, 17098, 15565, 14544, 13012, 11992, 10972, 9952, + 8933, 8426, 7407, 6901, 6906, 6400, 6406, 6412, + 6930, 7448, 7965, 8994, 9511, 10539, 11568, 12596, + 14135, 15163, 16702, 18241, 19268, 20806, 22345, 23883, + 25422, 26960, 28498, 30036, 31575, 33113, 34651, 36189, + 37727, 39265, 40804, 42342, 43521, 45059, 46598, 48137, + 49164, 50703, 51730, 53270, 54298, 55326, 56355, 57384, + 57901, 58418, 58936, 59454, 59460, 59466, 58960, 58454, + 57947, 57441, 56422, 55914, 54895, 53363, 52342, 51322, + 49789, 48256, 47235, 45702, 44168, 42635, 41101, 39568, + 38034, 36500, 34966, 33432, 31899, 30365, 28319, 26785, + 25251, 23718, 22696, 21163, 19629, 18096, 16563, 15542, + 14010, 12989, 11969, 10437, 9930, 8911, 7892, 7385, + 6879, 6884, 6378, 6384, 6902, 6908, 7426, 7943, + 8972, 10001, 11029, 12057, 13085, 14113, 15652, 17191, + 18218, 19757, 21295, 22834, 24372, 25911, 27449, 28987, + 30525, 32064, 33602, 35140, 36678, 38216, 39755, 41293, + 42831, 44370, 45908, 47447, 48474, 50013, 51552, 52580, + 54120, 54788, 55816, 56845, 57362, 57879, 58397, 58914, + 59432, 59438, 59444, 58938, 58432, 57925, 57418, 56399, + 55380, 54360, 53340, 51808, 50787, 49254, 47721, 46700, + 45167, 43634, 42100, 40566, 39033, 37499, 35965, 34431, + 32897, 31364, 29830, 28296, 26762, 25229, 23695, 22161, + 20628, 19095, 17562, 16541, 15008, 13475, 12455, 11435, + 10415, 9396, 8376, 7870, 7363, 6857, 6351, 6357, + 6362, 6880, 7398, 7916, 8433, 8950, 9978, 11007, + 12035, 13575, 14602, 16141, 17168, 18707, 20246, 21785, + 23323, 24862, 26400, 27938, 29476, 31014, 32553, 34091, + 35629, 37167, 38705, 40244, 41782, 43320, 44859, 46398, + 47936, 48963, 50502, 51530, 53069, 54097, 55125, 56154, + 57183, 57700, 58369, 58887, 58892, 59410, 59416, 58910, + 58916, 58410, 57903, 56884, 55865, 54846, 53826, 52806, + 51785, 50253, 48720, 47699, 46165, 44632, 43099, 41565, + 40031, 38498, 36964, 35430, 33896, 32363, 30829, 29295, + 27761, 26227, 24694, 23160, 21627, 20093, 18560, 17027, + 16006, 14473, 13453, 11920, 10900, 9881, 9373, 8354, + 7848, 7341, 6835, 6329, 6335, 6341, 6858, 7376, + 7894, 8411, 9440, 10468, 11496, 12524, 13552, 15091, + 16119, 17658, 19197, 20735, 22274, 23812, 24839, 26377, + 28427, 29965, 31504, 33042, 34580, 36118, 37656, 39194, + 40733, 42271, 43810, 45348, 46887, 47914, 49453, 50992, + 52019, 53559, 54587, 55615, 56644, 57160, 58190, 58707, + 59225, 59743, 59749, 59395, 58888, 58894, 58388, 57369, + 56862, 55843, 54823, 53803, 52271, 51251, 49718, 48697, + 47164, 45631, 44097, 42564, 41030, 39497, 37963, 36429, + 34895, 33361, 31828, 30294, 28760, 27226, 25692, 24159, + 22625, 21092, 19558, 18025, 17004, 15471, 14451, 12918, + 11898, 10878, 9858, 8839, 8332, 7314, 6807, 6813, + 6307, 6313, 6831, 6837, 7354, 7872, 8901, 9417, + 10446, 11474, 13014, 14041, 15581, 16608, 18147, 19686, + 21224, 22251, 23789, 25328, 26866, 28404, 29942, 31481, + 33019, 35069, 36607, 38145, 39684, 41222, 42760, 44299, + 45325, 46864, 48403, 49942, 50969, 52509, 53536, 54564, + 55593, 56621, 57650, 58167, 58685, 59203, 59721, 59727, + 59733, 59226, 58720, 58214, 57347, 56328, 55308, 54289, + 53269, 52248, 50716, 49695, 48162, 46629, 45096, 43562, + 42029, 41007, 39474, 37428, 35894, 34360, 32826, 31293, + 29759, 28225, 26691, 25157, 23624, 22090, 20557, 19024, + 18002, 16469, 14937, 13916, 12384, 11363, 10344, 9324, + 8817, 7798, 7291, 6785, 6279, 6285, 6291, 6809, + 6815, 7332, 8361, 8878, 9907, 10935, 11963, 12991, + 14531, 15558, 17097, 18636, 19663, 21202, 22740, 24278, + 25817, 27355, 28893, 30431, 31970, 33508, 35046, 36584, + 38122, 40173, 41711, 42737, 44276, 45814, 47353, 48892, + 49919, 51459, 52486, 54026, 55054, 56082, 57111, 57628, + 58657, 59175, 59181, 59699, 59705, 59711, 59205, 58698, + 58192, 57173, 56666, 55646, 54626, 53094, 51714, 50181, + 49161, 47628, 46094, 45073, 43540, 42006, 40472, 38939, + 37405, 35871, 33825, 32291, 30758, 29224, 27690, 26156, + 24623, 23089, 21555, 20022, 19001, 17468, 15935, 14914, + 13381, 12361, 11341, 10321, 9302, 8283, 7776, 7269, + 6763, 6257, 6263, 6269, 6787, 7305, 7822, 8339, + 9368, 10397, 11425, 12453, 13481, 14508, 16047, 17587, + 18613, 20152, 21691, 23229, 24768, 26306, 27844, 29382, + 30921, 32459, 33997, 35535, 37073, 38611, 40150, 41688, + 43226, 44765, 46304, 47842, 49381, 50409, 51948, 52976, + 54003, 55544, 56060, 57089, 58118, 58635, 59153, 59159, + 59677, 59683, 59177, 59183, 58676, 57658, 57151, 56131, + 55112, 54092, 53072, 51539, 50519, 48986, 47453, 46432, + 44898, 43365, 41831, 39938, 38404, 36870, 35336, 33802, + 32269, 30223, 28689, 27155, 25621, 24088, 22554, 21533, + 19999, 18466, 16933, 15400, 14379, 12847, 11827, 10807, + 9787, 8768, 8261, 7242, 6736, 6741, 6235, 6241, + 6247, 6765, 7283, 7800, 8829, 9346, 10374, 11403, + 12431, 13970, 14998, 16537, 17564, 19103, 20641, 22180, + 23718, 25257, 26795, 28333, 29871, 31410, 32948, 34486, + 36024, 37562, 39100, 40639, 42177, 43716, 45254, 46793, + 48332, 49359, 50898, 51925, 53465, 54493, 55521, 56550, + 57579, 58096, 58613, 59131, 59649, 59655, 59661, 59155, + 58649, 58142, 57636, 56617, 56109, 55089, 53558, 52537, + 51517, 49984, 48451, 47430, 45897, 44363, 42830, 41296, + 39763, 38229, 36695, 35161, 33627, 32094, 30560, 29026, + 27492, 25958, 24065, 22531, 20998, 19464, 17931, 16398, + 15377, 13845, 12824, 11804, 10272, 9765, 8746, 7727, + 7220, 6714, 6719, 6213, 6219, 6737, 6743, 7261, + 7778, 8807, 9836, 10864, 11892, 12920, 13948, 15487, + 17026, 18053, 19592, 21130, 22669, 24207, 25746, 27284, + 28822, 30360, 31899, 33437, 34975, 36513, 38051, 39590, + 41128, 42666, 44205, 45743, 47282, 48309, 49848, 51387, + 52415, 53443, 54983, 56011, 56528, 57557, 58074, 58591, + 59109, 59627, 59633, 59639, 59133, 58627, 58120, 57613, + 56594, 55575, 54555, 53535, 52003, 50982, 49449, 48428, + 46895, 45362, 43829, 42295, 40761, 39228, 37694, 36160, + 34626, 33092, 31559, 30025, 28491, 26957, 25424, 23890, + 22356, 20823, 19290, 17757, 16736, 15203, 14182, 12290, + 11270, 10250, 9231, 8211, 7705, 7198, 6692, 6186, + 6191, 6197, 6715, 6721, 7751, 8268, 8785, 9813, + 10842, 11870, 13410, 14437, 15976, 17003, 18542, 20081, + 21620, 23158, 24697, 26235, 27773, 29311, 30850, 32388, + 33926, 35464, 37002, 38540, 40079, 41617, 43155, 44694, + 46233, 47259, 48798, 50337, 51365, 52904, 53932, 54960, + 55989, 57017, 57535, 58564, 59082, 59087, 59605, 59611, + 59105, 59111, 58605, 58098, 57079, 56060, 55041, 54021, + 53001, 51980, 50448, 48915, 47894, 46360, 44827, 43294, + 41760, 40226, 38693, 37159, 35625, 34091, 32558, 31024, + 29490, 27956, 26422, 24889, 23355, 21822, 20288, 18755, + 17734, 16201, 14668, 13648, 12627, 11095, 10076, 9568, + 8549, 7683, 7176, 6670, 6164, 6170, 6176, 6693, + 7211, 7729, 8246, 9275, 10303, 11331, 12359, 13387, + 14926, 15954, 17493, 19032, 20570, 22109, 23135, 24674, + 26212, 27750, 29288, 31339, 32877, 34415, 35953, 37491, + 39029, 40568, 42106, 43645, 45183, 46210, 47749, 49288, + 50827, 51854, 52882, 54422, 55450, 56479, 56995, 58024, + 58542, 59060, 59577, 59583, 59589, 59083, 59089, 58583, + 57564, 57057, 56038, 55018, 53998, 52466, 51446, 49913, + 48892, 47359, 45826, 44292, 42759, 41225, 39692, 38158, + 36624, 35090, 33556, 32023, 30489, 28955, 27421, 25887, + 24354, 22820, 21287, 19753, 18220, 17199, 15666, 14646, + 13113, 12093, 11073, 10053, 9034, 8527, 7508, 7002, + 7008, 6502, 6148, 6666, 6671, 7189, 7706, 8736, + 9252, 10281, 11309, 12849, 13876, 15416, 16443, 17982, + 19521, 20547, 22086, 23624, 25163, 26701, 28239, 29777, + 31316, 32854, 34904, 36442, 37980, 39519, 41057, 42595, + 44134, 45160, 46699, 48238, 49777, 50804, 52344, 53371, + 54399, 55428, 56456, 57485, 58002, 58520, 59038, 59556, + 59562, 59568, 59062, 58555, 58049, 57542, 56523, 55504, + 54484, 53464, 52444, 50911, 49890, 48357, 46824, 45291, + 43757, 42736, 41202, 39669, 37623, 36089, 34555, 33021, + 31488, 29954, 28420, 26886, 25353, 23819, 22285, 20752, + 19219, 18197, 16664, 15132, 14111, 12579, 11559, 10539, + 9519, 9012, 7993, 7486, 6980, 6474, 6480, 6486, + 7004, 7010, 7527, 8196, 8713, 9742, 10770, 11799, + 12826, 14366, 15393, 16932, 18471, 19498, 21037, 22575, + 24114, 25652, 27190, 28728, 30267, 31805, 33343, 34881, + 36419, 37957, 40008, 41034, 42572, 44111, 45650, 47188, + 48727, 49754, 51294, 52321, 53861, 54889, 55917, 56946, + 57463, 58492, 59010, 59016, 59534, 59540, 59546, 59040, + 58533, 58027, 57008, 56501, 55481, 54461, 52929, 51909, + 50376, 49356, 47823, 46289, 45268, 43735, 42201, 40667, + 39134, 37600, 36066, 34532, 32487, 30953, 29419, 27885, + 26351, 24818, 23284, 21751, 20217, 19196, 17663, 16130, + 15109, 13576, 12556, 11536, 10516, 9497, 8478, 7971, + 7465, 6958, 6452, 6458, 6464, 6982, 7500, 8017, + 8534, 9563, 10080, 11620, 12288, 13316, 14343, 15883, + 17422, 18448, 19987, 21526, 23064, 24603, 26141, 27679, + 29217, 30756, 32294, 33832, 35370, 36908, 38446, 39985, + 41523, 43062, 44600, 46139, 47678, 49217, 50244, 51783, + 52811, 53839, 55379, 55895, 56924, 57953, 58470, 58988, + 58994, 59512, 59518, 59012, 59018, 58511, 57493, 56986, + 55966, 54947, 53927, 52907, 51374, 50354, 48821, 47288, + 46267, 44733, 43200, 41666, 40133, 38599, 37065, 35531, + 33997, 32464, 30930, 28884, 27350, 25816, 24283, 22749, + 21728, 20194, 18661, 17128, 15595, 14574, 13554, 12022, + 11002, 9982, 8963, 8456, 7437, 6931, 6936, 6430, + 6436, 6442, 6960, 7478, 7995, 9024, 9541, 10569, + 11598, 12626, 14165, 15193, 16732, 17759, 19298, 20836, + 22375, 23553, 25092, 26630, 28168, 29706, 31245, 32783, + 34321, 35859, 37397, 38936, 40474, 42012, 43551, 45089, + 46628, 48167, 49194, 50733, 51760, 53300, 54328, 55356, + 56385, 57414, 57931, 58448, 58966, 59484, 59490, 59496, + 58990, 58484, 57977, 57471, 56452, 55944, 54925, 53393, + 52372, 51352, 49819, 48286, 47265, 45732, 44198, 42665, + 41131, 39598, 38064, 36530, 34996, 33462, 31929, 30395, + 28861, 27327, 25794, 24260, 22726, 21193, 19660, 18126, + 16593, 15572, 14040, 13019, 11999, 10467, 9960, 8941, + 7922, 7415, 6909, 6914, 6408, 6414, 6932, 6938, + 7456, 7973, 9002, 10031, 11059, 12087, 13115, 14143, + 15682, 17221, 18248, 19787, 21326, 22864, 24402, 25941, + 27479, 29017, 30556, 32094, 33632, 35170, 36708, 38246, + 39425, 40963, 42501, 44040, 45578, 47117, 48144, 49683, + 51222, 52250, 53278, 54818, 55846, 56363, 57392, 57909, + 58426, 58944, 59462, 59468, 59474, 58968, 58462, 57955, + 57448, 56429, 55410, 54390, 53370, 51838, 50817, 49284, + 48263, 46730, 45197, 43664, 42130, 40596, 39063, 37529, + 35995, 34461, 32928, 31394, 29860, 28326, 26792, 25259, + 23725, 22191, 20658, 19125, 17592, 16571, 15038, 14017, + 12485, 11465, 10445, 9426, 8406, 7900, 7393, 6887, + 6381, 6387, 6392, 6910, 6916, 7946, 8463, 8980, + 10008, 11037, 12065, 13605, 14632, 16171, 17198, 18737, + 20276, 21815, 23353, 24892, 26430, 27968, 29506, 31045, + 32583, 34121, 35659, 37197, 38735, 40274, 41812, 43350, + 44889, 46428, 47454, 48993, 50533, 51560, 52739, 53767, + 54795, 55824, 56853, 57370, 58399, 58917, 58922, 59440, + 59446, 58940, 58946, 58440, 57933, 56914, 55895, 54876, + 53856, 52836, 51815, 50283, 48750, 47729, 46196, 44662, + 43129, 41595, 40062, 38528, 36994, 35460, 33926, 32393, + 30859, 29325, 27791, 26257, 24724, 23190, 21657, 20123, + 18590, 17569, 16036, 14503, 13483, 12462, 10930, 9911, + 9403, 8384, 7878, 7371, 6865, 6359, 6365, 6371, + 6888, 7406, 7924, 8441, 9470, 10498, 11526, 12554, + 13582, 15121, 16149, 17688, 19227, 20765, 22304, 23330, + 24869, 26407, 27945, 29483, 31534, 33072, 34610, 36148, + 37686, 39225, 40763, 42301, 43840, 45378, 46405, 47944, + 49483, 51022, 52049, 53077, 54617, 55645, 56674, 57190, + 57860, 58377, 58895, 59413, 59419, 59425, 58918, 58924, + 58418, 57399, 56892, 55873, 54853, 53833, 52301, 51281, + 49748, 48727, 47194, 45661, 44127, 42594, 41060, 39527, + 37993, 36459, 34925, 33391, 31858, 30324, 28790, 27256, + 25722, 24189, 22655, 21122, 19588, 18055, 17034, 15501, + 14481, 12948, 11928, 10908, 9889, 8869, 8362, 7344, + 6837, 6843, 6337, 6343, 6861, 6867, 7384, 7902, + 8931, 9447, 10476, 11504, 13044, 14072, 15611, 16638, + 18177, 19716, 20742, 22281, 23819, 25358, 26896, 28434, + 29973, 31511, 33049, 35099, 36637, 38175, 39714, 41252, + 42790, 44329, 45355, 46894, 48433, 49972, 50999, 52539, + 53566, 54594, 55623, 56651, 57680, 58197, 58715, 59233, + 59751, 59397, 59403, 58897, 58390, 57884, 57377, 56358, + 55339, 54319, 53299, 52279, 50746, 49725, 48192, 46659, + 45126, 43593, 42571, 41037, 39504, 37458, 35924, 34390, + 32857, 31323, 29789, 28255, 26721, 25188, 23654, 22120, + 20587, 19054, 18032, 16499, 14967, 13946, 12414, 11394, + 10374, 9354, 8847, 7828, 7322, 6815, 6309, 6315, + 6321, 6839, 6845, 7362, 8391, 8908, 9937, 10966, + 11994, 13021, 14561, 15588, 17127, 18666, 19693, 21232, + 22770, 24309, 25847, 27385, 28923, 30462, 32000, 33538, + 35076, 36614, 38152, 39691, 41229, 42767, 44306, 45845, + 47383, 48922, 49949, 51489, 52516, 54056, 55084, 56112, + 57141, 57658, 58687, 59205, 59211, 59729, 59735, 59741, + 59235, 58368, 57862, 56843, 56336, 55316, 54296, 52764, + 51744, 50723, 49191, 47658, 46124, 45103, 43570, 42036, + 40503, 38969, 37435, 35901, 34367, 32322, 30788, 29254, + 27720, 26186, 24653, 23119, 21586, 20052, 19031, 17498, + 15965, 14944, 13411, 12391, 11371, 10351, 9332, 8313, + 7806, 7300, 6793, 6287, 6293, 6299, 6817, 7335, + 7852, 8369, 9398, 9915, 11455, 12483, 13511, 14538, + 16078, 17617, 18644, 20182, 21721, 23259, 24798, 26336, + 27874, 29412, 30951, 32489, 34027, 35565, 37103, 38641, + 40180, 41718, 43257, 44795, 46334, 47873, 49412, 50439, + 51978, 53006, 54033, 55062, 56090, 57119, 58148, 58665, + 59183, 59189, 59707, 59713, 59207, 59213, 58706, 57688, + 57181, 56161, 55142, 53762, 52742, 51209, 50189, 48656, + 47123, 46102, 44568, 43035, 41501, 39968, 38434, 36900, + 35366, 33832, 32299, 30765, 29231, 27185, 25651, 24118, + 23096, 21563, 20029, 18496, 16963, 15942, 14409, 13389, + 11857, 10837, 9817, 8798, 8291, 7272, 6766, 6771, + 6265, 6271, 6277, 6795, 7313, 7830, 8347, 9376, + 10404, 11433, 12461, 14000, 15028, 16567, 17594, 19133, + 20671, 22210, 23748, 25287, 26825, 28363, 29901, 31440, + 32978, 34516, 36054, 37592, 39131, 40669, 42207, 43746, + 45284, 46823, 48362, 49389, 50928, 51955, 53495, 54523, + 55551, 56580, 57609, 58126, 58643, 59161, 59679, 59685, + 59691, 59185, 58679, 58172, 57666, 56647, 56139, 55120, + 53588, 52567, 51547, 50014, 48481, 47460, 45927, 44033, + 42500, 40966, 39433, 37899, 36365, 34831, 33297, 31764, + 30230, 28696, 27162, 25629, 24095, 22561, 21028, 19495, + 17961, 16428, 15407, 13875, 12854, 11834, 10814, 9795, + 8776, 7757, 7250, 6744, 6749, 6243, 6249, 6767, + 6773, 7291, 7808, 8837, 9866, 10894, 11922, 12950, + 13978, 15517, 17056, 18083, 19622, 21161, 22699, 24237, + 25776, 27314, 28852, 30391, 31929, 33467, 35005, 36543, + 38081, 39620, 41158, 42696, 44235, 45773, 47312, 48339, + 49878, 51417, 52445, 53473, 55013, 56041, 56558, 57587, + 58104, 58621, 59139, 59657, 59663, 59669, 59163, 58657, + 58150, 57643, 56624, 55605, 54585, 53565, 52033, 51012, + 49479, 48458, 46925, 45392, 43859, 42325, 40791, 39258, + 37724, 36190, 34656, 33123, 31589, 30055, 28161, 26627, + 25094, 23560, 22026, 20493, 18960, 17427, 16406, 14873, + 13852, 12320, 11300, 10280, 9261, 8241, 7735, 7228, + 6722, 6215, 6221, 6227, 6745, 6751, 7781, 8298, + 8815, 9843, 10872, 11900, 13440, 14467, 16006, 17033, + 18572, 20111, 21650, 23188, 24727, 26265, 27803, 29341, + 30880, 32418, 33956, 35494, 37032, 38570, 40109, 41647, + 43185, 44724, 46263, 47289, 48828, 50367, 51395, 52934, + 53962, 54990, 56019, 57047, 57565, 58594, 59111, 59117, + 59635, 59641, 59135, 59141, 58635, 58128, 57109, 56090, + 55583, 54051, 53031, 52010, 50478, 49457, 47924, 46391, + 44857, 43324, 41790, 40257, 38723, 37189, 35655, 34121, + 32588, 31054, 29520, 27986, 26452, 24919, 23385, 21852, + 20318, 18785, 17764, 16231, 14338, 13318, 12297, 10765, + 9746, 9238, 8219, 7713, 7206, 6700, 6194, 6200, + 6206, 6723, 7241, 7759, 8276, 9305, 10333, 11361, + 12389, 13417, 14956, 15984, 17523, 19062, 20600, 21627, + 23165, 24704, 26242, 27780, 29318, 30857, 32907, 34445, + 35983, 37521, 39060, 40598, 42136, 43675, 45213, 46240, + 47779, 49318, 50345, 51884, 52912, 54452, 55480, 56509, + 57025, 58054, 58572, 59090, 59607, 59613, 59619, 59113, + 59119, 58613, 57594, 57087, 56068, 55048, 54028, 52496, + 51476, 49943, 48922, 47389, 45856, 44322, 42789, 41255, + 39722, 38188, 36654, 35120, 33586, 32053, 30519, 28985, + 27451, 25918, 24384, 22850, 21317, 19783, 18762, 17229, + 15696, 14676, 13143, 12123, 11103, 10083, 8704, 8197, + 7178, 6672, 6678, 6172, 6178, 6696, 6701, 7219, + 7736, 8766, 9282, 10311, 11339, 12879, 13906, 15446, + 16473, 18012, 19551, 20577, 22116, 23654, 25193, 26731, + 28269, 29808, 31346, 32884, 34422, 36472, 38010, 39549, + 41087, 42625, 43652, 45190, 46729, 48268, 49807, 50834, + 52374, 53401, 54429, 55458, 56486, 57515, 58032, 58550, + 59068, 59586, 59592, 59598, 59092, 58585, 58079, 57572, + 56553, 55534, 54514, 53494, 52474, 50941, 49920, 48387, + 46854, 45321, 44300, 42766, 41232, 39699, 38165, 36631, + 34585, 33052, 31518, 29984, 28450, 26916, 25383, 23849, + 22315, 20782, 19761, 18227, 16694, 15162, 14141, 13121, + 11589, 10569, 9549, 9042, 8023, 7516, 7010, 6504, + 6150, 6156, 6674, 6680, 7197, 8226, 8743, 9772, + 10800, 11829, 12856, 14396, 15423, 16962, 18501, 19528, + 21067, 22605, 24144, 25682, 27220, 28758, 30297, 31835, + 33373, 34911, 36449, 37987, 39526, 41064, 42602, 44141, + 45680, 47218, 48757, 49784, 51324, 52351, 53891, 54919, + 55947, 56976, 57493, 58522, 59040, 59046, 59564, 59570, + 59576, 59070, 58563, 58057, 57038, 56531, 55511, 54491, + 52959, 51939, 50918, 49386, 47853, 46319, 45298, 43765, + 42231, 40698, 39164, 37630, 36096, 34562, 33029, 30983, + 29449, 27915, 26381, 24848, 23314, 21781, 20759, 19226 + +}; + +#define ISSData_Length 2880 // 5 days will stay below 32 Mbyte +// Remember to get ISS data: +// Lookup the UNIX epoch time: http://www.epochconverter.com/ +// cd /home/thomas/Documents/hamradio/balloon/ISS/ +// perl iss.pl 1335009600 5 2012-04-21_1200UTC.dat > 2012-04-21_1200UTC.tsv + + + + +#define ISS_CUT_OFF 30 // tollerance in deg (lat + lon) to consider ISS close enough to give it a try +//#define getISSLatitude(x) ((ISSData[x] >> 9) - 64) +//#define getISSLongitude(x) ((ISSData[x] & 511) - 180) + +/* +// GPS PUBX request string +#define PUBX "$PUBX,00*33" + +// NMEA commands +#define GLL_OFF "$PUBX,40,GLL,0,0,0,0*5C" +#define ZDA_OFF "$PUBX,40,ZDA,0,0,0,0*44" +#define GSV_OFF "$PUBX,40,GSV,0,0,0,0*59" +#define GSA_OFF "$PUBX,40,GSA,0,0,0,0*4E" +#define RMC_OFF "$PUBX,40,RMC,0,0,0,0*47" +#define GGA_OFF "$PUBX,40,GGA,0,0,0,0*5A" +#define VTG_OFF "$PUBX,40,VTG,0,0,0,0*5E" + +// configures the GPS to only use the strings we want +void configNMEA() { + Serial.println(GLL_OFF); + Serial.println(ZDA_OFF); + Serial.println(GSV_OFF); + Serial.println(GSA_OFF); + Serial.println(RMC_OFF); + Serial.println(GGA_OFF); + Serial.println(VTG_OFF); + + // Set the navigation mode (Airborne, 1G) + Serial.println("Trying to set the GPS to airborne mode:"); + unsigned int setNav[] = { + 0xB5, 0x62, 0x06, 0x24, 0x24, 0x00, 0xFF, 0xFF, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x05, 0x00, 0xFA, 0x00, 0xFA, 0x00, 0x64, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xDC }; + sendUBX(setNav, sizeof(setNav)/sizeof(unsigned int)); + getUBX_ACK(setNav); +} + +// Send a byte array of UBX protocol to the GPS +void sendUBX(unsigned int *MSG, unsigned int len) { + for(int i=0; i 9) { + // All packets in order! + return true; + } + + // Timeout if no valid response in 3 seconds + if (millis() - startTime > 3000) { + return false; + } + + // Make sure data is available to read + if (Serial.available()) { + b = Serial.read(); + + // Check that bytes arrive in sequence as per expected ACK packet + if (b == ackPacket[ackByteID]) { + ackByteID++; + } + else { + ackByteID = 0; // Reset and look again, invalid order + } + + } + } +} + +*/ + +// Module declarations +static void parse_sentence_type(const char * token); +static void parse_time(const char *token); +static void parse_sats(const char *token); +static void parse_date(const char *token); +static void parse_status(const char *token); +static void parse_lat(const char *token); +static void parse_lat_hemi(const char *token); +static void parse_lon(const char *token); +static void parse_lon_hemi(const char *token); +static void parse_speed(const char *token); +static void parse_course(const char *token); +static void parse_altitude(const char *token); + + + +// Module types +typedef void (*t_nmea_parser)(const char *token); + +enum t_sentence_type { + SENTENCE_UNK, + SENTENCE_GGA, + SENTENCE_RMC +}; + + +// Module constants +static const t_nmea_parser unk_parsers[] = { + parse_sentence_type, // $GPxxx +}; + +static const t_nmea_parser gga_parsers[] = { + NULL, // $GPGGA + parse_time, // Time + NULL, // Latitude + NULL, // N/S + NULL, // Longitude + NULL, // E/W + NULL, // Fix quality + parse_sats, // Number of satellites + NULL, // Horizontal dilution of position + parse_altitude, // Altitude + NULL, // "M" (mean sea level) + NULL, // Height of GEOID (MSL) above WGS84 ellipsoid + NULL, // "M" (mean sea level) + NULL, // Time in seconds since the last DGPS update + NULL // DGPS station ID number +}; + +static const t_nmea_parser rmc_parsers[] = { + NULL, // $GPRMC + parse_time, // Time + parse_status, // A=active, V=void + parse_lat, // Latitude, + parse_lat_hemi, // N/S + parse_lon, // Longitude + parse_lon_hemi, // E/W + parse_speed, // Speed over ground in knots + parse_course, // Track angle in degrees (true) + parse_date, // Date (DDMMYY) + NULL, // Magnetic variation + NULL // E/W +}; + +static const int NUM_OF_UNK_PARSERS = (sizeof(unk_parsers) / sizeof(t_nmea_parser)); +static const int NUM_OF_GGA_PARSERS = (sizeof(gga_parsers) / sizeof(t_nmea_parser)); +static const int NUM_OF_RMC_PARSERS = (sizeof(rmc_parsers) / sizeof(t_nmea_parser)); + +// Module variables +static t_sentence_type sentence_type = SENTENCE_UNK; +static bool at_checksum = false; +static unsigned char our_checksum = '$'; +static unsigned char their_checksum = 0; +static char token[16]; +static int num_tokens = 0; +static unsigned int offset = 0; +static bool active = false; +static char gga_time[7], rmc_time[7], rmc_date[7]; +static char new_time[7], new_date[7]; +static int new_sats, gga_sats; +static float new_lat; +static float new_lon; +static char new_aprs_lat[9]; +static char new_aprs_lon[10]; +static float new_course; +static float new_speed; +static float new_altitude; + +// Public (extern) variables, readable from other modules +char gps_time[7]; // HHMMSS +char gps_date[7]; // DDMMYY +int gps_sats = 0; +float gps_lat = 0; +float gps_lon = 0; +char gps_aprs_lat[10]; +char gps_aprs_lon[11]; +float gps_course = 0; +float gps_speed = 0; +float gps_altitude = -1000.0; //The dead sea at -420 m is theoretically the deepest usable spot on earth where you could use a GPS + //Here we define -1000 m as our invalid gps altitude +unsigned long doppler_frequency = 145825000UL; +bool satInView = false; +int iss_lat; +int iss_lon; +unsigned int iss_datapoint; + +// Module functions +unsigned char from_hex(char a) +{ + if (a >= 'A' && a <= 'F') + return a - 'A' + 10; + else if (a >= 'a' && a <= 'f') + return a - 'a' + 10; + else if (a >= '0' && a <= '9') + return a - '0'; + else + return 0; +} + +void parse_sentence_type(const char *token) +{ + if (strcmp(token, "$GPGGA") == 0) { + sentence_type = SENTENCE_GGA; + } else if (strcmp(token, "$GPRMC") == 0) { + sentence_type = SENTENCE_RMC; + } else { + sentence_type = SENTENCE_UNK; + } +} + +void parse_time(const char *token) +{ + // Time can have decimals (fractions of a second), but we only take HHMMSS + strncpy(new_time, token, 6); +} + +void parse_date(const char *token) +{ + // Date in DDMMYY + strncpy(new_date, token, 6); +} + +void parse_sats(const char *token) +{ + // Date in DDMMYY + new_sats = atoi(token); +} + + +void parse_status(const char *token) +{ + // "A" = active, "V" = void. We shoud disregard void sentences + if (strcmp(token, "A") == 0) + active = true; + else + active = false; +} + +void parse_lat(const char *token) +{ + // Parses latitude in the format "DD" + "MM" (+ ".M{...}M") + char degs[3]; + if (strlen(token) >= 4) { + degs[0] = token[0]; + degs[1] = token[1]; + degs[2] = '\0'; + new_lat = atof(degs) + atof(token + 2) / 60; + } + // APRS-ready latitude + strncpy(new_aprs_lat, token, 7); +} + +void parse_lat_hemi(const char *token) +{ + if (token[0] == 'S') + new_lat = -new_lat; + new_aprs_lat[7] = token[0]; + new_aprs_lon[8] = '\0'; +} + +void parse_lon(const char *token) +{ + // Longitude is in the format "DDD" + "MM" (+ ".M{...}M") + char degs[4]; + if (strlen(token) >= 5) { + degs[0] = token[0]; + degs[1] = token[1]; + degs[2] = token[2]; + degs[3] = '\0'; + new_lon = atof(degs) + atof(token + 3) / 60; + } + // APRS-ready longitude + strncpy(new_aprs_lon, token, 8); +} + +void parse_lon_hemi(const char *token) +{ + if (token[0] == 'W') + new_lon = -new_lon; + new_aprs_lon[8] = token[0]; + new_aprs_lon[9] = '\0'; +} + +void parse_speed(const char *token) +{ + new_speed = atof(token); +} + +void parse_course(const char *token) +{ + new_course = atof(token); +} + +void parse_altitude(const char *token) +{ + new_altitude = atof(token); +} + + +// +// Exported functions +// +void gps_setup() { + strcpy(gps_time, "000000"); + strcpy(gps_date, "000000"); + strcpy(gps_aprs_lat, "0000.00N"); + strcpy(gps_aprs_lon, "00000.00E"); + + + // Set uBlox navigation mode + for(int i=0; i<44; i++) { + Serial.write(pgm_read_byte_near(ubx_setNav + i )); + + } + + + +} + +bool gps_decode(char c) +{ + int ret = false; + + switch(c) { + case '\r': + case '\n': + // End of sentence + + if (num_tokens && our_checksum == their_checksum) { +#ifdef DEBUG_GPS + Serial.print(" (OK!)"); +#endif + // Return a valid position only when we've got two rmc and gga + // messages with the same timestamp. + switch (sentence_type) { + case SENTENCE_UNK: + break; // Keeps gcc happy + case SENTENCE_GGA: + strcpy(gga_time, new_time); + gga_sats = new_sats; + break; + case SENTENCE_RMC: + strcpy(rmc_time, new_time); + strcpy(rmc_date, new_date); + break; + } + + // Valid position scenario: + // + // 1. The timestamps of the two previous GGA/RMC sentences must match. + // + // 2. We just processed a known (GGA/RMC) sentence. Suppose the + // contrary: after starting up this module, gga_time and rmc_time + // are both equal (they're both initialized to ""), so (1) holds + // and we wrongly report a valid position. + // + // 3. The GPS has a valid fix. For some reason, the Venus 634FLPX + // reports 24 deg N, 121 deg E (the middle of Taiwan) until a valid + // fix is acquired: + // + // $GPGGA,120003.000,2400.0000,N,12100.0000,E,0,00,0.0,0.0,M,0.0,M,,0000**69 (OK!) + // $GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0**30 (OK!) + // $GPRMC,120003.000,V,2400.0000,N,12100.0000,E,000.0,000.0,280606,,,N**78 (OK!) + // $GPVTG,000.0,T,,M,000.0,N,000.0,K,N**02 (OK!) + // + // 4.) We also want a clean altitude being reported. + // When is an altitude clean? Theoretically we could launch a balloon from the dead sea + // 420 m below sea level. Therefore we define -1000 m as our invalid altitude and + // expect to find an altitude above -420 m when we've decoded a valid GGA statement. + + if (sentence_type != SENTENCE_UNK && // Known sentence? + strcmp(gga_time, rmc_time) == 0 && // RMC/GGA times match? + active && // Valid fix? + gga_sats > 4 && // 5 sats or more? + new_altitude > -1000.0) { // Valid new altitude? + // Atomically merge data from the two sentences + strcpy(gps_time, new_time); + strcpy(gps_date, new_date); + gps_lat = new_lat; + gps_lon = new_lon; + strcpy(gps_aprs_lat, new_aprs_lat); + strcpy(gps_aprs_lon, new_aprs_lon); + gps_course = new_course; + gps_speed = new_speed; + gps_sats = gga_sats; + gps_altitude = new_altitude; + new_altitude = -1000.0; // Invalidate new_altitude so that we are sure to get a valid one next time + ret = true; + } + } +#ifdef DEBUG_GPS + if (num_tokens) + Serial.println(); +#endif + at_checksum = false; // CR/LF signals the end of the checksum + our_checksum = '$'; // Reset checksums + their_checksum = 0; + offset = 0; // Prepare for the next incoming sentence + num_tokens = 0; + sentence_type = SENTENCE_UNK; + break; + + case '*': + // Begin of checksum and process token (ie. do not break) + at_checksum = true; + our_checksum ^= c; +#ifdef DEBUG_GPS + Serial.print(c); +#endif + + case ',': + // Process token + token[offset] = '\0'; + our_checksum ^= c; // Checksum the ',', undo the '*' + + // Parse token + switch (sentence_type) { + case SENTENCE_UNK: + if (num_tokens < NUM_OF_UNK_PARSERS && unk_parsers[num_tokens]) + unk_parsers[num_tokens](token); + break; + case SENTENCE_GGA: + if (num_tokens < NUM_OF_GGA_PARSERS && gga_parsers[num_tokens]) + gga_parsers[num_tokens](token); + break; + case SENTENCE_RMC: + if (num_tokens < NUM_OF_RMC_PARSERS && rmc_parsers[num_tokens]) + rmc_parsers[num_tokens](token); + break; + } + + // Prepare for next token + num_tokens++; + offset = 0; +#ifdef DEBUG_GPS + Serial.print(c); +#endif + break; + + default: + // Any other character + if (at_checksum) { + // Checksum value + their_checksum = their_checksum * 16 + from_hex(c); + } else { + // Regular NMEA data + if (offset < 15) { // Avoid buffer overrun (tokens can't be > 15 chars) + token[offset] = c; + offset++; + our_checksum ^= c; + } + } +#ifdef DEBUG_GPS + Serial.print(c); +#endif + } + return ret; +} + + +unsigned long gps_get_region_frequency() +{ + unsigned long frequency = RADIO_FREQUENCY; + if(-168 < gps_lon && gps_lon < -25) frequency = RADIO_FREQUENCY_REGION2; + if(-25 < gps_lon && gps_lon < 71) frequency = RADIO_FREQUENCY_REGION1; + if(-34.95 < gps_lat && gps_lat < 7.18 && -73.13 < gps_lon && gps_lon < -26.46) frequency = RADIO_FREQUENCY_BRAZIL; // Brazil + if( 29.38 < gps_lat && gps_lat < 47.10 && 127.16 < gps_lon && gps_lon < 153.61) frequency = RADIO_FREQUENCY_JAPAN; // Japan + if( 19.06 < gps_lat && gps_lat < 53.74 && 72.05 < gps_lon && gps_lon < 127.16) frequency = RADIO_FREQUENCY_CHINA; // China + if( -0.30 < gps_lat && gps_lat < 20.42 && 93.06 < gps_lon && gps_lon < 105.15) frequency = RADIO_FREQUENCY_THAILAND; // Thailand + if(-54.54 < gps_lat && gps_lat <-32.43 && 161.62 < gps_lon && gps_lon < 179.99) frequency = RADIO_FREQUENCY_NEWZEALAND; // New Zealand + if(-50.17 < gps_lat && gps_lat < -8.66 && 105.80 < gps_lon && gps_lon < 161.62) frequency = RADIO_FREQUENCY_AUSTRALIA; // Australia + + // Note: These regions are a super simplified approach to define rectangles on the world map, representing regions where we may consider at least some + // chance that an APRS Digipeter or an Igate is listening. They have absolutely NO political relevance. I was just trying to identify + // regions with APRS activity on APRS.fi and look up the used frequencies on the web. Any corrections or additions are welcome. Please email + // your suggestions to thomas@tkrahn.com + + // use your own coordinates for testing; Comment out when testing is finished! +// if(29.7252 < gps_lat && gps_lat < 29.7261 && -95.5082 < gps_lon && gps_lon < -95.5074) frequency = MX146_FREQUENCY_TESTING; // KT5TK home + //if(29.7353 < gps_lat && gps_lat < 29.7359 && -95.5397 < gps_lon && gps_lon < -95.5392) frequency = MX146_FREQUENCY_TESTING; // Gessner BBQ + + // Note: Never define a region that spans the date line! Use two regions instead. + if(gps_lat == 0 && gps_lon == 0) frequency = RADIO_FREQUENCY; // switch to default when we don't have a GPS lease + + return frequency; +} + +bool gps_check_satellite() +{ + int latdiff; + int londiff; + + long igpsdate = atol(gps_date); + long igpstime = atol(gps_time); + + int gpstime_day = igpsdate / 10000; + int gpstime_month = (igpsdate % 10000) / 100; + int gpstime_year = (igpsdate % 10000) % 100 + 2000; + int gpstime_hour = igpstime / 10000; + int gpstime_minute = (igpstime % 10000) / 100; + int gpstime_second = (igpstime % 10000) % 100; + + +// int gpstime_year = 2012; +// int gpstime_month = 2; +// int gpstime_day = 11; +// int gpstime_hour = 21; +// int gpstime_minute = 0; +// int gpstime_second = 0; + + +// The start time must match with the dataset above! + long gpslaunchminutes = (gpstime_day - 10 ) * 1440 + (gpstime_hour - 23) * 60 + gpstime_minute - 0; + + + +// look 2 minutes into the future so that you see the constellation for the next TX cycle + gpslaunchminutes += 2; + + // make sure we're in the bounds of the array. + if ((gpslaunchminutes < 0) || (gpslaunchminutes > ISSData_Length)) // make sure we're in the bounds of the array. + { + gpslaunchminutes = 0; + } + + iss_datapoint = pgm_read_word_near(ISSData + gpslaunchminutes); + + // unmerge the datapoint into its components + + iss_lat = ((iss_datapoint >> 9) - 64); + iss_lon = ((iss_datapoint & 511) - 180); + + latdiff = abs(iss_lat - (int)gps_lat); + londiff = abs(iss_lon - (int)gps_lon); + + // ISS nearby? This doesn't really represent a circle (rather a rhombus or something, but who cares? + if ((latdiff + londiff) < ISS_CUT_OFF) + { + satInView = true; + + } + else + { + satInView = false; + + } + return satInView; +} + + + + + +float gps_get_lat() +{ + return gps_lat; +} + + +float gps_get_lon() +{ + return gps_lon; +} + +float gps_get_altitude() +{ + return gps_altitude; +} + + +long gps_get_time() +{ + return atol(gps_time); +} + +long gps_get_date() +{ + return atol(gps_date); +} + + + + + diff --git a/gps.h b/gps.h new file mode 100644 index 0000000..89a6d5a --- /dev/null +++ b/gps.h @@ -0,0 +1,55 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __GPS_H__ +#define __GPS_H__ + +extern char gps_time[7]; // HHMMSS +extern char gps_date[7]; // DDMMYY +extern int gps_sats; +extern float gps_lat; +extern float gps_lon; +extern char gps_aprs_lat[10]; +extern char gps_aprs_lon[11]; +extern unsigned long gps_region_frequency; +extern unsigned long doppler_frequency; +extern bool satInView; +extern float gps_course; +extern float gps_speed; +extern float gps_altitude; +extern float gps_get_lat(); +extern float gps_get_lon(); +extern float gps_get_altitude(); +extern long gps_get_time(); +extern long gps_get_date(); +extern int iss_lat; +extern int iss_lon; +extern unsigned int iss_datapoint; + +void gps_setup(); + +/* +void configNMEA(); +void sendUBX(unsigned int *MSG, unsigned int len); +bool getUBX_ACK(unsigned int *MSG); +*/ + +bool gps_decode(char c); +unsigned long gps_get_region_frequency(); +bool gps_check_satellite(); + +#endif diff --git a/modem.cpp b/modem.cpp new file mode 100644 index 0000000..9e32487 --- /dev/null +++ b/modem.cpp @@ -0,0 +1,321 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* Credit to: + * + * Michael Smith for his Example of Audio generation with two timers and PWM: + * http://www.arduino.cc/playground/Code/PCMAudio + * + * Ken Shirriff for his Great article on PWM: + * http://arcfn.com/2009/07/secrets-of-arduino-pwm.html + * + * The large group of people who created the free AVR tools. + * Documentation on interrupts: + * http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html + */ + +#include "config.h" +#include "modem.h" + +// only include the selected radio +#if RADIO_CLASS == RadioHx1 + #include "radio_hx1.h" +#endif +#if RADIO_CLASS == RadioMx146 + #include "radio_mx146.h" +#endif +#if RADIO_CLASS == RadioAdf7012 + #include "radio_adf7012.h" +#endif +#if RADIO_CLASS == RadioSi446x + #include "radio_si446x.h" +#endif + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +#include +#include +#include +#include + +#if AUDIO_PIN == 3 +# define OCR2 OCR2B +#endif +#if AUDIO_PIN == 11 +# define OCR2 OCR2A +#endif + +// Module Constants + +// This procudes a "warning: only initialized variables can be placed into +// program memory area", which can be safely ignored: +// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734 + +/* +PROGMEM const prog_uchar sine_table[512] = { + 127, 129, 130, 132, 133, 135, 136, 138, 139, 141, 143, 144, 146, 147, 149, 150, 152, 153, 155, 156, 158, + 159, 161, 163, 164, 166, 167, 168, 170, 171, 173, 174, 176, 177, 179, 180, 182, 183, 184, 186, 187, 188, + 190, 191, 193, 194, 195, 197, 198, 199, 200, 202, 203, 204, 205, 207, 208, 209, 210, 211, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 223, 224, 225, 226, 227, 228, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 236, 237, 238, 239, 239, 240, 241, 242, 242, 243, 244, 244, 245, 245, 246, 247, 247, 248, 248, 249, 249, + 249, 250, 250, 251, 251, 251, 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 255, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 253, 252, 252, 252, 251, + 251, 251, 250, 250, 249, 249, 249, 248, 248, 247, 247, 246, 245, 245, 244, 244, 243, 242, 242, 241, 240, + 239, 239, 238, 237, 236, 236, 235, 234, 233, 232, 231, 230, 229, 228, 228, 227, 226, 225, 224, 223, 221, + 220, 219, 218, 217, 216, 215, 214, 213, 211, 210, 209, 208, 207, 205, 204, 203, 202, 200, 199, 198, 197, + 195, 194, 193, 191, 190, 188, 187, 186, 184, 183, 182, 180, 179, 177, 176, 174, 173, 171, 170, 168, 167, + 166, 164, 163, 161, 159, 158, 156, 155, 153, 152, 150, 149, 147, 146, 144, 143, 141, 139, 138, 136, 135, + 133, 132, 130, 129, 127, 125, 124, 122, 121, 119, 118, 116, 115, 113, 111, 110, 108, 107, 105, 104, 102, + 101, 99, 98, 96, 95, 93, 91, 90, 88, 87, 86, 84, 83, 81, 80, 78, 77, 75, 74, 72, 71, + 70, 68, 67, 66, 64, 63, 61, 60, 59, 57, 56, 55, 54, 52, 51, 50, 49, 47, 46, 45, 44, + 43, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, 28, 27, 26, 26, 25, 24, 23, 22, + 21, 20, 19, 18, 18, 17, 16, 15, 15, 14, 13, 12, 12, 11, 10, 10, 9, 9, 8, 7, 7, + 6, 6, 5, 5, 5, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10, 11, + 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 27, 28, + 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 49, 50, 51, 52, + 54, 55, 56, 57, 59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 72, 74, 75, 77, 78, 80, 81, + 83, 84, 86, 87, 88, 90, 91, 93, 95, 96, 98, 99, 101, 102, 104, 105, 107, 108, 110, 111, 113, + 115, 116, 118, 119, 121, 122, 124, 125 +}; +*/ + +// This is a 8% scaled down version of the above +// in order to operate the PWM not too close to its extreme limits. +// Trying to prevent distortion this way. + +PROGMEM const prog_uchar sine_table[512] = { +128,128,128,128,128,128,128,128,129,129,129,129,129,129,129,129,129,130,130,130,130, +130,130,130,130,131,131,131,131,131,131,131,131,132,132,132,132,132,132,132,132,132, +133,133,133,133,133,133,133,133,133,133,134,134,134,134,134,134,134,134,134,134,135, +135,135,135,135,135,135,135,135,135,135,135,136,136,136,136,136,136,136,136,136,136, +136,136,136,136,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, +137,137,137,137,137,137,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138, +138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,137, +137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, +137,136,136,136,136,136,136,136,136,136,136,136,136,136,136,135,135,135,135,135,135, +135,135,135,135,135,135,134,134,134,134,134,134,134,134,134,134,133,133,133,133,133, +133,133,133,133,133,132,132,132,132,132,132,132,132,132,131,131,131,131,131,131,131, +131,130,130,130,130,130,130,130,130,129,129,129,129,129,129,129,129,129,128,128,128, +128,128,128,128,128,127,127,127,127,127,127,127,126,126,126,126,126,126,126,126,126, +125,125,125,125,125,125,125,125,124,124,124,124,124,124,124,124,123,123,123,123,123, +123,123,123,123,122,122,122,122,122,122,122,122,122,122,121,121,121,121,121,121,121, +121,121,121,120,120,120,120,120,120,120,120,120,120,120,120,119,119,119,119,119,119, +119,119,119,119,119,119,119,119,118,118,118,118,118,118,118,118,118,118,118,118,118, +118,118,118,118,118,118,118,118,118,118,117,117,117,117,117,117,117,117,117,117,117, +117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117, +117,117,117,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118, +118,118,118,118,118,119,119,119,119,119,119,119,119,119,119,119,119,119,119,120,120, +120,120,120,120,120,120,120,120,120,120,121,121,121,121,121,121,121,121,121,121,122, +122,122,122,122,122,122,122,122,122,123,123,123,123,123,123,123,123,123,124,124,124, +124,124,124,124,124,125,125,125,125,125,125,125,125,126,126,126,126,126,126,126,126, +126,127,127,127,127,127,127,127 +}; + +/* The sine_table is the carrier signal. To achieve phase continuity, each tone + * starts at the index where the previous one left off. By changing the stride of + * the index (phase_delta) we get 1200 or 2200 Hz. The PHASE_DELTA_XXXX values + * can be calculated as: + * + * Fg = frequency of the output tone (1200 or 2200) + * Fm = sampling rate (PLAYBACK_RATE_HZ) + * Tt = sine table size (TABLE_SIZE) + * + * PHASE_DELTA_Fg = Tt*(Fg/Fm) + */ + +static const unsigned char REST_DUTY = 127; +static const int TABLE_SIZE = sizeof(sine_table); +static const unsigned long PLAYBACK_RATE = F_CPU / 256; // 62.5KHz @ F_CPU=16MHz; 31.25kHz @ 8MHz +static const int BAUD_RATE = 1200; +static const unsigned char SAMPLES_PER_BAUD= (PLAYBACK_RATE / BAUD_RATE); // 52.083333333 / 26.041666667 +static const unsigned int PHASE_DELTA_1200 = (((TABLE_SIZE * 1200L) << 7) / PLAYBACK_RATE); // Fixed point 9.7 // 1258 / 2516 +static const unsigned int PHASE_DELTA_2200 = (((TABLE_SIZE * 2200L) << 7) / PLAYBACK_RATE); // 2306 / 4613 + + +// Module globals +static unsigned char current_byte; +static unsigned char current_sample_in_baud; // 1 bit = SAMPLES_PER_BAUD samples +static bool go = false; // Modem is on +static unsigned int phase_delta; // 1200/2200 for standard AX.25 +static unsigned int phase; // Fixed point 9.7 (2PI = TABLE_SIZE) +static unsigned int packet_pos; // Next bit to be sent out +#ifdef DEBUG_MODEM +static int overruns = 0; +static unsigned int slow_isr_time; +static unsigned int slow_packet_pos; +static unsigned char slow_sample_in_baud; +#endif + +// The radio (class defined in config.h) +static RADIO_CLASS radio; + +// Exported globals +unsigned int modem_packet_size = 0; +unsigned char modem_packet[MODEM_MAX_PACKET]; + +void modem_setup() +{ + // Configure pins + pinMode(PTT_PIN, OUTPUT); + digitalWrite(PTT_PIN, LOW); + pinMode(AUDIO_PIN, OUTPUT); + + // Start radio + radio.setup(); + + // Set up Timer 2 to do pulse width modulation on the speaker + // pin. + + // Source timer2 from clkIO (datasheet p.164) + ASSR &= ~(_BV(EXCLK) | _BV(AS2)); + + // Set fast PWM mode with TOP = 0xff: WGM22:0 = 3 (p.150) + TCCR2A |= _BV(WGM21) | _BV(WGM20); + TCCR2B &= ~_BV(WGM22); + +#if AUDIO_PIN == 11 + // Do non-inverting PWM on pin OC2A (arduino pin 11) (p.159) + // OC2B (arduino pin 3) stays in normal port operation: + // COM2A1=1, COM2A0=0, COM2B1=0, COM2B0=0 + TCCR2A = (TCCR2A | _BV(COM2A1)) & ~(_BV(COM2A0) | _BV(COM2B1) | _BV(COM2B0)); +#endif + +#if AUDIO_PIN == 3 + // Do non-inverting PWM on pin OC2B (arduino pin 3) (p.159). + // OC2A (arduino pin 11) stays in normal port operation: + // COM2B1=1, COM2B0=0, COM2A1=0, COM2A0=0 + TCCR2A = (TCCR2A | _BV(COM2B1)) & ~(_BV(COM2B0) | _BV(COM2A1) | _BV(COM2A0)); +#endif + + // No prescaler (p.162) + TCCR2B = (TCCR2B & ~(_BV(CS22) | _BV(CS21))) | _BV(CS20); + + // Set initial pulse width to the rest position (0v after DC decoupling) + OCR2 = REST_DUTY; +} + +int modem_busy() +{ + return go; +} + +int modem_get_powerlevel() +{ + return radio.get_powerlevel(); +} + +void modem_set_tx_freq(unsigned long freq) +{ + radio.set_freq(freq); +} + +void modem_flush_frame() +{ + phase_delta = PHASE_DELTA_1200; + phase = 0; + packet_pos = 0; + current_sample_in_baud = 0; + go = true; + + // Key the radio + radio.ptt_on(); + + // Clear the overflow flag, so that the interrupt doesn't go off + // immediately and overrun the next one (p.163). + TIFR2 |= _BV(TOV2); // Yeah, writing a 1 clears the flag. + + // Enable interrupt when TCNT2 reaches TOP (0xFF) (p.151, 163) + TIMSK2 |= _BV(TOIE2); +} + +// This is called at PLAYBACK_RATE Hz to load the next sample. +ISR(TIMER2_OVF_vect) { + + if (go) { + + // If done sending packet + if (packet_pos == modem_packet_size) { + go = false; // End of transmission + OCR2 = REST_DUTY; // Output 0v (after DC coupling) + radio.ptt_off(); // Release PTT + TIMSK2 &= ~_BV(TOIE2); // Disable playback interrupt. + goto end_isr; // Done, gather ISR stats + } + + // If sent SAMPLES_PER_BAUD already, go to the next bit + if (current_sample_in_baud == 0) { // Load up next bit + if ((packet_pos & 7) == 0) // Load up next byte + current_byte = modem_packet[packet_pos >> 3]; + else + current_byte = current_byte / 2; // ">>1" forces int conversion + if ((current_byte & 1) == 0) { + // Toggle tone (1200 <> 2200) + phase_delta ^= (PHASE_DELTA_1200 ^ PHASE_DELTA_2200); + } + } + + phase += phase_delta; + + OCR2 = pgm_read_byte_near(sine_table + ((phase >> 7) & (TABLE_SIZE - 1))); + + if(++current_sample_in_baud == SAMPLES_PER_BAUD) { + current_sample_in_baud = 0; + packet_pos++; + } + } + +end_isr: +#ifdef DEBUG_MODEM + unsigned int t = (unsigned int) TCNT2; + // Signal overrun if we received an interrupt while processing this one + if (TIFR2 & _BV(TOV2)) { + overruns++; + t += 256; + } + // Keep the slowest execution time in slow_isr_time + if (t > slow_isr_time) { + slow_isr_time = t; + slow_packet_pos = packet_pos; + slow_sample_in_baud = current_sample_in_baud; + } +#endif + return; +} + +#ifdef DEBUG_MODEM +void modem_debug() +{ + Serial.print("t="); + Serial.print(slow_isr_time); + Serial.print(", pos="); + Serial.print(slow_packet_pos); + Serial.print(", sam="); + Serial.println(slow_sample_in_baud, DEC); + slow_isr_time = 0; + if (overruns) { + Serial.print("MODEM OVERRUNS: "); + Serial.println(overruns); + overruns = 0; + } +} +#endif diff --git a/modem.h b/modem.h new file mode 100644 index 0000000..4cccdd6 --- /dev/null +++ b/modem.h @@ -0,0 +1,36 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __MODEM_H__ +#define __MODEM_H__ + +#define MODEM_MAX_PACKET 512 + +extern unsigned char modem_packet[MODEM_MAX_PACKET]; // Upper layer data +extern unsigned int modem_packet_size; // in bits + +void modem_setup(); +void modem_start(); +void modem_flush_frame(); +void modem_set_tx_freq(unsigned long freq); +int modem_get_powerlevel(); +int modem_busy(); +#ifdef DEBUG_MODEM +void modem_debug(); +#endif + +#endif diff --git a/pecanpico4.ino b/pecanpico4.ino new file mode 100644 index 0000000..da9c37d --- /dev/null +++ b/pecanpico4.ino @@ -0,0 +1,310 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +// Refuse to compile on arduino version 21 or lower. 22 includes an +// optimization of the USART code that is critical for real-time operation. +#if ARDUINO < 22 +#error "Oops! We need Arduino 22 or later" +#endif + +// Trackuino custom libs +#include "aprs.h" +#include "ax25.h" +//#include "buzzer.h" +#include "config.h" +#include "debug.h" +#include "gps.h" +#include "modem.h" +#include "radio.h" + +// only include the selected radio +#if RADIO_CLASS == RadioHx1 + #include "radio_hx1.h" +#endif +#if RADIO_CLASS == RadioMx146 + #include "radio_mx146.h" +#endif +#if RADIO_CLASS == RadioAdf7012 + #include "radio_adf7012.h" +#endif +#if RADIO_CLASS == RadioSi446x + #include "radio_si446x.h" +#endif + +#include "sensors.h" +#include + + +// Arduino/AVR libs +#include +#include + +#include +#include +#include + +//unsigned long next_tx_millis; +volatile int wd_counter; +bool newPositionStillUnknown; +//volatile boolean f_wdt=1; +bool gpsIsOn; +//unsigned int powerlevel; + + +void disable_bod_and_sleep() +{ + /* This will turn off brown-out detection while + * sleeping. Unfortunately this won't work in IDLE mode. + * Relevant info about BOD disabling: datasheet p.44 + * + * Procedure to disable the BOD: + * + * 1. BODSE and BODS must be set to 1 + * 2. Turn BODSE to 0 + * 3. BODS will automatically turn 0 after 4 cycles + * + * The catch is that we *must* go to sleep between 2 + * and 3, ie. just before BODS turns 0. + */ + unsigned char mcucr; + + cli(); + mcucr = MCUCR | (_BV(BODS) | _BV(BODSE)); + MCUCR = mcucr; + MCUCR = mcucr & (~_BV(BODSE)); + sei(); + sleep_mode(); // Go to sleep +} + +void power_save() +{ + /* Enter power saving mode. SLEEP_MODE_IDLE is the least saving + * mode, but it's the only one that will keep the UART running. + * In addition, we need timer0 to keep track of time, timer 1 + * to drive the buzzer and timer2 to keep pwm output at its rest + * voltage. TK: changed to conditional SLEEP_MODE_PWR_DOWN + */ + if (! modem_busy()) { // Don't sleep if we're txing. + + if (newPositionStillUnknown == true) + { + + // Here we still need the serial port to + // capture GPS NMEA data + set_sleep_mode(SLEEP_MODE_IDLE); + sleep_enable(); + power_adc_disable(); + power_spi_disable(); + power_twi_disable(); + power_timer1_disable(); + digitalWrite(LED_PIN, LOW); + sleep_mode(); // Go to sleep + + } + else + { + //Serial.end(); + // Now that we know the position, the serial + // port is no longer needed + // and we can go to full SLEEP_MODE_PWR_DOWN. + // Only the watchdog interrupt will wake us up. + set_sleep_mode(SLEEP_MODE_PWR_DOWN); + + // Shut down GPS hardware + + digitalWrite(GPS_POWER_PIN, LOW); + delay(500); // Give time to discharge power capacitor of GPS board + gpsIsOn = false; + sleep_enable(); + power_adc_disable(); + power_spi_disable(); + power_twi_disable(); + power_timer1_disable(); + + digitalWrite(LED_PIN, LOW); + disable_bod_and_sleep(); // Go to sleep + //sleep_mode(); // Go to sleep + } + + + digitalWrite(LED_PIN, HIGH); + + sleep_disable(); // Resume after wake up + power_all_enable(); + + } +} + +//**************************************************************** +// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms +// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec +void setup_watchdog(int ii) +{ + byte bb; + int ww; + if (ii > 9 ) ii=9; + bb=ii & 7; + if (ii > 7) bb|= (1<<5); + bb|= (1<= (int)(APRS_PERIOD_SECONDS / 8)) +// if (millis() >= next_tx_millis) + { + // make sure the serial port is set properly after sleep period + //Serial.begin(GPS_BAUDRATE); + + // Show modem ISR stats from the previous transmission +#ifdef DEBUG_MODEM + modem_debug(); +#endif + aprs_send(); + +// next_tx_millis = millis() + APRS_PERIOD; + wd_counter = 0; + newPositionStillUnknown = true; + // Now we need the GPS again to find the new position. + if(gpsIsOn == false) + { + pinMode(GPS_POWER_PIN, OUTPUT); // In case this config was forgotten in a brown out + //digitalWrite(GPS_POWER_PIN, HIGH); // turn GPS properly off + //delay(500); + digitalWrite(GPS_POWER_PIN, HIGH); // turn GPS on + delay(500); + gps_setup(); +// if (Serial.available()) // check if Venus GPS is really on and delivers NEMA +// { + gpsIsOn = true; +// } +// else +// { +// pinMode(GPS_RESET_PIN, OUTPUT); // In case this config was forgotten in a brown out +// digitalWrite(GPS_RESET_PIN, LOW); // Reset the Venus GPS to make 100% sure it starts properly +// delay(100); +// digitalWrite(GPS_RESET_PIN, HIGH); +// delay(100); +// pinMode(GPS_RESET_PIN, INPUT); +// } + + } + } + + if (Serial.available() && newPositionStillUnknown) +// if (Serial.available()) + { + c = Serial.read(); + if (gps_decode(c)) + { + // We have received and decoded our location + newPositionStillUnknown = false; + + blink3(); // Show the user that we have a valid GPS lease + if(gps_check_satellite()) + { + blink3(); // show that ISS is in view + // upset the watchdog so that we permanently keep transmitting while ISS is in view + wd_counter = (int)(APRS_PERIOD_SECONDS / 8) + 20; + } + +// if (gps_altitude > BUZZER_ALTITUDE) +// buzzer_off(); // In space, no one can hear you buzz +// else +// buzzer_on(); + } + + } + else + { + power_save(); + } +} + + +void blink3() // for debug +{ + + digitalWrite(LED_PIN, LOW); + delay(100); + digitalWrite(LED_PIN, HIGH); + delay(100); + digitalWrite(LED_PIN, LOW); + delay(100); + digitalWrite(LED_PIN, HIGH); + delay(100); + digitalWrite(LED_PIN, LOW); + delay(100); + digitalWrite(LED_PIN, HIGH); + delay(100); + +} diff --git a/radio.cpp b/radio.cpp new file mode 100644 index 0000000..cb73c06 --- /dev/null +++ b/radio.cpp @@ -0,0 +1,19 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#include "radio.h" diff --git a/radio.h b/radio.h new file mode 100644 index 0000000..1fe5871 --- /dev/null +++ b/radio.h @@ -0,0 +1,28 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __RADIO_H__ +#define __RADIO_H__ + +class Radio { + public: + virtual void setup() = 0; + virtual void ptt_on() = 0; + virtual void ptt_off() = 0; +}; + +#endif diff --git a/radio_adf7012.cpp b/radio_adf7012.cpp new file mode 100644 index 0000000..9ef9a7b --- /dev/null +++ b/radio_adf7012.cpp @@ -0,0 +1,680 @@ +/* pecan copyright (C) 2012 KT5TK + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#define SPI_BITBANG +#include "config.h" +#include +#include "radio_adf7012.h" + + +#if !defined(SPI_BITBANG) +#include +#endif + + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +//#include +//SoftwareSerial mySerial(ADC2_PIN, ADC1_PIN); // RX, TX + + + + +const int MAX_RES = 16; +char res_adf7012[MAX_RES]; +unsigned int powerlevel; + +// Configuration storage structs ============================================= +struct { + struct { + unsigned int frequency_error_correction; + unsigned char r_divider; + unsigned char crystal_doubler; + unsigned char crystal_oscillator_disable; + unsigned char clock_out_divider; + unsigned char vco_adjust; + unsigned char output_divider; + } r0; + + struct { + unsigned int fractional_n; + unsigned char integer_n; + unsigned char prescaler; + } r1; + + struct { + unsigned char mod_control; + unsigned char gook; + unsigned char power_amplifier_level; + unsigned int modulation_deviation; + unsigned char gfsk_modulation_control; + unsigned char index_counter; + } r2; + + struct { + unsigned char pll_enable; + unsigned char pa_enable; + unsigned char clkout_enable; + unsigned char data_invert; + unsigned char charge_pump_current; + unsigned char bleed_up; + unsigned char bleed_down; + unsigned char vco_disable; + unsigned char muxout; + unsigned char ld_precision; + unsigned char vco_bias; + unsigned char pa_bias; + unsigned char pll_test_mode; + unsigned char sd_test_mode; + } r3; +} adf_config; + + + + +// Write directly to AVR port in SPIwrite() instead of using digitalWrite() +//#define FAST_IO + +// Configuration functions =================================================== + +// Config resetting functions -------------------------------------------- +void RadioAdf7012::adf_reset_config(void) +{ + + adf_reset_register_zero(); + adf_reset_register_one(); + adf_reset_register_two(); + adf_reset_register_three(); + + adf_reset(); + + +// while(!adf_reg_ready()); + +} + +// Power up default settings are defined here: + +void RadioAdf7012::adf_reset_register_zero(void) { + adf_config.r0.frequency_error_correction = 0; // Don't bother for now... + adf_config.r0.r_divider = ADF7012_CRYSTAL_DIVIDER; // Whatever works best for 2m, 1.25m and 70 cm ham bands + adf_config.r0.crystal_doubler = 0; // Who would want that? Lower f_pfd means finer channel steps. + adf_config.r0.crystal_oscillator_disable = 1; // Disable internal crystal oscillator because we have an external VCXO + adf_config.r0.clock_out_divider = 2; // Don't bother for now... + adf_config.r0.vco_adjust = 0; // Don't bother for now... (Will be automatically adjusted until PLL lock is achieved) + adf_config.r0.output_divider = ADF_OUTPUT_DIVIDER_BY_4; // Pre-set div 4 for 2m. Will be changed according tx frequency on the fly +} + +void RadioAdf7012::adf_reset_register_one(void) { + adf_config.r1.integer_n = 111; // Pre-set for 144.390 MHz APRS. Will be changed according tx frequency on the fly + adf_config.r1.fractional_n = 1687; // Pre-set for 144.390 MHz APRS. Will be changed according tx frequency on the fly + adf_config.r1.prescaler = ADF_PRESCALER_8_9; // 8/9 requires an integer_n > 91; 4/5 only requires integer_n > 31 +} + +void RadioAdf7012::adf_reset_register_two(void) { + adf_config.r2.mod_control = ADF_MODULATION_ASK; // For AFSK the modulation is done through the external VCXO we don't want any FM generated by the ADF7012 itself + adf_config.r2.gook = 0; // Whatever... This might give us a nicer swing in phase maybe... + adf_config.r2.power_amplifier_level = 16; // 16 is about half maximum power. Output −20dBm at 0x0, and 13 dBm at 0x7E at 868 MHz + + adf_config.r2.modulation_deviation = 16; // 16 is about half maximum amplitude @ ASK. + adf_config.r2.gfsk_modulation_control = 0; // Don't bother for now... + adf_config.r2.index_counter = 0; // Don't bother for now... +} + +void RadioAdf7012::adf_reset_register_three(void) { + adf_config.r3.pll_enable = 0; // Switch off PLL (will be switched on after Ureg is checked and confirmed ok) + adf_config.r3.pa_enable = 0; // Switch off PA (will be switched on when PLL lock is confirmed) + adf_config.r3.clkout_enable = 0; // No clock output needed at the moment + adf_config.r3.data_invert = 1; // Results in a TX signal when TXDATA input is low + adf_config.r3.charge_pump_current = ADF_CP_CURRENT_2_1; // 2.1 mA. This is the maximum + adf_config.r3.bleed_up = 0; // Don't worry, be happy... + adf_config.r3.bleed_down = 0; // Dito + adf_config.r3.vco_disable = 0; // VCO is on + + adf_config.r3.muxout = ADF_MUXOUT_REG_READY; // Lights up the green LED if the ADF7012 is properly powered (changes to lock detection in a later stage) + + adf_config.r3.ld_precision = ADF_LD_PRECISION_3_CYCLES; // What the heck? It is recommended that LDP be set to 1; 0 is more relaxed + adf_config.r3.vco_bias = 6; // In 0.5 mA steps; Default 6 means 3 mA; Maximum (15) is 8 mA + adf_config.r3.pa_bias = 4; // In 1 mA steps; Default 4 means 8 mA; Minimum (0) is 5 mA; Maximum (7) is 12 mA (Datasheet says uA which is bullshit) + adf_config.r3.pll_test_mode = 0; + adf_config.r3.sd_test_mode = 0; +} + +void RadioAdf7012::adf_reset(void) { +// digitalWrite(PTT_PIN, LOW); + digitalWrite(SSpin, HIGH); + digitalWrite(ADF7012_TX_DATA_PIN, HIGH); + digitalWrite(SCKpin, HIGH); + digitalWrite(MOSIpin, HIGH); + +// delay(1); + +// digitalWrite(PTT_PIN, HIGH); + + delay(100); +} + + + + +// Configuration writing functions --------------------------------------- +void RadioAdf7012::adf_write_config(void) { + adf_write_register_zero(); + adf_write_register_one(); + adf_write_register_two(); + adf_write_register_three(); +} + +void RadioAdf7012::adf_write_register_zero(void) { + + unsigned long reg = + (0) | + ((unsigned long)(adf_config.r0.frequency_error_correction & 0x7FF) << 2U) | + ((unsigned long)(adf_config.r0.r_divider & 0xF ) << 13U) | + ((unsigned long)(adf_config.r0.crystal_doubler & 0x1 ) << 17U) | + ((unsigned long)(adf_config.r0.crystal_oscillator_disable & 0x1 ) << 18U) | + ((unsigned long)(adf_config.r0.clock_out_divider & 0xF ) << 19U) | + ((unsigned long)(adf_config.r0.vco_adjust & 0x3 ) << 23U) | + ((unsigned long)(adf_config.r0.output_divider & 0x3 ) << 25U); + +// Serial.print("r0 = "); +// Serial.print(reg, HEX); +// Serial.print(" = "); +// Serial.print(reg, BIN); +// Serial.println(); + + adf_write_register(reg); +} + +void RadioAdf7012::adf_write_register_one(void) { + unsigned long reg = + (1) | + ((unsigned long)(adf_config.r1.fractional_n & 0xFFF) << 2) | + ((unsigned long)(adf_config.r1.integer_n & 0xFF ) << 14) | + ((unsigned long)(adf_config.r1.prescaler & 0x1 ) << 22); + +// Serial.print("r1 = "); +// Serial.print(reg, HEX); +// Serial.print(" = "); +// Serial.print(reg, BIN); +// Serial.println(); + + adf_write_register(reg); +} + +void RadioAdf7012::adf_write_register_two(void) { + unsigned long reg = + (2) | + ((unsigned long)(adf_config.r2.mod_control & 0x3 ) << 2) | + ((unsigned long)(adf_config.r2.gook & 0x1 ) << 4) | + ((unsigned long)(adf_config.r2.power_amplifier_level & 0x3F ) << 5) | + ((unsigned long)(adf_config.r2.modulation_deviation & 0x1FF) << 11) | + ((unsigned long)(adf_config.r2.gfsk_modulation_control & 0x7 ) << 20) | + ((unsigned long)(adf_config.r2.index_counter & 0x3 ) << 23); + +// Serial.print("r2 = "); +// Serial.print(reg, HEX); +// Serial.print(" = "); +// Serial.print(reg, BIN); +// Serial.println(); + + adf_write_register(reg); +} + +void RadioAdf7012::adf_write_register_three(void) { + unsigned long reg = + (3) | + ((unsigned long)(adf_config.r3.pll_enable & 0x1 ) << 2) | + ((unsigned long)(adf_config.r3.pa_enable & 0x1 ) << 3) | + ((unsigned long)(adf_config.r3.clkout_enable & 0x1 ) << 4) | + ((unsigned long)(adf_config.r3.data_invert & 0x1 ) << 5) | + ((unsigned long)(adf_config.r3.charge_pump_current & 0x3 ) << 6) | + ((unsigned long)(adf_config.r3.bleed_up & 0x1 ) << 8) | + ((unsigned long)(adf_config.r3.bleed_down & 0x1 ) << 9) | + ((unsigned long)(adf_config.r3.vco_disable & 0x1 ) << 10) | + ((unsigned long)(adf_config.r3.muxout & 0xF ) << 11) | + ((unsigned long)(adf_config.r3.ld_precision & 0x1 ) << 15) | + ((unsigned long)(adf_config.r3.vco_bias & 0xF ) << 16) | + ((unsigned long)(adf_config.r3.pa_bias & 0x7 ) << 20) | + ((unsigned long)(adf_config.r3.pll_test_mode & 0x1F ) << 23) | + ((unsigned long)(adf_config.r3.sd_test_mode & 0xF ) << 28); + +// Serial.print("r3 = "); +// Serial.print(reg, HEX); +// Serial.print(" = "); +// Serial.print(reg, BIN); +// Serial.println(); + + adf_write_register(reg); +} + +void RadioAdf7012::adf_write_register(unsigned long data) +{ + //adf_reset(); + digitalWrite(SSpin, HIGH); + digitalWrite(ADF7012_TX_DATA_PIN, HIGH); + digitalWrite(SCKpin, HIGH); + digitalWrite(MOSIpin, HIGH); + +#if !defined(SPI_BITBANG) // use SPI library + // take the SS pin low to select the ADF7012 chip: + digitalWrite(SSpin,LOW); + + for (int j = 3; j >= 0; j--) // Loop through the 4 bytes of the unsigned long + { + byte wordb = (byte) (data >> (j * 8)); + SPI.transfer(wordb); + //Serial.print(wordb, HEX); + //Serial.print("j"); + // delay(1000); + } + + // take the SS pin high to de-select the ADF7012 chip: + digitalWrite(SSpin,HIGH); + +#else + + // Bit bang SPI to ADF7012 + int i; + digitalWrite(SCKpin, LOW ); + delayMicroseconds(2); + digitalWrite(SSpin, LOW); + delayMicroseconds(10); + + for(i=31; i>=0; i--) { + if((data & (unsigned long)(1UL<>i) + digitalWrite(MOSIpin, HIGH); + else + digitalWrite(MOSIpin, LOW); + delayMicroseconds(2); + digitalWrite(SCKpin, HIGH); + delayMicroseconds(10); + digitalWrite(SCKpin, LOW ); + delayMicroseconds(10); + } + + delayMicroseconds(2); + digitalWrite(SSpin, HIGH); + +#endif + +} + + + + +int RadioAdf7012::adf_lock(void) +{ + // fiddle around with bias and adjust capacity until the vco locks + + int adj = adf_config.r0.vco_adjust; // use default start values from setup + int bias = adf_config.r3.vco_bias; // or the updated ones that worked last time + + adf_config.r3.pll_enable = 1; + adf_config.r3.muxout = ADF_MUXOUT_DIGITAL_LOCK; + adf_write_config(); + delay(50); + adf_locked(); + + while(!adf_locked()) { +// Serial.print("VCO not in lock. Trying adj: "); +// Serial.print(adj); +// Serial.print(" and bias: "); +// Serial.println(bias); + adf_config.r0.vco_adjust = adj; + adf_config.r3.vco_bias = bias; + adf_config.r3.muxout = ADF_MUXOUT_DIGITAL_LOCK; + adf_write_config(); + delay(50); + if(++bias == 14) { + bias = 1; + if(++adj == 4) { + Serial.println("Couldn't achieve PLL lock :( "); + // Using best guess defaults: + adf_config.r0.vco_adjust = 0; + adf_config.r3.vco_bias = 5; + + return 0; + } + } + } + //Serial.println("VCO was locked"); + + + return 1; +} + +int RadioAdf7012::adf_locked(void) +{ + analogReference(DEFAULT); + analogRead(ADC6_PIN); + int adc = analogRead(ADC6_PIN); +// Serial.print("A6 lock: "); + Serial.println(adc); + delay(500); + if (adc > 500U) + { + return 1; + } + else + { + return 0; + } +} + + +void RadioAdf7012::set_freq(unsigned long freq) +{ + + // Set the output divider according to recommended ranges given in ADF7012 datasheet + // 2012-08-10 TK lowered the borders a bit in order to keep n high enough for 144, 222 and 430 MHz amateur bands + // with a constant crystal divider of 8 + adf_config.r0.output_divider = ADF_OUTPUT_DIVIDER_BY_1; + if (freq < 410000000) { adf_config.r0.output_divider = ADF_OUTPUT_DIVIDER_BY_2; }; + if (freq < 210000000) { adf_config.r0.output_divider = ADF_OUTPUT_DIVIDER_BY_4; }; + if (freq < 130000000) { adf_config.r0.output_divider = ADF_OUTPUT_DIVIDER_BY_8; }; + + unsigned long f_pfd = ADF7012_CRYSTAL_FREQ / adf_config.r0.r_divider; + + unsigned int n = (unsigned int)(freq / f_pfd); + + float ratio = (float)freq / (float)f_pfd; + float rest = ratio - (float)n; + + + unsigned long m = (unsigned long)(rest * 4096); + + + + adf_config.r1.integer_n = n; + adf_config.r1.fractional_n = m; +/* + Serial.println("ADF set Freq:"); + Serial.print("n = "); + Serial.println(n); + Serial.print("m = "); + Serial.println(m); + Serial.print("f_pfd = "); + Serial.println(f_pfd); +*/ +} + + +void RadioAdf7012::setup() +{ + Serial.println(); + Serial.println(); + Serial.println("=============================================================="); + Serial.println("ADF7012 setup start"); + Serial.println("=============================================================="); + +// mySerial.begin(9600); +// mySerial.println("SS setup start"); + + pinMode(PTT_PIN, OUTPUT); +// pinMode(TX_PA_PIN, OUTPUT); + pinMode(SCKpin, OUTPUT); + pinMode(SSpin, OUTPUT); + pinMode(MOSIpin, OUTPUT); + pinMode(ADF7012_TX_DATA_PIN, OUTPUT); + +#if !defined(SPI_BITBANG) + // Set up SPI + SPI.setBitOrder(MSBFIRST); + SPI.setDataMode(SPI_MODE0); + SPI.setClockDivider(SPI_CLOCK_DIV32); + + // initialize SPI: + SPI.begin(); +#endif + + adf_reset_config(); + set_freq(RADIO_FREQUENCY); // Set the default frequency + adf_write_config(); + digitalWrite(ADF7012_TX_DATA_PIN, LOW); +// digitalWrite(TX_PA_PIN, HIGH); // HIGH = off => make sure the PA is off after boot. + delay(100); + + Serial.println("ADF7012 setup done"); + +} + +void RadioAdf7012::ptt_on() +{ + + digitalWrite(PTT_PIN, HIGH); + digitalWrite(ADF7012_TX_DATA_PIN, LOW); + adf_config.r3.pa_enable = 0; + adf_config.r2.power_amplifier_level = 0; + adf_config.r3.muxout = ADF_MUXOUT_REG_READY; + + adf_write_config(); + delay(100); + + // Do we have good power on the ADF7012 voltage regulator? + analogReference(DEFAULT); + analogRead(ADC6_PIN); + int adc = analogRead(ADC6_PIN); + Serial.print("ADC6 = "); + Serial.println(adc); + if (adc < 500U) // Power is bad + { + Serial.println("ERROR: Can't power up the ADF7012!"); + } + else // Power is good apparently + { +/* + // Do some logic checks to see if we can properly talk to the ADF7012 + adf_config.r3.muxout = ADF_MUXOUT_LOGIC_LOW; + adf_write_config(); + delay(100); + analogRead(ADC6_PIN); + adc = analogRead(ADC6_PIN); + Serial.print("MUXOUT should be LOW now. Measuring ADC6 = "); + Serial.println(adc); + + adf_config.r3.muxout = ADF_MUXOUT_LOGIC_HIGH; + adf_write_config(); + delay(100); + analogRead(ADC6_PIN); + adc = analogRead(ADC6_PIN); + Serial.print("MUXOUT should be HIGH now. Measuring ADC6 = "); + Serial.println(adc); +*/ + + //predict the exact output frequency +// unsigned long freq_calculated = (ADF7012_CRYSTAL_FREQ / adf_config.r0.r_divider) * ((float)adf_config.r1.integer_n + ((float)adf_config.r1.fractional_n / 4096.0)); + +// Serial.print("ADF7012 configured for "); +// Serial.print(freq_calculated); +// Serial.println(" Hz"); + + if (adf_lock()) + { + adf_config.r3.pa_enable = 1; + adf_config.r2.power_amplifier_level = 63; //63 is max power +// Serial.println("Turning on the PA"); + adf_write_config(); + delay(50); + //digitalWrite(TX_PA_PIN, LOW); // Switch on the ADL5531 final PA (LOW = on) + //delay(100); + // Measure HF output + analogRead(ADC6_PIN); // blank read for equilibration + powerlevel = analogRead(ADC6_PIN); + +// Serial.print("HF output ADC6 = "); +// Serial.println(powerlevel); + if (powerlevel > 255) + { + powerlevel = 255; + } + } + else + { + + ptt_off(); + +/* + // Testing with low power + adf_config.r3.pa_enable = 1; + adf_config.r2.power_amplifier_level = 20; //63 is max power + Serial.println("Low power"); + adf_write_config(); + delay(100); + // Measure HF output + analogRead(ADC6_PIN); + adc = analogRead(ADC6_PIN); + Serial.print("HF output ADC6 = "); + Serial.println(adc); +*/ + } + + } +} + +void RadioAdf7012::ptt_off() +{ +// divider_test(); +// change(); +// digitalWrite(TX_PA_PIN, HIGH); // Switch off the ADL5531 final PA (HIGH = off) + adf_config.r3.pa_enable = 0; + adf_config.r2.power_amplifier_level = 0; + adf_write_config(); + delay(100); + + digitalWrite(PTT_PIN, LOW); + digitalWrite(ADF7012_TX_DATA_PIN, LOW); + +} + +int RadioAdf7012::get_powerlevel() +{ + return powerlevel; +} + +/* +void RadioAdf7012::lock_test(void) +{ + analogReference(DEFAULT); + adf_config.r3.muxout = ADF_MUXOUT_ANALOGUE_LOCK; + adf_config.r3.pll_enable = 1; + + int max_a3 = 0; + int max_divider = 0; + int max_adjust = 0; + int max_bias = 0; + + for( int divider = 1; divider < 16U; divider++) + { + adf_config.r0.r_divider = divider; + set_freq(144390000UL); + for (int adjust = 0U; adjust < 4U; adjust++) + { + adf_config.r0.vco_adjust = adjust; + for (int bias = 1U; bias < 16; bias++) + { + adf_config.r3.vco_bias = bias; + adf_write_config(); + delay(1500); + //Serial.print("."); + digitalWrite(LED_PIN, LOW); + delay(100); + digitalWrite(LED_PIN, HIGH); + delay(100); + digitalWrite(LED_PIN, LOW); + delay(100); + + + analogRead(A3); + if (analogRead(A3) > max_a3) + { + max_a3 = analogRead(A3); + max_divider = divider; + max_adjust = adjust; + max_bias = bias; + } + } + //Serial.println("*"); + } + //Serial.println("#"); + } + + Serial.println(); + Serial.print("Lock @ "); + Serial.print(max_a3); + Serial.print(","); + Serial.print(max_divider); + Serial.print(","); + Serial.print(max_adjust); + Serial.print(","); + Serial.println(max_bias); + + +} + + +void RadioAdf7012::divider_test(void) +{ + adf_config.r3.muxout = ADF_MUXOUT_RF_R_DIVIDER; + adf_config.r3.pll_enable = 1; + adf_config.r0.r_divider = 15; + set_freq(144390000UL); + adf_config.r3.clkout_enable = 1; + adf_config.r0.clock_out_divider = 3; + adf_config.r3.vco_bias = 6; + adf_write_config(); + +} + + + + +void RadioAdf7012::change(void) +{ + + mySerial.println("This is your chance to change the ADF7012 registers:"); + + int timeout = 1000; + while (timeout > 0) + { + if (mySerial.available()) + { + char c = mySerial.read(); + if ( c == 'a' ) + { + mySerial.println("Option a"); + timeout = 0; + } + if ( c == 'b' ) + { + mySerial.println("Option b"); + timeout = 0; + } + } + delay(10); + timeout--; + } + mySerial.println("game over..."); + //mySerial.end(); +} + +*/ + diff --git a/radio_adf7012.h b/radio_adf7012.h new file mode 100644 index 0000000..ac3f52a --- /dev/null +++ b/radio_adf7012.h @@ -0,0 +1,103 @@ +/* pecan copyright (C) 2012 KT5TK + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __RADIO_ADF7012_H__ +#define __RADIO_ADF7012_H__ + +#include "radio.h" + +class RadioAdf7012 : public Radio { + public: + virtual void setup(); + virtual void ptt_on(); + virtual void ptt_off(); + virtual void set_freq(unsigned long freq); + virtual int get_powerlevel(); + private: + void send_cmd(const char *cmd, int cmd_len, char *res_adf7012, int res_len); + void adf_reset_config(void); + void adf_reset_register_zero(void); + void adf_reset_register_one(void); + void adf_reset_register_two(void); + void adf_reset_register_three(void); + void adf_write_config(void); + void adf_write_register_zero(void); + void adf_write_register_one(void); + void adf_write_register_two(void); + void adf_write_register_three(void); + void adf_write_register(unsigned long data); + void adf_reset(void); + int adf_lock(void); + int adf_locked(void); + void lock_test(void); + void divider_test(void); + void change(void); + +// Register Constants ======================================================== + +// Register 1 ---------------------------------------------------------------- +#define ADF_OUTPUT_DIVIDER_BY_1 0 +#define ADF_OUTPUT_DIVIDER_BY_2 1 +#define ADF_OUTPUT_DIVIDER_BY_4 2 +#define ADF_OUTPUT_DIVIDER_BY_8 3 + + + +// Register 1 ---------------------------------------------------------------- +#define ADF_PRESCALER_4_5 0 +#define ADF_PRESCALER_8_9 1 +#define ADF_PRESCALER ADF_PRESCALER_8_9 + +// Register 2 ---------------------------------------------------------------- +#define ADF_MODULATION_FSK 0 +#define ADF_MODULATION_GFSK 1 +#define ADF_MODULATION_ASK 2 +#define ADF_MODULATION_OOK 3 + +// Register 3 ---------------------------------------------------------------- +#define ADF_CP_CURRENT_0_3 0 +#define ADF_CP_CURRENT_0_9 1 +#define ADF_CP_CURRENT_1_5 2 +#define ADF_CP_CURRENT_2_1 3 +#define ADF_MUXOUT_LOGIC_LOW 0 +#define ADF_MUXOUT_LOGIC_HIGH 1 +#define ADF_MUXOUT_REG_READY 3 +#define ADF_MUXOUT_DIGITAL_LOCK 4 +#define ADF_MUXOUT_ANALOGUE_LOCK 5 +#define ADF_MUXOUT_R_DIVIDER_2 6 +#define ADF_MUXOUT_N_DIVIDER_2 7 +#define ADF_MUXOUT_RF_R_DIVIDER 8 +#define ADF_MUXOUT_DATA_RATE 9 +#define ADF_MUXOUT_BATT_2_35 10 +#define ADF_MUXOUT_BATT_2_75 11 +#define ADF_MUXOUT_BATT_3 12 +#define ADF_MUXOUT_BATT_3_25 13 +#define ADF_MUXOUT_TEST_MODE 14 +#define ADF_MUXOUT_SD_TEST_MODE 15 +#define ADF_LD_PRECISION_3_CYCLES 0 +#define ADF_LD_PRECISION_5_CYCLES 1 + +// PIN Definitions: + #define SCKpin 13 // SCK + #define SSpin 10 // SS + #define MOSIpin 11 // MOSI + +#define ADF7012_CRYSTAL_FREQ VCXO_FREQ + +}; + +#endif diff --git a/radio_hx1.cpp b/radio_hx1.cpp new file mode 100644 index 0000000..e4d3379 --- /dev/null +++ b/radio_hx1.cpp @@ -0,0 +1,41 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "radio_hx1.h" + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +void RadioHx1::setup() +{ + // Nothing to set up... This is a really simple radio +} + +void RadioHx1::ptt_on() +{ + digitalWrite(PTT_PIN, HIGH); + delay(5); // The HX1 takes 5 ms from PTT to full RF +} + +void RadioHx1::ptt_off() +{ + digitalWrite(PTT_PIN, LOW); +} diff --git a/radio_hx1.h b/radio_hx1.h new file mode 100644 index 0000000..42cc90a --- /dev/null +++ b/radio_hx1.h @@ -0,0 +1,30 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __RADIO_HX1_H__ +#define __RADIO_HX1_H__ + +#include "radio.h" + +class RadioHx1 : public Radio { + public: + virtual void setup(); + virtual void ptt_on(); + virtual void ptt_off(); +}; + +#endif diff --git a/radio_mx146.cpp b/radio_mx146.cpp new file mode 100644 index 0000000..acfef58 --- /dev/null +++ b/radio_mx146.cpp @@ -0,0 +1,92 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "radio_mx146.h" +#include + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + +const int MAX_RES = 16; +char res[MAX_RES]; + +void RadioMx146::send_cmd(const char *cmd, int cmd_len, char *res, int res_len) +{ + int i = 0; + int success; + Wire.beginTransmission(0x48); + for (i = 0; i < cmd_len; i++) { +#if defined(ARDUINO) && ARDUINO >= 100 + Wire.write(cmd[i]); +#else + Wire.send(cmd[i]); +#endif + } + success = Wire.endTransmission(); + delay(100); + + if (res_len > 0) + { + Wire.requestFrom(0x48, res_len); + while(Wire.available() > 0 && i < res_len) + { +#if defined(ARDUINO) && ARDUINO >= 100 + res[i] = Wire.read(); +#else + res[i] = Wire.receive(); +#endif + i++; + } + } +} + +void RadioMx146::set_freq(unsigned long freq) +{ + char cmd[5]; + cmd[0] = 'B'; + *((unsigned long *)(cmd+1)) = freq; + send_cmd(cmd, 5, res, MAX_RES); +} + +int RadioMx146::query_temp() +{ + send_cmd("QT", 2, res, 1); + return res[0]; +} + +void RadioMx146::setup() +{ + Wire.begin(); // Join the I2C bus as a master + set_freq(RADIO_FREQUENCY); // Set the default frequency + //set_freq(MX146_FREQUENCY_TESTING); // Set the testing frequency +} + +void RadioMx146::ptt_on() +{ + digitalWrite(PTT_PIN, HIGH); + // TODO: should wait for the "RDY" signal + delay(25); +} + +void RadioMx146::ptt_off() +{ + digitalWrite(PTT_PIN, LOW); +} diff --git a/radio_mx146.h b/radio_mx146.h new file mode 100644 index 0000000..76f9aa0 --- /dev/null +++ b/radio_mx146.h @@ -0,0 +1,35 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __RADIO_MX146_H__ +#define __RADIO_MX146_H__ + +#include "radio.h" + +class RadioMx146 : public Radio { + public: + virtual void setup(); + virtual void ptt_on(); + virtual void ptt_off(); + virtual void set_freq(unsigned long freq); + private: + void send_cmd(const char *cmd, int cmd_len, char *res, int res_len); + + int query_temp(); +}; + +#endif diff --git a/radio_si446x.cpp b/radio_si446x.cpp new file mode 100644 index 0000000..e3f10bf --- /dev/null +++ b/radio_si446x.cpp @@ -0,0 +1,318 @@ +/* pecanpico2 Si446x Driver copyright (C) 2013 KT5TK + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#include "config.h" +#include +#include "radio_si446x.h" + + + +#include + + + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + + +unsigned int si446x_powerlevel = 0; +unsigned long active_freq = RADIO_FREQUENCY; + +//#include +//SoftwareSerial mySerial(ADC2_PIN, ADC1_PIN); // RX, TX + + +void RadioSi446x::SendCmdReceiveAnswer(int byteCountTx, int byteCountRx, const char* pData) +{ + + /* There was a bug in A1 hardware that will not handle 1 byte commands. + It was supposedly fixed in B0 but the fix didn't make it at the last minute, so here we go again */ + if (byteCountTx == 1) + byteCountTx++; + + digitalWrite(SSpin,LOW); + char answer; + +// Serial.print("sent: "); + +// for (int j = 0; j < byteCountTx; j++) // Loop through the bytes of the pData +// { +// byte wordb = pData[j]; +// Serial.print(wordb,HEX); +// Serial.print(" "); +// } + +// Serial.println(); + + for (int j = 0; j < byteCountTx; j++) // Loop through the bytes of the pData + { + byte wordb = pData[j]; + SPI.transfer(wordb); + } + + digitalWrite(SSpin,HIGH); + + delayMicroseconds(20); + + digitalWrite(SSpin,LOW); + + int reply = 0x00; + while (reply != 0xFF) + { + reply = SPI.transfer(0x44); +// Serial.print(reply,HEX); +// Serial.print(" "); + if (reply != 0xFF) + { + digitalWrite(SSpin,HIGH); + delayMicroseconds(20); + digitalWrite(SSpin,LOW); + } + } + +// Serial.println(); + +// Serial.print("rx: "); + + +// for (int k = 1; k < byteCountRx; k++) +// { +// Serial.print(SPI.transfer(0x44), HEX); +// Serial.print(" "); +// } + + digitalWrite(SSpin,HIGH); +// Serial.println(); + delay(200); // Wait half a second to prevent Serial buffer overflow +} + + +// Actions =============================================================== + +// Config reset ---------------------------------------------------------- +void RadioSi446x::reset(void) +{ + digitalWrite(VCXO_ENABLE_PIN,HIGH); +// Serial.println("VCXO is enabled"); + delay(200); + + + + digitalWrite(RADIO_SDN_PIN, HIGH); // active high shutdown = reset + delay(200); + digitalWrite(RADIO_SDN_PIN, LOW); // booting +// Serial.println("Radio is powered up"); + + // Start talking to the Si446X radio chip + + const char PART_INFO_command[] = {0x01}; // Part Info + SendCmdReceiveAnswer(1, 9, PART_INFO_command); +// Serial.println("Part info was checked"); + +//divide VCXO_FREQ into its bytes; MSB first + unsigned int x3 = VCXO_FREQ / 0x1000000; + unsigned int x2 = (VCXO_FREQ - x3 * 0x1000000) / 0x10000; + unsigned int x1 = (VCXO_FREQ - x3 * 0x1000000 - x2 * 0x10000) / 0x100; + unsigned int x0 = (VCXO_FREQ - x3 * 0x1000000 - x2 * 0x10000 - x1 * 0x100); + +//POWER_UP + const char init_command[] = {0x02, 0x01, 0x01, x3, x2, x1, x0};// no patch, boot main app. img, FREQ_VCXO, return 1 byte + SendCmdReceiveAnswer(7, 1 ,init_command); + +// Serial.println("Radio booted"); + + const char get_int_status_command[] = {0x20, 0x00, 0x00, 0x00}; // Clear all pending interrupts and get the interrupt status back + SendCmdReceiveAnswer(4, 9, get_int_status_command); + + +// Serial.println("Radio ready"); + + const char gpio_pin_cfg_command[] = {0x13, 0x02, 0x02, 0x02, 0x02, 0x08, 0x11, 0x00}; // Set all GPIOs LOW; Link NIRQ to CTS; Link SDO to MISO; Max drive strength + SendCmdReceiveAnswer(8, 8, gpio_pin_cfg_command); + +// Serial.println("LEDs should be switched off at this point"); + + setFrequency(active_freq); +// Serial.println("Frequency set"); + + setModem(); +// Serial.println("CW mode set"); + + tune_tx(); +// Serial.println("TX tune"); + + + +} + +void RadioSi446x::start_tx() +{ + char change_state_command[] = {0x34, 0x07}; // Change to TX state + SendCmdReceiveAnswer(2, 1, change_state_command); + +} + +void RadioSi446x::stop_tx() +{ + char change_state_command[] = {0x34, 0x03}; // Change to Ready state + SendCmdReceiveAnswer(2, 1, change_state_command); + +} + +void RadioSi446x::tune_tx() +{ + char change_state_command[] = {0x34, 0x05}; // Change to TX tune state + SendCmdReceiveAnswer(2, 1, change_state_command); + +} + + + + +// Configuration parameter functions --------------------------------------- + +void RadioSi446x::setModem() +{ + // Set to CW mode +// Serial.println("Setting modem into CW mode"); + char set_modem_mod_type_command[] = {0x11, 0x20, 0x01, 0x00, 0x00}; + SendCmdReceiveAnswer(5, 1, set_modem_mod_type_command); + +} + + + +void RadioSi446x::setFrequency(unsigned long freq) +{ + + // Set the output divider according to recommended ranges given in Si446x datasheet + int outdiv = 4; + int band = 0; + if (freq < 705000000UL) { outdiv = 6; band = 1;}; + if (freq < 525000000UL) { outdiv = 8; band = 2;}; + if (freq < 353000000UL) { outdiv = 12; band = 3;}; + if (freq < 239000000UL) { outdiv = 16; band = 4;}; + if (freq < 177000000UL) { outdiv = 24; band = 5;}; + + + unsigned long f_pfd = 2 * VCXO_FREQ / outdiv; + + unsigned int n = ((unsigned int)(freq / f_pfd)) - 1; + + float ratio = (float)freq / (float)f_pfd; + float rest = ratio - (float)n; + + + unsigned long m = (unsigned long)(rest * 524288UL); + + + +// set the band parameter + unsigned int sy_sel = 8; // + char set_band_property_command[] = {0x11, 0x20, 0x01, 0x51, (band + sy_sel)}; // + // send parameters + SendCmdReceiveAnswer(5, 1, set_band_property_command); + +// Set the pll parameters + unsigned int m2 = m / 0x10000; + unsigned int m1 = (m - m2 * 0x10000) / 0x100; + unsigned int m0 = (m - m2 * 0x10000 - m1 * 0x100); + // assemble parameter string + char set_frequency_property_command[] = {0x11, 0x40, 0x04, 0x00, n, m2, m1, m0}; + // send parameters + SendCmdReceiveAnswer(8, 1, set_frequency_property_command); + + +} + + +// Public functions ----------------------------------------------------------- + +void RadioSi446x::setup() +{ +// Not much radio configuration to do here +// because we initialize the transmitter each time right before we transmit a packet + +// Just make sure that the VCXO is on and the transmitter chip is switched off at boot up + pinMode(VCXO_ENABLE_PIN, OUTPUT); + digitalWrite(VCXO_ENABLE_PIN,HIGH); + Serial.println("VCXO is enabled"); + + pinMode(RADIO_SDN_PIN, OUTPUT); + delay(300); + digitalWrite(RADIO_SDN_PIN, HIGH); // active high = shutdown + + // Set up SPI + pinMode(SCKpin, OUTPUT); + pinMode(SSpin, OUTPUT); + pinMode(MOSIpin, OUTPUT); + + digitalWrite(SSpin, HIGH); // ensure SS stays high for now + + // initialize SPI: + SPI.begin(); + SPI.setDataMode(SPI_MODE0); + SPI.setBitOrder(MSBFIRST); + SPI.setClockDivider(SPI_CLOCK_DIV8); // 8 MHz / 8 = 1 MHz + delay(200); + +// Serial.println("SPI is initialized"); + +} + +void RadioSi446x::ptt_on() +{ + + digitalWrite(VCXO_ENABLE_PIN, HIGH); + reset(); + // turn on the blue LED (GPIO2) to indicate TX + char gpio_pin_cfg_command2[] = {0x13, 0x02, 0x02, 0x03, 0x02, 0x08, 0x11, 0x00}; // Set GPIO2 HIGH; Link NIRQ to CTS; Link SDO to MISO; Max drive strength + SendCmdReceiveAnswer(8, 1, gpio_pin_cfg_command2); + + start_tx(); + si446x_powerlevel = 1023; +} + +void RadioSi446x::ptt_off() +{ + stop_tx(); + si446x_powerlevel = 0; + // turn off the blue LED (GPIO2) + char gpio_pin_cfg_command0[] = {0x13, 0x02, 0x02, 0x02, 0x02, 0x08, 0x11, 0x00}; // Set all GPIOs LOW; Link NIRQ to CTS; Link SDO to MISO; Max drive strength + SendCmdReceiveAnswer(8, 1, gpio_pin_cfg_command0); + + digitalWrite(RADIO_SDN_PIN, HIGH); // active high = shutdown + //digitalWrite(VCXO_ENABLE_PIN, LOW); //keep enabled for now + +} + +void RadioSi446x::set_freq(unsigned long freq) +{ + active_freq = freq; +} + + +int RadioSi446x::get_powerlevel() +{ + return si446x_powerlevel; + +} + diff --git a/radio_si446x.h b/radio_si446x.h new file mode 100644 index 0000000..5ee638b --- /dev/null +++ b/radio_si446x.h @@ -0,0 +1,54 @@ +/* pecanpico2 copyright (C) 2013 KT5TK + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __RADIO_SI446X_H__ +#define __RADIO_SI446X_H__ + +#include "radio.h" + +class RadioSi446x : public Radio { + public: + virtual void setup(); + virtual void ptt_on(); + virtual void ptt_off(); + virtual void set_freq(unsigned long freq); + virtual int get_powerlevel(); + private: + void SendCmdReceiveAnswer(int byteCountTx, int byteCountRx, const char* pData); + void reset(void); + void setModem(void); + void start_tx(void); + void stop_tx(void); + void tune_tx(void); + void setFrequency(unsigned long freq); + + + +// PIN Definitions: + #define RADIO_SDN_PIN 7 + #define VCXO_ENABLE_PIN 8 + + #define SCKpin 13 // SCK + #define SSpin 10 // SS + #define MOSIpin 11 // MOSI + #define MISOpin 12 // MISO + + + +}; + +#endif diff --git a/scale_audio.ods b/scale_audio.ods new file mode 100644 index 0000000000000000000000000000000000000000..cc03b02c160e44f2bad58f3e5ae19d4b451ebc9d GIT binary patch literal 26193 zcmcG#1z45cx;84(ARsMW(xs$ycgX~40i{tw0YN$>6p%(i8m35hND2rDNKHx_2`TCB zGhXy_t#9qM_Wt+z&+)o|`Mx8b9QPArdRGM*h3Lu^j4M~9y&9zh9}B(Wx^m?T^aEa9 zv9qzWaDMJ+@xamXv5naSXB!85?q~MqTn-PMY@E0p94+k49n4(pEbN`RoE)E8JTP~% zwy+w8QgO|;!937_ z&_YcHU!TM_`^kIjS6|EdLW0tkKbz{LQ7vkyF|XaSR9&EJv!-35l|s)*Zy>|4ut|u& zi^h9KD(>i1F;X+)Vxm#hrTcLMZ)>;4r)+qt_e^}_qsiIv!@zQn~*FXLvO$=QmZNxe8-47{&CFg|_0zgk$kE<=jz1toTmtHse>j zUZWyS;&O3zFzq_+72);M?A~So&FM_H;Ph#jm8eVx$;QHl_dzX%eYMopgN^BnIhu<@ zRBkuFF~XYU~D{ z%Md)Tjto+7>VA2)(qL8N*_z44@kp=Nx>Hxg6->{achjC5^#}2!q(+W@yTav}Jd=X;GS9~x`#IiEPq!j`JbRo{%04U1)lQ$SZ)1PzNfx=c`EL5u@<<2{D{>#o z6L6S1O&qC{N3F6O-){l-ElWLnJa6h*y9x*wo_;wznZ77ocOmd8X%%+gT_PB~5Yy`_ zxWid7{)i@@ak%ER$>8egPU=M+O2w{td{K z%{$=7o^n!iuo|Jvos+P3Ow+R*8KN)-KAL&SoO0u!syb=jVQW^Uho-57z2XZYLvPdF3;pU*hCm?3t2L~6;O1U@o7!gzUNXr#Vf z<+jDRIPEh6aWq-|WR7UR3Pbsv1TUUw{c&7cqnz?K^!%){x4N0X_%t>QEGqnYYyGz* zV@EMTGJ9-fnqcElz?*BOvSXE^k};7~$8^s=nQnELjbqkLpHNbhr{@^M8`8E>`RQ>u zZ}`hgzn2D)INXW(uyR`9w}QcCYiNVw`ef54JDI6_dW_)L+d?q1ewAZ{cio}iQstaP zs^f@3@8Fuvo!Af2jga^l%2*?~@u!?zbeE!qrt$ehy41^k50{k88#@Fx*Uo; zT|=0C#TXWoA;%3i)sQ&bt!|Wa9Iv!{;uAWPE)zV9HS!6ZlGLinXNG;3x=#*AZ$IPo zU$8PV`c8fr;d7eld4P7tIrg|?noF!L%yjKkspb3ipNagB0G*~#?uI+-4yz^OY0dnO zC;Mw)+phag-TY5{M8<)o>8s7!Ujy}SR?od=r+F&n6DnW`$;La5G2A1utGn_rf${U) zRilR}q#CLOJ)r?Z4xOkKpHBHW&8ZucNQ z%9^|XaLk#3)N`Pl)&*cvplAG8qCz`|f%j@aAm$2>gLR;`&9A(@VPJi)_{mTG-pC*s zQnuf=nWx5yJze`b113SH%Z<3J_t>F3ksrY;81KP_;=d4~X0ti|$z^r;H(eWGqGfz6 z4CVEH;PO4VuTKn7;0i3XAH<~}l+Ulkw4Fd!S|(F=-@d!^--0(I2+~*`Ha1R`xeOh>x;&CVQ+Ax10n9Jc=H>9i zz%uc<^JjAVtl=|b`(Wlbr5waJ$)O_(y#v)hj;z?yeND?Kn~r6f4+Z{G5&2+k+{z@& z5U40Q2wg=O2QQw99*2XJw{XBw$mRu!lu}bqVOu@~01u*_$^E0%W$q@1@ZCk&R3~K( zY?>-%e{Vv_X8HLXw$RK9LNE-3n~*S=vRgLtOjyu`mFjn)0bjSIkw;oP77#69s^)WWg$jc zrdsO`$Z6b*Pdl$Ht7_Oe0Ja&!v2r!YOvpMP#@5d`A4bk;w(|#vkz%i^n=lJF^D474 zs+7Be$ByZWLp|e%#y!cEQ!${1Z3g1*tV>*8`x@9rTZzHD3$jt#I3%k>ZURoOY*E8JvEGNI1r- z!i+zEe_r|Ae-L28nQRWNBC-9>49v@Cl~d}h03Eit0bH`20=IYi>&?9k<1YkzRmslp z8vyTyRrc`ICW!Z859%v>Rn&@{$4@nAH(6F3PP$wKX27~Ek`8i%QAd3lb_%XX*7#fO zjLPX-F$8eY$k#IhO)(nc2|d%~ER4#}3GV&E!B2A$65{I)R;7aA496x(0GGM`FRQlE zMUxx(?<&V`-^~4Wdi_RBe7t_e8o9d=M2j()+u^9kCVs{@LOxiZJSm1WtMr|mg)v8`^2=`CRa>U`Fxv>TR707;ttyxm4%y|d6EGu3XL$z8l zZ7?3qdhay3p7`n9OIV656ak%4sxU9(4TMKK3czSw-UT;(fVj`ovJ&A>h7)k_*F~P% zNocZRAjCXOC#Hu>1($$?Qy3sHDse{tiY1p$MnCHcBY@YDX+nqK6k)fK2xyvQJSK}6>BTIb{(|$)3NT|P7&^>xY z{*HzJB{W-CCPNz>j6y%S+9jx}gTR?|@iL-pbt|4fwaWYI9uzX&s_^iZX6HM6_)8eIUPIg*v~`vJq;hJiDJ`0l(s?Cx zFrZALU3|ZU_2;ip4+Kap;8{(GJgm5&IH)=#R-%~I&B8Y_3KW-kfaX4qaT)O8_!FZR z*NzRB^+~8%gf2$e%Ko7=k}XHrC%n!ZtTX6Re1hnB)L|O3^mj^9BhZwQB&MFaeA2ki zVe*oqViXh2g&ekUKV-Fh^lA0t9li6JcYD|VwiqFM(|^IC?Z*~>2ocWVR(u|^w?BZX zYZK)*03E+S1vpoH3Kt3_=I~$Gcn8$euMmLj-Rb%uJ-+KO9cLs<=hh4}#+37b8iHyK z+i`8IB3h(;VgKhS;fT$E4?7>LLiD z+nCx6R5vEy?}eiAWp2iV-#A|75W%dReg?q|6qSm9CNL?J=?Rc%{1f@E=dEXJKktWv zVEl_^qtiA*cx3diHL)2V5-&>U9Zp`tr0&A1G1|`79;ZI>sii;3FM|CEno#zqQ~Uj= z&bF4i5Mv5UpkSH`(39eZwF3ZCcjh~{eOA|Ejt%j$T+0Qe0H!be!gT!4BM_qY*fTcn z^oRfqaYL?&Wm)jseZ9}5cvj#FEj|IDioA?r4}q)UYiN%i8Y$2F2dcH-6W3#p$Kkwb zqLJqT-N^Lkm6#wDtp)$0<6$~I?M?(?v7M;@Va zTtMI(;r%=@jJOPBI||oLM#Ki}tAG4t->Xu5;BXliQAUtY&MPmtU7xLTD%5}Yy=0tt zn%U(XV|Mjllf00_$>IkxqMBIYsgO3bzq>=SFtZ$ud;f-~M)h;4%DMna=q z3P=Vai#x&q6oLv<<9GSe1rXCls3QzY+Z|CdD3@oetXEv5a9|TkzS6Qx@$)@` z+^QKAUVldR-n_y((~f+3M1>Y&8`O8yL0Wg_n@S6v|7!2E<7)Mmn9HQ^GDn;J-XnG} z;r0oSniloc?ea{{KimI-sVrPTvq^Y))IqMt%(%?Qy8ZS-v!v&=5A! zGbJjel)VQbEjZ9KAT`haMImw5QwQ&ovF#{5ag_ih2{&J&%{e~^akR6aGqWt0djo8T z04CO%JSCP-I`o$)@|%v)>M>WnkA)7JUVhPU)9}pGxfK2L0hyrf?hI2P#10B0YN)AK zvew@U4d8=~K8;>cOv>pC5Pocy52%NNaH4n4v~g&-fl~6}m$g;6KHe;J>?U~AI0_=> zB!G&`WTj#Uc!_eXbQk0$GuaYn%ZIWz87zF&f+ zWjuEZIH%F1{E^4w9YRg+y?D#w%unbEbU{rHmCG|&!WV<|zjHsR%fLzRts#Ci@0LL{ zCcz3s1bGZ{QS~gAh_5}d#@$3nwcS`}% _!CTSU7S_BX9ZQ15KviFiaF*&IflnZ zy&yo^eGL#xB%#Vz7%-d0=Q9o@AU@Whtc8OVZ4>lEya9G}UBZy%IOKM-t{YSJ04d6S zAfy0E5(Yvx2e|1@707w@(=R@k7z+EZ`kifq>{TqX=ds6S7)x;(*8ew)AZ+1h-%b5s zm(#rW$@}>w;3hYsgWCJ^#*glIcr@aasvU>cdUm1ZO^ZtwcNe=1CP zBU}+m%&h=!E+e)gO?n>$*y^BCz0B+Z{LHk4Q_O*c{WKRv{p%4VB`6CbbkE<1{}nSM z0UTb2ph_>4avdqkPlGYt%8 zBbfAD)H!T$I^#?RR8@FMZ$ZTYLi@%EIEIXny|Mh?S`nkGw4T{5+7vyB6!rmN@qW_r z#}-L%*L|YBj9>W&Shpv6toQ<$`mczfQo#wo>9Z;(ckk*y<=!BTY^U+@1gVh-U?-@pjX+}OR{R@p@378f#~2We*c>L3S1{=b*A{`w86>f9 zLQyz0|6Wcv(SwH3mLptn4oM<;FazM@B^8m4y0X8hXsgM68qkmsvmd->RQt>h%2tDM zsa~!A!nsM_&n-%S)5Ze>I684O$*0BFh|hBc#>&pdNfq&Nr3KRP|)WujMGFV z^6WFnbw`Yxy7R3;)Q=kst{*7ehVJQt10ssU1)&+#LZtoOLIf*)o^1j-p_I4o)D41VHQ7Y7u!(g0 zG?0-1O0MM$P!v1_9rE9;N`TxKqfKQ1Um)E7!=`bKC)YmcRaqrHkq2NtFazoV3=Z^a3c*5GEBU;>BtvmYh?gX?z1JLn6l~CuU{&m`&ma56l-*wVO_pd+`mHkZs zbS^^cNVc2JrVV&eJuYI5Tq z^*hP4g55e)tSPs-@ZE&>XrPpu5(g+Q2?22gr4ZtvDtUGE07ON2&1J;l78me4{)?Wi zf0R`s`C*aI89St)%kl&2@u=+soOB042pyKQ4mvZ}w?cd3p;d?9P#~TF=M`vnYbrJzL{73;&DpDabB1{TB&bg*?9=aY)&4AX`_wxxs;Z5!!9cwH!c_gB1ub_V zk@*hmuf%a#)|_wxji;O9kKy+g)q(mRB|uNW}&x%egf3`gcXA>d)cZ9RGq2j#g3KR z3=m--Zc#HSBYTTRs>=#AUDg5TuFjW9c#9X1pN#}f{Pm-f-R3GR8o!x0;SmP zhshsM_9eAL2ow({M8SOubRm?CYTOFin5jo!t)Rk;y)hMB>_Bu5xEb&pLwiq6Axg3U zrLPk|^pu<6Mcpz@1kP2a4uXCR52zCM*Tx}SVSfj1a_Y!0dtji0gu|rV{Xt2)lplb! zzyT#n05~}ix%$`a6QeqB(m+E_>}nJ8sw>^UMkjEe$^~hT3v|$UUy{=_fm;GfD}09WMoV$(5rUfIzq3%#(;RDBh-d(Dh%qa{?%%YGdqTfl^N<7LU(|MVgehF7sU$RwEI;#74M^ z>}7#;a1FoljuG3@xS>NmKL9H~$f%c%8dhM{%f^%f%eT7qoa_`p$GKDRD##^%A^LY% z$MpKQ5{AoF3`EyN=fZgZqEro{D?K3fZiI7M6Epyz(Du6x-O}m+3Nm>p-?+P-QFfPA zS*>7sw7T(rlowEpnwYp(9;MG}f%a>-u*e*8*Tmw+L117r(joecK9l^|jmtW5B|BU#o{I{0) z<-Nci@TvA=H!1OPmTcI3iab z3nqyT67o7M5h`tIrr|NTfiF@VEplKUyS_eS)$o-!O6ne*~Z?=iObFI@tVQ3)7YKs-i?j^ zTOxFCDaAznaMK5{U2Wbq-8|bu;O}2e{9+JsQ)bD;WHd;9b}Za1|Lbm#hA*SnNr{11 zZM4hzvAAgg4u(<`Ucq`t&d}BMbd4ih>&dUvl^3PP5$AW>7oy!~4wvMR9Eal5V%O;n z-S50n9}_L7Z=$*xtsES4B`Z@DU1lcuK~Kw+`a=${r@btV6b6sr(%A!}_EpT|Q<$&r zWsBUnCakoYo)_$?q-&uDuct|r{!9}zi^Q7n`K_0``>>LaVS!i&dSOXHe-mDCqlEA@ zg`&imw$$~L_Z2>rS`-FjS!L73fiht|EBM7S1}9U@Lm;IH8J@=B7dbVjwjQrznc4gR(c zv-w_rdXtQ_=}7kGiAc>oT(2+gKH;+=80hIAtgysd&S%nub(dt$(Kg#tGAI=LtX>ph zO_=E-OKcYCSKtqcej^wssOBoxFvl zFU3*ND7&GX^|SEFNmZKukTES!h>O-sjO{2V>T_XzBG&RO$`yR;+F2NTdf$Fp)RKG# z#mhqa{(b$-{>G2;>{4~LAx}@0EfUs@FiQ$=5HXh5=sqE!D6lU-z9<}06FQrYvgO3c z`!SyxwIZKOkz=2A+?rMMK}e{VtF}BkX5Bw?_wdua_4h3lo=Vz`&7s!OG|b{mWDWsG zI^T)=*df!tM5yD@xAdQ=oAH`Rnl_t=OC)y9G%8qN)r=8%VhPD7)5=8oS>E7IE1cXI z-A_Fu|1spN%k^?_Fw?i!(F5}{`h&KRTC}?cR@c%r7J?OTb84+~>Cwh;nG@P`${VRS z3-yF(M*!#K#+?Y3v~hfuTsh+6XsF%KdxaGn*jw-^BG5H6P(x6g1W|-3n(8^! zr}Vx3K)Xg{y#V#;F^+K|$+yP9-VIu*xJK(J@eq`k%!fjPT-R2PwHroFRGy5;64ma7 z#PM3H<`owP4@y+Oy}pjb81?#26z$miNIN9cf+7cnELm<~4Ek?q*ecKrm zVZq1k7DkF{H3yj23}FyLcKdCokJM&K)(aDb2`&7N(fN@F))}O?x5|ywZ(*Q*Idm8@ zo{3-xBy6txqRPPtLz=BWk7~?YiEZm^RgIlo<_>vrK8m^^`?FJW=#6hm`)b0oZQ z{d?=^f!oD`mc!Ok zRYYZqH&61}6N1#R(s*`y-12yT^O?)uK(>a1_>tgT$H~2sjRRd8pA(M5wQ1r7)9dA+@sy(9C( z#Px|;+Zo-d>hk&Vn%C~+-uTHz(vMZV0Hs~8eK*G=oh`wws#lFoy;C@rG!0H(9(f8o zCgSIdOPi}+{2xOrD(+M|=N2+&1}_yIIrDjYi&9Id-1nU67^PY095c}KIu@inTMiEP zNer`W!KCy)YiTJ$uNvvK^7K4FD7~Xu)LB%>zvg2&vE8d)eg}VG!&6cx)%(nIbN5HB z&#^=VE_b2CwGA{AJZeq}Hw$NpWSsTJl!T61de4J*BzZC4Tikd&#BXoR25g+#c9d1( zmDP@K1ix-|Xrw&$e(JO{o9-m!?Lsa8L%nW$-1=~NL#1S|{XoWNZ!2w)!j-S?Y?iUN z-TPd)Wtt`^rhoR`HG5LQ=FUlHZ^RG5_QUU-o;8#v%&v{?XCGT}ZZ|wXSTi|o6DrKs zlJHojG)gJr@~$d%tNV()WTmpH7dO)A`8-Jc=&SSI5&FiDUPPR0!0PwT?#<(8$6Xp4 zC7Va>MJea?eP=tXjq36NNBjxFIo#+I;r17Y$4;k9vx4j!!3R6s!mjU@v-_P5gl8Y{ z)uy1wPowShauqhOM5xic{&D;4c4b4&jR_5t>st{4!CSi~jY8|o!A3SdVm>bJhbt@A z=e}MQ9-H?q7Fr&@IJ=#Uv+*>xAi{EB)cj7h$KJ+H%=R4NL30TkxnS^x$l*bR#4uX> z2Ww$UpBvrAYp>TGqG3y&u{TT3AfQ6Ypu;S=?H3U)b6Z^;n(rQJJ1`|Cti* z6@PZ)=Z~(?@d($0qDD^wpX%*fc;YP`kNJ`s+y%W)R!=Pt$2*H!o>L}XGzBhm`)uue zPn8!8g*S~+nCyCFp0smcareHdzWaIa7?$;N=hdwH8IfJg#{Hp=!vVqO9}-gcG#U*~ zH(MNc&s!cpm~c6OSS3 zRM)X=WSXdM+4y+6xqtNi^wwLBXMGVDhw__?4AgI6hbLyt)Byvj0ey=mr@{?KbF0#3 z4OHY4suI_N%S^o8k2@nS&QA9vQYSlRjvZ(e4(2YNd!k63VcBu3`z+6;QmqHd&@fCb zN}N|Coq8@gTQnF@;aavFjj5;LeSCh5h*Npf-C@4_VrmELvE#{; zYMzt12j26w<6EZtHM{SQI#p{zBe z79(peb+{Xn!LC^jt6~OQ9PCI1DDiPu3y3(_smc)#^qV{;%hp{Y4r(;&MluUt@D~#d z>*=5rV02*}tC$|CNcv!M_+Tz^)AgI!hB+gpQv2=gVz?Ed57!&d)EgJC?_EvBX^lw5 zfzx!;T#&E&UG*w4J$mS83@fh7lH_L9(}=s8%7(g{1Dnx;D|+S*E^VP6KWy4=#dTK- zuJB)(sh@fgzfag!Pe?*_gtj*Sc&7k%$RIf<3h(+{EEgBD`0?$u~N zONM>Lc3X`zxQE>?_BT5Q&BPMimkPv&V{(EUzCE&67?ep}E%7W279TM?GQ#sJ9GNJ~ zi#SJEiPat-{#+?bx$m|6QM_yMc*)5tzIU&G@i_nN9?eLS*KlH4g!lMG$+Q3q-`t>D2@RaR<$Xuz)bWM{CA;^XFq+rI z5|nLt2Xlx0pR@#&X!d%VF_y^3yF*%TEGs_ZesTkeiv6l^m~Y_}v9@xZ>kWqcX0>ei zVHpS`BI2-&=2sd1n%V@JOVJJ#um;XHeWkE6mlT&UXGDWyQbvS($}Iww`lvgMwixmc zb6hLN)cXBOgyTpJGcw;~AZH#CWaPJIg3ykEeJ$TgX{2 z_7bVx{0ftJ?z)|VbDdP&Nm+|ipPYwxA0&1{$a zCM%*U+Lz5-ufK`Q`8olls3uI@}PbsTES4>{ihTmYy+hv}5rA`*3 zt`x8SJV8AtNqsa`9n(x*$THmf9n5p=bD3zKq9B;kRHD9Bu1;62uIV9d;}b+2CxEKY zNou?621g?lTH~87SSm;Bw{glCD3ybsg{iYs!7C+&IbS=E@h_LBC|hR^b#j!$YD@Be z*ly`KleaGO)yr@zF}|5CNPCm@RB216PepGqN@nE?9Hy|PvzZg!xh-ob1#2%+qzcY@ zZ5Abrt3=h#*5{~LQmy@paSH1gJ5=+@mk-t2^6)k*WCX)&xrjUS!jz$_j$d5v=wN2b z*tT${3naR=`_=`UZBgSYU2CVmO&NXTwcNuyH*ZtsT^Xm-_^v04`tTaZD?w{!Ku49_=b2T|ju#Zm%2kNJmbIGKoeT)})yJWR+bi2E^bK5LB zb!ZHe@Gzh0p4euZ@v5GfEK1@d(x4769eWzBll-sVq$GFmBaSg+_Vbg(-v87mJK;Js zelzcZfm&=J|FAhVZeyc)AWy~JoeuVi9_u=b=@v=|VX^hq7nph+Qs}33GTTm{iS^2_ zHe+$qki3Zz{$vN^Wfl)Tf3B}Jf#NC- z%00a#tcPqlvC83Agc%(Kui$>!9JAaU$BdGcSXp;o_^Pp)l+7D3Yj@K7w#+(QZ&ZRi ztkmX-$+Bq}4AEYVRlYLhrbY)V!JtEV0Xs?~FJhI=9lY%cwhx(KEy!2=xN^NLK2ov3 zJV*4i%(T%P(#J7AWxlx=+Lo1)v{m{AA|XD3FNM*ST`C8MwdFQU?p)FEKBw7|JX zB|xYC^o!d|t?BxN&5XQb!EQHr_LgmFTUo*uL8UzL7I)S=x9164hz7L|^zfUnlz9{x za^O)(U5Y%ziymytgJGYal;eb>RLj$wASo(J^5l;9NviN&C&L+3K-Nb{7V%v#bpzjZ zsqn|T_TdV@?WY8`$Q(3|Jft(*PhI5KE74R_kXlEo3K5?!oUo`e>^{G7*RD#}EX~k# zkI|IYo=(n&al~nokUU~YuPg9lu2=R;l}~>t-(=x+kgsfGBad$fs6R9f%&<(}ep~=^ zN-lk#Omand?HWO%FaQLbyHNv=GaE3n2MuoKMJd-2C%?aiiDOT$hh$xG)NiAoh45C& zj*EpEawL-BS}T;?q}E z{_Cl)v|A08mI4wU$YncyP$$(+eqG2mX%kiTgkwfNPq0Ki)uOIlZ_nG{tjMXxOTn;z z*{E=Em1@JB17K9FD#O!lB%8I!r2?rU*0ugmQztf>yM z;pBWi9Nq`}R)nhrU&%#ubhY6&h026aUEZIqsB#S_?B(-T8JMBDPJP~TW5*nrz`W*S@C8ni%dL0j& z%u9-+Tm3s8+L)B;Q9jdj%;HZoRW{ILwP}hiFNPufS#2J`vrx4V&B{ulX%g67ska$9 z^JB|@&0*aWf1rjO19ONORObgs$WHNC3brEEoJhh9r)J1EDmCTO*ZXMRL`~P6NX+uK zghZ#!;FcL@eprR+8@vZ<=|o>cvDvw~-jcpye7?mrOvHN3lW)5FumTxB3pwlK>lpu2 z-{M20rWD#{TP%7-Rz)`W-8rGw9=hh03pPa+MK(^&#i~|}Z$=8HO}GrrE8ZMmToj!+ zWl=itYzp%#OslTj6t-82o(Y z8_y0sS9dYiU#X)Wem+#NGiJ<;njWLBsf1$z|7g3*0?#s5$11a1)=M5NRZlcxUP$%j z=G)@YM4#_jO(X$*L(r_)8UT zL!sa7YAmsJoZ`(`4?b8}mey{D)~8G@@Iem_yBQB-djp*Pr$+V*&1_1o>~igFRUP=e zZnmd>4v}GYzEQTUarT5swu_%K1zK`E0qffBM7=jG{FwbVZW#l0a&Y``b*<#sVQDfQ z=dqj1<(>!|6ZpU@6?nm0^-wOCJ zb65C6?%6!c8>rUJ!F-}ly5hzzOjY6H9%+_j5f{h47o@x56!9cJE=o1gDDr`v)o?)1 z1XfslzES${XZ+-4R=0?fQa1xFJAxlq_)EAn6N0jCk0@D)6TkQ-&f1*&6+2+Fv(q(4 zH7YbUQ+E{YeT`lMSKP-S$BoibBeob8ekNO6RhmGLH*u4l38WNu$m{oYELAMLi`pn3 zh9`7ym1R@tIasSs>m+DXOXStp;DjgaIF6KU>%DDzXi;+OWozdHmzk-x$o2cGF(swu zs1voQ%TujHWb86Qm^?b(*HqT^anNoFwRMI+z;v@kbt}i&#M9ZwiE+rEpm;x}mmsKG zSF&xdxAfIE`bADXV?sTe4#isna|@K)bYD8rA2!|2gOk6f)F)F=y;Hg!u7~^8b~%_; zO-G)PFfm`)gk#6z-qFL^n7D(_vxYiroJ?XiaaDSoEx89xPib^2@JLShbfY2|-Se^P zVGb;1{cS2Ulph9`Fue3CwX&sd&T;_zxos{U-4K-+ZtO{|KawzAeV!2qp6Z{_je zT;30ZUQ=lkanIzD!F!)a$kdY2CvNe>k>1!=*kWMzWBcoBk<BDpcX>6<3TLZ*TT=Q=6N& z?h%xbV_JlNu9o*VLDufO!o~LqAN7hn^1LQeG~cIOxAOcN92{A77;oEO@t zf#C}76nb_aB)iESE78mgk-FF=FUVW5+2n4Jx85X|yG`CIMlPp})v7}-XNGCvG-PKT zdtnoM+cwtBHa3new%s=Nh$)s`uz2h)>$hPR(Gixk5o?sRzCOv!+X2b}nBnqd`P4xpmt^6m1_C2F4B1lPiVg4(_B6h*OOWtCSw9<$s6m zY8J_>cby8m%wNO!(64gc+A&8~CVY|M5r+&|mKfZ|Ccho@VDP#4Q+c1k9OTUBY|EP2 zuV47Ft9>5L_q*kilAW|A=yHtTcG725*Gn#}J$LklyhJ-2H|!vXNF#iN@lo-;jsB=xja6;fl|QwaTK$voKdZdBxqGfyljWYxv#d(s(3xc|zYB}ev7VLv%{QPi-Hp z4EjagsUS25)?|xZ8I00$xCd1GS*0dHU`w4>j%G*H;@)?l$Lt@)>Qpy2D1Ndg-CNe5 zbGnmPSkbfNx7EBEla zyz@iw+w`XKBQ64~y+#lY)vF?ei?HQq`G@O*VsY8l!W{I)Ojqh0o(fM5=4A5O!%N&! z2P~{#zCuA`%ua=cFJ1-zFTJGBO!^`h?OB-6WQA>=3D0rJ(1)wkQfKa|l9(?Zs!vxk zvJtp-i@!J!&)HFxCKau>GVP4(T$-(tmBYG787MApi0KbN*Vt&sqn6vRS2()*HCyhq zbxa#Vs?QuiYEu9x@dbQbKx5B2|%b&iPiuStU zpkeD6Je49y@>%eXt;58MD2?57y(+dM7HX_uY+KRFimyVz*|{EiFEd*0d8T_DEwki$4PY8O4$k`+BaD&6Onf-V$HJ z0wEH|6|VNHJ)8@ApE@EavF{*7#KQcmDsD!w*T1x|yYggGxm432AnI|fEf2u=`^K-L#bfrwee4BJ*DJkVmsth z(TZ(}F|@KgDXMvCkAy0V6xWRLFNd@gKvZ-ZE@yk(6g}q0csZ{s!J1-bF(=t2 zqbdpf-ATx>^GzKQ_sB_L#M&=Wwlf2}HY?k96x&{T}p@*!>pJA0q-YH`#e3!)7hcAiQS!LSIbjd}hnn`>g zeAe7A@TphJP()$;iiC!p8Pz4L7OuPF#+y5X`}4m>OQ6xB=N!sfDnyiMk;2%tmoz`3 zUy|u@3#s(e$A;-GOX@90HY=kyD+d$l2w&F`&MHO(79$t~-B zK7TX6cz<(;tE0DeX7PS>s%ukkZT{}fAIwVLQ>YRf(WiCT-cyW6&+$&{6t;J$51&WO zFN$sMP{+vHyOXn#Y*IdE;pjMkrObhPY^o=bmm18@bqBM_wzqU{4Hn;03r>1(=9gH=GW4=k8mBbzHR>bbEPg8N z5$7+Dgh`5*BfmLwm=DmEE$j8Ym$4lvDOL-fc&~ygI9HIiQKqLHd<$;YAB+1$xqX)P zezrDa&$gE=+kG~z(c#u>JV~!np9p8&p~9YX{_;ea~k1VA0_x1Wt;gW<92`n5vo!!;3}LYLWRBI{KZw6 zWM(;X(>W)^s*ZTqi^OI5daX0ZI)ct^S#KULvx_MCrZU3LpOsTfW+M|ymL*1oec=4X zLzrZ9Ir7k%V}5{c2MCibvjT+C2%Z3BQgJ&p+NC9^N>g8>`Uq!9P+?y~ZP!yR0q^^A!yodkyAC-Z>|X1!opH7mNi+mO02w1*n!e=u8EemO0o= z1vr*DcuWQOmN|q>mkcq+bv#~ui1rt=#neuLpJ z{&mV!rI@tzRNvFauyQbIMRpL8#ISxb$NCTCe~~1Dr=0&^G2yICD5lpC0i+nS{TGcF zzx@Y8IjWY1q`dz@zX;B7yoZ70|4#3Jg#B;L1lJ{}Zrk?ycV_>^1T5ieC70!YYh(ns z8e3L48%H;rIS#ul%3#^`yFe-{x-@G1yS>tqV)SV#fxhmtl496Mdm+B=Bv)7Pk@h%H z1{tod=wp0P01L*Rx|{Qeg?8)~^5w)XoP05NCy7~(>e%IA8eoW7)=Kyq&t)n4KX3ED zrhB;{TTO;LTqe6)h8ssVTTPZbTz0WrmK#UT>d4!ML)ebX-R71%TMWPgRT}~kJ0cGo z5)r!_9ya76c9b4A)FS^;sQ)!Lf3)x~^6RUci|DP<#uS}v& zQ0;xlBgT`E(rW(ODu4L-%NPHh4gXKJ|C`bO(}FzCY#?sgTh$2F_g1$P{)Hc}OH*9C zbOtn8Nn~s!oDg3$lB?v`k#IOr_-L<^>tR?+qVN@8@AJj5Hl<5L!teVeEs0E@<`?Mu zf4so9i!8F^8V3_EZ48;7s-+|oZ}Ho&zN(g{w-b;OzD9PMS32J&{Qs2Ve`Qg}u;&lO zPY-#Jc@q3u&C$$xkV8AJeK8NxW-2QPCHwzP1HbqgivRZ-_{9(1Z)E;|q2T{2?te64 z#R3o)jU?vZTSU=u){|A2Tgnp@?8s4h{g4 z0HLsCC9z4a8qi)f0M2(6zt2C=mn6iOgaf5q5~Un?A}W0vDmD`5btF#UqJ9|GQLlWt zo@nUKA6gw1^+vFJcn4a4e}qfg^;0Y;`>hIZvYPzCMx$}a^4`p|!@}2PQu*4!c^Xwj?@CPAN!@`Y)id zypxTg<_-z)MVzH~J#^9wF#OzH>5&4A$zpovfmeN;?9x@>p@iOfQ)8FX4FlNQ}vY|L$ z4FA5@*Sf0j5wKxEa$#V&EnJS{aqsrifP6#zng?=A?}^h5@4XNvGFWCb4y?~5P8ZR6 zv2K80VQIo4Qwpk>q`|G2&Gp4!g7<5TlgddHhu$6}z-6cqpTXqzGV>M#d`O8>_yY$G|Qf z0mLYw-yM9_$IC9=TYyntOuq|u$YYbnCK_88s)##?PLJAwJ>a&HTM8mhf2Z@pULU{4 zPHyQnae6Ia89X@1E%_0r2j6?~?5;IDr-XPv8gOrj@BUD3DTg@S3a||xfXHy-blq+Y zy9?veTThYxq4NSZ=~|X@g!TlMhZ0~lA7iqD-nsWxpBGSgK89F1{qC1neP%%6;Gu$k z_v@=ZCw6J>e2jW9l1rApHm&k3%;=K~5E(2jr+4mp)n^Cx$;D`m7s?6fXWL->BmIA{ z;l!&xY_KH|-d5iFOy{mJgdMN4D;uj_2KGTA8QjA%cKw~EyQ%zgIvHHS zGL{-VJd|I~A%k1R#R}YRS(*q#VDl<-ceB*nD(3j%yytz2InvECc`MU-APm9Dt6as- zYWMK^#%nToE!ZkSv&KPw*^dk!47N(pbbl2n-+9zt(SjaC|lEFoQ+~7f1iB(7N*DyK|9&BYUzg$8F zX9in=2OTBW__mPC)ufiO5T&6=7&67z<}Zv!f|<@OVF)##Og7e5WlGK5&!YmF&h24{ z`#^eNHz44ruzwOgD;mZjNKiqp%Kn%9&0z=?UgaWkn5}8R=UB* zJekhpVF)VVM&KbYi|A2cGOS>;feildkZjPP&5?K%8MB^kS4!VqS>${N7T{F%F7!~P3vUjLaj-c0A|Fa$EM^8ZuWvA{Fg ze&^OIDJdl>5~#lQLdjPQKTCwBuPas zC5ha+P|N>)$80qHzyI;$xA%R{InO!gIp@63>$h{BC4h#gw9%G`#$^C2-~ydCD(Khb z@45+v?%guEiFMmn(tboAPHN#&3#f zL<7zYL>aIwh2f3nt?oGO^rqYM>}E3qqZe=q?KIYth{ixbH!zgdzy1=vGaNWJ=G_uI zRDR`XWKzQB)qvZ~%m&l^IF^=)2|<4d%LbGD_F9mQGfWNzlg)bfZL^f3Xa>(-OPmEc z$WoFU?!pp+lLZ+X>-&#R!hUX42=NXuAo9|eJNAS*oK*xQo#Ak+ZO2~^_J_xJ>Hh4l zb-`8lC&qSsT5`67g^_RHvoht!6*gv~_n1dcicQaCF1n{N$+T|k+v!xR#?_~7+HZ`w;8>7NxY>o#s{5Iw8< z;-N!XK`_;<0dKK49nrq(RCKBBMPpmvS1z~KtJWMT8L!BNwT1@_d>bt78cKI^ey!Hj ziigj)dVbAlgd&+GB55I?*Y8Jj(cAMerw$RX5x(=7{W{5E@vO$B!^Q>qxAkOm+!)?H z`Z%OY*ny0Vm2RrRvbA)ti2dwQOT@kiPY=5~?dw$7PUyVOvD3P%0Lu?;5D~h8CB{q8v*H{=AjazY=|q@Z1F+pL_o5e5fqE zcFVI%nsnq{FJ#9!x?Q_P+)67prK)*T#$iV27?B*cJ^2#w@7`m#efK%XJIjoP@lEOYDEo6Hjb+|;jWg9d6cBl7xkC!t~UVmmc@mr2npBr!E4Wn+*507%vZp1EFW0>vLY)n`iQf_mhh~CjsmFnXw{^^N)F~w;j zBgbT)rDQ==;Gvu4>}N@7HLA-`6uLd9o+>Rz+M8Ct!GzfyOO}RWDe%*2PEw9{i)6^& zMqT2SD>`CU8JoWE&~w(^hu$4w_h`X(+{aVWQrpdmkRG?t+xxw1*0_wHGqz~Vs5}yE z+pw)uq$a_?wMsU)J+8ILvF~&7=Ye?x(7w0r!H>@6Z>nBw+SzTDz%faWQb?;lvgBff zo_y@zWsF>n1FuB{qacgALSt@~qt z_?8c*9pVYLFK?r(_deQtjg4Ade9}sEjVn^ZbFd1freb;#s~z0-@p$@_ldg~u!*?s%9MV7b! zwKdn+vC$W|i}TqMnz>`Bj?|zQ+i$ym(a8;Y`ehP@HCZRp7h9;Fse}Vx`7+p8dn9#j zO6*@sJqkCzZ)>-$@cY?{E^9$9RJAF-7v0k`;6vXzAg4_^w-nvt(4=!~f3*XA-WMp@ zN@ja zXEozPYWwr0l}rxCcG?t%R|JH5o>4SBB3+x+xB0M5T!ZbNtiPSI(vSf%KT3^QD_XbW zl3IE%+o8zCYB`hoR%my)sD?f?hgX!z-VO#^OR)%=6l)8`AUNlj1VHZEAF z>GNTJ9P?S+_U<;lP(MsWOadKl8-*~%HZ63fm5D_wCg=7;7Ikn~`L&k|PXwGO=Cq^9 zOGuC7C5o_36B-t~^fGtW92^R~8zgDf;Bo{PP0e|!p}3Es=Bl7qr=w+eb-5WduJ+z} zYGHNBAI3P_4`>m}ZHoi*ePgx`56GQ`eaywZs3{0T&UaCF&Bjt|mHdmwhC7j)TI;C)jZUYY zD?GMo9Cv?vH(q85u=LJ+L_tUl9DB2^$?XHKpEs+?sBB)@*#he`c}u<$l${cG{-S+-yVD0nN8;OCZl`^M z+MIAW+>QQ9hRUH+^$Tx>ruN? zWo7?+f6LaF!^`@^3P;WqW-beR7MnRg@M25z9Z|JY>Fk|DKQ67`PRO_yWoUNwS!zL5 zu)zuzRrWyx!j1lq{?QKqm5)Uk4@R6g_eU&OEWAEehdL2d-g9*{C7k6lt~JKVPbz$c zvAHEri>t-t%Y8R5?fH`8TQUJnOFSw9K3q83Y%kS$5XgZwypj}NXKVPSRoHkj2n77) zcD5$5@L)ZPz7g<8$(O`n0==ybl#y^vWhD}oKqCT$ZwAWyu;ws5Wh29d`ZRZUGJ%BQ zwY!D^eX;RM04bG;nH(}uW;3W5Zewf=74J=AVps%>V25msAU1|O(c~R}3YmJyK-rVU zqGJ#UKR-XX9~w?$cp#8lwroLgN0q0hA`+(Y=xhdsi$x?LNE8y-gPVy!!jT9bE-2x@ z6$-=^6p2QoO-}^sFsUMUI+UiS7Gm<6Hy?$J z>?mMxl(Heux}X?_`dneiR5FWmzuBAeL}} z1O_I>AQ1uisU9#Qo55|HZfJu=?L_JALhIU13GfTXOhUq80;dywlie7kJzO6}pyApo)?_N%-{pXwj*E_#lE9z~ok8;=5m*Scwx%~y#gt8^5Mex% z@YzkWpLTX83($edA`_IjhG*g3C?ptx#-_3il(m#6ZxTopV6`Uip|o{SQ@3eu;B>qJ zO=X0k{*?D%CRdwxH9Z;k_RJRYz-Dk7z!vh`XjFHy$CPE6D1e|4~EEG&E5U^c62y+V~4~))Mfli~d>7YcvQ9@A& z9oZZ2L1H3I$t-U?o%tJL1tG+MGk7paOeWt7ymSd5PlGUvvuHHR@2P|-3HlNHf6OL~ z4xEjSr;;dB`UzVrSwP-hW>^!L#cp$iH=as%Co#DdhgaXmcj*g<~yt7<_R%3i$b6Y7`%F3$lF(0=`of6 zu*6+c*A_7J;s#IMJ8T;uNvis@GF&nfs@<$;yUulOTS&L&6AAYabWXt!>4L}yU7VCU ztAL@wfHIL5{bZJ60W9)7vk!XUQ(=LRa~=D@TE*6T?6>y$%jBda{g;5kB%24v-cEy zx>g6^>S>{N6zf%y5Wl + +#if defined(ARDUINO) && ARDUINO >= 100 +#include +#else +#include +#endif + + + +#define BMP085_ADDRESS 0x77 // I2C address of BMP085 + +const unsigned char OSS = 0; // Oversampling Setting +unsigned char timeout_error = 0; + +// Calibration values +//int ac1; +#define BMP085_AC1 (int)bmp085ReadInt(0xAA) + +//int ac2; +#define BMP085_AC2 (int)bmp085ReadInt(0xAC) + +//int ac3; +#define BMP085_AC3 (int)bmp085ReadInt(0xAE) + +//unsigned int ac4; +#define BMP085_AC4 (unsigned int)bmp085ReadInt(0xB0) + +//unsigned int ac5; +#define BMP085_AC5 (unsigned int)bmp085ReadInt(0xB2) + +//unsigned int ac6; +#define BMP085_AC6 (unsigned int)bmp085ReadInt(0xB4) + +//int b1; +#define BMP085_B1 (int)bmp085ReadInt(0xB6) + +int b2; +#define BMP085_B2 (int)bmp085ReadInt(0xB8) + +int mb; +#define BMP085_MB (int)bmp085ReadInt(0xBA) + +int mc; +#define BMP085_MC (int)bmp085ReadInt(0xBC) + +int md; +#define BMP085_MD (int)bmp085ReadInt(0xBE) + + + + + +// b5 is calculated in bmp085GetTemperature(...), this variable is also used in bmp085GetPressure(...) +// so ...Temperature(...) must be called before ...Pressure(...). +long b5; + + + + +/* + * sensors_aref: measure an external voltage hooked up to the AREF pin, + * optionally (and recommendably) through a pull-up resistor. This is + * incompatible with all other functions that use internal references + * (see config.h) + */ +#ifdef USE_AREF +void sensors_setup() +{ + // Nothing to set-up when AREF is in use +} + +unsigned long sensors_aref() +{ + unsigned long result; + // Read 1.1V reference against AREF (p. 262) + ADMUX = _BV(MUX3) | _BV(MUX2) | _BV(MUX1); + delay(2); // Wait for Vref to settle + ADCSRA |= _BV(ADSC); // Convert + while (bit_is_set(ADCSRA,ADSC)); + result = (ADCH << 8) | ADCL; + + // millivolts = 1.1 * 1024 * 1000 / result + result = 1126400 / result; + + // aref = read aref * (32K + AREF_PULLUP) / 32K + result = result * (32000UL + AREF_PULLUP) / 32000; + + return result; +} +#endif + +#ifndef USE_AREF +void sensors_setup() +{ +// pinMode(INTERNAL_LM60_VS_PIN, OUTPUT); +// pinMode(EXTERNAL_LM60_VS_PIN, OUTPUT); +// pinMode(LM335_VS_PIN, OUTPUT); +// pinMode(LM50_VS_PIN, OUTPUT); + + Wire.begin(); +// bmp085Calibration(); // now done with defines to save RAM + +} + + +int sensors_lm50() +{ + analogReference(DEFAULT); // Ref=3.3V. + analogRead(LM50_VOUT_PIN); // Disregard the 1st conversion after changing ref (p.256) + int adc = analogRead(LM50_VOUT_PIN); // Real read + int mV = 3300L * adc / 1024L; // Millivolts + + switch (TEMP_UNIT)//Added by: Kyle Crockett + { + case 1://C + return ((mV - 500) / 10) + CALIBRATION_VAL ; + break; + case 2://K + return ((mV - 500) / 10) + 273 + CALIBRATION_VAL; //C + 273 = K + break; + case 3://F + return (9L * (mV - 500) / 50) + 32+ CALIBRATION_VAL; // (9/5)C + 32 = F + break; + }; +} + +/* +int sensors_lm60(int powerPin, int readPin) +{ + digitalWrite(powerPin, HIGH); // Turn the LM60 on +// analogReference(INTERNAL); // Ref=1.1V. Okay up to 108 degC (424 + 6.25*108 = 1100mV) + analogReference(DEFAULT); // Ref=3.3V. + analogRead(readPin); // Disregard the 1st conversion after changing ref (p.256) + int adc = analogRead(readPin); // Real read + digitalWrite(powerPin, LOW); // Turn the LM60 off +// int mV = 1100L * adc / 1024L; // Millivolts + int mV = 3300L * adc / 1024L; // Millivolts + + switch (TEMP_UNIT)//Added by: Kyle Crockett + { + case 1://C + return (4L * (mV - 424) / 25)+ CALIBRATION_VAL ; // Vo(mV) = (6.25*T) + 424 -> T = (Vo - 424) * 100 / 625 + break; + case 2://K + return (4L * (mV - 424) / 25) + 273 + CALIBRATION_VAL; //C + 273 = K + break; + case 3://F + return (36L * (mV - 424) / 125) + 32+ CALIBRATION_VAL; // (9/5)C + 32 = F + break; + }; +} + +int sensors_ext_lm60() +{ + return sensors_lm60(EXTERNAL_LM60_VS_PIN, EXTERNAL_LM60_VOUT_PIN); +} + +int sensors_int_lm60() +{ + return sensors_lm60(INTERNAL_LM60_VS_PIN, INTERNAL_LM60_VOUT_PIN); +} + +int sensors_lm335() +{ + digitalWrite(LM335_VS_PIN, HIGH); // Turn LM335 on + analogReference(DEFAULT); + analogRead(LM335_VOUT_PIN); + int adc = analogRead(LM335_VOUT_PIN); + digitalWrite(LM335_VS_PIN, LOW); // Turn LM335 off + int kelvin = adc * 3300L / 10240L; + int celsius = kelvin - 273; + //int farenheit = celsius * 9L / 5L + 32L; + return celsius; +} +*/ + + +int getUBatt() +{ + analogReference(DEFAULT); + analogRead(A1); // Disregard the 1st conversion after changing ref + int adc = analogRead(A1); // Real read + // mV = ( Uref * adc / 1024bit resolution ) / Voltage divider ratio + // mV = ( Uref * adc / 1024bit resolution ) / (33 kOhm / (33 kOhm + 100 kOhm)) for PecanPico + + // + // Uref = 3.3 V + long mV = adc * 13300L / 1024L; + + return (int)mV; +} + +/* +int sensors_humidity() +{ + // TO DO + return 0; +} + +int sensors_pressure() +{ + // TO DO + return 0; +} + +int sensors_uv_ray() +{ + // Nice to have at 40 km altitude + return 0; +} + +int sensors_gamma_ray() +{ + // http://www.cooking-hacks.com/index.php/documentation/tutorials/geiger-counter-arduino-radiation-sensor-board + return 0; +} + +int sensors_graviton() +{ + // Wait, what? + return 0; +} +*/ + +// Read 1 byte from the BMP085 at 'address' +char bmp085Read(unsigned char address) +{ + unsigned char data; + unsigned int timeout = 2000; + + Wire.beginTransmission(BMP085_ADDRESS); + Wire.write(address); + Wire.endTransmission(); + + Wire.requestFrom(BMP085_ADDRESS, 1); + while(!Wire.available()) + { + timeout--; + if (timeout == 0) + { + timeout_error = 1; + return '0'; + } + } + + + return Wire.read(); +} + +// Read 2 bytes from the BMP085 +// First byte will be from 'address' +// Second byte will be from 'address'+1 +int bmp085ReadInt(unsigned char address) +{ + unsigned char msb, lsb; + unsigned int timeout = 2000; + + Wire.beginTransmission(BMP085_ADDRESS); + Wire.write(address); + Wire.endTransmission(); + + Wire.requestFrom(BMP085_ADDRESS, 2); + while(Wire.available()<2) + { + timeout--; + if (timeout == 0) + { + timeout_error = 1; + return '0'; + } + } + + + msb = Wire.read(); + lsb = Wire.read(); + + return (int) msb<<8 | lsb; +} + +// Stores all of the bmp085's calibration values into global variables +// Calibration values are required to calculate temp and pressure +// This function should be called at the beginning of the program +//void bmp085Calibration() +//{ +// ac1 = bmp085ReadInt(0xAA); +// ac2 = bmp085ReadInt(0xAC); +// ac3 = bmp085ReadInt(0xAE); +// ac4 = bmp085ReadInt(0xB0); +// ac5 = bmp085ReadInt(0xB2); +// ac6 = bmp085ReadInt(0xB4); +// b1 = bmp085ReadInt(0xB6); +// b2 = bmp085ReadInt(0xB8); +// mb = bmp085ReadInt(0xBA); +// mc = bmp085ReadInt(0xBC); +// md = bmp085ReadInt(0xBE); +//} + + // Read the uncompensated temperature value +unsigned int bmp085ReadUT() +{ + unsigned int ut; + + // Write 0x2E into Register 0xF4 + // This requests a temperature reading + Wire.beginTransmission(BMP085_ADDRESS); + Wire.write(0xF4); + Wire.write(0x2E); + Wire.endTransmission(); + + // Wait at least 4.5ms + delay(5); + + // Read two bytes from registers 0xF6 and 0xF7 + ut = bmp085ReadInt(0xF6); + return ut; +} + +// Read the uncompensated pressure value +unsigned long bmp085ReadUP() +{ + unsigned char msb, lsb, xlsb; + unsigned long up = 0; + unsigned int timeout = 2000; + + // Write 0x34+(OSS<<6) into register 0xF4 + // Request a pressure reading w/ oversampling setting + Wire.beginTransmission(BMP085_ADDRESS); + Wire.write(0xF4); + Wire.write(0x34 + (OSS<<6)); + Wire.endTransmission(); + + // Wait for conversion, delay time dependent on OSS + delay(2 + (3<> (8-OSS); + + return up; +} + + +// Calculate temperature given ut. +// Value returned will be in units of 0.1 deg C +short bmp085GetTemperature(unsigned int ut) +{ + long x1, x2; + + x1 = (((long)ut - (long)BMP085_AC6)*(long)BMP085_AC5) >> 15; + x2 = ((long)BMP085_MC << 11)/(x1 + BMP085_MD); + b5 = x1 + x2; + if (timeout_error == 1) + { + timeout_error = 0; + return 0; + } + else + { + return ((b5 + 8)>>4); + } +} + +// Calculate pressure given up +// calibration values must be known +// b5 is also required so bmp085GetTemperature(...) must be called first. +// Value returned will be pressure in units of Pa. +long bmp085GetPressure(unsigned long up) +{ + long x1, x2, x3, b3, b6, p; + unsigned long b4, b7; + + b6 = b5 - 4000; + // Calculate B3 + x1 = (BMP085_B2 * (b6 * b6)>>12)>>11; + x2 = (BMP085_AC2 * b6)>>11; + x3 = x1 + x2; + b3 = (((((long)BMP085_AC1)*4 + x3)<>2; + + // Calculate B4 + x1 = (BMP085_AC3 * b6)>>13; + x2 = (BMP085_B1 * ((b6 * b6)>>12))>>16; + x3 = ((x1 + x2) + 2)>>2; + b4 = (BMP085_AC4 * (unsigned long)(x3 + 32768))>>15; + + b7 = ((unsigned long)(up - b3) * (50000>>OSS)); + if (b7 < 0x80000000) + p = (b7<<1)/b4; + else + p = (b7/b4)<<1; + + x1 = (p>>8) * (p>>8); + x1 = (x1 * 3038)>>16; + x2 = (-7357 * p)>>16; + p += (x1 + x2 + 3791)>>4; + + if (timeout_error == 1) + { + timeout_error = 0; + return 0; + } + else + { + return p; + } +} + + +#endif diff --git a/sensors.h b/sensors.h new file mode 100644 index 0000000..5beada0 --- /dev/null +++ b/sensors.h @@ -0,0 +1,34 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __SENSORS_H__ +#define __SENSORS_H__ + +void sensors_setup(); +unsigned long sensors_aref(); +//long sensors_internal_temp(); +//int sensors_int_lm60(); +//int sensors_ext_lm60(); +//int sensors_lm335(); +int sensors_lm50(); +//void bmp085Calibration(void); +unsigned long bmp085ReadUP(void); +unsigned int bmp085ReadUT(void); +short bmp085GetTemperature(unsigned int ut); +long bmp085GetPressure(unsigned long up); +int getUBatt(); +#endif diff --git a/trackuino.h b/trackuino.h new file mode 100644 index 0000000..46ce461 --- /dev/null +++ b/trackuino.h @@ -0,0 +1,24 @@ +/* trackuino copyright (C) 2010 EA5HAV Javi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __TRACKUINO_H__ +#define __TRACKUINO_H__ + + +extern bool newPositionStillUnknown; + +#endif