├── images ├── prototype.jpg ├── rev1.0-top.png ├── rev1.1-top.png ├── 1-oshpark-pcb.jpg ├── rev1.0-bottom.png ├── rev1.1-bottom.png ├── 2-assembled-half.jpg ├── 3-assembled-full.jpg ├── prototype-wiring.png ├── 4-assembled-bottom.jpg ├── beetle-board-without-3v3.jpg └── 12v-dc-dc-converter-with-enable.jpg ├── eagle-pcb ├── revisions.txt ├── bom.txt └── avr-hvsp-programmer.brd ├── README.md ├── LICENSE └── avr-hvsp-programmer ├── stk500.ino ├── avr-hvsp-programmer.ino └── avr-hvsp-programmer.hex /images/prototype.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/prototype.jpg -------------------------------------------------------------------------------- /images/rev1.0-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/rev1.0-top.png -------------------------------------------------------------------------------- /images/rev1.1-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/rev1.1-top.png -------------------------------------------------------------------------------- /images/1-oshpark-pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/1-oshpark-pcb.jpg -------------------------------------------------------------------------------- /images/rev1.0-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/rev1.0-bottom.png -------------------------------------------------------------------------------- /images/rev1.1-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/rev1.1-bottom.png -------------------------------------------------------------------------------- /images/2-assembled-half.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/2-assembled-half.jpg -------------------------------------------------------------------------------- /images/3-assembled-full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/3-assembled-full.jpg -------------------------------------------------------------------------------- /images/prototype-wiring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/prototype-wiring.png -------------------------------------------------------------------------------- /images/4-assembled-bottom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/4-assembled-bottom.jpg -------------------------------------------------------------------------------- /images/beetle-board-without-3v3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/beetle-board-without-3v3.jpg -------------------------------------------------------------------------------- /images/12v-dc-dc-converter-with-enable.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrBlinky/avr-hvsp/HEAD/images/12v-dc-dc-converter-with-enable.jpg -------------------------------------------------------------------------------- /eagle-pcb/revisions.txt: -------------------------------------------------------------------------------- 1 | 1.0 First release. Minior issue: DC-DC converter module is 0.1"too wide 2 | 3 | 1.1 reduced DC-DC converter module width by 0.1" 4 | adjusted routing due to narrower DC-DC converter module 5 | increased DC-DC converter module drill size from 0.9mm to 1.0mm 6 | increased beetle module drill size from 0.9mm to 1.0mm 7 | changed revision text from 1.0 to 1.1 8 | 9 | Schematic changes: 10 | changed value red LED resistor R5 to 1K 11 | changed value yellow LED resistor R6 to 470 12 | changed value green LED resistor R7 to 1K 13 | -------------------------------------------------------------------------------- /eagle-pcb/bom.txt: -------------------------------------------------------------------------------- 1 | 1x 12V DC-DC converter/booster module with enable 2 | 1x ATMEGA32U4 Beetle board without parts on PCB bottom + headers 3 | (No 3.3V pin and no extra GND pins on top row.) 4 | 1x 3 mm Red LED 5 | 1x 3 mm Yellow LED 6 | 1x 3 mm Green LED 7 | 5x 470 Ohm resistor (1/8 Watt) 8 | 2x 1K resistor (1/8 Watt) 9 | 1x PM48XP P-channel MOSFET SOT23 package (optional)* 10 | 1x 8 pin header (for programming connector) 11 | 1x 2 pin header (for DC-DC converter) 12 | 3x 1 pin header (for DC-DC converter) 13 | 1x 8 pin IC socket 14 | 1x 6x6mm tactile button 15 | 16 | *A MOSFET is recommended for a more powerful VCC. However if devices are only 17 | programmed using the IC socket or in low power circuits (<20mA), the MOSFET 18 | can be left out. In that case VCC is powered by a GPIO pin by shorting 19 | jumper J1. When using a MOSFET, Jumper J1 must be left open. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # avr-hvsp 2 | High voltage serial programmer for AVR Attiny devices 3 | 4 | * Easy to make programmer using 12V DC-DC converter with enable and ATMEGA32U4 Beetle board. 5 | * Programs AVR Attiny devices in high voltage mode to recover fuse settings and allow reset pin to be used as GPIO pin. 6 | * Works with Arduino IDE / AVRdude. 7 | * No hassle with Windows driver utilities. Uses built in windows 10 driver or Arduino IDE driver. 8 | 9 | ![fully assembled image](https://raw.githubusercontent.com/MrBlinky/avr-hvsp/master/images/3-assembled-full.jpg) 10 | 11 | ## Parts 12 | 13 | |Qty. | Discription | 14 | | --- | -------------------------------------------------------------- | 15 | | 1 | 12V DC-DC converter/booster module with enable | 16 | | 1 | ATMEGA32U4 Beetle board without parts on PCB bottom + headers (No 3.3V pin and no extra GND pins on top row.) | 17 | | 1 | 3 mm Red LED | 18 | | 1 | 3 mm Yellow LED | 19 | | 1 | 3 mm Green LED | 20 | | 5 | 470 Ohm resistor (1/8 Watt) | 21 | | 2 | 1K resistor (1/8 Watt) | 22 | | 1 | PM48XP P-channel MOSFET SOT23 package (optional)* | 23 | | 1 | 8 pin header (for programming connector) | 24 | | 1 | 2 pin header (for DC-DC converter) | 25 | | 3 | 1 pin header (for DC-DC converter) | 26 | | 1 | 8 pin IC socket | 27 | | 1 | 6x6mm tactile button | 28 | 29 | *A MOSFET is recommended for a more powerful VCC. However if devices are 30 | only programmed using the IC socket or in low power circuits (<20mA), 31 | the MOSFET can be left out. In that case VCC is powered by a GPIO pin 32 | by shorting jumper J1. When using a MOSFET, Jumper J1 must be left open. 33 | 34 | Revision 1.1 PCB can be ordered through [OSH Park](https://oshpark.com/shared_projects/vXxMrB8z) 35 | 36 | ## Assembly 37 | 38 | Assemble parts with low height first (programming header, MOSFET at bottom, resistors IC socket, button, LEDs and modules as last). 39 | Check a parts aligment after soldering the first pin and when it's aligned properly solder remaining pins. 40 | 41 | Before soldering the module headers, place headers with long end into main PCB and mount modules on top for easy aligment. Solder one pin of each header at top of module and check if headers are straight then solder remaining pins at top of the modules. Cut excess length of header pins at bottom of the main PCB and then solder them. 42 | 43 | ## upload programmer firmware 44 | 45 | * Open **hvsp.ino** sketch by double clicking or open file with Arduino IDE 46 | * Select **Arduino Leonardo** board from **Tools** menu. 47 | * Select **port** from **Tools** menu. 48 | * Upload sketch 49 | 50 | ## Programming a device 51 | 52 | Insert 8-pin DIP devices in to socket or wire-up device to programming header (check device datasheet for wiring). 53 | Upload a sketch using Arduino IDE or upload a hex file directly using AVRdude. 54 | 55 | LED status: 56 | * Red LED on: 12V VPP programming voltage on. Red LED off: Programming voltage off. 57 | * Yellow LED on: 5V VCC on. Yellow LED off: 5V VCC off. 58 | * Green LED on: Both programming and VCC are off. Green LED off: VPP and/or VCC on. 59 | 60 | Button control: 61 | 62 | Short press (< 500 ms): Toggle VCC on/off. 63 | long press (>= 500 ms): TO DO 64 | 65 | ### using Arduino IDE 66 | 67 | select **Arduino as ISP (ATmega32U4)** as **programmer** from **Tools** menu 68 | 69 | ### using AVRdude 70 | 71 | Use **-carduino** as programmer switch and specify serial port with *-P* switch 72 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /avr-hvsp-programmer/stk500.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************/ 2 | // AVR HVSP stk500v1 lite core 1.01 by Mr.Blinky Mar.2020 CC0 Licence 3 | /******************************************************************************* 4 | 5 | based on Atmel application note AN_2525 AVR061: STK500 Communication Protocol, 6 | analyzing USB communications and peeking at AVRdude source. 7 | 8 | lite as in limited commands set implemented to support AVRdude thru Arduino IDE 9 | and command line: 10 | 11 | * read device ID 12 | * read fuses and lock bits 13 | * chip erase 14 | * read/write flash 15 | * read/write EEPROM (using commandline) 16 | 17 | Things learned during developing and debugging this code: 18 | 19 | When selecting stk500v1 programmer option with AVRdude using the -cstk500v1 switch 20 | DTR is not set. The Arduino USB core requires DTR to be set otherwise no data is 21 | send to the host. Initally a hack was required but later on I discovered the 22 | Arduino programmer (-carduino switch) basically uses the same protocol and sets 23 | DTR so the hack was no longer required. 24 | 25 | TLDR 26 | 27 | Use AVRdude with -carduino switch 28 | 29 | /******************************************************************************/ 30 | 31 | // responses 32 | constexpr uint8_t Resp_STK_OK = 0x10; 33 | constexpr uint8_t Resp_STK_FAILED = 0x11; 34 | constexpr uint8_t Resp_STK_UNKNOWN = 0x12; 35 | constexpr uint8_t Resp_STK_NODEVICE = 0x13; 36 | constexpr uint8_t Resp_STK_INSYNC = 0x14; 37 | constexpr uint8_t Resp_STK_NOSYNC = 0x15; 38 | 39 | // special 40 | constexpr uint8_t Sync_STK_CRC_EOP = 0x20; 41 | 42 | // commands 43 | constexpr uint8_t Cmnd_STK_GET_SYNC = 0x30; 44 | constexpr uint8_t Cmnd_STK_GET_SIGN_ON = 0x31; 45 | constexpr uint8_t Cmnd_STK_RESET = 0x32; 46 | constexpr uint8_t Cmnd_STK_SINGLE_CLOCK = 0x33; 47 | constexpr uint8_t Cmnd_STK_STORE_PARAMETERS = 0x34; 48 | 49 | constexpr uint8_t Cmnd_STK_SET_PARAMETER = 0x40; 50 | constexpr uint8_t Cmnd_STK_GET_PARAMETER = 0x41; 51 | constexpr uint8_t Cmnd_STK_SET_DEVICE = 0x42; 52 | constexpr uint8_t Cmnd_STK_GET_DEVICE = 0x43; 53 | constexpr uint8_t Cmnd_STK_GET_STATUS = 0x44; 54 | constexpr uint8_t Cmnd_STK_SET_DEVICE_EXT = 0x45; 55 | 56 | constexpr uint8_t Cmnd_STK_ENTER_PROGMODE = 0x50; 57 | constexpr uint8_t Cmnd_STK_LEAVE_PROGMODE = 0x51; 58 | constexpr uint8_t Cmnd_STK_CHIP_ERASE = 0x52; 59 | constexpr uint8_t Cmnd_STK_CHECK_AUTOINC = 0x53; 60 | constexpr uint8_t Cmnd_STK_CHECK_DEVICE = 0x54; 61 | constexpr uint8_t Cmnd_STK_LOAD_ADDRESS = 0x55; 62 | constexpr uint8_t Cmnd_STK_UNIVERSAL = 0x56; 63 | 64 | constexpr uint8_t Cmnd_STK_PROG_FLASH = 0x60; 65 | constexpr uint8_t Cmnd_STK_PROG_DATA = 0x61; 66 | constexpr uint8_t Cmnd_STK_PROG_FUSE = 0x62; 67 | constexpr uint8_t Cmnd_STK_PROG_LOCK = 0x63; 68 | constexpr uint8_t Cmnd_STK_PROG_PAGE = 0x64; 69 | constexpr uint8_t Cmnd_STK_PROG_FUSE_EXT = 0x65; 70 | 71 | constexpr uint8_t Cmnd_STK_READ_FLASH = 0x70; 72 | constexpr uint8_t Cmnd_STK_READ_DATA = 0x71; 73 | constexpr uint8_t Cmnd_STK_READ_FUSE = 0x72; 74 | constexpr uint8_t Cmnd_STK_READ_LOCK = 0x73; 75 | constexpr uint8_t Cmnd_STK_READ_PAGE = 0x74; 76 | constexpr uint8_t Cmnd_STK_READ_SIGN = 0x75; 77 | constexpr uint8_t Cmnd_STK_READ_OSCCAL = 0x76; 78 | constexpr uint8_t Cmnd_STK_READ_FUSE_EXT = 0x77; 79 | constexpr uint8_t Cmnd_STK_READ_OSCCAL_EXT = 0x78; 80 | 81 | // parameters 82 | constexpr uint8_t Parm_STK_HW_VER = 0x80; 83 | constexpr uint8_t Parm_STK_SW_MAJOR = 0x81; 84 | constexpr uint8_t Parm_STK_SW_MINOR = 0x82; 85 | 86 | // parameter structure 87 | struct Params 88 | { 89 | uint8_t devicecode; 90 | uint8_t revision; 91 | uint8_t progtype; 92 | uint8_t parmode; 93 | uint8_t polling; 94 | uint8_t selftimed; 95 | uint8_t lockbytes; 96 | uint8_t fusebytes; 97 | uint8_t flashpollval1; 98 | uint8_t flashpollval2; 99 | uint8_t eeprompollval1; 100 | uint8_t eeprompollval2; 101 | uint8_t pagesizehigh; // 16-bit big endian flashmemory programming pagesize in bytes 102 | uint8_t pagesizelow; 103 | uint8_t eepromsizehigh; // 16-bit big endian eeprom size in bytes 104 | uint8_t eepromsizelow; 105 | uint8_t flashsize4; // 32-bit big endian flash size in bytes 106 | uint8_t flashsize3; 107 | uint8_t flashsize2; 108 | uint8_t flashsize1; 109 | }; 110 | 111 | Params params; 112 | uint8_t eepromPageSize; 113 | 114 | // low level serial functions 115 | 116 | uint8_t readByte() 117 | { 118 | while (Serial.available() <= 0); 119 | return Serial.read(); 120 | } 121 | 122 | void writeByte(uint8_t b) 123 | { 124 | Serial.write(b); 125 | } 126 | 127 | // STK functions 128 | 129 | void writeNoSync() 130 | { 131 | writeByte(Resp_STK_NOSYNC); 132 | } 133 | 134 | void writeInSync() 135 | { 136 | writeByte(Resp_STK_INSYNC); 137 | } 138 | 139 | void writeOK() 140 | { 141 | writeByte(Resp_STK_OK); 142 | } 143 | 144 | bool endOfPacket() 145 | { 146 | if (readByte() == Sync_STK_CRC_EOP) return true; 147 | 148 | writeNoSync(); 149 | return false; 150 | } 151 | 152 | void endOfCommand() 153 | { 154 | if (endOfPacket()) 155 | { 156 | writeInSync(); 157 | writeOK(); 158 | } 159 | } 160 | 161 | void getParameter() 162 | { 163 | uint8_t b = readByte(); 164 | if (b == Parm_STK_HW_VER) b = HARDWAREVERSION; 165 | else if (b == Parm_STK_SW_MAJOR) b = SOFTWAREVERSION_MAJOR; 166 | else if (b == Parm_STK_SW_MINOR) b = SOFTWAREVERSION_MINOR; 167 | else b = 0; 168 | if (endOfPacket()) 169 | { 170 | writeInSync(); 171 | writeByte(b); 172 | writeOK(); 173 | } 174 | } 175 | 176 | void setDeviceParams() 177 | { 178 | for(uint8_t i = 0; i < sizeof(params); i++) 179 | *(uint8_t*)(¶ms + i) = readByte(); 180 | endOfCommand(); 181 | } 182 | void setDeviceExtParams() 183 | { 184 | uint8_t len = readByte(); 185 | eepromPageSize = readByte(); // only required ext device param 186 | for(uint8_t i = 2; i < len; i++) readByte(); // ignore all others 187 | endOfCommand(); 188 | } 189 | 190 | // AVRdude uses universal (SPI)command rather than the STK commands for: 191 | // read signature, read/write fuses, chip erase 192 | 193 | void universalCommand() 194 | { 195 | uint16_t cmd = (readByte() << 8) | readByte(); 196 | uint8_t idx = readByte(); 197 | uint8_t data =readByte(); 198 | if (endOfPacket()) 199 | { 200 | writeInSync(); 201 | switch (cmd) 202 | { 203 | case 0x3000: // prefered by stk500v1 programmer 204 | data = readSignatureByte(idx); 205 | break; 206 | case 0x5000: 207 | data = readLowFuse(); 208 | break; 209 | case 0x5008: 210 | data = readExtFuse(); 211 | break; 212 | case 0x5800: 213 | data = readLockBits(); 214 | break; 215 | case 0x5808: 216 | data = readHighFuse(); 217 | break; 218 | case 0xAC80: 219 | chipErase(); 220 | break; 221 | case 0xACA0: 222 | writeLowFuse(data); 223 | break; 224 | case 0xACA4: 225 | writeExtFuse(data); 226 | break; 227 | case 0xACA8: 228 | writeHighFuse(data); 229 | break; 230 | case 0xACE0: 231 | writeLockBits(data); 232 | break; 233 | } 234 | writeByte(data); 235 | writeOK(); 236 | } 237 | } 238 | 239 | void readPage() 240 | { 241 | int16_t len = (readByte() << 8) | readByte(); 242 | uint8_t memType = readByte(); 243 | if (endOfPacket()) 244 | { 245 | writeInSync(); 246 | if (memType == 'E') 247 | { 248 | readEepromMode(); 249 | currAddr <<= 1; 250 | while (len--) 251 | { 252 | writeByte(readEepromByte()); 253 | ++currAddr; 254 | } 255 | currAddr >>= 1; 256 | } 257 | else 258 | { 259 | readFlashMode(); 260 | while (len--) 261 | { 262 | writeByte(readFlashLowByte()); 263 | if (len) 264 | { 265 | writeByte(readFlashHighByte()); 266 | --len; 267 | } 268 | ++currAddr; 269 | } 270 | } 271 | writeOK(); 272 | } 273 | } 274 | 275 | void writePage() 276 | { 277 | int16_t len = (readByte() << 8) | readByte(); 278 | uint8_t memType = readByte(); 279 | if (memType == 'E') 280 | { 281 | writeEepromMode(); 282 | uint16_t pageMask = eepromPageSize - 1; 283 | currAddr <<= 1; 284 | while (len--) 285 | { 286 | loadEepromPage(readByte()); 287 | currAddr++; 288 | if (!(currAddr & (pageMask))) writeEepromPage(); 289 | } 290 | if (currAddr & (pageMask)) writeEepromPage(); 291 | currAddr >>= 1; 292 | } 293 | else 294 | { 295 | writeFlashMode(); 296 | uint16_t pageMask = ((params.pagesizehigh << 7) | (params.pagesizelow >> 1)) - 1; 297 | while (len) 298 | { 299 | loadFlashPageLowByte(readByte()); 300 | loadFlashPageHighByte(readByte()); 301 | currAddr++; 302 | if (!(currAddr & pageMask)) writeFlashPage(); 303 | len -= 2; 304 | } 305 | if (currAddr & pageMask) writeFlashPage(); 306 | } 307 | endOfCommand(); 308 | } 309 | 310 | void stk500Programmer() 311 | { 312 | switch(readByte()) 313 | { 314 | case Cmnd_STK_GET_SYNC: 315 | endOfCommand(); 316 | break; 317 | 318 | case Cmnd_STK_GET_PARAMETER: 319 | getParameter(); 320 | break; 321 | 322 | case Cmnd_STK_SET_DEVICE: 323 | setDeviceParams(); 324 | break; 325 | 326 | case Cmnd_STK_SET_DEVICE_EXT: 327 | setDeviceExtParams(); 328 | break; 329 | 330 | case Cmnd_STK_ENTER_PROGMODE: 331 | HVSP_enable(); 332 | endOfCommand(); 333 | break; 334 | 335 | case Cmnd_STK_LEAVE_PROGMODE: 336 | HVSP_disable(); 337 | endOfCommand(); 338 | break; 339 | 340 | case Cmnd_STK_READ_SIGN: // prefered by arduino programmer 341 | if (endOfPacket()) 342 | { 343 | writeInSync(); 344 | for(uint8_t i = 0; i <3; i++) writeByte(readSignatureByte(i)); 345 | writeOK(); 346 | } 347 | break; 348 | 349 | case Cmnd_STK_UNIVERSAL: 350 | universalCommand(); 351 | break; 352 | 353 | case Cmnd_STK_LOAD_ADDRESS: // set flash/eeprom word address 354 | currAddr = readByte() | (readByte() << 8); 355 | endOfCommand(); 356 | break; 357 | 358 | case Cmnd_STK_READ_PAGE: 359 | readPage(); 360 | break; 361 | 362 | case Cmnd_STK_PROG_PAGE: 363 | writePage(); 364 | break; 365 | 366 | default: 367 | if(endOfPacket()) writeByte(Resp_STK_UNKNOWN); 368 | } 369 | } -------------------------------------------------------------------------------- /avr-hvsp-programmer/avr-hvsp-programmer.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************/ 2 | // AVR High Voltage Serial Programmer 1.01 by Mr.Blinky Mar-Apr.2020 CC0 Licence 3 | /****************************************************************************** 4 | 5 | Atmega32u4 beetle board wiring 6 | ------------------------------ 7 | 8 | SCI __________ 9 | SDO ________ | 10 | SII ______ | | 11 | SDI ____ | | | 12 | __|_|_|_|_______ 13 | | O O O O | 14 | BUTTON _|O |____ 15 | LED_GREEN _|O LED |_BUILTIN_LED 16 | VCC_LED _|O | 17 | _|O | 18 | WEAK_VCC _|O ____| 19 | VPP _|O | 20 | |__O_O_O_O_O_O_O_| 21 | 5V ____| | 22 | GND ______| 23 | 24 | connect SCI,SDO,SII and SDI to device with 470 Ohm resistors in series. 25 | 26 | connect BUTTON to momentary pushbutton and other end of button to GND 27 | 28 | connect cathode(-) of green LED to LED_GREEN pin 29 | connect 330 Ohm resistor to anode(+) of green LED pin 30 | connect other end 330 Ohm resistor to 5V 31 | 32 | connect cathode(-) of yellow LED to VCC_LED pin 33 | connect 330 Ohm resistor to anode(+) of yellow LED pin 34 | connect other end 330 Ohm resistor to 5V 35 | 36 | for low power device/circuit: 37 | ----------------------------- 38 | Connect WEAK_VCC directly to device VCC pin. 39 | 40 | for more demanding circuits: 41 | ---------------------------- 42 | leave WEAK_VCC unconnected and connect a P-channel MOSFET as following: 43 | Connect MOSFET Source to 5V, Connect MOSFET Drain to device VCC and 44 | connect MOSFET Gate to anode(+) of yellow LED. 45 | 46 | Connect VPP to enable input of 12V DC-DC converter module 47 | 48 | connect 1K resistor to 12V 49 | connect other end of 1K resistor to anode(+) of the red LED 50 | connect cathode(-) of the red LED to GND 51 | 52 | *******************************************************************************/ 53 | 54 | // version info 55 | constexpr uint8_t HARDWAREVERSION = 2; 56 | // 1: for basic prototype made of beetle board, 12V DC-DC converter module and weak vcc 57 | // 2: PCB version with added Vcc LED, Green LED and feature button 58 | // (P-channel MOSFET for more powerfull VCC is optional) 59 | 60 | constexpr uint8_t SOFTWAREVERSION_MAJOR = 1; 61 | constexpr uint8_t SOFTWAREVERSION_MINOR = 1; 62 | 63 | // pin configurations (Using direct IO instead of slow DigitalRead/Write and pinMode) 64 | 65 | #define HVSP_SCI_BIT 0 // 3/SCL output connected to SCI pin 66 | #define HVSP_SCI_PIN PIND 67 | #define HVSP_SCI_PORT PORTD 68 | #define HVSP_SCI_DDR DDRD 69 | 70 | #define HVSP_SDO_BIT 1 // 2/SDA input/output connected to Serial Data Output (SDO) pin 71 | #define HVSP_SDO_PIN PIND 72 | #define HVSP_SDO_PORT PORTD 73 | #define HVSP_SDO_DDR DDRD 74 | 75 | #define HVSP_SII_BIT 2 // RX output connect to Serial Instruction Input (SII) pin 76 | #define HVSP_SII_PIN PIND 77 | #define HVSP_SII_PORT PORTD 78 | #define HVSP_SII_DDR DDRD 79 | 80 | #define HVSP_SDI_BIT 3 // TX output connected to Serial Data Input (SDI) pin 81 | #define HVSP_SDI_PIN PIND 82 | #define HVSP_SDI_PORT PORTD 83 | #define HVSP_SDI_DDR DDRD 84 | 85 | #define BUTTON_BIT 7 // D11 Special function button: 86 | #define BUTTON_PIN PINB // short press: toggle VCC state 87 | #define BUTTON_PORT PORTB // long press: burn fuse settings and/or embedded hexfile 88 | #define BUTTON_DDR DDRB 89 | 90 | #define GREEN_LED_BIT 6 // D10 active low turns LED on. 91 | #define GREEN_LED_PIN PINB // Status LED to tell both VCC and VPP are disabled 92 | #define GREEN_LED_PORT PORTB 93 | #define GREEN_LED_DDR DDRB 94 | 95 | #define VCC_LED_BIT 5 // D9 active low turns LED on. 96 | #define VCC_LED_PIN PINB // Status LED to tell VCC_WEAK is enabled. 97 | #define VCC_LED_PORT PORTB // when a P-Channel MOSFET is used, it also powers on VCC 98 | #define VCC_LED_DDR DDRB 99 | 100 | #define VCC_BIT 6 // A1 active high turns weak VCC on. 101 | #define VCC_PIN PINF // this pin powers VCC directly when no MOSFET is used 102 | #define VCC_PORT PORTF 103 | #define VCC_DDR DDRF 104 | 105 | #define VPP_BIT 5 // A2 active low turns the 12V DC-DC converter on. 106 | #define VPP_PIN PINF // The RED VPP LED is powered by 12V 107 | #define VPP_PORT PORTF 108 | #define VPP_DDR DDRF 109 | 110 | #define BUILTIN_LED_BIT 7 // D13 Leonardo/Beetle board built in LED 111 | #define BUILTIN_LED_PIN PINC 112 | #define BUILTIN_LED_PORT PORTC 113 | #define BUILTIN_LED_DDR DDRC 114 | 115 | // pin configure macros 116 | #define HVSP_SCI_AS_INPUT (HVSP_SCI_DDR &= ~(1 << HVSP_SCI_BIT)) 117 | #define HVSP_SCI_AS_OUTPUT (HVSP_SCI_DDR |= (1 << HVSP_SCI_BIT)) 118 | 119 | #define HVSP_SDO_AS_INPUT (HVSP_SDO_DDR &= ~(1 << HVSP_SDO_BIT)) 120 | #define HVSP_SDO_AS_OUTPUT (HVSP_SDO_DDR |= (1 << HVSP_SDO_BIT)) 121 | #define HVSP_SDO_PULLUP_ON (HVSP_SDO_PORT |= (1 << HVSP_SDO_BIT)) 122 | #define HVSP_SDO_PULLUP_OFF (HVSP_SDO_PORT &= ~(1 << HVSP_SDO_BIT)) 123 | 124 | #define HVSP_SII_AS_INPUT (HVSP_SII_DDR &= ~(1 << HVSP_SII_BIT)) 125 | #define HVSP_SII_AS_OUTPUT (HVSP_SII_DDR |= (1 << HVSP_SII_BIT)) 126 | 127 | #define HVSP_SDI_AS_INPUT (HVSP_SDI_DDR &= ~(1 << HVSP_SDI_BIT)) 128 | #define HVSP_SDI_AS_OUTPUT (HVSP_SDI_DDR |= (1 << HVSP_SDI_BIT)) 129 | 130 | #define BUTTON_AS_INPUT (BUTTON_DDR &= ~(1 << BUTTON_BIT)) 131 | #define BUTTON_PULLUP_ON (BUTTON_PORT |= (1 << BUTTON_BIT)) 132 | #define GREEN_LED_AS_OUTPUT (GREEN_LED_DDR |= (1 << GREEN_LED_BIT)) 133 | #define VCC_LED_AS_OUTPUT (VCC_LED_DDR |= (1 << VCC_LED_BIT)) 134 | 135 | #define VCC_AS_INPUT (VCC_DDR &= ~(1 << VCC_BIT)) 136 | #define VCC_AS_OUTPUT (VCC_DDR |= (1 << VCC_BIT)) 137 | #define VPP_AS_OUTPUT (VPP_DDR |= (1 << VPP_BIT)) 138 | 139 | #define BUILTIN_LED_AS_OUTPUT (BUILTIN_LED_DDR |= (1 << BUILTIN_LED_BIT)) 140 | 141 | // pin state macros 142 | #define HVSP_SCI_LOW (HVSP_SCI_PORT &= ~(1 << HVSP_SCI_BIT)) 143 | #define HVSP_SCI_HIGH (HVSP_SCI_PORT |= (1 << HVSP_SCI_BIT)) 144 | #define HVSP_SDO_LOW (HVSP_SDO_PORT &= ~(1 << HVSP_SDO_BIT)) 145 | #define HVSP_SDO_HIGH (HVSP_SDO_PORT |= (1 << HVSP_SDO_BIT)) 146 | #define HVSP_SII_LOW (HVSP_SII_PORT &= ~(1 << HVSP_SII_BIT)) 147 | #define HVSP_SII_HIGH (HVSP_SII_PORT |= (1 << HVSP_SII_BIT)) 148 | #define HVSP_SDI_LOW (HVSP_SDI_PORT &= ~(1 << HVSP_SDI_BIT)) 149 | #define HVSP_SDI_HIGH (HVSP_SDI_PORT |= (1 << HVSP_SDI_BIT)) 150 | 151 | #define GREEN_LED_OFF (GREEN_LED_PORT |= (1 << GREEN_LED_BIT)) 152 | #define GREEN_LED_ON (GREEN_LED_PORT &= ~(1 << GREEN_LED_BIT)) 153 | #define VCC_LED_OFF (VCC_LED_PORT |= (1 << VCC_LED_BIT)) 154 | #define VCC_LED_ON (VCC_LED_PORT &= ~(1 << VCC_LED_BIT)) 155 | #define VCC_OFF (VCC_PORT &= ~(1 << VCC_BIT)) 156 | #define VCC_ON (VCC_PORT |= (1 << VCC_BIT)) 157 | #define VPP_OFF (VPP_PORT &= ~(1 << VPP_BIT)) 158 | #define VPP_ON (VPP_PORT |= (1 << VPP_BIT)) 159 | 160 | #define BUILTIN_LED_OFF (BUILTIN_LED_PORT &= ~(1 << BUILTIN_LED_BIT)) 161 | #define BUILTIN_LED_ON (BUILTIN_LED_PORT |= (1 << BUILTIN_LED_BIT)) 162 | 163 | // pin input macro 164 | #define HVSP_SDO_STATE (HVSP_SDO_PIN & (1 << HVSP_SDO_BIT)) 165 | 166 | // vars 167 | bool progMode; // programmer state 168 | bool keepVccOn; // Vcc state after ending programmer mode 169 | uint16_t currAddr; // current flash/EEPROM word address 170 | uint8_t flashPage; // flash page of current word address 171 | 172 | bool buttonState; 173 | bool buttonStateOld; 174 | uint16_t oldMillis; 175 | /*******************************************************************************/ 176 | // low level hardware functions 177 | /*******************************************************************************/ 178 | 179 | void vccDown() 180 | { 181 | VCC_AS_INPUT; 182 | VCC_OFF; 183 | VCC_LED_AS_OUTPUT; 184 | VCC_LED_OFF; 185 | GREEN_LED_AS_OUTPUT; 186 | GREEN_LED_ON; 187 | } 188 | 189 | void vccUp() 190 | { 191 | VCC_AS_OUTPUT; 192 | VCC_ON; 193 | VCC_LED_AS_OUTPUT; 194 | VCC_LED_ON; 195 | GREEN_LED_AS_OUTPUT; 196 | GREEN_LED_OFF; 197 | } 198 | 199 | void HVSP_init() 200 | { 201 | BUTTON_AS_INPUT; 202 | BUTTON_PULLUP_ON; 203 | VPP_AS_OUTPUT; 204 | VPP_OFF; 205 | HVSP_disable(); 206 | vccDown(); 207 | } 208 | 209 | void HVSP_enable() 210 | { 211 | if (progMode) return; //already in programming mode 212 | 213 | if (keepVccOn) // Vcc must be off to successfully enter programming mode 214 | { 215 | VPP_ON; // trigger a device reset to wake possible sleeping devices 216 | delay(25); 217 | VPP_OFF; 218 | delay(25); 219 | vccDown(); 220 | delay(250); // wait for Vcc to go down. 221 | } 222 | HVSP_SCI_AS_OUTPUT; 223 | HVSP_SCI_LOW; 224 | // set Prog_enable pins to '000' 225 | HVSP_SDO_AS_OUTPUT; 226 | HVSP_SDO_LOW; 227 | HVSP_SII_AS_OUTPUT; 228 | HVSP_SII_LOW; 229 | HVSP_SDI_AS_OUTPUT; 230 | HVSP_SDI_LOW; 231 | // Enter High-voltage Serial programming mode 232 | vccUp(); 233 | delayMicroseconds(20); 234 | VPP_ON; 235 | delayMicroseconds(10); 236 | // release Prog_enable[2] pin 237 | HVSP_SDO_AS_INPUT; 238 | HVSP_SDO_PULLUP_ON; 239 | delayMicroseconds(300); 240 | progMode = true; 241 | buttonState = false; 242 | } 243 | 244 | void HVSP_disable() 245 | { 246 | if (progMode) while (!HVSP_SDO_STATE); // wait for pending command to finish 247 | VPP_OFF; 248 | HVSP_SDI_AS_INPUT; 249 | HVSP_SDI_LOW; 250 | HVSP_SII_AS_INPUT; 251 | HVSP_SII_LOW; 252 | HVSP_SCI_AS_INPUT; 253 | HVSP_SCI_LOW; 254 | HVSP_SDO_PULLUP_OFF; 255 | if (!keepVccOn) vccDown(); // Vcc can be optionally kept on for in circuit development 256 | progMode = false; 257 | } 258 | 259 | void clockPulse() 260 | { 261 | delayMicroseconds(8); // longer idle time here allowing previously set data to stabelize 262 | HVSP_SCI_HIGH; // rising edge clocks data in and out 263 | delayMicroseconds(2); 264 | HVSP_SCI_LOW; 265 | } 266 | 267 | uint8_t transfer(uint8_t data, uint8_t cmd) 268 | { 269 | uint8_t result = 0; 270 | while (!HVSP_SDO_STATE); // wait for chip ready 271 | // start bits 272 | HVSP_SDI_LOW; 273 | HVSP_SII_LOW; 274 | clockPulse(); 275 | // 8-bit shifter 276 | for (uint8_t mask = 128; mask != 0; mask >>= 1) 277 | { 278 | HVSP_SDI_LOW; 279 | if (data & mask) HVSP_SDI_HIGH; 280 | HVSP_SII_LOW; 281 | if (cmd & mask) HVSP_SII_HIGH; 282 | if (HVSP_SDO_STATE) result |= mask; 283 | clockPulse(); 284 | } 285 | // double stop bits 286 | HVSP_SDI_LOW; 287 | HVSP_SII_LOW; 288 | clockPulse(); 289 | clockPulse(); 290 | return result; 291 | } 292 | 293 | /*******************************************************************************/ 294 | // HVSP device commands 295 | /*******************************************************************************/ 296 | 297 | uint8_t readSignatureByte(uint8_t idx) 298 | { 299 | transfer(0x08, 0x4C); 300 | transfer(idx, 0x0C); 301 | transfer(0x00, 0x68); 302 | return transfer(0x00, 0x6c); 303 | } 304 | 305 | void chipErase() 306 | { 307 | transfer(0x80, 0x4C); 308 | transfer(0x00, 0x64); 309 | transfer(0x00, 0x6C); 310 | } 311 | 312 | void readFlashMode() 313 | { 314 | transfer(0x02, 0x4C); 315 | } 316 | 317 | uint8_t readFlashLowByte() 318 | { 319 | transfer(currAddr, 0x0C); 320 | transfer(currAddr >> 8, 0x1C); 321 | transfer(0x00, 0x68); 322 | return transfer(0x00, 0x6C); 323 | } 324 | 325 | uint8_t readFlashHighByte() 326 | { 327 | transfer(0x00, 0x6C); 328 | transfer(0x00, 0x78); 329 | uint8_t result = transfer(0x00, 0x7C); 330 | transfer(0x00, 0x7C); 331 | return result; 332 | } 333 | 334 | void writeFlashMode() 335 | { 336 | transfer(0x10, 0x4C); 337 | } 338 | 339 | void loadFlashPageLowByte(uint8_t b) 340 | { 341 | flashPage = currAddr >> 8; 342 | transfer(currAddr & 0xFF, 0x0C); 343 | transfer(b, 0x2C); 344 | } 345 | 346 | void loadFlashPageHighByte(uint8_t b) 347 | { 348 | transfer(b, 0x3C); 349 | transfer(0x00, 0x7D); 350 | transfer(0x00, 0x7C); 351 | } 352 | 353 | void writeFlashPage() 354 | { 355 | transfer(flashPage, 0x1C); 356 | transfer(0x00, 0x64); 357 | transfer(0x00, 0x6C); 358 | } 359 | 360 | void readEepromMode() 361 | { 362 | transfer(0x03, 0x4C); 363 | } 364 | 365 | uint8_t readEepromByte() 366 | { 367 | return readFlashLowByte(); 368 | } 369 | 370 | void writeEepromMode() 371 | { 372 | transfer(0x11, 0x4C); 373 | } 374 | 375 | // EEPROM can be programmed faster by loading a page and then programming it 376 | 377 | void loadEepromPage(uint8_t b) 378 | { 379 | transfer(currAddr, 0x0C); 380 | transfer(currAddr >> 8, 0x1C); 381 | transfer(b, 0x2C); 382 | transfer(0x00, 0x6D); 383 | transfer(0x00, 0x6C); 384 | } 385 | 386 | void writeEepromPage() 387 | { 388 | transfer(0x00, 0x64); 389 | transfer(0x00, 0x6C); 390 | } 391 | 392 | // program a single byte directly to EEPROM 393 | 394 | void writeEepromByte(uint8_t b) 395 | { 396 | transfer(currAddr, 0x0C); 397 | transfer(currAddr >> 8, 0x1C); 398 | transfer(b, 0x2C); 399 | transfer(0x00, 0x6D); 400 | transfer(0x00, 0x64); 401 | transfer(0x00, 0x6C); 402 | } 403 | 404 | uint8_t readLowFuse() 405 | { 406 | transfer(0x04, 0x4C); 407 | transfer(0x00, 0x68); 408 | return transfer(0x00, 0x6C); 409 | } 410 | void writeLowFuse(uint8_t fuse) 411 | { 412 | transfer(0x40, 0x4C); 413 | transfer(fuse, 0x2C); 414 | transfer(0x00, 0x64); 415 | transfer(0x00, 0x6C); 416 | } 417 | 418 | uint8_t readHighFuse() 419 | { 420 | transfer(0x04, 0x4C); 421 | transfer(0x00, 0x7A); 422 | return transfer(0x00, 0x7E); 423 | } 424 | 425 | void writeHighFuse(uint8_t fuse) 426 | { 427 | transfer(0x40, 0x4C); 428 | transfer(fuse, 0x2C); 429 | transfer(0x00, 0x74); 430 | transfer(0x00, 0x7C); 431 | } 432 | 433 | uint8_t readExtFuse() 434 | { 435 | transfer(0x04, 0x4C); 436 | transfer(0x00, 0x6A); 437 | return transfer(0x00, 0x6E); 438 | } 439 | 440 | void writeExtFuse(uint8_t fuse) 441 | { 442 | transfer(0x40, 0x4C); 443 | transfer(fuse, 0x2C); 444 | transfer(0x00, 0x66); 445 | transfer(0x00, 0x6e); 446 | } 447 | 448 | uint8_t readLockBits() 449 | { 450 | transfer(0x04, 0x4C); 451 | transfer(0x00, 0x78); 452 | return transfer(0x00, 0x7C); 453 | } 454 | 455 | void writeLockBits(uint8_t fuse) 456 | { 457 | transfer(0x20, 0x4C); 458 | transfer(fuse, 0x2C); 459 | transfer(0x00, 0x64); 460 | transfer(0x00, 0x6c); 461 | } 462 | 463 | /******************************************************************************/ 464 | // Arduino main functions 465 | /******************************************************************************/ 466 | 467 | void setup() 468 | { 469 | HVSP_init(); 470 | Serial.begin(115200); 471 | } 472 | 473 | void loop() 474 | { 475 | // serial handled by programmer 476 | if (Serial.available() > 0) 477 | { 478 | BUILTIN_LED_ON; 479 | stk500Programmer(); 480 | BUILTIN_LED_OFF; 481 | } 482 | // button feature only available when not in programming mode 483 | if (!progMode) 484 | { 485 | buttonStateOld = buttonState; 486 | buttonState = !(BUTTON_PIN & (1 << BUTTON_BIT)); 487 | if ((!buttonStateOld) && buttonState) //just pressed 488 | oldMillis = (uint16_t) millis(); 489 | if (buttonStateOld && (!buttonState)) //just released 490 | { 491 | uint16_t duration; 492 | uint16_t now = (uint16_t) millis(); 493 | if (now > oldMillis) duration = now - oldMillis; 494 | else duration = oldMillis - now; 495 | if (duration > 20) // debounce time 496 | { 497 | if (duration < 500) //short press: toggle Vcc 498 | { 499 | keepVccOn = !keepVccOn; 500 | if (keepVccOn) vccUp(); 501 | else vccDown(); 502 | } 503 | else //long press : Set factory defaults 504 | { 505 | //TO DO 506 | } 507 | } 508 | } 509 | } 510 | } 511 | -------------------------------------------------------------------------------- /avr-hvsp-programmer/avr-hvsp-programmer.hex: -------------------------------------------------------------------------------- 1 | :100000000C9492000C94BA000C94BA000C94BA00B0 2 | :100010000C94BA000C94BA000C94BA000C94BA0078 3 | :100020000C94BA000C94BA000C94F3030C94620480 4 | :100030000C94BA000C94BA000C94BA000C94BA0058 5 | :100040000C94BA000C94BA000C94BA000C94BA0048 6 | :100050000C94BA000C94BA000C94BA000C94940658 7 | :100060000C94BA000C94BA000C94BA000C94BA0028 8 | :100070000C94BA000C94BA000C94BA000C94BA0018 9 | :100080000C94BA000C94BA000C94BA000C94BA0008 10 | :100090000C94BA000C94BA000C94BA000C94BA00F8 11 | :1000A0000C94BA000C94BA000C94BA00080B00022D 12 | :1000B0000202000009040000010202000005240001 13 | :1000C0001001052401010104240206052406000193 14 | :1000D0000705810310004009040100020A00000026 15 | :1000E00007050202400000070583024000000403E8 16 | :1000F000090412010002EF02014041233680000191 17 | :100100000102030141726475696E6F204C4C43001B 18 | :1001100041726475696E6F204C656F6E6172646FB9 19 | :1001200000006C0A11241FBECFEFDAE0DEBFCDBFA6 20 | :1001300011E0A0E0B1E0E2E1F5E102C005900D922E 21 | :10014000A632B107D9F721E0A6E2B1E001C01D92C5 22 | :10015000A33BB207E1F710E0C2E9D0E004C0219769 23 | :10016000FE010E94810AC139D107C9F70E94DE064B 24 | :100170000C94870A0C940000FC018091B201882342 25 | :1001800011F13FB7F89482E08093E9002091F200EA 26 | :10019000822F90E01816190614F481E090E088236D 27 | :1001A00039F0289844E64093B1014091F100408332 28 | :1001B000222339F02091F200211103C02BE6209375 29 | :1001C000E8003FBF08958FEF9FEF08952FB7F89491 30 | :1001D00083E08093E9009091E800892F807295FF79 31 | :1001E00004C09091F20080E4891B2FBF0895809194 32 | :1001F000A90181110DC082E08093A50184E0809364 33 | :10020000A6011092A8011092A70181E08093A90194 34 | :1002100085EA91E0089540912D0150912E012091A1 35 | :100220002B0130912C0142175307B4F49091E80050 36 | :100230009570E1F39091E80092FD19C08093F10070 37 | :1002400080912D0190912E0101968F739927892B12 38 | :1002500019F48EEF8093E80080912D0190912E018A 39 | :10026000019690932E0180932D0181E0089580E006 40 | :100270000895EF92FF920F931F93CF93DF93F82E81 41 | :10028000192FE62E042F81E0860F880F0E940B01A4 42 | :1002900083E00E940B01CF2DD12FEC0EFD2EF11C1F 43 | :1002A000CE15DF05B9F007FF13C0FE0184910E944F 44 | :1002B0000B01182F80E00E940B01812321968111F0 45 | :1002C000EFCFDF91CF911F910F91FF90EF900895A5 46 | :1002D0008881EDCF81E0F5CFDF92EF92FF920F930F 47 | :1002E0001F93CF93DF93D82E8A01EB017B01E40E9D 48 | :1002F000F51ECE15DF0559F0D7FE12C0FE01849120 49 | :100300000E940B0121968111F4CF0FEF1FEFC8015E 50 | :10031000DF91CF911F910F91FF90EF90DF900895A3 51 | :100320008881EECF0F931F93CF93DF931F92CDB7AA 52 | :10033000DEB782E0898342E450E06CEA70E080E856 53 | :100340000E946C010E94F700DC0112960D911C9135 54 | :100350000115110589F0D801ED91FC910280F3811E 55 | :10036000E02DBE016F5F7F4FC801099597FD04C066 56 | :10037000F80100851185ECCF89810F90DF91CF9135 57 | :100380001F910F910895615030F02091F100FC0110 58 | :1003900020830196F8CF289884E68093B1010895D0 59 | :1003A000CF93DF931F92CDB7DEB76983DC01ED9168 60 | :1003B000FC910280F381E02D41E050E0BE016F5FCF 61 | :1003C0007F4F09950F90DF91CF91089583E080933F 62 | :1003D000E9008091F200882319F08AE38093E80015 63 | :1003E00008950E94E60090E00895CF93DF931F9256 64 | :1003F000CDB7DEB7FC018485958597FD08C02FEF4A 65 | :100400003FEF358724870F90DF91CF910895CE017C 66 | :1004100001960E94BC00019719F4898190E0F3CF06 67 | :100420008FEF9FEFF0CF0F931F93CF93DF931F9228 68 | :10043000CDB7DEB78C01FC018485958597FF0BC095 69 | :10044000CE0101960E94BC00019771F4898190E071 70 | :10045000F80195878487F801848595850F90DF9151 71 | :10046000CF911F910F9108958FEF9FEFF1CFFC0176 72 | :100470008485958597FD0BC09FB7F89482E08093A3 73 | :10048000E9008091F2009FBF90E0019608959FB728 74 | :10049000F89482E08093E9008091F2009FBF90E0A1 75 | :1004A00008953FB7F8948091270190912801A09179 76 | :1004B0002901B0912A0126B5A89B05C02F3F19F04C 77 | :1004C0000196A11DB11D3FBFBA2FA92F982F8827D4 78 | :1004D000BC01CD01620F711D811D911D42E0660FAF 79 | :1004E000771F881F991F4A95D1F708958F929F9281 80 | :1004F000AF92BF92CF92DF92EF92FF924B015C01DD 81 | :100500000E9451026B017C010E9451026C197D090D 82 | :100510008E099F09683E734081059105A8F321E08B 83 | :10052000821A9108A108B10888EEC80E83E0D81E8F 84 | :10053000E11CF11C81149104A104B10429F7FF907E 85 | :10054000EF90DF90CF90BF90AF909F908F900895E5 86 | :100550008F929F92AF92BF92CF92DF92EF92FF92D3 87 | :100560000F931F93CF93DF936C017B018A018091DE 88 | :100570000B01882309F45CC08091B201882309F43F 89 | :1005800057C08091310180FF05C08091E0008260FA 90 | :100590008093E000E801B12C8AEFA82E93E0892E29 91 | :1005A0002AE3922E209711F4BB20D9F10E94E60095 92 | :1005B00081110AC0AA94AA20D9F161E070E080E01C 93 | :1005C00090E00E947602EECF8C171D0611F00CF021 94 | :1005D0008C2F9FB7F8948092E9002091E80025FDC8 95 | :1005E00002C09FBFDFCF282F30E0C21BD30BF70123 96 | :1005F000815020F041914093F100FACFE20EF31EBA 97 | :10060000BB2021F09092E800B12CEBCF8091E80064 98 | :1006100085FDE7CF9092E800BB24B394209709F3BF 99 | :10062000F3CF5D9884E680933001101611063CF0FC 100 | :1006300081E090E0F6019383828310E000E0C8013E 101 | :10064000DF91CF911F910F91FF90EF90DF90CF90AE 102 | :10065000BF90AF909F908F900895682F85E591E0AF 103 | :100660000C94D00185E591E00E9437021816190616 104 | :10067000CCF785E591E00E94F50108950E943203D0 105 | :10068000803229F085E10E942D0380E0089581E009 106 | :1006900008950E943E03882331F084E10E942D03D7 107 | :1006A00080E10C942D0308958BE190E00197F1F720 108 | :1006B000589A83E090E00197F1F758980895EF92E7 109 | :1006C000FF920F931F93CF93DF93F82EE62E499B53 110 | :1006D000FECF5B985A980E94540308E010E0C0E8EF 111 | :1006E000D0E05B988F2D8C2309F05B9A5A988E2D61 112 | :1006F0008C2309F05A9A4999DC2B0E945403C69521 113 | :100700000150110971F75B985A980E9454030E9496 114 | :1007100054038D2FDF91CF911F910F91FF90EF9098 115 | :10072000089564E680E00E945F036CE680E00C942C 116 | :100730005F036CE1809133010E945F0364E680E017 117 | :100740000E945F036CE680E00C945F03CF93C0913E 118 | :100750004A016CE0809149010E945F036CE18C2F9B 119 | :100760000E945F0368E680E00E945F036CE680E021 120 | :10077000CF910C945F03CF93C82F6CE488E00E9464 121 | :100780005F036CE08C2F0E945F0368E680E00E94AC 122 | :100790005F036CE680E0CF910C945F03869A8E9A9B 123 | :1007A000259A2D98269A2E9A089586988E98259A9D 124 | :1007B0002D9A269A2E98089580915401882311F03D 125 | :1007C000499BFECF8D9853985B9852985A985098B1 126 | :1007D0005898599880914F01811102C00E94D50309 127 | :1007E0001092540108951F920F920FB60F92112488 128 | :1007F0008F939F938091E1009091E100937F90937C 129 | :10080000E10083FF0FC01092E90091E09093EB00AC 130 | :100810001092EC0092E39093ED001092B20198E0F8 131 | :100820009093F00082FF22C093E09093E9009091B2 132 | :10083000F200992319F09AE39093E8009091300127 133 | :10084000992341F090913001915090933001911192 134 | :1008500001C05D9A9091B101992341F09091B1014D 135 | :1008600091509093B101911101C0289A84FF18C052 136 | :100870008091E2008E7E81608093E2008091E100B1 137 | :100880008F7E8093E100809131018E7E8061809324 138 | :1008900031019F918F910F900FBE0F901F9018956F 139 | :1008A00080FFF7CF8091E2008E7E80618093E2002E 140 | :1008B0008091E1008E7E8093E100809131018E7EF7 141 | :1008C0008160E5CF1F920F920FB60F921124CF9245 142 | :1008D000DF92EF92FF920F931F932F933F934F93CB 143 | :1008E0005F936F937F938F939F93AF93BF93EF9398 144 | :1008F000FF93CF93DF93CDB7DEB76C97DEBFCDBF4D 145 | :100900001092E9008091E80083FF25C068E0CE01E5 146 | :1009100045960E94C30182EF8093E8008D8987FF8E 147 | :1009200039C09091E80090FFFCCF982F907609F0A5 148 | :1009300034C19E894F89588D2F89F88C911131C00F 149 | :10094000803861F5809132018093F1001092F100BE 150 | :100950008EEF8093E8006C960FB6F894DEBF0FBE62 151 | :10096000CDBFDF91CF91FF91EF91BF91AF919F915B 152 | :100970008F917F916F915F914F913F912F911F9137 153 | :100980000F91FF90EF90DF90CF900F900FBE0F90E0 154 | :100990001F9018959EEF9093E800C7CF1092F1003A 155 | :1009A000D5CF913059F48111D3CF4130510581F623 156 | :1009B000809132018D7F80933201CACF933049F408 157 | :1009C0008111C6CF4130510519F680913201826004 158 | :1009D000F2CF953041F48091E80080FFFCCF206891 159 | :1009E0002093E300B5CF963009F0A9C00B8D1C8D84 160 | :1009F00022E01092E90010922E0110922D01F212C5 161 | :100A00002EC010922C0110922B010E9492011F8285 162 | :100A100099E09983FA8291E09E8390EA98879AEF11 163 | :100A2000998720912D0130912E01275F3F4F3C8304 164 | :100A30002B838D831092E90010922E0110922D01CC 165 | :100A400010932C0100932B0149E050E0BE016F5F31 166 | :100A50007F4F80E00E946C010E94920179CF109339 167 | :100A60002C0100932B010E94F700DC0112960D91DE 168 | :100A70001C910115110509F451C1D801ED91FC91AA 169 | :100A80000480F581E02DBE016B5E7F4FC8010995A2 170 | :100A9000009709F03EC1F80100851185EACFF3E027 171 | :100AA000FF120EC08F89882309F440C0823061F4A0 172 | :100AB00040E860E180E191E00E943901811148CF76 173 | :100AC00081E28093EB0047CF813029F440E86BE06E 174 | :100AD00084E091E0F1CF833099F70E94F700DC01C8 175 | :100AE0001296ED90FC908E010F5F1F4F6801E1148C 176 | :100AF000F10479F0D701ED91FC910680F781E02DAA 177 | :100B0000B801C7010995080F111DF701E084F184B0 178 | :100B1000EECFD8011C92F60101900020E9F7319741 179 | :100B2000BF016C197D0940E0C601C6CF6EEE70E0D2 180 | :100B3000FB01449150E080E80E946C0109CF97309E 181 | :100B400009F4BECF983021F481E08093F10000CF0A 182 | :100B5000993009F0FDCE837009F0B2CFEFE1F1E0FA 183 | :100B600081E031E096E32191222371F08093E90046 184 | :100B70003093EB00DF0111972C912093EC009093C0 185 | :100B8000ED008F5F873079F78EE78093EA0010924F 186 | :100B9000EA008F898093B201DBCE8B8D9C8D109201 187 | :100BA000E90010922E0110922D0190932C01809358 188 | :100BB0002B01898D811192C08E899D89913A49F4CA 189 | :100BC000813209F07DCF47E050E064E071E080E0E1 190 | :100BD000B3CF913209F074CF833269F48F89988D45 191 | :100BE000B0E0A0E08093000190930101A093020186 192 | :100BF000B0930301ADCE803269F48091E80082FFAA 193 | :100C0000FCCF67E084E091E00E94C3018BEF80930A 194 | :100C1000E8009ECE823209F09BCE8F8980930B0133 195 | :100C2000EEEFFFE7859194918B3F9C4D51F1E0E011 196 | :100C3000F8E08091040190910501A0910601B09126 197 | :100C40000701803B9440A105B105F1F480910B01AF 198 | :100C500080FD1AC0EE3F8AE0F80789F587E797E73D 199 | :100C6000918380838091600080932F0188E19BE0D5 200 | :100C70000FB6F894A895809360000FBE9093600023 201 | :100C800067CEEEEFFAE0D5CF808191818737974725 202 | :100C900009F05ECEA8958091600088618093600025 203 | :100CA00080912F0180936000EE3F2AE0F20789F0E7 204 | :100CB0008091FE0A9091FF0A9183808349CE8081C2 205 | :100CC00091818737980751F29093FF0A8093FE0A2B 206 | :100CD000C5CF1092FF0A1092FE0A3ACE0E94F7008A 207 | :100CE000DC0112960D911C910115110509F4E8CE55 208 | :100CF000D801ED91FC910190F081E02DBE016B5E79 209 | :100D00007F4FC8010995811123CEF8010085118517 210 | :100D1000EBCF181619060CF41BCED2CEF1E0FF1261 211 | :100D2000BECE62EF70E004CF1F920F920FB60F920B 212 | :100D300011242F933F938F939F93AF93BF938091F1 213 | :100D40004B0190914C01A0914D01B0914E01309119 214 | :100D5000260123E0230F2D3758F50196A11DB11D63 215 | :100D60002093260180934B0190934C01A0934D0159 216 | :100D7000B0934E018091270190912801A091290103 217 | :100D8000B0912A010196A11DB11D80932701909376 218 | :100D90002801A0932901B0932A01BF91AF919F919F 219 | :100DA0008F913F912F910F900FBE0F901F9018952C 220 | :100DB00026E8230F0296A11DB11DD2CF789484B5E9 221 | :100DC000826084BD84B5816084BD85B5826085BD47 222 | :100DD00085B5816085BD80916E00816080936E00D5 223 | :100DE00010928100809181008260809381008091C7 224 | :100DF0008100816080938100809180008160809378 225 | :100E00008000809191008260809391008091910098 226 | :100E10008160809391008091900081608093900028 227 | :100E20008091C10084608093C1008091C100826084 228 | :100E30008093C1008091C10081608093C100809146 229 | :100E4000C30081608093C3008091C0008260809362 230 | :100E5000C0008091C20081608093C20080917A00BE 231 | :100E6000846080937A0080917A00826080937A0017 232 | :100E700080917A00816080937A0080917A00806806 233 | :100E800080937A001092B2011092320110923101D7 234 | :100E90008091D70081608093D70080EA8093D8004A 235 | :100EA00089B5806189BD89B5826089BD09B400FEBC 236 | :100EB000FDCF61E070E080E090E00E9476028091DA 237 | :100EC000D8008F7C80618093D8008091E000807F83 238 | :100ED0008093E0008091E1008E7E8093E1008DE0C0 239 | :100EE0008093E200559A209A27982F9A859A8D9898 240 | :100EF0000E94DC030E94D5038FEF9FEF9093620165 241 | :100F0000809361017BE4872E912CE3E2EE2EF12C9D 242 | :100F1000FBEACF2EF4E0DF2E55245394A0E06A2E96 243 | :100F2000A0E07A2E4424439485E591E00E943702A4 244 | :100F3000181619060CF0C7C0479A0E943203813573 245 | :100F400009F425C108F04FC0823409F4AFC068F439 246 | :100F5000803309F4B5C0813409F493C00E943E0384 247 | :100F6000882309F4AFC082E189C0853409F400C147 248 | :100F70008035A1F7809154018111A2C080914F0169 249 | :100F80008823B1F08D9A69E170E080E090E00E94E2 250 | :100F900076028D9869E170E080E090E00E94760230 251 | :100FA0000E94D5036AEF70E080E090E00E94760234 252 | :100FB000509A5898519A5998529A5A98539A5B98BD 253 | :100FC0000E94CE03C4010197F1F78D9AC7010197E2 254 | :100FD000F1F75198599AC6010197F1F740925401DF 255 | :100FE000109253016DC0843609F4CAC180F585356D 256 | :100FF00009F453C1863509F0B1CF0E943203C82FDE 257 | :101000000E943203082F0E943203182F0E943203DD 258 | :10101000D82F0E943E03882309F454C084E10E9423 259 | :101020002D039C2F802F883038E5930709F402C1E7 260 | :1010300008F0C3C0811550E5950709F4E4C008F035 261 | :10104000A9C08115904309F4D9C08D2F2CC08437D5 262 | :1010500009F42FC1853709F081CF0E943E03882310 263 | :1010600089F184E10E942D03C0E08C2F0E94BB0314 264 | :101070000E942D03CF5FC330C1F780E10E942D0392 265 | :1010800021C00E943203C2E0803829F08158C1E0BB 266 | :10109000823008F0C0E00E943E03882399F084E18A 267 | :1010A0000E942D038C2F0E942D03E7CFC4E3D1E0D3 268 | :1010B0000E9432038883649622E0C43CD207C1F7C1 269 | :1010C0000E94490347988091540181114AC02091A0 270 | :1010D00053012093520193B1892F8095881F88274F 271 | :1010E000881F80935301211111C097FD0FC02FB7A6 272 | :1010F000F89480914B0190914C01A0914D01B091D9 273 | :101100004E012FBF90935101809350018091520165 274 | :10111000882339F180915301811123C02FB7F894AE 275 | :1011200080914B0190914C01A0914D01B0914E01E5 276 | :101130002FBF20915001309151012817390708F035 277 | :10114000C3C1821B930B45978F3D914050F4809112 278 | :101150004F01852580934F01882309F4BAC10E946D 279 | :10116000CE036114710409F4DFCE0E940000DCCECE 280 | :101170000E943203D82F0E94320380934801C2E0BC 281 | :10118000CD1708F09DCF0E943203CF5FF9CF0E94A8 282 | :10119000DC0396CF883040E5940709F441C08115FF 283 | :1011A000984509F052CF6CE484E00E945F0368E741 284 | :1011B00080E00E945F036CE72FC0843A2CEA92071C 285 | :1011C00009F44CC078F480384CEA9407E9F1803A8D 286 | :1011D0009C4A09F03ACF6CE480E40E945F036CE221 287 | :1011E0008D2F34C0883A2CEA920709F448C0803E1B 288 | :1011F0009C4A09F02ACF6CE480E2EFCF812F0E9455 289 | :10120000BB03D82F22CF6CE484E00E945F0368E622 290 | :1012100080E00E945F036CE680E00E945F03F1CFF4 291 | :101220006CE484E00E945F036AE680E00E945F0352 292 | :101230006EE6F2CF6CE484E00E945F036AE780E030 293 | :101240000E945F036EE7E8CF6CE480E80E945F03D2 294 | :1012500064E680E00E945F036CE60DC06CE480E40D 295 | :101260000E945F036CE28D2F0E945F0366E680E0C0 296 | :101270000E945F036EE680E00E945F03E6CE6CE4AE 297 | :1012800080E40E945F036CE28D2F0E945F0364E79D 298 | :1012900080E00E945F036CE7EECF0E943203C82F0C 299 | :1012A0000E943203982F8C2F90934A01809349011A 300 | :1012B00007CF0E943203D82F0E943203C82F0E940A 301 | :1012C0003203182F0E943E03882309F4FBCE84E1E9 302 | :1012D0000E942D036CE4153421F583E00E945F0326 303 | :1012E0008091490190914A01880F991F90934A017A 304 | :1012F00080934901219750F00E94A6030E942D037C 305 | :101300008091490190914A010196F0CF8091490165 306 | :1013100090914A019695879590934A01809349014F 307 | :10132000ACCE82E00E945F03209709F4A6CE0E9413 308 | :10133000A6030E942D03C130D105F9F06CE680E0D0 309 | :101340000E945F0368E780E00E945F036CE780E033 310 | :101350000E945F03182F6CE780E00E945F03812FDB 311 | :101360000E942D0322978091490190914A01019694 312 | :1013700090934A0180934901D7CFD0E0C0E0F3CFEA 313 | :101380000E943203082F0E943203102F082F0E9460 314 | :101390003203853409F04DC0C0914901D0914A0112 315 | :1013A0006CE481E10E945F0380914801282F215065 316 | :1013B000330B5901CC0FDD1FD0934A01C093490173 317 | :1013C00001501109C0914901D0914A010F3F100706 318 | :1013D00019F10E943203382E6CE08C2F0E945F03BB 319 | :1013E0006CE18D2F0E945F036CE2832D0E945F03EE 320 | :1013F0006DE680E00E945F036CE680E00E945F0380 321 | :101400002196D0934A01C0934901CA21DB21CD2BFB 322 | :10141000B9F60E949103D4CFAC22BD22AB2811F0C3 323 | :101420000E949103D695C795D0934A01C093490174 324 | :1014300047CE6CE480E10E945F03C091400140E828 325 | :10144000C49FE00111248091410190E0959587951A 326 | :10145000C82BD92B2197A0904901B0904A010115C2 327 | :10146000110551F10E943203382EB09233016CE025 328 | :101470008A2D0E945F036CE2832D0E945F030E940D 329 | :1014800032036CE30E945F036DE780E00E945F031C 330 | :101490006CE780E00E945F035FEFA51AB50AB09287 331 | :1014A0004A01A0924901AC22BD22AB2811F40E944E 332 | :1014B000990302501109CFCFCA21DB21CD2B09F4AA 333 | :1014C000FFCD0E949903FCCDA901481B590BCA010D 334 | :1014D0003ACE0E94D50345CEE5E5F1E013821282B3 335 | :1014E00088EE93E0A0E0B0E084839583A683B78381 336 | :1014F00080E191E0918380838FEF9FEF95878487D0 337 | :101500000895EE0FFF1F0590F491E02D0994F894D3 338 | :02151000FFCF0B 339 | :10151200FFFFFFFF00E100000000000000000000EC 340 | :10152200D001A802F101E6013702F501130200C160 341 | :06153200808100000000B2 342 | :00000001FF 343 | -------------------------------------------------------------------------------- /eagle-pcb/avr-hvsp-programmer.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | SDI 146 | SII 147 | SDO 148 | SCI 149 | VPP 150 | GND 151 | VCC 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | Mr.Blinky 574 | 2020 575 | AVR-HVSP 1.1 576 | + 577 | + 578 | + 579 | 580 | RED 581 | YEL 582 | GRN 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | <b>IC Packages an Sockets</b><p> 592 | <author>Created by librarian@cadsoft.de</author> 593 | 594 | 595 | <b>Dual In Line Socket</b> 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | >VALUE 617 | >NAME 618 | 619 | 620 | 621 | 622 | <b>Resistors, Capacitors, Inductors</b><p> 623 | Based on the previous libraries: 624 | <ul> 625 | <li>r.lbr 626 | <li>cap.lbr 627 | <li>cap-fe.lbr 628 | <li>captant.lbr 629 | <li>polcap.lbr 630 | <li>ipc-smd.lbr 631 | </ul> 632 | All SMD packages are defined according to the IPC specifications and CECC<p> 633 | <author>Created by librarian@cadsoft.de</author><p> 634 | <p> 635 | for Electrolyt Capacitors see also :<p> 636 | www.bccomponents.com <p> 637 | www.panasonic.com<p> 638 | www.kemet.com<p> 639 | http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> 640 | <p> 641 | for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> 642 | 643 | <table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> 644 | <tr valign="top"> 645 | 646 | <! <td width="10">&nbsp;</td> 647 | <td width="90%"> 648 | 649 | <b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> 650 | <P> 651 | <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> 652 | <TR> 653 | <TD COLSPAN=8> 654 | <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> 655 | </TD> 656 | </TR> 657 | <TR> 658 | <TD ALIGN=CENTER> 659 | <B> 660 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> 661 | </B> 662 | </TD> 663 | <TD ALIGN=CENTER> 664 | <B> 665 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> 666 | </B> 667 | </TD> 668 | <TD ALIGN=CENTER> 669 | <B> 670 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> 671 | </B> 672 | </TD> 673 | <TD ALIGN=CENTER> 674 | <B> 675 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> 676 | </B> 677 | </TD> 678 | <TD ALIGN=CENTER> 679 | <B> 680 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> 681 | </B> 682 | </TD> 683 | <TD ALIGN=CENTER> 684 | <B> 685 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> 686 | </B> 687 | </TD> 688 | <TD ALIGN=CENTER> 689 | <B> 690 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> 691 | </B> 692 | </TD> 693 | <TD ALIGN=CENTER> 694 | <B> 695 | <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> 696 | </B> 697 | </TD><TD>&nbsp;</TD> 698 | </TR> 699 | <TR> 700 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > 701 | 3005P<BR> 702 | 3006P<BR> 703 | 3006W<BR> 704 | 3006Y<BR> 705 | 3009P<BR> 706 | 3009W<BR> 707 | 3009Y<BR> 708 | 3057J<BR> 709 | 3057L<BR> 710 | 3057P<BR> 711 | 3057Y<BR> 712 | 3059J<BR> 713 | 3059L<BR> 714 | 3059P<BR> 715 | 3059Y<BR></FONT> 716 | </TD> 717 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 718 | -<BR> 719 | 89P<BR> 720 | 89W<BR> 721 | 89X<BR> 722 | 89PH<BR> 723 | 76P<BR> 724 | 89XH<BR> 725 | 78SLT<BR> 726 | 78L&nbsp;ALT<BR> 727 | 56P&nbsp;ALT<BR> 728 | 78P&nbsp;ALT<BR> 729 | T8S<BR> 730 | 78L<BR> 731 | 56P<BR> 732 | 78P<BR></FONT> 733 | </TD> 734 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 735 | -<BR> 736 | T18/784<BR> 737 | 783<BR> 738 | 781<BR> 739 | -<BR> 740 | -<BR> 741 | -<BR> 742 | 2199<BR> 743 | 1697/1897<BR> 744 | 1680/1880<BR> 745 | 2187<BR> 746 | -<BR> 747 | -<BR> 748 | -<BR> 749 | -<BR></FONT> 750 | </TD> 751 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 752 | -<BR> 753 | 8035EKP/CT20/RJ-20P<BR> 754 | -<BR> 755 | RJ-20X<BR> 756 | -<BR> 757 | -<BR> 758 | -<BR> 759 | 1211L<BR> 760 | 8012EKQ&nbsp;ALT<BR> 761 | 8012EKR&nbsp;ALT<BR> 762 | 1211P<BR> 763 | 8012EKJ<BR> 764 | 8012EKL<BR> 765 | 8012EKQ<BR> 766 | 8012EKR<BR></FONT> 767 | </TD> 768 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 769 | -<BR> 770 | 2101P<BR> 771 | 2101W<BR> 772 | 2101Y<BR> 773 | -<BR> 774 | -<BR> 775 | -<BR> 776 | -<BR> 777 | -<BR> 778 | -<BR> 779 | -<BR> 780 | -<BR> 781 | 2102L<BR> 782 | 2102S<BR> 783 | 2102Y<BR></FONT> 784 | </TD> 785 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 786 | -<BR> 787 | EVMCOG<BR> 788 | -<BR> 789 | -<BR> 790 | -<BR> 791 | -<BR> 792 | -<BR> 793 | -<BR> 794 | -<BR> 795 | -<BR> 796 | -<BR> 797 | -<BR> 798 | -<BR> 799 | -<BR> 800 | -<BR></FONT> 801 | </TD> 802 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 803 | -<BR> 804 | 43P<BR> 805 | 43W<BR> 806 | 43Y<BR> 807 | -<BR> 808 | -<BR> 809 | -<BR> 810 | -<BR> 811 | 40L<BR> 812 | 40P<BR> 813 | 40Y<BR> 814 | 70Y-T602<BR> 815 | 70L<BR> 816 | 70P<BR> 817 | 70Y<BR></FONT> 818 | </TD> 819 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 820 | -<BR> 821 | -<BR> 822 | -<BR> 823 | -<BR> 824 | -<BR> 825 | -<BR> 826 | -<BR> 827 | -<BR> 828 | RT/RTR12<BR> 829 | RT/RTR12<BR> 830 | RT/RTR12<BR> 831 | -<BR> 832 | RJ/RJR12<BR> 833 | RJ/RJR12<BR> 834 | RJ/RJR12<BR></FONT> 835 | </TD> 836 | </TR> 837 | <TR> 838 | <TD COLSPAN=8>&nbsp; 839 | </TD> 840 | </TR> 841 | <TR> 842 | <TD COLSPAN=8> 843 | <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> 844 | </TD> 845 | </TR> 846 | <TR> 847 | <TD ALIGN=CENTER> 848 | <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> 849 | </TD> 850 | <TD ALIGN=CENTER> 851 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 852 | </TD> 853 | <TD ALIGN=CENTER> 854 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 855 | </TD> 856 | <TD ALIGN=CENTER> 857 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 858 | </TD> 859 | <TD ALIGN=CENTER> 860 | <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> 861 | </TD> 862 | <TD ALIGN=CENTER> 863 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 864 | </TD> 865 | <TD ALIGN=CENTER> 866 | <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> 867 | </TD> 868 | <TD ALIGN=CENTER> 869 | <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> 870 | </TD> 871 | </TR> 872 | <TR> 873 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 874 | 3250L<BR> 875 | 3250P<BR> 876 | 3250W<BR> 877 | 3250X<BR> 878 | 3252P<BR> 879 | 3252W<BR> 880 | 3252X<BR> 881 | 3260P<BR> 882 | 3260W<BR> 883 | 3260X<BR> 884 | 3262P<BR> 885 | 3262W<BR> 886 | 3262X<BR> 887 | 3266P<BR> 888 | 3266W<BR> 889 | 3266X<BR> 890 | 3290H<BR> 891 | 3290P<BR> 892 | 3290W<BR> 893 | 3292P<BR> 894 | 3292W<BR> 895 | 3292X<BR> 896 | 3296P<BR> 897 | 3296W<BR> 898 | 3296X<BR> 899 | 3296Y<BR> 900 | 3296Z<BR> 901 | 3299P<BR> 902 | 3299W<BR> 903 | 3299X<BR> 904 | 3299Y<BR> 905 | 3299Z<BR></FONT> 906 | </TD> 907 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 908 | -<BR> 909 | 66P&nbsp;ALT<BR> 910 | 66W&nbsp;ALT<BR> 911 | 66X&nbsp;ALT<BR> 912 | 66P&nbsp;ALT<BR> 913 | 66W&nbsp;ALT<BR> 914 | 66X&nbsp;ALT<BR> 915 | -<BR> 916 | 64W&nbsp;ALT<BR> 917 | -<BR> 918 | 64P&nbsp;ALT<BR> 919 | 64W&nbsp;ALT<BR> 920 | 64X&nbsp;ALT<BR> 921 | 64P<BR> 922 | 64W<BR> 923 | 64X<BR> 924 | 66X&nbsp;ALT<BR> 925 | 66P&nbsp;ALT<BR> 926 | 66W&nbsp;ALT<BR> 927 | 66P<BR> 928 | 66W<BR> 929 | 66X<BR> 930 | 67P<BR> 931 | 67W<BR> 932 | 67X<BR> 933 | 67Y<BR> 934 | 67Z<BR> 935 | 68P<BR> 936 | 68W<BR> 937 | 68X<BR> 938 | 67Y&nbsp;ALT<BR> 939 | 67Z&nbsp;ALT<BR></FONT> 940 | </TD> 941 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 942 | 5050<BR> 943 | 5091<BR> 944 | 5080<BR> 945 | 5087<BR> 946 | -<BR> 947 | -<BR> 948 | -<BR> 949 | -<BR> 950 | -<BR> 951 | -<BR> 952 | -<BR> 953 | T63YB<BR> 954 | T63XB<BR> 955 | -<BR> 956 | -<BR> 957 | -<BR> 958 | 5887<BR> 959 | 5891<BR> 960 | 5880<BR> 961 | -<BR> 962 | -<BR> 963 | -<BR> 964 | T93Z<BR> 965 | T93YA<BR> 966 | T93XA<BR> 967 | T93YB<BR> 968 | T93XB<BR> 969 | -<BR> 970 | -<BR> 971 | -<BR> 972 | -<BR> 973 | -<BR></FONT> 974 | </TD> 975 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 976 | -<BR> 977 | -<BR> 978 | -<BR> 979 | -<BR> 980 | -<BR> 981 | -<BR> 982 | -<BR> 983 | -<BR> 984 | -<BR> 985 | -<BR> 986 | 8026EKP<BR> 987 | 8026EKW<BR> 988 | 8026EKM<BR> 989 | 8026EKP<BR> 990 | 8026EKB<BR> 991 | 8026EKM<BR> 992 | 1309X<BR> 993 | 1309P<BR> 994 | 1309W<BR> 995 | 8024EKP<BR> 996 | 8024EKW<BR> 997 | 8024EKN<BR> 998 | RJ-9P/CT9P<BR> 999 | RJ-9W<BR> 1000 | RJ-9X<BR> 1001 | -<BR> 1002 | -<BR> 1003 | -<BR> 1004 | -<BR> 1005 | -<BR> 1006 | -<BR> 1007 | -<BR></FONT> 1008 | </TD> 1009 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1010 | -<BR> 1011 | -<BR> 1012 | -<BR> 1013 | -<BR> 1014 | -<BR> 1015 | -<BR> 1016 | -<BR> 1017 | -<BR> 1018 | -<BR> 1019 | -<BR> 1020 | 3103P<BR> 1021 | 3103Y<BR> 1022 | 3103Z<BR> 1023 | 3103P<BR> 1024 | 3103Y<BR> 1025 | 3103Z<BR> 1026 | -<BR> 1027 | -<BR> 1028 | -<BR> 1029 | -<BR> 1030 | -<BR> 1031 | -<BR> 1032 | 3105P/3106P<BR> 1033 | 3105W/3106W<BR> 1034 | 3105X/3106X<BR> 1035 | 3105Y/3106Y<BR> 1036 | 3105Z/3105Z<BR> 1037 | 3102P<BR> 1038 | 3102W<BR> 1039 | 3102X<BR> 1040 | 3102Y<BR> 1041 | 3102Z<BR></FONT> 1042 | </TD> 1043 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1044 | -<BR> 1045 | -<BR> 1046 | -<BR> 1047 | -<BR> 1048 | -<BR> 1049 | -<BR> 1050 | -<BR> 1051 | -<BR> 1052 | -<BR> 1053 | -<BR> 1054 | -<BR> 1055 | -<BR> 1056 | -<BR> 1057 | -<BR> 1058 | -<BR> 1059 | -<BR> 1060 | -<BR> 1061 | -<BR> 1062 | -<BR> 1063 | -<BR> 1064 | -<BR> 1065 | -<BR> 1066 | EVMCBG<BR> 1067 | EVMCCG<BR> 1068 | -<BR> 1069 | -<BR> 1070 | -<BR> 1071 | -<BR> 1072 | -<BR> 1073 | -<BR> 1074 | -<BR> 1075 | -<BR></FONT> 1076 | </TD> 1077 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1078 | 55-1-X<BR> 1079 | 55-4-X<BR> 1080 | 55-3-X<BR> 1081 | 55-2-X<BR> 1082 | -<BR> 1083 | -<BR> 1084 | -<BR> 1085 | -<BR> 1086 | -<BR> 1087 | -<BR> 1088 | -<BR> 1089 | -<BR> 1090 | -<BR> 1091 | -<BR> 1092 | -<BR> 1093 | -<BR> 1094 | 50-2-X<BR> 1095 | 50-4-X<BR> 1096 | 50-3-X<BR> 1097 | -<BR> 1098 | -<BR> 1099 | -<BR> 1100 | 64P<BR> 1101 | 64W<BR> 1102 | 64X<BR> 1103 | 64Y<BR> 1104 | 64Z<BR> 1105 | -<BR> 1106 | -<BR> 1107 | -<BR> 1108 | -<BR> 1109 | -<BR></FONT> 1110 | </TD> 1111 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1112 | RT/RTR22<BR> 1113 | RT/RTR22<BR> 1114 | RT/RTR22<BR> 1115 | RT/RTR22<BR> 1116 | RJ/RJR22<BR> 1117 | RJ/RJR22<BR> 1118 | RJ/RJR22<BR> 1119 | RT/RTR26<BR> 1120 | RT/RTR26<BR> 1121 | RT/RTR26<BR> 1122 | RJ/RJR26<BR> 1123 | RJ/RJR26<BR> 1124 | RJ/RJR26<BR> 1125 | RJ/RJR26<BR> 1126 | RJ/RJR26<BR> 1127 | RJ/RJR26<BR> 1128 | RT/RTR24<BR> 1129 | RT/RTR24<BR> 1130 | RT/RTR24<BR> 1131 | RJ/RJR24<BR> 1132 | RJ/RJR24<BR> 1133 | RJ/RJR24<BR> 1134 | RJ/RJR24<BR> 1135 | RJ/RJR24<BR> 1136 | RJ/RJR24<BR> 1137 | -<BR> 1138 | -<BR> 1139 | -<BR> 1140 | -<BR> 1141 | -<BR> 1142 | -<BR> 1143 | -<BR></FONT> 1144 | </TD> 1145 | </TR> 1146 | <TR> 1147 | <TD COLSPAN=8>&nbsp; 1148 | </TD> 1149 | </TR> 1150 | <TR> 1151 | <TD COLSPAN=8> 1152 | <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> 1153 | </TD> 1154 | </TR> 1155 | <TR> 1156 | <TD ALIGN=CENTER> 1157 | <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> 1158 | </TD> 1159 | <TD ALIGN=CENTER> 1160 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 1161 | </TD> 1162 | <TD ALIGN=CENTER> 1163 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 1164 | </TD> 1165 | <TD ALIGN=CENTER> 1166 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 1167 | </TD> 1168 | <TD ALIGN=CENTER> 1169 | <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> 1170 | </TD> 1171 | <TD ALIGN=CENTER> 1172 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 1173 | </TD> 1174 | <TD ALIGN=CENTER> 1175 | <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> 1176 | </TD> 1177 | <TD ALIGN=CENTER> 1178 | <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> 1179 | </TD> 1180 | </TR> 1181 | <TR> 1182 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1183 | 3323P<BR> 1184 | 3323S<BR> 1185 | 3323W<BR> 1186 | 3329H<BR> 1187 | 3329P<BR> 1188 | 3329W<BR> 1189 | 3339H<BR> 1190 | 3339P<BR> 1191 | 3339W<BR> 1192 | 3352E<BR> 1193 | 3352H<BR> 1194 | 3352K<BR> 1195 | 3352P<BR> 1196 | 3352T<BR> 1197 | 3352V<BR> 1198 | 3352W<BR> 1199 | 3362H<BR> 1200 | 3362M<BR> 1201 | 3362P<BR> 1202 | 3362R<BR> 1203 | 3362S<BR> 1204 | 3362U<BR> 1205 | 3362W<BR> 1206 | 3362X<BR> 1207 | 3386B<BR> 1208 | 3386C<BR> 1209 | 3386F<BR> 1210 | 3386H<BR> 1211 | 3386K<BR> 1212 | 3386M<BR> 1213 | 3386P<BR> 1214 | 3386S<BR> 1215 | 3386W<BR> 1216 | 3386X<BR></FONT> 1217 | </TD> 1218 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1219 | 25P<BR> 1220 | 25S<BR> 1221 | 25RX<BR> 1222 | 82P<BR> 1223 | 82M<BR> 1224 | 82PA<BR> 1225 | -<BR> 1226 | -<BR> 1227 | -<BR> 1228 | 91E<BR> 1229 | 91X<BR> 1230 | 91T<BR> 1231 | 91B<BR> 1232 | 91A<BR> 1233 | 91V<BR> 1234 | 91W<BR> 1235 | 25W<BR> 1236 | 25V<BR> 1237 | 25P<BR> 1238 | -<BR> 1239 | 25S<BR> 1240 | 25U<BR> 1241 | 25RX<BR> 1242 | 25X<BR> 1243 | 72XW<BR> 1244 | 72XL<BR> 1245 | 72PM<BR> 1246 | 72RX<BR> 1247 | -<BR> 1248 | 72PX<BR> 1249 | 72P<BR> 1250 | 72RXW<BR> 1251 | 72RXL<BR> 1252 | 72X<BR></FONT> 1253 | </TD> 1254 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1255 | -<BR> 1256 | -<BR> 1257 | -<BR> 1258 | T7YB<BR> 1259 | T7YA<BR> 1260 | -<BR> 1261 | -<BR> 1262 | -<BR> 1263 | -<BR> 1264 | -<BR> 1265 | -<BR> 1266 | -<BR> 1267 | -<BR> 1268 | -<BR> 1269 | -<BR> 1270 | -<BR> 1271 | -<BR> 1272 | TXD<BR> 1273 | TYA<BR> 1274 | TYP<BR> 1275 | -<BR> 1276 | TYD<BR> 1277 | TX<BR> 1278 | -<BR> 1279 | 150SX<BR> 1280 | 100SX<BR> 1281 | 102T<BR> 1282 | 101S<BR> 1283 | 190T<BR> 1284 | 150TX<BR> 1285 | 101<BR> 1286 | -<BR> 1287 | -<BR> 1288 | 101SX<BR></FONT> 1289 | </TD> 1290 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1291 | ET6P<BR> 1292 | ET6S<BR> 1293 | ET6X<BR> 1294 | RJ-6W/8014EMW<BR> 1295 | RJ-6P/8014EMP<BR> 1296 | RJ-6X/8014EMX<BR> 1297 | TM7W<BR> 1298 | TM7P<BR> 1299 | TM7X<BR> 1300 | -<BR> 1301 | 8017SMS<BR> 1302 | -<BR> 1303 | 8017SMB<BR> 1304 | 8017SMA<BR> 1305 | -<BR> 1306 | -<BR> 1307 | CT-6W<BR> 1308 | CT-6H<BR> 1309 | CT-6P<BR> 1310 | CT-6R<BR> 1311 | -<BR> 1312 | CT-6V<BR> 1313 | CT-6X<BR> 1314 | -<BR> 1315 | -<BR> 1316 | 8038EKV<BR> 1317 | -<BR> 1318 | 8038EKX<BR> 1319 | -<BR> 1320 | -<BR> 1321 | 8038EKP<BR> 1322 | 8038EKZ<BR> 1323 | 8038EKW<BR> 1324 | -<BR></FONT> 1325 | </TD> 1326 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1327 | -<BR> 1328 | -<BR> 1329 | -<BR> 1330 | 3321H<BR> 1331 | 3321P<BR> 1332 | 3321N<BR> 1333 | 1102H<BR> 1334 | 1102P<BR> 1335 | 1102T<BR> 1336 | RVA0911V304A<BR> 1337 | -<BR> 1338 | RVA0911H413A<BR> 1339 | RVG0707V100A<BR> 1340 | RVA0607V(H)306A<BR> 1341 | RVA1214H213A<BR> 1342 | -<BR> 1343 | -<BR> 1344 | -<BR> 1345 | -<BR> 1346 | -<BR> 1347 | -<BR> 1348 | -<BR> 1349 | -<BR> 1350 | -<BR> 1351 | 3104B<BR> 1352 | 3104C<BR> 1353 | 3104F<BR> 1354 | 3104H<BR> 1355 | -<BR> 1356 | 3104M<BR> 1357 | 3104P<BR> 1358 | 3104S<BR> 1359 | 3104W<BR> 1360 | 3104X<BR></FONT> 1361 | </TD> 1362 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1363 | EVMQ0G<BR> 1364 | EVMQIG<BR> 1365 | EVMQ3G<BR> 1366 | EVMS0G<BR> 1367 | EVMQ0G<BR> 1368 | EVMG0G<BR> 1369 | -<BR> 1370 | -<BR> 1371 | -<BR> 1372 | EVMK4GA00B<BR> 1373 | EVM30GA00B<BR> 1374 | EVMK0GA00B<BR> 1375 | EVM38GA00B<BR> 1376 | EVMB6<BR> 1377 | EVLQ0<BR> 1378 | -<BR> 1379 | EVMMSG<BR> 1380 | EVMMBG<BR> 1381 | EVMMAG<BR> 1382 | -<BR> 1383 | -<BR> 1384 | EVMMCS<BR> 1385 | -<BR> 1386 | -<BR> 1387 | -<BR> 1388 | -<BR> 1389 | -<BR> 1390 | EVMM1<BR> 1391 | -<BR> 1392 | -<BR> 1393 | EVMM0<BR> 1394 | -<BR> 1395 | -<BR> 1396 | EVMM3<BR></FONT> 1397 | </TD> 1398 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1399 | -<BR> 1400 | -<BR> 1401 | -<BR> 1402 | 62-3-1<BR> 1403 | 62-1-2<BR> 1404 | -<BR> 1405 | -<BR> 1406 | -<BR> 1407 | -<BR> 1408 | -<BR> 1409 | -<BR> 1410 | -<BR> 1411 | -<BR> 1412 | -<BR> 1413 | -<BR> 1414 | -<BR> 1415 | 67R<BR> 1416 | -<BR> 1417 | 67P<BR> 1418 | -<BR> 1419 | -<BR> 1420 | -<BR> 1421 | -<BR> 1422 | 67X<BR> 1423 | 63V<BR> 1424 | 63S<BR> 1425 | 63M<BR> 1426 | -<BR> 1427 | -<BR> 1428 | 63H<BR> 1429 | 63P<BR> 1430 | -<BR> 1431 | -<BR> 1432 | 63X<BR></FONT> 1433 | </TD> 1434 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1435 | -<BR> 1436 | -<BR> 1437 | -<BR> 1438 | RJ/RJR50<BR> 1439 | RJ/RJR50<BR> 1440 | RJ/RJR50<BR> 1441 | -<BR> 1442 | -<BR> 1443 | -<BR> 1444 | -<BR> 1445 | -<BR> 1446 | -<BR> 1447 | -<BR> 1448 | -<BR> 1449 | -<BR> 1450 | -<BR> 1451 | -<BR> 1452 | -<BR> 1453 | -<BR> 1454 | -<BR> 1455 | -<BR> 1456 | -<BR> 1457 | -<BR> 1458 | -<BR> 1459 | -<BR> 1460 | -<BR> 1461 | -<BR> 1462 | -<BR> 1463 | -<BR> 1464 | -<BR> 1465 | -<BR> 1466 | -<BR> 1467 | -<BR> 1468 | -<BR></FONT> 1469 | </TD> 1470 | </TR> 1471 | </TABLE> 1472 | <P>&nbsp;<P> 1473 | <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> 1474 | <TR> 1475 | <TD COLSPAN=7> 1476 | <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> 1477 | <P> 1478 | <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> 1479 | </TD> 1480 | </TR> 1481 | <TR> 1482 | <TD> 1483 | <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> 1484 | </TD> 1485 | <TD> 1486 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 1487 | </TD> 1488 | <TD> 1489 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 1490 | </TD> 1491 | <TD> 1492 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 1493 | </TD> 1494 | <TD> 1495 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 1496 | </TD> 1497 | <TD> 1498 | <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> 1499 | </TD> 1500 | <TD> 1501 | <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> 1502 | </TD> 1503 | </TR> 1504 | <TR> 1505 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1506 | 3224G<BR> 1507 | 3224J<BR> 1508 | 3224W<BR> 1509 | 3269P<BR> 1510 | 3269W<BR> 1511 | 3269X<BR></FONT> 1512 | </TD> 1513 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1514 | 44G<BR> 1515 | 44J<BR> 1516 | 44W<BR> 1517 | 84P<BR> 1518 | 84W<BR> 1519 | 84X<BR></FONT> 1520 | </TD> 1521 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1522 | -<BR> 1523 | -<BR> 1524 | -<BR> 1525 | ST63Z<BR> 1526 | ST63Y<BR> 1527 | -<BR></FONT> 1528 | </TD> 1529 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1530 | -<BR> 1531 | -<BR> 1532 | -<BR> 1533 | ST5P<BR> 1534 | ST5W<BR> 1535 | ST5X<BR></FONT> 1536 | </TD> 1537 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1538 | -<BR> 1539 | -<BR> 1540 | -<BR> 1541 | -<BR> 1542 | -<BR> 1543 | -<BR></FONT> 1544 | </TD> 1545 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1546 | -<BR> 1547 | -<BR> 1548 | -<BR> 1549 | -<BR> 1550 | -<BR> 1551 | -<BR></FONT> 1552 | </TD> 1553 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1554 | -<BR> 1555 | -<BR> 1556 | -<BR> 1557 | -<BR> 1558 | -<BR> 1559 | -<BR></FONT> 1560 | </TD> 1561 | </TR> 1562 | <TR> 1563 | <TD COLSPAN=7>&nbsp; 1564 | </TD> 1565 | </TR> 1566 | <TR> 1567 | <TD COLSPAN=7> 1568 | <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> 1569 | </TD> 1570 | </TR> 1571 | <TR> 1572 | <TD> 1573 | <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> 1574 | </TD> 1575 | <TD> 1576 | <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> 1577 | </TD> 1578 | <TD> 1579 | <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> 1580 | </TD> 1581 | <TD> 1582 | <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> 1583 | </TD> 1584 | <TD> 1585 | <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> 1586 | </TD> 1587 | <TD> 1588 | <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> 1589 | </TD> 1590 | <TD> 1591 | <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> 1592 | </TD> 1593 | </TR> 1594 | <TR> 1595 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1596 | 3314G<BR> 1597 | 3314J<BR> 1598 | 3364A/B<BR> 1599 | 3364C/D<BR> 1600 | 3364W/X<BR> 1601 | 3313G<BR> 1602 | 3313J<BR></FONT> 1603 | </TD> 1604 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1605 | 23B<BR> 1606 | 23A<BR> 1607 | 21X<BR> 1608 | 21W<BR> 1609 | -<BR> 1610 | 22B<BR> 1611 | 22A<BR></FONT> 1612 | </TD> 1613 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1614 | ST5YL/ST53YL<BR> 1615 | ST5YJ/5T53YJ<BR> 1616 | ST-23A<BR> 1617 | ST-22B<BR> 1618 | ST-22<BR> 1619 | -<BR> 1620 | -<BR></FONT> 1621 | </TD> 1622 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1623 | ST-4B<BR> 1624 | ST-4A<BR> 1625 | -<BR> 1626 | -<BR> 1627 | -<BR> 1628 | ST-3B<BR> 1629 | ST-3A<BR></FONT> 1630 | </TD> 1631 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1632 | -<BR> 1633 | EVM-6YS<BR> 1634 | EVM-1E<BR> 1635 | EVM-1G<BR> 1636 | EVM-1D<BR> 1637 | -<BR> 1638 | -<BR></FONT> 1639 | </TD> 1640 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1641 | G4B<BR> 1642 | G4A<BR> 1643 | TR04-3S1<BR> 1644 | TRG04-2S1<BR> 1645 | -<BR> 1646 | -<BR> 1647 | -<BR></FONT> 1648 | </TD> 1649 | <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> 1650 | -<BR> 1651 | -<BR> 1652 | DVR-43A<BR> 1653 | CVR-42C<BR> 1654 | CVR-42A/C<BR> 1655 | -<BR> 1656 | -<BR></FONT> 1657 | </TD> 1658 | </TR> 1659 | </TABLE> 1660 | <P> 1661 | <FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> 1662 | <P> 1663 | 1664 | &nbsp; 1665 | <P> 1666 | </td> 1667 | </tr> 1668 | </table> 1669 | 1670 | 1671 | <b>RESISTOR</b><p> 1672 | type 0207, grid 7.5 mm 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1689 | 1690 | 1691 | 1692 | 1693 | >NAME 1694 | >VALUE 1695 | 1696 | 1697 | 1698 | 1699 | <b>RESISTOR</b><p> 1700 | type 0207, grid 10 mm 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1717 | 1718 | 1719 | 1720 | 1721 | >NAME 1722 | >VALUE 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | <b>LEDs</b><p> 1730 | <author>Created by librarian@cadsoft.de</author><br> 1731 | Extended by Federico Battaglin <author>&lt;federico.rd@fdpinternational.com&gt;</author> with DUOLED 1732 | 1733 | 1734 | <B>LED</B><p> 1735 | 3 mm, round 1736 | 1737 | 1738 | 1739 | 1740 | 1741 | 1742 | 1743 | 1744 | 1745 | 1746 | 1747 | 1748 | 1749 | 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | 1756 | 1757 | >NAME 1758 | >VALUE 1759 | 1760 | 1761 | 1762 | 1763 | 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | >NAME 1775 | 1776 | 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | 1783 | 1784 | 1785 | 1786 | 1787 | 1788 | 1789 | 1790 | 1791 | 1792 | 1793 | 1794 | 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1807 | 1808 | 1809 | 1810 | >NAME 1811 | 1812 | 1813 | 1814 | 1815 | <h3>SparkFun Switches, Buttons, Encoders</h3> 1816 | In this library you'll find switches, buttons, joysticks, and anything that moves to create or disrupt an electrical connection. 1817 | <br> 1818 | <br> 1819 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1820 | <br> 1821 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1822 | <br> 1823 | <br> 1824 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1825 | <br> 1826 | <br> 1827 | 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. 1828 | 1829 | 1830 | <h3>Momentary Switch (Pushbutton) - SPST - PTH, 6.0mm Square</h3> 1831 | <p>Normally-open (NO) SPST momentary switches (buttons, pushbuttons).</p> 1832 | <p><a href="https://www.omron.com/ecb/products/pdf/en-b3f.pdf">Datasheet</a> (B3F-1000)</p> 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 1845 | 1846 | 1847 | 1848 | 1849 | 1850 | 1851 | 1852 | 1853 | 1854 | 1855 | 1856 | 1857 | >Name 1858 | >Value 1859 | 1860 | 1861 | 1862 | 1863 | <b>LAB11</b> - Various transistors. 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | >NAME 1878 | 1879 | 1880 | 1881 | 1882 | <b>Jumpers</b><p> 1883 | <author>Created by librarian@cadsoft.de</author> 1884 | 1885 | 1886 | <b>Solder jumper</b> 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | >NAME 1902 | >VALUE 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | 1911 | 1912 | 1913 | 1914 | 1915 | 1916 | 1917 | <b>EAGLE Design Rules</b> 1918 | <p> 1919 | Die Standard-Design-Rules sind so gewählt, dass sie für 1920 | die meisten Anwendungen passen. Sollte ihre Platine 1921 | besondere Anforderungen haben, treffen Sie die erforderlichen 1922 | Einstellungen hier und speichern die Design Rules unter 1923 | einem neuen Namen ab. 1924 | <b>EAGLE Design Rules</b> 1925 | <p> 1926 | The default Design Rules have been set to cover 1927 | a wide range of applications. Your particular design 1928 | may have different requirements, so please make the 1929 | necessary adjustments and save your customized 1930 | design rules under a new name. 1931 | 1932 | 1933 | 1934 | 1935 | 1936 | 1937 | 1938 | 1939 | 1940 | 1941 | 1942 | 1943 | 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 | 1961 | 1962 | 1963 | 1964 | 1965 | 1966 | 1967 | 1968 | 1969 | 1970 | 1971 | 1972 | 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 | 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | 2036 | 2037 | 2038 | 2039 | 2040 | 2041 | 2042 | 2043 | 2044 | 2045 | 2046 | 2047 | 2048 | 2049 | 2050 | 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | 2057 | 2058 | 2059 | 2060 | 2061 | 2062 | 2063 | 2064 | 2065 | 2066 | 2067 | 2068 | 2069 | 2070 | 2071 | 2072 | 2073 | 2074 | 2075 | 2076 | 2077 | 2078 | 2079 | 2080 | 2081 | 2082 | 2083 | 2084 | 2085 | 2086 | 2087 | 2088 | 2089 | 2090 | 2091 | 2092 | 2093 | 2094 | 2095 | 2096 | 2097 | 2098 | 2099 | 2100 | 2101 | 2102 | 2103 | 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 2115 | 2116 | 2117 | 2118 | 2119 | 2120 | 2121 | 2122 | 2123 | 2124 | 2125 | 2126 | 2127 | 2128 | 2129 | 2130 | 2131 | 2132 | 2133 | 2134 | 2135 | 2136 | 2137 | 2138 | 2139 | 2140 | 2141 | 2142 | 2143 | 2144 | 2145 | 2146 | 2147 | 2148 | 2149 | 2150 | 2151 | 2152 | 2153 | 2154 | 2155 | 2156 | 2157 | 2158 | 2159 | 2160 | 2161 | 2162 | 2163 | 2164 | 2165 | 2166 | 2167 | 2168 | 2169 | 2170 | 2171 | 2172 | 2173 | 2174 | 2175 | 2176 | 2177 | 2178 | 2179 | 2180 | 2181 | 2182 | 2183 | 2184 | 2185 | 2186 | 2187 | 2188 | 2189 | 2190 | 2191 | 2192 | 2193 | 2194 | 2195 | 2196 | 2197 | 2198 | 2199 | 2200 | 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | 2213 | 2214 | 2215 | 2216 | 2217 | 2218 | 2219 | 2220 | 2221 | 2222 | 2223 | 2224 | 2225 | 2226 | 2227 | 2228 | 2229 | 2230 | 2231 | 2232 | 2233 | 2234 | 2235 | 2236 | 2237 | 2238 | 2239 | 2240 | 2241 | 2242 | 2243 | 2244 | 2245 | 2246 | 2247 | 2248 | 2249 | 2250 | 2251 | 2252 | 2253 | 2254 | 2255 | 2256 | 2257 | 2258 | 2259 | 2260 | 2261 | 2262 | 2263 | 2264 | 2265 | 2266 | 2267 | 2268 | 2269 | 2270 | 2271 | 2272 | 2273 | 2274 | 2275 | 2276 | 2277 | 2278 | 2279 | 2280 | 2281 | 2282 | 2283 | 2284 | 2285 | 2286 | 2287 | 2288 | 2289 | 2290 | 2291 | 2292 | 2293 | 2294 | 2295 | 2296 | 2297 | 2298 | 2299 | 2300 | 2301 | 2302 | 2303 | 2304 | 2305 | 2306 | 2307 | 2308 | 2309 | 2310 | 2311 | 2312 | 2313 | 2314 | 2315 | 2316 | 2317 | 2318 | 2319 | 2320 | 2321 | 2322 | 2323 | 2324 | 2325 | 2326 | 2327 | 2328 | 2329 | 2330 | 2331 | 2332 | 2333 | 2334 | 2335 | 2336 | 2337 | 2338 | 2339 | 2340 | 2341 | 2342 | 2343 | 2344 | 2345 | 2346 | 2347 | 2348 | 2349 | 2350 | 2351 | 2352 | 2353 | 2354 | 2355 | 2356 | 2357 | 2358 | 2359 | 2360 | 2361 | 2362 | 2363 | 2364 | 2365 | 2366 | 2367 | 2368 | 2369 | 2370 | 2371 | 2372 | 2373 | 2374 | 2375 | 2376 | 2377 | 2378 | 2379 | 2380 | 2381 | 2382 | 2383 | 2384 | 2385 | 2386 | 2387 | 2388 | 2389 | 2390 | 2391 | 2392 | 2393 | 2394 | 2395 | 2396 | 2397 | 2398 | 2399 | 2400 | 2401 | 2402 | 2403 | 2404 | 2405 | 2406 | 2407 | 2408 | 2409 | 2410 | 2411 | 2412 | 2413 | 2414 | 2415 | 2416 | 2417 | 2418 | 2419 | 2420 | 2421 | 2422 | 2423 | 2424 | 2425 | 2426 | 2427 | 2428 | 2429 | 2430 | 2431 | 2432 | 2433 | 2434 | 2435 | 2436 | 2437 | 2438 | 2439 | 2440 | 2441 | 2442 | 2443 | 2444 | 2445 | 2446 | 2447 | 2448 | 2449 | 2450 | 2451 | --------------------------------------------------------------------------------