├── .gitattributes ├── .gitignore ├── Documentation ├── ProMicro.csv ├── ProMicro16MHzv2.pdf ├── ProMicro16MHzv2.svg ├── ProMicro8MHzv2.pdf ├── ProMicro8MHzv2.svg ├── QwiicProMicroUSB-C.pdf └── QwiicProMicroUSB-C.svg ├── Firmware ├── Example_1_Blinkies_Hello │ └── Example_1_Blinkies_Hello.ino ├── Example_2a_SimpleKeyboard_HID │ └── Example_2a_SimpleKeyboard_HID.ino ├── Example_2b_SimpleJoystickMouse_HID │ └── Example_2b_SimpleJoystickMouse_HID.ino ├── Example_3a_Qwiic_Joystick_HID_Mouse │ └── Example_3a_Qwiic_Joystick_HID_Mouse.ino ├── Example_3b_Qwiic_Keypad_HID_Keyboard │ └── Example_3b_Qwiic_Keypad_HID_Keyboard.ino └── Example_3c_Qwiic_HID_Mouse_Keyboard_Combined │ └── Example_3c_Qwiic_HID_Mouse_Keyboard_Combined.ino ├── Hardware ├── v13 │ ├── SparkFun_Pro_Micro.brd │ └── SparkFun_Pro_Micro.sch └── v20 │ ├── Production │ ├── SparkFun_Pro_Micro-Panel.GBL │ ├── SparkFun_Pro_Micro-Panel.GBO │ ├── SparkFun_Pro_Micro-Panel.GBS │ ├── SparkFun_Pro_Micro-Panel.GKO │ ├── SparkFun_Pro_Micro-Panel.GTL │ ├── SparkFun_Pro_Micro-Panel.GTO │ ├── SparkFun_Pro_Micro-Panel.GTP │ ├── SparkFun_Pro_Micro-Panel.GTS │ ├── SparkFun_Pro_Micro-Panel.TXT │ ├── SparkFun_Pro_Micro-Panel.brd │ ├── SparkFun_Pro_Micro-Panel.dri │ ├── SparkFun_Pro_Micro-Panel.gpi │ ├── SparkFun_Pro_Micro-Panel.zip │ └── ordering_instructions.txt │ ├── SparkFun_Pro_Micro.brd │ └── SparkFun_Pro_Micro.sch ├── LICENSE.md └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | #Eagle Backup files 6 | *.s#? 7 | *.b#? 8 | *.l#? 9 | *.lck 10 | 11 | # Folder config file 12 | Desktop.ini 13 | 14 | # Recycle Bin used on file shares 15 | $RECYCLE.BIN/ 16 | 17 | # Windows Installer files 18 | *.cab 19 | *.msi 20 | *.msm 21 | *.msp 22 | 23 | # ========================= 24 | # Operating System Files 25 | # ========================= 26 | 27 | # OSX 28 | # ========================= 29 | 30 | .DS_Store 31 | .AppleDouble 32 | .LSOverride 33 | 34 | # Icon must ends with two \r. 35 | Icon 36 | 37 | # Thumbnails 38 | ._* 39 | 40 | # Files that might appear on external disk 41 | .Spotlight-V100 42 | .Trashes 43 | -------------------------------------------------------------------------------- /Documentation/ProMicro.csv: -------------------------------------------------------------------------------- 1 | Name,Power,GND,Control,Arduino,Port,ADC,PWM,Serial,Ext Interrupt,PC Interrupt,Misc,Misc2,1 2 | Right,,,,,,,,,,,,,1 3 | RAW,RAW,,,,,,,,,,,,1 4 | GND,,GND,,,,,,,,,,,1 5 | RST,,,Reset,,,,,,,,,,1 6 | VCC,VCC,,,,,,,,,,,,1 7 | A3,,,,A3,PF4,ADC4,,,,,TCK,,1 8 | A2,,,,A2,PF5,ADC5,,,,,TMS,,1 9 | A1,,,,A1,PF6,ADC6,,,,,TDO,,1 10 | A0,,,,A0,PF7,ADC7,,,,,TDI,,1 11 | 15,,,,D15,PB1,,,SCK,,PCINT1,,,1 12 | 14,,,,D14,PB3,,,MISO,,PCINT3,PD0,,1 13 | 16,,,,D16,PB2,,,MOSI,,PCINT2,PDI,,1 14 | 10,,,,D10/A10,PB6,ADC13,16-bit,,,PCINT6,OC1B,OC4B,1 15 | Right,,,,,,,,,,,,,1 16 | TX_LED,,,,D14,PB0,,,SS,,,,,1 17 | RX_LED,,,,,PD5,,,,,,,,1 18 | TX_LED,,,,D17,PB0,,,SS,,,,,1 19 | Left,,,,,,,,,,,,,1 20 | TX_LED,,,,D14,PB0,,,SS,,,,,1 21 | RX_LED,,,,,PD5,,,,,,,,1 22 | TX_LED,,,,D17,PB0,,,SS,,,,,1 23 | Left,,,,,,,,,,,,,1 24 | TXO,,,,D1 ,PD3,,,TX1,INT3,,,,1 25 | RXI,,,,D0 ,PD2,,,RX1,INT2,,,,1 26 | GND,,GND,,,,,,,,,,,1 27 | GND,,GND,,,,,,,,,,,1 28 | 2,,,,D2,PD1,,,SDA,INT1,,,,1 29 | 3,,,,D3,PD0,,8-bit,SCL,INT0,,OC0B,,1 30 | 4,,,,D4/A6,PD4,ADC8,,,,,ICP1,,1 31 | 5,,,,D5,PC6,,10-bit (HS),,,,OC3A,OCA4,1 32 | 6,,,,D6/A7,PD7,ADC10,10-bit (HS),,,,OC4D,TO,1 33 | 7,,,,D7,PE6,,,,INT6,,AIN0,,1 34 | 8,,,,D8/A8,PB4,ADC11,,,,PCINT4,,,1 35 | 9,,,,D9/A9,PB5,ADC12,16-bit,,,PCINT5,OC1A,OC4B,1 36 | ,,,,,,,,,,,,,1 37 | ,,,,,,,,,,,,,1 38 | ,,,,,,,,,,,,,1 39 | Text,,,,,,,,,,,,, 40 | Power,RAW: 5V-16V,VCC: 5V at 500mA,,,,,,,,,,, 41 | LEDs,Power: Red,RX:Green,TX:Yellow,To use TX in the Arduino IDE use TXLED1 or TXLED0,,,,,,,,, 42 | LEDs,Power: Red,RX: Yellow,TX: Green,To use TX in the Arduino IDE use TXLED1 or TXLED0,,,,,,,,, 43 | MicroB,,,,,,,,,,,,, 44 | PWM,The Arduino IDE renders all PWM pins as 8-bit,,,,,,,,,,,, 45 | Pro Micro (Dev-12640),16MHz/5V,,,,,,,,,,,, 46 | J1,Connect VCC to USB (bypass regulator),,,,,,,,,,,, 47 | USB,HID enabled,VID: 0x1B4F,PID: 0x9205; 0x9206,,,,,,,,,, 48 | Reset,Doubletap the reset 'button' to stay in bootloader mode for 8 seconds,,,,,,,,,,,, 49 | Serial,Use Serial for the USB connection,Use Serial1 for the hardware serial connection,,,,,,,,,,, 50 | Extras,,,,,,,,,,,,, 51 | ATMega32U4,Logo,Legend,,,,,,,,,,, 52 | microB,,,,,,,,,,,,, 53 | EOF,,,,,,,,,,,,, 54 | -------------------------------------------------------------------------------- /Documentation/ProMicro16MHzv2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Pro_Micro/df836f3bf2955c4f1199a852f618d2ac80866d47/Documentation/ProMicro16MHzv2.pdf -------------------------------------------------------------------------------- /Documentation/ProMicro8MHzv2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Pro_Micro/df836f3bf2955c4f1199a852f618d2ac80866d47/Documentation/ProMicro8MHzv2.pdf -------------------------------------------------------------------------------- /Documentation/QwiicProMicroUSB-C.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Pro_Micro/df836f3bf2955c4f1199a852f618d2ac80866d47/Documentation/QwiicProMicroUSB-C.pdf -------------------------------------------------------------------------------- /Firmware/Example_1_Blinkies_Hello/Example_1_Blinkies_Hello.ino: -------------------------------------------------------------------------------- 1 | /* Pro Micro Test Code 2 | by: Nathan Seidle 3 | modified by: Jim Lindblom 4 | SparkFun Electronics 5 | date: September 16, 2013 6 | license: Public Domain - please use this code however you'd like. 7 | It's provided as a learning tool. 8 | 9 | This code is provided to show how to control the SparkFun 10 | ProMicro's TX and RX LEDs within a sketch. It also serves 11 | to explain the difference between Serial.print() and 12 | Serial1.print(). 13 | */ 14 | 15 | int RXLED = 17; // The RX LED has a defined Arduino pin 16 | // Note: The TX LED was not so lucky, we'll need to use pre-defined 17 | // macros (TXLED1, TXLED0) to control that. 18 | // (We could use the same macros for the RX LED too -- RXLED1, 19 | // and RXLED0.) 20 | 21 | void setup() 22 | { 23 | pinMode(RXLED, OUTPUT); // Set RX LED as an output 24 | // TX LED is set as an output behind the scenes 25 | 26 | Serial.begin(9600); //This pipes to the serial monitor 27 | Serial.println("Initialize Serial Monitor"); 28 | 29 | Serial1.begin(9600); //This is the UART, pipes to sensors attached to board 30 | Serial1.println("Initialize Serial Hardware UART Pins"); 31 | } 32 | 33 | void loop() 34 | { 35 | Serial.println("Hello world!"); // Print "Hello World" to the Serial Monitor 36 | Serial1.println("Hello! Can anybody hear me?"); // Print "Hello!" over hardware UART 37 | 38 | digitalWrite(RXLED, LOW); // set the RX LED ON 39 | TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF 40 | delay(1000); // wait for a second 41 | 42 | digitalWrite(RXLED, HIGH); // set the RX LED OFF 43 | TXLED1; //TX LED macro to turn LED ON 44 | delay(1000); // wait for a second 45 | } 46 | -------------------------------------------------------------------------------- /Firmware/Example_2a_SimpleKeyboard_HID/Example_2a_SimpleKeyboard_HID.ino: -------------------------------------------------------------------------------- 1 | /* HID KeyBoard Example 2 | by: Jim Lindblom 3 | date: 1/12/2012 4 | license: MIT License - Feel free to use this code for any purpose. 5 | No restrictions. Just keep this license if you go on to use this 6 | code in your future endeavors! Reuse and share. 7 | 8 | This is very simplistic code that allows you to send a 'z' with 9 | a momentary pushbutton. 10 | */ 11 | 12 | #include 13 | int buttonPin = 9; // Set a button to any pin 14 | 15 | void setup() 16 | { 17 | pinMode(buttonPin, INPUT); // Set the button as an input 18 | digitalWrite(buttonPin, HIGH); // Pull the button high 19 | 20 | Keyboard.begin(); //Init keyboard emulation 21 | } 22 | 23 | void loop() 24 | { 25 | if (digitalRead(buttonPin) == 0) // if the button goes low 26 | { 27 | Keyboard.write('z'); // send a 'z' to the computer via Keyboard HID 28 | delay(1000); // delay so there aren't a kajillion z's 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Firmware/Example_2b_SimpleJoystickMouse_HID/Example_2b_SimpleJoystickMouse_HID.ino: -------------------------------------------------------------------------------- 1 | /* HID Joystick Mouse Example 2 | by: Jim Lindblom 3 | date: 1/12/2012 4 | license: MIT License - Feel free to use this code for any purpose. 5 | No restrictions. Just keep this license if you go on to use this 6 | code in your future endeavors! Reuse and share. 7 | 8 | This is very simplistic code that allows you to turn the 9 | SparkFun Thumb Joystick (http://www.sparkfun.com/products/9032) 10 | into an HID Mouse. The select button on the joystick is set up 11 | as the mouse left click. 12 | */ 13 | #include 14 | int horzPin = A0; // Analog output of horizontal joystick pin 15 | int vertPin = A1; // Analog output of vertical joystick pin 16 | int selPin = 9; // select button pin of joystick 17 | 18 | int vertZero, horzZero; // Stores the initial value of each axis, usually around 512 19 | int vertValue, horzValue; // Stores current analog output of each axis 20 | const int sensitivity = 200; // Higher sensitivity value = slower mouse, should be <= about 500 21 | int mouseClickFlag = 0; 22 | 23 | //int invertMouse = 1; //Invert joystick based on orientation 24 | int invertMouse = -1; //Noninverted joystick based on orientation 25 | 26 | void setup() 27 | { 28 | pinMode(horzPin, INPUT); // Set both analog pins as inputs 29 | pinMode(vertPin, INPUT); 30 | pinMode(selPin, INPUT); // set button select pin as input 31 | digitalWrite(selPin, HIGH); // Pull button select pin high 32 | delay(1000); // short delay to let outputs settle 33 | vertZero = analogRead(vertPin); // get the initial values 34 | horzZero = analogRead(horzPin); // Joystick should be in neutral position when reading these 35 | 36 | Mouse.begin(); //Init mouse emulation 37 | } 38 | 39 | void loop() 40 | { 41 | vertValue = analogRead(vertPin) - vertZero; // read vertical offset 42 | horzValue = analogRead(horzPin) - horzZero; // read horizontal offset 43 | 44 | if (vertValue != 0) 45 | Mouse.move(0, (invertMouse * (vertValue / sensitivity)), 0); // move mouse on y axis 46 | if (horzValue != 0) 47 | Mouse.move((invertMouse * (horzValue / sensitivity)), 0, 0); // move mouse on x axis 48 | 49 | if ((digitalRead(selPin) == 0) && (!mouseClickFlag)) // if the joystick button is pressed 50 | { 51 | mouseClickFlag = 1; 52 | Mouse.press(MOUSE_LEFT); // click the left button down 53 | } 54 | else if ((digitalRead(selPin)) && (mouseClickFlag)) // if the joystick button is not pressed 55 | { 56 | mouseClickFlag = 0; 57 | Mouse.release(MOUSE_LEFT); // release the left button 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Firmware/Example_3a_Qwiic_Joystick_HID_Mouse/Example_3a_Qwiic_Joystick_HID_Mouse.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | Example_3a_Qwiic_Joystick_HID_Mouse.ino 3 | Written by: Ho Yun "Bobby" Chan 4 | Date: January 13, 2020 5 | Development Environment Specifics: 6 | Arduino IDE 1.8.9 7 | 8 | Description: 9 | Based on the Jim's Pro Micro "HID Mouse" and Wes' Qwiic Joystick "basic reading" 10 | examples, this example moves your computer's mouse based on the joystick's 11 | position. Pressing down on the joystick's will enable a mouse's left click. 12 | The left click will relese as soon as you stop pressing down on the joystick. 13 | 14 | Libraries: 15 | Mouse.h (included with Arduino IDE) 16 | Wire.h (included with Arduino IDE) 17 | SparkFun_Qwiic_Joystick_Arduino_Library.h (included in the src folder) http://librarymanager/All#SparkFun_joystick 18 | 19 | License: 20 | This code is released under the MIT License (http://opensource.org/licenses/MIT) 21 | 22 | ******************************************************************************/ 23 | 24 | #include 25 | #include 26 | 27 | #include "SparkFun_Qwiic_Joystick_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_joystick 28 | JOYSTICK joystick; //Create instance of this object 29 | 30 | int vertZero, horzZero; // Stores the initial value of each axis, usually around 512 31 | int vertValue, horzValue; // Stores current analog output of each axis 32 | const int sensitivity = 200; // Higher sensitivity value = slower mouse, should be <= about 500 33 | int mouseClickFlag = 0; 34 | 35 | //int invertMouse = 1; //Invert joystick based on orientation 36 | int invertMouse = -1; //Noninverted joystick based on orientation 37 | 38 | //Debug mode, comment one of these lines out using a syntax 39 | //for a single line comment ("//"): 40 | #define DEBUG 0 //0 = HID only 41 | //#define DEBUG 1 //1 = HID with serial output 42 | 43 | void setup() { 44 | #if DEBUG 45 | Serial.begin(9600); 46 | Serial.println("Example 3: HID Mouse w/ Qwiic Joystick"); 47 | #endif 48 | 49 | if (joystick.begin() == false) 50 | { 51 | #if DEBUG 52 | Serial.println("Joystick does not appear to be connected. Please check wiring. Freezing..."); 53 | #endif 54 | while (1); 55 | } 56 | 57 | delay(1000); // short delay to let outputs settle 58 | vertZero = joystick.getVertical(); // get the initial values 59 | horzZero = joystick.getHorizontal(); // Joystick should be in neutral position when reading these 60 | 61 | Mouse.begin(); //Init mouse emulation 62 | } 63 | 64 | void loop() { 65 | #if DEBUG 66 | Serial.print("X: "); 67 | Serial.print(joystick.getHorizontal()); 68 | 69 | Serial.print(" Y: "); 70 | Serial.print(joystick.getVertical()); 71 | 72 | Serial.print(" Button: "); 73 | Serial.println(joystick.getButton()); 74 | #endif 75 | 76 | vertValue = joystick.getVertical() - vertZero; // read vertical offset 77 | horzValue = joystick.getHorizontal() - horzZero; // read horizontal offset 78 | 79 | if (vertValue != 0) 80 | Mouse.move(0, (invertMouse * (vertValue / sensitivity)), 0); // move mouse on y axis 81 | if (horzValue != 0) 82 | Mouse.move((invertMouse * (horzValue / sensitivity)), 0, 0); // move mouse on x axis 83 | 84 | if ((joystick.getButton() == 0) && (!mouseClickFlag)) // if the joystick button is pressed 85 | { 86 | mouseClickFlag = 1; 87 | Mouse.press(MOUSE_LEFT); // click the left button down 88 | } 89 | else if ((joystick.getButton()) && (mouseClickFlag)) // if the joystick button is not pressed 90 | { 91 | mouseClickFlag = 0; 92 | Mouse.release(MOUSE_LEFT); // release the left button 93 | } 94 | 95 | //delay(200); //remove "//" on this line if you need a small delay 96 | } 97 | -------------------------------------------------------------------------------- /Firmware/Example_3b_Qwiic_Keypad_HID_Keyboard/Example_3b_Qwiic_Keypad_HID_Keyboard.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | Example_3b_Qwiic_Keypad_HID_Keyboard.ino 3 | Written by: Ho Yun "Bobby" Chan 4 | Date: February 6, 2020 5 | Development Environment Specifics: 6 | Arduino IDE 1.8.9 7 | 8 | Description: 9 | Based on the Jim's Pro Micro "HID Mouse" and Pete' Qwiic Keypad "read button" 10 | examples, this example outputs keyboard presses associated with the keypad. 11 | 12 | Libraries: 13 | Keyboard.h (included with Arduino IDE) 14 | Wire.h (included with Arduino IDE) 15 | SparkFun_Qwiic_Keypad_Arduino_Library.h (included in the src folder) http://librarymanager/All#SparkFun_keypad 16 | 17 | License: 18 | This code is released under the MIT License (http://opensource.org/licenses/MIT) 19 | 20 | ******************************************************************************/ 21 | 22 | #include 23 | #include 24 | #include "SparkFun_Qwiic_Keypad_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_keypad 25 | KEYPAD keypad1; //Create instance of this object 26 | 27 | void setup() { 28 | Serial.begin(9600); 29 | Serial.println("Qwiic KeyPad Example"); 30 | 31 | if (keypad1.begin() == false) // Note, using begin() like this will use default I2C address, 0x4B. 32 | // You can pass begin() a different address like so: keypad1.begin(Wire, 0x4A). 33 | { 34 | Serial.println("Keypad does not appear to be connected. Please check wiring. Freezing..."); 35 | while (1); 36 | } 37 | Serial.print("Initialized. Firmware Version: "); 38 | Serial.println(keypad1.getVersion()); 39 | Serial.println("Press a button: * to do a space. # to go to next line."); 40 | 41 | Keyboard.begin(); //Init keyboard emulation 42 | } 43 | 44 | void loop() { 45 | keypad1.updateFIFO(); // necessary for keypad to pull button from stack to readable register 46 | char button = keypad1.getButton(); 47 | 48 | if (button == -1) 49 | { 50 | Serial.println("No keypad detected"); 51 | delay(1000); 52 | } 53 | else if (button != 0) 54 | { 55 | if (button == '0') {//note that this is a keypad '0' not the button press itself 56 | Keyboard.write('0'); 57 | } 58 | else if (button == '1') { 59 | Keyboard.write('1'); 60 | } 61 | else if (button == '2') { 62 | Keyboard.write('2'); 63 | } 64 | else if (button == '3') { 65 | Keyboard.write('3'); 66 | } 67 | else if (button == '4') { 68 | Keyboard.write('4'); 69 | } 70 | else if (button == '5') { 71 | Keyboard.write('5'); 72 | } 73 | else if (button == '6') { 74 | Keyboard.write('6'); 75 | } 76 | else if (button == '7') { 77 | Keyboard.write('7'); 78 | } 79 | else if (button == '8') { 80 | Keyboard.write('8'); 81 | } 82 | else if (button == '9') { 83 | Keyboard.write('9'); 84 | } 85 | else if (button == '#') { 86 | Keyboard.write('#'); 87 | } 88 | else if (button == '*') { 89 | Keyboard.write('*'); 90 | } 91 | } 92 | 93 | //Do something else. Don't call your Keypad a ton otherwise you'll tie up the I2C bus 94 | delay(25); //25 is good, more is better 95 | } 96 | -------------------------------------------------------------------------------- /Firmware/Example_3c_Qwiic_HID_Mouse_Keyboard_Combined/Example_3c_Qwiic_HID_Mouse_Keyboard_Combined.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | Example_3c_Qwiic_HID_Mouse_Keyboard_Combined.ino 3 | Written by: Ho Yun "Bobby" Chan 4 | Date: February 6, 2020 5 | Development Environment Specifics: 6 | Arduino IDE 1.8.9 7 | 8 | Description: 9 | Based on the following examples: 10 | - Jim's Pro Micro "HID Mouse/Keyboard" 11 | - Wes' Qwiic Joystick "basic reading" 12 | - Pete's Qwiic Keypad "read button" 13 | 14 | This example controls the mouse with the Qwiic Joystick 15 | and keyboard presses associated with the Qwiic Keypad. 16 | The serial output is turned off so that Qwiic Pro Micro 17 | can respond faster. 18 | 19 | Libraries: 20 | Mouse.h (included with Arduino IDE) 21 | Keyboard.h (included with Arduino IDE) 22 | Wire.h (included with Arduino IDE) 23 | SparkFun_Qwiic_Joystick_Arduino_Library.h (included in the src folder) http://librarymanager/All#SparkFun_joystick 24 | SparkFun_Qwiic_Keypad_Arduino_Library.h (included in the src folder) http://librarymanager/All#SparkFun_keypad 25 | 26 | License: 27 | This code is released under the MIT License (http://opensource.org/licenses/MIT) 28 | 29 | ******************************************************************************/ 30 | 31 | #include 32 | #include 33 | #include 34 | 35 | #include "SparkFun_Qwiic_Joystick_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_joystick 36 | JOYSTICK joystick; //Create instance of this object 37 | 38 | #include "SparkFun_Qwiic_Keypad_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_keypad 39 | KEYPAD keypad1; //Create instance of this object 40 | 41 | int vertZero, horzZero; // Stores the initial value of each axis, usually around 512 42 | int vertValue, horzValue; // Stores current analog output of each axis 43 | const int sensitivity = 150; // Higher sensitivity value = slower mouse, should be <= about 500 44 | int mouseClickFlag = 0; 45 | 46 | //int invertMouse = 1; //Invert joystick based on orientation 47 | int invertMouse = -1; //Noninverted joystick based on orientation 48 | 49 | //Debug mode, comment one of these lines out using a syntax 50 | //for a single line comment ("//"): 51 | #define DEBUG 0 //0 = HID only 52 | //#define DEBUG 1 //1 = HID with serial output 53 | 54 | void setup() { 55 | #if DEBUG 56 | Serial.begin(9600); 57 | Serial.println("Qwiic KeyPad Example"); 58 | #endif 59 | 60 | if (joystick.begin() == false) { 61 | #if DEBUG 62 | Serial.println("Joystick does not appear to be connected. Please check wiring. Freezing..."); 63 | #endif 64 | while (1); 65 | } 66 | if (keypad1.begin() == false) { // Note, using begin() like this will use default I2C address, 0x4B. 67 | // You can pass begin() a different address like so: keypad1.begin(Wire, 0x4A). 68 | #if DEBUG 69 | Serial.println("Keypad does not appear to be connected. Please check wiring. Freezing..."); 70 | #endif 71 | while (1); 72 | } 73 | 74 | delay(1000); // short delay to let outputs settle 75 | vertZero = joystick.getVertical(); // get the initial values 76 | horzZero = joystick.getHorizontal(); // Joystick should be in neutral position when reading these 77 | 78 | #if DEBUG 79 | Serial.print("Initialized. Firmware Version: "); 80 | Serial.println(keypad1.getVersion()); 81 | Serial.println("Press a button: * to do a space. # to go to next line."); 82 | #endif 83 | 84 | Mouse.begin(); //Init mouse emulation 85 | Keyboard.begin(); //Init keyboard emulation 86 | 87 | }//end setup 88 | 89 | void loop() { 90 | keypad1.updateFIFO(); // necessary for keypad to pull button from stack to readable register 91 | char button = keypad1.getButton(); 92 | 93 | #if DEBUG 94 | Serial.print("X: "); 95 | Serial.print(joystick.getHorizontal()); 96 | 97 | Serial.print(" Y: "); 98 | Serial.print(joystick.getVertical()); 99 | 100 | Serial.print(" Button: "); 101 | Serial.println(joystick.getButton()); 102 | #endif 103 | 104 | vertValue = joystick.getVertical() - vertZero; // read vertical offset 105 | horzValue = joystick.getHorizontal() - horzZero; // read horizontal offset 106 | 107 | if (vertValue != 0) 108 | Mouse.move(0, (invertMouse * (vertValue / sensitivity)), 0); // move mouse on y axis 109 | if (horzValue != 0) 110 | Mouse.move((invertMouse * (horzValue / sensitivity)), 0, 0); // move mouse on x axis 111 | 112 | if ((joystick.getButton() == 0) && (!mouseClickFlag)) // if the joystick button is pressed 113 | { 114 | mouseClickFlag = 1; 115 | Mouse.press(MOUSE_LEFT); // click the left button down 116 | } 117 | else if ((joystick.getButton()) && (mouseClickFlag)) // if the joystick button is not pressed 118 | { 119 | mouseClickFlag = 0; 120 | Mouse.release(MOUSE_LEFT); // release the left button 121 | } 122 | 123 | if (button == -1) { 124 | #if DEBUG 125 | Serial.println("No keypad detected"); 126 | #endif 127 | delay(1000); 128 | } 129 | 130 | else if (button != 0) { 131 | #if DEBUG 132 | Serial.print("Qwiic Keypad Button: "); 133 | Serial.println(button); 134 | #endif 135 | if (button == '0') {//note that this is a keypad '0' not the button press itself 136 | Keyboard.write('0'); 137 | } 138 | else if (button == '1') { 139 | Keyboard.write('1'); 140 | } 141 | else if (button == '2') { 142 | Keyboard.write('2'); 143 | } 144 | else if (button == '3') { 145 | Keyboard.write('3'); 146 | } 147 | else if (button == '4') { 148 | Keyboard.write('4'); 149 | } 150 | else if (button == '5') { 151 | Keyboard.write('5'); 152 | } 153 | else if (button == '6') { 154 | Keyboard.write('6'); 155 | } 156 | else if (button == '7') { 157 | Keyboard.write('7'); 158 | } 159 | else if (button == '8') { 160 | Keyboard.write('8'); 161 | } 162 | else if (button == '9') { 163 | Keyboard.write('9'); 164 | } 165 | else if (button == '#') { 166 | Keyboard.write('#'); 167 | } 168 | else if (button == '*') { 169 | Keyboard.write('*'); 170 | } 171 | } 172 | 173 | //Do something else. Don't call your Keypad a ton otherwise you'll tie up the I2C bus 174 | //Uncomment this if necessary but since we check the Qwiic Joystick it does not 175 | // appear to be an issue 176 | //delay(25); //25 is good, more is better 177 | 178 | }//end loop 179 | -------------------------------------------------------------------------------- /Hardware/v20/Production/SparkFun_Pro_Micro-Panel.TXT: -------------------------------------------------------------------------------- 1 | % 2 | M48 3 | M72 4 | T01C0.0120 5 | T02C0.0150 6 | T03C0.0256 7 | T04C0.0335 8 | T05C0.0669 9 | % 10 | T01 11 | X14089Y5130 12 | X14709Y5150 13 | X14709Y4100 14 | X15709Y4650 15 | X15859Y4950 16 | X16159Y4250 17 | X16559Y4250 18 | X18179Y3900 19 | X18278Y3600 20 | X17603Y6420 21 | X17859Y6600 22 | X16961Y6851 23 | X16609Y6500 24 | X16745Y7636 25 | X16959Y7850 26 | X16209Y7985 27 | X15509Y8335 28 | X15059Y8635 29 | X15092Y7983 30 | X15322Y7787 31 | X15532Y7572 32 | X15015Y7094 33 | X15159Y6400 34 | X13959Y6950 35 | X14549Y9125 36 | X14759Y9400 37 | X14309Y9650 38 | X14105Y9357 39 | X14659Y9950 40 | X15059Y9900 41 | X15009Y10200 42 | X15215Y10455 43 | X15609Y10350 44 | X16109Y10750 45 | X16459Y10350 46 | X17259Y10450 47 | X17809Y10450 48 | X17859Y9800 49 | X17309Y9500 50 | X16709Y9000 51 | X15609Y9200 52 | X15009Y10828 53 | X14359Y11100 54 | X14059Y11100 55 | X14059Y10800 56 | X15659Y11100 57 | X16859Y11800 58 | X17259Y12600 59 | X16984Y12775 60 | X15809Y13900 61 | X14859Y12950 62 | X14009Y12700 63 | X13909Y13000 64 | X13959Y15550 65 | X18259Y15200 66 | X22959Y15550 67 | X24809Y13900 68 | X23859Y12950 69 | X23009Y12700 70 | X22909Y13000 71 | X23059Y11100 72 | X23059Y10800 73 | X23359Y11100 74 | X24009Y10828 75 | X24215Y10455 76 | X24009Y10200 77 | X24059Y9900 78 | X23659Y9950 79 | X23309Y9650 80 | X23105Y9357 81 | X23549Y9125 82 | X23759Y9400 83 | X24059Y8635 84 | X24509Y8335 85 | X24092Y7983 86 | X24322Y7787 87 | X24532Y7572 88 | X24015Y7094 89 | X24159Y6400 90 | X22959Y6950 91 | X23089Y5130 92 | X23709Y5150 93 | X23709Y4100 94 | X24709Y4650 95 | X24859Y4950 96 | X25159Y4250 97 | X25559Y4250 98 | X27179Y3900 99 | X27278Y3600 100 | X26603Y6420 101 | X26859Y6600 102 | X25961Y6851 103 | X25609Y6500 104 | X25745Y7636 105 | X25959Y7850 106 | X26859Y7750 107 | X27309Y8450 108 | X27009Y8800 109 | X26309Y9500 110 | X26859Y9800 111 | X26809Y10450 112 | X26259Y10450 113 | X25459Y10350 114 | X25109Y10750 115 | X24659Y11100 116 | X25859Y11800 117 | X26259Y12600 118 | X25984Y12775 119 | X27259Y15200 120 | X31959Y15550 121 | X33809Y13900 122 | X32859Y12950 123 | X32009Y12700 124 | X31909Y13000 125 | X32059Y11100 126 | X32059Y10800 127 | X32359Y11100 128 | X33009Y10828 129 | X33215Y10455 130 | X33009Y10200 131 | X33059Y9900 132 | X32659Y9950 133 | X32309Y9650 134 | X32105Y9357 135 | X32549Y9125 136 | X32759Y9400 137 | X33059Y8635 138 | X33509Y8335 139 | X33092Y7983 140 | X33322Y7787 141 | X33532Y7572 142 | X33015Y7094 143 | X33159Y6400 144 | X31959Y6950 145 | X32089Y5130 146 | X32709Y5150 147 | X32709Y4100 148 | X33709Y4650 149 | X33859Y4950 150 | X34159Y4250 151 | X34559Y4250 152 | X36179Y3900 153 | X36278Y3600 154 | X35603Y6420 155 | X35859Y6600 156 | X34961Y6851 157 | X34609Y6500 158 | X34745Y7636 159 | X34959Y7850 160 | X34209Y7985 161 | X34709Y9000 162 | X35309Y9500 163 | X35859Y9800 164 | X35809Y10450 165 | X35259Y10450 166 | X34459Y10350 167 | X34109Y10750 168 | X33659Y11100 169 | X33609Y10350 170 | X33609Y9200 171 | X36009Y8800 172 | X36309Y8450 173 | X35859Y7750 174 | X34859Y11800 175 | X35259Y12600 176 | X34984Y12775 177 | X36259Y15200 178 | X40959Y15550 179 | X42809Y13900 180 | X41859Y12950 181 | X41009Y12700 182 | X40909Y13000 183 | X41059Y11100 184 | X41059Y10800 185 | X41359Y11100 186 | X42009Y10828 187 | X42215Y10455 188 | X42009Y10200 189 | X42059Y9900 190 | X41659Y9950 191 | X41309Y9650 192 | X41105Y9357 193 | X41549Y9125 194 | X41759Y9400 195 | X42059Y8635 196 | X42509Y8335 197 | X42092Y7983 198 | X42322Y7787 199 | X42532Y7572 200 | X42015Y7094 201 | X42159Y6400 202 | X40959Y6950 203 | X41089Y5130 204 | X41709Y5150 205 | X42709Y4650 206 | X42859Y4950 207 | X43159Y4250 208 | X43559Y4250 209 | X41709Y4100 210 | X43609Y6500 211 | X43961Y6851 212 | X44603Y6420 213 | X44859Y6600 214 | X43745Y7636 215 | X43959Y7850 216 | X43209Y7985 217 | X43709Y9000 218 | X44309Y9500 219 | X44859Y9800 220 | X44809Y10450 221 | X44259Y10450 222 | X43459Y10350 223 | X43109Y10750 224 | X42659Y11100 225 | X42609Y10350 226 | X42609Y9200 227 | X45009Y8800 228 | X45309Y8450 229 | X44859Y7750 230 | X45179Y3900 231 | X45278Y3600 232 | X50089Y5130 233 | X50709Y5150 234 | X51709Y4650 235 | X51859Y4950 236 | X52159Y4250 237 | X52559Y4250 238 | X50709Y4100 239 | X51159Y6400 240 | X51015Y7094 241 | X51532Y7572 242 | X51322Y7787 243 | X51092Y7983 244 | X51509Y8335 245 | X51059Y8635 246 | X50549Y9125 247 | X50759Y9400 248 | X50309Y9650 249 | X50105Y9357 250 | X50659Y9950 251 | X51059Y9900 252 | X51009Y10200 253 | X51215Y10455 254 | X51609Y10350 255 | X52109Y10750 256 | X52459Y10350 257 | X53259Y10450 258 | X53809Y10450 259 | X53859Y9800 260 | X53309Y9500 261 | X52709Y9000 262 | X51609Y9200 263 | X52209Y7985 264 | X52745Y7636 265 | X52959Y7850 266 | X53859Y7750 267 | X54309Y8450 268 | X54009Y8800 269 | X52961Y6851 270 | X52609Y6500 271 | X53603Y6420 272 | X53859Y6600 273 | X54179Y3900 274 | X54278Y3600 275 | X49959Y6950 276 | X50059Y10800 277 | X50059Y11100 278 | X50359Y11100 279 | X51009Y10828 280 | X51659Y11100 281 | X52859Y11800 282 | X53259Y12600 283 | X52984Y12775 284 | X51809Y13900 285 | X50859Y12950 286 | X50009Y12700 287 | X49909Y13000 288 | X49959Y15550 289 | X54259Y15200 290 | X54278Y21100 291 | X54179Y21400 292 | X52559Y21750 293 | X52159Y21750 294 | X51709Y22150 295 | X51859Y22450 296 | X50709Y22650 297 | X50089Y22630 298 | X50709Y21600 299 | X51159Y23900 300 | X51015Y24594 301 | X51532Y25072 302 | X51322Y25287 303 | X51092Y25483 304 | X51509Y25835 305 | X51059Y26135 306 | X50549Y26625 307 | X50759Y26900 308 | X50309Y27150 309 | X50105Y26857 310 | X50659Y27450 311 | X51059Y27400 312 | X51009Y27700 313 | X51215Y27955 314 | X51609Y27850 315 | X52109Y28250 316 | X52459Y27850 317 | X53259Y27950 318 | X53809Y27950 319 | X53859Y27300 320 | X53309Y27000 321 | X52709Y26500 322 | X52209Y25485 323 | X52745Y25136 324 | X52959Y25350 325 | X53859Y25250 326 | X54309Y25950 327 | X54009Y26300 328 | X52961Y24351 329 | X52609Y24000 330 | X53603Y23920 331 | X53859Y24100 332 | X51609Y26700 333 | X51009Y28328 334 | X50359Y28600 335 | X50059Y28600 336 | X50059Y28300 337 | X51659Y28600 338 | X52859Y29300 339 | X53259Y30100 340 | X52984Y30275 341 | X51809Y31400 342 | X50859Y30450 343 | X50009Y30200 344 | X49909Y30500 345 | X49959Y33050 346 | X54259Y32700 347 | X54278Y38600 348 | X54179Y38900 349 | X52559Y39250 350 | X52159Y39250 351 | X51709Y39650 352 | X51859Y39950 353 | X50709Y40150 354 | X50089Y40130 355 | X50709Y39100 356 | X51159Y41400 357 | X49959Y41950 358 | X51015Y42094 359 | X51532Y42572 360 | X51322Y42787 361 | X51092Y42983 362 | X51509Y43335 363 | X51059Y43635 364 | X50549Y44125 365 | X50759Y44400 366 | X50309Y44650 367 | X50105Y44357 368 | X50659Y44950 369 | X51059Y44900 370 | X51009Y45200 371 | X51215Y45455 372 | X51609Y45350 373 | X52109Y45750 374 | X52459Y45350 375 | X53259Y45450 376 | X53809Y45450 377 | X53859Y44800 378 | X53309Y44500 379 | X52709Y44000 380 | X51609Y44200 381 | X52209Y42985 382 | X52745Y42636 383 | X52959Y42850 384 | X53859Y42750 385 | X54309Y43450 386 | X54009Y43800 387 | X53859Y41600 388 | X53603Y41420 389 | X52961Y41851 390 | X52609Y41500 391 | X51009Y45828 392 | X50359Y46100 393 | X50059Y46100 394 | X50059Y45800 395 | X51659Y46100 396 | X52859Y46800 397 | X53259Y47600 398 | X52984Y47775 399 | X51809Y48900 400 | X50859Y47950 401 | X50009Y47700 402 | X49909Y48000 403 | X49959Y50550 404 | X54259Y50200 405 | X45259Y50200 406 | X43984Y47775 407 | X44259Y47600 408 | X43859Y46800 409 | X43109Y45750 410 | X43459Y45350 411 | X44259Y45450 412 | X44809Y45450 413 | X44859Y44800 414 | X44309Y44500 415 | X43709Y44000 416 | X45009Y43800 417 | X45309Y43450 418 | X44859Y42750 419 | X43959Y42850 420 | X43745Y42636 421 | X43209Y42985 422 | X42509Y43335 423 | X42059Y43635 424 | X42092Y42983 425 | X42322Y42787 426 | X42532Y42572 427 | X42015Y42094 428 | X42159Y41400 429 | X40959Y41950 430 | X41089Y40130 431 | X41709Y40150 432 | X42709Y39650 433 | X42859Y39950 434 | X43159Y39250 435 | X43559Y39250 436 | X41709Y39100 437 | X44603Y41420 438 | X44859Y41600 439 | X43961Y41851 440 | X43609Y41500 441 | X42609Y44200 442 | X41759Y44400 443 | X41549Y44125 444 | X41105Y44357 445 | X41309Y44650 446 | X41659Y44950 447 | X42059Y44900 448 | X42009Y45200 449 | X42215Y45455 450 | X42609Y45350 451 | X42659Y46100 452 | X42009Y45828 453 | X41359Y46100 454 | X41059Y46100 455 | X41059Y45800 456 | X41009Y47700 457 | X40909Y48000 458 | X41859Y47950 459 | X42809Y48900 460 | X40959Y50550 461 | X36259Y50200 462 | X34984Y47775 463 | X35259Y47600 464 | X34859Y46800 465 | X34109Y45750 466 | X34459Y45350 467 | X35259Y45450 468 | X35809Y45450 469 | X35859Y44800 470 | X35309Y44500 471 | X34709Y44000 472 | X33609Y44200 473 | X33059Y43635 474 | X33509Y43335 475 | X33092Y42983 476 | X33322Y42787 477 | X33532Y42572 478 | X33015Y42094 479 | X33159Y41400 480 | X31959Y41950 481 | X32089Y40130 482 | X32709Y40150 483 | X32709Y39100 484 | X33709Y39650 485 | X33859Y39950 486 | X34159Y39250 487 | X34559Y39250 488 | X36179Y38900 489 | X36278Y38600 490 | X35603Y41420 491 | X35859Y41600 492 | X34961Y41851 493 | X34609Y41500 494 | X34745Y42636 495 | X34959Y42850 496 | X34209Y42985 497 | X35859Y42750 498 | X36309Y43450 499 | X36009Y43800 500 | X33609Y45350 501 | X33215Y45455 502 | X33009Y45200 503 | X33059Y44900 504 | X32659Y44950 505 | X32309Y44650 506 | X32105Y44357 507 | X32549Y44125 508 | X32759Y44400 509 | X33009Y45828 510 | X32359Y46100 511 | X32059Y46100 512 | X32059Y45800 513 | X33659Y46100 514 | X32859Y47950 515 | X32009Y47700 516 | X31909Y48000 517 | X33809Y48900 518 | X31959Y50550 519 | X27259Y50200 520 | X24809Y48900 521 | X23859Y47950 522 | X23009Y47700 523 | X22909Y48000 524 | X23059Y46100 525 | X23059Y45800 526 | X23359Y46100 527 | X24009Y45828 528 | X24215Y45455 529 | X24009Y45200 530 | X24059Y44900 531 | X23659Y44950 532 | X23309Y44650 533 | X23105Y44357 534 | X23549Y44125 535 | X23759Y44400 536 | X24059Y43635 537 | X24509Y43335 538 | X24092Y42983 539 | X24322Y42787 540 | X24532Y42572 541 | X24015Y42094 542 | X25209Y42985 543 | X25745Y42636 544 | X25959Y42850 545 | X26859Y42750 546 | X27309Y43450 547 | X27009Y43800 548 | X26309Y44500 549 | X26859Y44800 550 | X26809Y45450 551 | X26259Y45450 552 | X25459Y45350 553 | X25109Y45750 554 | X24659Y46100 555 | X24609Y45350 556 | X25859Y46800 557 | X26259Y47600 558 | X25984Y47775 559 | X22959Y50550 560 | X18259Y50200 561 | X15809Y48900 562 | X14859Y47950 563 | X14009Y47700 564 | X13909Y48000 565 | X14059Y46100 566 | X14059Y45800 567 | X14359Y46100 568 | X15009Y45828 569 | X15215Y45455 570 | X15009Y45200 571 | X15059Y44900 572 | X14659Y44950 573 | X14309Y44650 574 | X14105Y44357 575 | X14549Y44125 576 | X14759Y44400 577 | X15609Y44200 578 | X15059Y43635 579 | X15509Y43335 580 | X15092Y42983 581 | X15322Y42787 582 | X15532Y42572 583 | X15015Y42094 584 | X13959Y41950 585 | X15159Y41400 586 | X14709Y40150 587 | X14089Y40130 588 | X14709Y39100 589 | X15709Y39650 590 | X15859Y39950 591 | X16159Y39250 592 | X16559Y39250 593 | X18179Y38900 594 | X18278Y38600 595 | X17603Y41420 596 | X17859Y41600 597 | X16961Y41851 598 | X16609Y41500 599 | X16745Y42636 600 | X16959Y42850 601 | X16209Y42985 602 | X16709Y44000 603 | X17309Y44500 604 | X17859Y44800 605 | X17809Y45450 606 | X17259Y45450 607 | X16459Y45350 608 | X16109Y45750 609 | X15659Y46100 610 | X15609Y45350 611 | X16859Y46800 612 | X17259Y47600 613 | X16984Y47775 614 | X13959Y50550 615 | X18009Y43800 616 | X18309Y43450 617 | X17859Y42750 618 | X22959Y41950 619 | X24159Y41400 620 | X23709Y40150 621 | X23089Y40130 622 | X23709Y39100 623 | X24709Y39650 624 | X24859Y39950 625 | X25159Y39250 626 | X25559Y39250 627 | X27179Y38900 628 | X27278Y38600 629 | X26603Y41420 630 | X26859Y41600 631 | X25961Y41851 632 | X25609Y41500 633 | X25709Y44000 634 | X24609Y44200 635 | X22959Y33050 636 | X24809Y31400 637 | X23859Y30450 638 | X23009Y30200 639 | X22909Y30500 640 | X23059Y28600 641 | X23059Y28300 642 | X23359Y28600 643 | X24009Y28328 644 | X24215Y27955 645 | X24009Y27700 646 | X24059Y27400 647 | X23659Y27450 648 | X23309Y27150 649 | X23105Y26857 650 | X23549Y26625 651 | X23759Y26900 652 | X24059Y26135 653 | X24509Y25835 654 | X24092Y25483 655 | X24322Y25287 656 | X24532Y25072 657 | X24015Y24594 658 | X24159Y23900 659 | X22959Y24450 660 | X25209Y25485 661 | X25745Y25136 662 | X25959Y25350 663 | X26859Y25250 664 | X27309Y25950 665 | X27009Y26300 666 | X26309Y27000 667 | X26859Y27300 668 | X26809Y27950 669 | X26259Y27950 670 | X25459Y27850 671 | X25109Y28250 672 | X24659Y28600 673 | X24609Y27850 674 | X24609Y26700 675 | X25709Y26500 676 | X25961Y24351 677 | X25609Y24000 678 | X26603Y23920 679 | X26859Y24100 680 | X24859Y22450 681 | X24709Y22150 682 | X25159Y21750 683 | X25559Y21750 684 | X27179Y21400 685 | X27278Y21100 686 | X23709Y21600 687 | X23709Y22650 688 | X23089Y22630 689 | X18278Y21100 690 | X18179Y21400 691 | X16559Y21750 692 | X16159Y21750 693 | X15709Y22150 694 | X15859Y22450 695 | X14709Y22650 696 | X14089Y22630 697 | X14709Y21600 698 | X15159Y23900 699 | X15015Y24594 700 | X15532Y25072 701 | X15322Y25287 702 | X15092Y25483 703 | X15509Y25835 704 | X15059Y26135 705 | X14549Y26625 706 | X14759Y26900 707 | X14309Y27150 708 | X14105Y26857 709 | X14659Y27450 710 | X15059Y27400 711 | X15009Y27700 712 | X15215Y27955 713 | X15609Y27850 714 | X16109Y28250 715 | X16459Y27850 716 | X17259Y27950 717 | X17809Y27950 718 | X17859Y27300 719 | X17309Y27000 720 | X16709Y26500 721 | X16209Y25485 722 | X16745Y25136 723 | X16959Y25350 724 | X16961Y24351 725 | X16609Y24000 726 | X17603Y23920 727 | X17859Y24100 728 | X17859Y25250 729 | X18309Y25950 730 | X18009Y26300 731 | X15609Y26700 732 | X15009Y28328 733 | X14359Y28600 734 | X14059Y28600 735 | X14059Y28300 736 | X15659Y28600 737 | X16859Y29300 738 | X17259Y30100 739 | X16984Y30275 740 | X15809Y31400 741 | X14859Y30450 742 | X14009Y30200 743 | X13909Y30500 744 | X13959Y33050 745 | X18259Y32700 746 | X25859Y29300 747 | X26259Y30100 748 | X25984Y30275 749 | X27259Y32700 750 | X31959Y33050 751 | X33809Y31400 752 | X32859Y30450 753 | X32009Y30200 754 | X31909Y30500 755 | X32059Y28600 756 | X32059Y28300 757 | X32359Y28600 758 | X33009Y28328 759 | X33215Y27955 760 | X33009Y27700 761 | X33059Y27400 762 | X32659Y27450 763 | X32309Y27150 764 | X32105Y26857 765 | X32549Y26625 766 | X32759Y26900 767 | X33059Y26135 768 | X33509Y25835 769 | X33092Y25483 770 | X33322Y25287 771 | X33532Y25072 772 | X33015Y24594 773 | X33159Y23900 774 | X31959Y24450 775 | X32089Y22630 776 | X32709Y22650 777 | X32709Y21600 778 | X33709Y22150 779 | X33859Y22450 780 | X34159Y21750 781 | X34559Y21750 782 | X36179Y21400 783 | X36278Y21100 784 | X35603Y23920 785 | X35859Y24100 786 | X34961Y24351 787 | X34609Y24000 788 | X34745Y25136 789 | X34959Y25350 790 | X34209Y25485 791 | X34709Y26500 792 | X35309Y27000 793 | X35859Y27300 794 | X35809Y27950 795 | X35259Y27950 796 | X34459Y27850 797 | X34109Y28250 798 | X33659Y28600 799 | X33609Y27850 800 | X33609Y26700 801 | X36009Y26300 802 | X36309Y25950 803 | X35859Y25250 804 | X34859Y29300 805 | X35259Y30100 806 | X34984Y30275 807 | X36259Y32700 808 | X40959Y33050 809 | X42809Y31400 810 | X41859Y30450 811 | X41009Y30200 812 | X40909Y30500 813 | X41059Y28600 814 | X41059Y28300 815 | X41359Y28600 816 | X42009Y28328 817 | X42215Y27955 818 | X42009Y27700 819 | X42059Y27400 820 | X41659Y27450 821 | X41309Y27150 822 | X41105Y26857 823 | X41549Y26625 824 | X41759Y26900 825 | X42059Y26135 826 | X42509Y25835 827 | X42092Y25483 828 | X42322Y25287 829 | X42532Y25072 830 | X42015Y24594 831 | X42159Y23900 832 | X40959Y24450 833 | X41089Y22630 834 | X41709Y22650 835 | X41709Y21600 836 | X42709Y22150 837 | X42859Y22450 838 | X43159Y21750 839 | X43559Y21750 840 | X45179Y21400 841 | X45278Y21100 842 | X44603Y23920 843 | X44859Y24100 844 | X43961Y24351 845 | X43609Y24000 846 | X43745Y25136 847 | X43959Y25350 848 | X43209Y25485 849 | X43709Y26500 850 | X44309Y27000 851 | X44859Y27300 852 | X44809Y27950 853 | X44259Y27950 854 | X43459Y27850 855 | X43109Y28250 856 | X42659Y28600 857 | X42609Y27850 858 | X42609Y26700 859 | X45009Y26300 860 | X45309Y25950 861 | X44859Y25250 862 | X43859Y29300 863 | X44259Y30100 864 | X43984Y30275 865 | X45259Y32700 866 | X45278Y38600 867 | X45179Y38900 868 | X49959Y24450 869 | X45259Y15200 870 | X43984Y12775 871 | X44259Y12600 872 | X43859Y11800 873 | X25709Y9000 874 | X24609Y9200 875 | X24609Y10350 876 | X25209Y7985 877 | X18309Y8450 878 | X18009Y8800 879 | X17859Y7750 880 | X13959Y24450 881 | T02 882 | X16209Y31550 883 | X25209Y31550 884 | X34209Y31550 885 | X43209Y31550 886 | X52209Y31550 887 | X52209Y49050 888 | X43209Y49050 889 | X34209Y49050 890 | X25209Y49050 891 | X16209Y49050 892 | X16209Y14050 893 | X25209Y14050 894 | X34209Y14050 895 | X43209Y14050 896 | X52209Y14050 897 | T03 898 | X53247Y13919 899 | X50971Y13919 900 | X44247Y13919 901 | X41971Y13919 902 | X35247Y13919 903 | X32971Y13919 904 | X26247Y13919 905 | X23971Y13919 906 | X17247Y13919 907 | X14971Y13919 908 | X14971Y31419 909 | X17247Y31419 910 | X23971Y31419 911 | X26247Y31419 912 | X32971Y31419 913 | X35247Y31419 914 | X41971Y31419 915 | X44247Y31419 916 | X50971Y31419 917 | X53247Y31419 918 | X53247Y48919 919 | X50971Y48919 920 | X44247Y48919 921 | X41971Y48919 922 | X35247Y48919 923 | X32971Y48919 924 | X26247Y48919 925 | X23971Y48919 926 | X17247Y48919 927 | X14971Y48919 928 | T04 929 | X13109Y49350 930 | X13109Y48350 931 | X13109Y47350 932 | X13109Y46350 933 | X13109Y45350 934 | X13109Y44350 935 | X13109Y43350 936 | X13109Y42350 937 | X13109Y41350 938 | X13109Y40350 939 | X13109Y39350 940 | X13109Y38350 941 | X19109Y38350 942 | X19109Y39350 943 | X19109Y40350 944 | X19109Y41350 945 | X19109Y42350 946 | X19109Y43350 947 | X19109Y44350 948 | X19109Y45350 949 | X19109Y46350 950 | X19109Y47350 951 | X19109Y48350 952 | X19109Y49350 953 | X22109Y49350 954 | X22109Y48350 955 | X22109Y47350 956 | X22109Y46350 957 | X22109Y45350 958 | X22109Y44350 959 | X22109Y43350 960 | X22109Y42350 961 | X22109Y41350 962 | X22109Y40350 963 | X22109Y39350 964 | X22109Y38350 965 | X28109Y38350 966 | X28109Y39350 967 | X28109Y40350 968 | X28109Y41350 969 | X28109Y42350 970 | X28109Y43350 971 | X28109Y44350 972 | X28109Y45350 973 | X28109Y46350 974 | X28109Y47350 975 | X28109Y48350 976 | X28109Y49350 977 | X31109Y49350 978 | X31109Y48350 979 | X31109Y47350 980 | X31109Y46350 981 | X31109Y45350 982 | X31109Y44350 983 | X31109Y43350 984 | X31109Y42350 985 | X31109Y41350 986 | X31109Y40350 987 | X31109Y39350 988 | X31109Y38350 989 | X37109Y38350 990 | X37109Y39350 991 | X37109Y40350 992 | X37109Y41350 993 | X37109Y42350 994 | X37109Y43350 995 | X37109Y44350 996 | X37109Y45350 997 | X37109Y46350 998 | X37109Y47350 999 | X37109Y48350 1000 | X37109Y49350 1001 | X40109Y49350 1002 | X40109Y48350 1003 | X40109Y47350 1004 | X40109Y46350 1005 | X40109Y45350 1006 | X40109Y44350 1007 | X40109Y43350 1008 | X40109Y42350 1009 | X40109Y41350 1010 | X40109Y40350 1011 | X40109Y39350 1012 | X40109Y38350 1013 | X46109Y38350 1014 | X46109Y39350 1015 | X46109Y40350 1016 | X46109Y41350 1017 | X46109Y42350 1018 | X46109Y43350 1019 | X46109Y44350 1020 | X46109Y45350 1021 | X46109Y46350 1022 | X46109Y47350 1023 | X46109Y48350 1024 | X46109Y49350 1025 | X49109Y49350 1026 | X49109Y48350 1027 | X49109Y47350 1028 | X49109Y46350 1029 | X49109Y45350 1030 | X49109Y44350 1031 | X49109Y43350 1032 | X49109Y42350 1033 | X49109Y41350 1034 | X49109Y40350 1035 | X49109Y39350 1036 | X49109Y38350 1037 | X55109Y38350 1038 | X55109Y39350 1039 | X55109Y40350 1040 | X55109Y41350 1041 | X55109Y42350 1042 | X55109Y43350 1043 | X55109Y44350 1044 | X55109Y45350 1045 | X55109Y46350 1046 | X55109Y47350 1047 | X55109Y48350 1048 | X55109Y49350 1049 | X55109Y31850 1050 | X55109Y30850 1051 | X55109Y29850 1052 | X55109Y28850 1053 | X55109Y27850 1054 | X55109Y26850 1055 | X55109Y25850 1056 | X55109Y24850 1057 | X55109Y23850 1058 | X55109Y22850 1059 | X55109Y21850 1060 | X55109Y20850 1061 | X49109Y20850 1062 | X49109Y21850 1063 | X49109Y22850 1064 | X49109Y23850 1065 | X49109Y24850 1066 | X49109Y25850 1067 | X49109Y26850 1068 | X49109Y27850 1069 | X49109Y28850 1070 | X49109Y29850 1071 | X49109Y30850 1072 | X49109Y31850 1073 | X46109Y31850 1074 | X46109Y30850 1075 | X46109Y29850 1076 | X46109Y28850 1077 | X46109Y27850 1078 | X46109Y26850 1079 | X46109Y25850 1080 | X46109Y24850 1081 | X46109Y23850 1082 | X46109Y22850 1083 | X46109Y21850 1084 | X46109Y20850 1085 | X40109Y20850 1086 | X40109Y21850 1087 | X40109Y22850 1088 | X40109Y23850 1089 | X40109Y24850 1090 | X40109Y25850 1091 | X40109Y26850 1092 | X40109Y27850 1093 | X40109Y28850 1094 | X40109Y29850 1095 | X40109Y30850 1096 | X40109Y31850 1097 | X37109Y31850 1098 | X37109Y30850 1099 | X37109Y29850 1100 | X37109Y28850 1101 | X37109Y27850 1102 | X37109Y26850 1103 | X37109Y25850 1104 | X37109Y24850 1105 | X37109Y23850 1106 | X37109Y22850 1107 | X37109Y21850 1108 | X37109Y20850 1109 | X31109Y20850 1110 | X31109Y21850 1111 | X31109Y22850 1112 | X31109Y23850 1113 | X31109Y24850 1114 | X31109Y25850 1115 | X31109Y26850 1116 | X31109Y27850 1117 | X31109Y28850 1118 | X31109Y29850 1119 | X31109Y30850 1120 | X31109Y31850 1121 | X28109Y31850 1122 | X28109Y30850 1123 | X28109Y29850 1124 | X28109Y28850 1125 | X28109Y27850 1126 | X28109Y26850 1127 | X28109Y25850 1128 | X28109Y24850 1129 | X28109Y23850 1130 | X28109Y22850 1131 | X28109Y21850 1132 | X28109Y20850 1133 | X22109Y20850 1134 | X22109Y21850 1135 | X22109Y22850 1136 | X22109Y23850 1137 | X22109Y24850 1138 | X22109Y25850 1139 | X22109Y26850 1140 | X22109Y27850 1141 | X22109Y28850 1142 | X22109Y29850 1143 | X22109Y30850 1144 | X22109Y31850 1145 | X19109Y31850 1146 | X19109Y30850 1147 | X19109Y29850 1148 | X19109Y28850 1149 | X19109Y27850 1150 | X19109Y26850 1151 | X19109Y25850 1152 | X19109Y24850 1153 | X19109Y23850 1154 | X19109Y22850 1155 | X19109Y21850 1156 | X19109Y20850 1157 | X13109Y20850 1158 | X13109Y21850 1159 | X13109Y22850 1160 | X13109Y23850 1161 | X13109Y24850 1162 | X13109Y25850 1163 | X13109Y26850 1164 | X13109Y27850 1165 | X13109Y28850 1166 | X13109Y29850 1167 | X13109Y30850 1168 | X13109Y31850 1169 | X13109Y14350 1170 | X13109Y13350 1171 | X13109Y12350 1172 | X13109Y11350 1173 | X13109Y10350 1174 | X13109Y9350 1175 | X13109Y8350 1176 | X13109Y7350 1177 | X13109Y6350 1178 | X13109Y5350 1179 | X13109Y4350 1180 | X13109Y3350 1181 | X19109Y3350 1182 | X19109Y4350 1183 | X19109Y5350 1184 | X19109Y6350 1185 | X19109Y7350 1186 | X19109Y8350 1187 | X19109Y9350 1188 | X19109Y10350 1189 | X19109Y11350 1190 | X19109Y12350 1191 | X19109Y13350 1192 | X19109Y14350 1193 | X22109Y14350 1194 | X22109Y13350 1195 | X22109Y12350 1196 | X22109Y11350 1197 | X22109Y10350 1198 | X22109Y9350 1199 | X22109Y8350 1200 | X22109Y7350 1201 | X22109Y6350 1202 | X22109Y5350 1203 | X22109Y4350 1204 | X22109Y3350 1205 | X28109Y3350 1206 | X28109Y4350 1207 | X28109Y5350 1208 | X28109Y6350 1209 | X28109Y7350 1210 | X28109Y8350 1211 | X28109Y9350 1212 | X28109Y10350 1213 | X28109Y11350 1214 | X28109Y12350 1215 | X28109Y13350 1216 | X28109Y14350 1217 | X31109Y14350 1218 | X31109Y13350 1219 | X31109Y12350 1220 | X31109Y11350 1221 | X31109Y10350 1222 | X31109Y9350 1223 | X31109Y8350 1224 | X31109Y7350 1225 | X31109Y6350 1226 | X31109Y5350 1227 | X31109Y4350 1228 | X31109Y3350 1229 | X37109Y3350 1230 | X37109Y4350 1231 | X37109Y5350 1232 | X37109Y6350 1233 | X37109Y7350 1234 | X37109Y8350 1235 | X37109Y9350 1236 | X37109Y10350 1237 | X37109Y11350 1238 | X37109Y12350 1239 | X37109Y13350 1240 | X37109Y14350 1241 | X40109Y14350 1242 | X40109Y13350 1243 | X40109Y12350 1244 | X40109Y11350 1245 | X40109Y10350 1246 | X40109Y9350 1247 | X40109Y8350 1248 | X40109Y7350 1249 | X40109Y6350 1250 | X40109Y5350 1251 | X40109Y4350 1252 | X40109Y3350 1253 | X46109Y3350 1254 | X46109Y4350 1255 | X46109Y5350 1256 | X46109Y6350 1257 | X46109Y7350 1258 | X46109Y8350 1259 | X46109Y9350 1260 | X46109Y10350 1261 | X46109Y11350 1262 | X46109Y12350 1263 | X46109Y13350 1264 | X46109Y14350 1265 | X49109Y14350 1266 | X49109Y13350 1267 | X49109Y12350 1268 | X49109Y11350 1269 | X49109Y10350 1270 | X49109Y9350 1271 | X49109Y8350 1272 | X49109Y7350 1273 | X49109Y6350 1274 | X49109Y5350 1275 | X49109Y4350 1276 | X49109Y3350 1277 | X55109Y3350 1278 | X55109Y4350 1279 | X55109Y5350 1280 | X55109Y6350 1281 | X55109Y7350 1282 | X55109Y8350 1283 | X55109Y9350 1284 | X55109Y10350 1285 | X55109Y11350 1286 | X55109Y12350 1287 | X55109Y13350 1288 | X55109Y14350 1289 | T05 1290 | X12491Y3350 1291 | X12491Y4350 1292 | X12491Y5350 1293 | X12491Y6350 1294 | X12491Y7350 1295 | X12491Y8350 1296 | X12491Y9350 1297 | X12491Y10350 1298 | X12491Y11350 1299 | X12491Y12350 1300 | X12491Y13350 1301 | X12491Y14350 1302 | X19727Y14350 1303 | X19727Y13350 1304 | X19727Y12350 1305 | X19727Y11350 1306 | X19727Y10350 1307 | X19727Y9350 1308 | X19727Y8350 1309 | X19727Y7350 1310 | X19727Y6350 1311 | X19727Y5350 1312 | X19727Y4350 1313 | X19727Y3350 1314 | X21491Y3350 1315 | X21491Y4350 1316 | X21491Y5350 1317 | X21491Y6350 1318 | X21491Y7350 1319 | X21491Y8350 1320 | X21491Y9350 1321 | X21491Y10350 1322 | X21491Y11350 1323 | X21491Y12350 1324 | X21491Y13350 1325 | X21491Y14350 1326 | X28727Y14350 1327 | X28727Y13350 1328 | X28727Y12350 1329 | X28727Y11350 1330 | X28727Y10350 1331 | X28727Y9350 1332 | X28727Y8350 1333 | X28727Y7350 1334 | X28727Y6350 1335 | X28727Y5350 1336 | X28727Y4350 1337 | X28727Y3350 1338 | X30491Y3350 1339 | X30491Y4350 1340 | X30491Y5350 1341 | X30491Y6350 1342 | X30491Y7350 1343 | X30491Y8350 1344 | X30491Y9350 1345 | X30491Y10350 1346 | X30491Y11350 1347 | X30491Y12350 1348 | X30491Y13350 1349 | X30491Y14350 1350 | X37727Y14350 1351 | X37727Y13350 1352 | X37727Y12350 1353 | X37727Y11350 1354 | X37727Y10350 1355 | X37727Y9350 1356 | X37727Y8350 1357 | X37727Y7350 1358 | X37727Y6350 1359 | X37727Y5350 1360 | X37727Y4350 1361 | X37727Y3350 1362 | X39491Y3350 1363 | X39491Y4350 1364 | X39491Y5350 1365 | X39491Y6350 1366 | X39491Y7350 1367 | X39491Y8350 1368 | X39491Y9350 1369 | X39491Y10350 1370 | X39491Y11350 1371 | X39491Y12350 1372 | X39491Y13350 1373 | X39491Y14350 1374 | X46727Y14350 1375 | X46727Y13350 1376 | X46727Y12350 1377 | X46727Y11350 1378 | X46727Y10350 1379 | X46727Y9350 1380 | X46727Y8350 1381 | X46727Y7350 1382 | X46727Y6350 1383 | X46727Y5350 1384 | X46727Y4350 1385 | X46727Y3350 1386 | X48491Y3350 1387 | X48491Y4350 1388 | X48491Y5350 1389 | X48491Y6350 1390 | X48491Y7350 1391 | X48491Y8350 1392 | X48491Y9350 1393 | X48491Y10350 1394 | X48491Y11350 1395 | X48491Y12350 1396 | X48491Y13350 1397 | X48491Y14350 1398 | X55727Y14350 1399 | X55727Y13350 1400 | X55727Y12350 1401 | X55727Y11350 1402 | X55727Y10350 1403 | X55727Y9350 1404 | X55727Y8350 1405 | X55727Y7350 1406 | X55727Y6350 1407 | X55727Y5350 1408 | X55727Y4350 1409 | X55727Y3350 1410 | X55727Y20850 1411 | X55727Y21850 1412 | X55727Y22850 1413 | X55727Y23850 1414 | X55727Y24850 1415 | X55727Y25850 1416 | X55727Y26850 1417 | X55727Y27850 1418 | X55727Y28850 1419 | X55727Y29850 1420 | X55727Y30850 1421 | X55727Y31850 1422 | X48491Y31850 1423 | X48491Y30850 1424 | X48491Y29850 1425 | X48491Y28850 1426 | X48491Y27850 1427 | X48491Y26850 1428 | X48491Y25850 1429 | X48491Y24850 1430 | X48491Y23850 1431 | X48491Y22850 1432 | X48491Y21850 1433 | X48491Y20850 1434 | X46727Y20850 1435 | X46727Y21850 1436 | X46727Y22850 1437 | X46727Y23850 1438 | X46727Y24850 1439 | X46727Y25850 1440 | X46727Y26850 1441 | X46727Y27850 1442 | X46727Y28850 1443 | X46727Y29850 1444 | X46727Y30850 1445 | X46727Y31850 1446 | X39491Y31850 1447 | X39491Y30850 1448 | X39491Y29850 1449 | X39491Y28850 1450 | X39491Y27850 1451 | X39491Y26850 1452 | X39491Y25850 1453 | X39491Y24850 1454 | X39491Y23850 1455 | X39491Y22850 1456 | X39491Y21850 1457 | X39491Y20850 1458 | X37727Y20850 1459 | X37727Y21850 1460 | X37727Y22850 1461 | X37727Y23850 1462 | X37727Y24850 1463 | X37727Y25850 1464 | X37727Y26850 1465 | X37727Y27850 1466 | X37727Y28850 1467 | X37727Y29850 1468 | X37727Y30850 1469 | X37727Y31850 1470 | X30491Y31850 1471 | X30491Y30850 1472 | X30491Y29850 1473 | X30491Y28850 1474 | X30491Y27850 1475 | X30491Y26850 1476 | X30491Y25850 1477 | X30491Y24850 1478 | X30491Y23850 1479 | X30491Y22850 1480 | X30491Y21850 1481 | X30491Y20850 1482 | X28727Y20850 1483 | X28727Y21850 1484 | X28727Y22850 1485 | X28727Y23850 1486 | X28727Y24850 1487 | X28727Y25850 1488 | X28727Y26850 1489 | X28727Y27850 1490 | X28727Y28850 1491 | X28727Y29850 1492 | X28727Y30850 1493 | X28727Y31850 1494 | X21491Y31850 1495 | X21491Y30850 1496 | X21491Y29850 1497 | X21491Y28850 1498 | X21491Y27850 1499 | X21491Y26850 1500 | X21491Y25850 1501 | X21491Y24850 1502 | X21491Y23850 1503 | X21491Y22850 1504 | X21491Y21850 1505 | X21491Y20850 1506 | X19727Y20850 1507 | X19727Y21850 1508 | X19727Y22850 1509 | X19727Y23850 1510 | X19727Y24850 1511 | X19727Y25850 1512 | X19727Y26850 1513 | X19727Y27850 1514 | X19727Y28850 1515 | X19727Y29850 1516 | X19727Y30850 1517 | X19727Y31850 1518 | X12491Y31850 1519 | X12491Y30850 1520 | X12491Y29850 1521 | X12491Y28850 1522 | X12491Y27850 1523 | X12491Y26850 1524 | X12491Y25850 1525 | X12491Y24850 1526 | X12491Y23850 1527 | X12491Y22850 1528 | X12491Y21850 1529 | X12491Y20850 1530 | X12491Y38350 1531 | X12491Y39350 1532 | X12491Y40350 1533 | X12491Y41350 1534 | X12491Y42350 1535 | X12491Y43350 1536 | X12491Y44350 1537 | X12491Y45350 1538 | X12491Y46350 1539 | X12491Y47350 1540 | X12491Y48350 1541 | X12491Y49350 1542 | X19727Y49350 1543 | X19727Y48350 1544 | X19727Y47350 1545 | X19727Y46350 1546 | X19727Y45350 1547 | X19727Y44350 1548 | X19727Y43350 1549 | X19727Y42350 1550 | X19727Y41350 1551 | X19727Y40350 1552 | X19727Y39350 1553 | X19727Y38350 1554 | X21491Y38350 1555 | X21491Y39350 1556 | X21491Y40350 1557 | X21491Y41350 1558 | X21491Y42350 1559 | X21491Y43350 1560 | X21491Y44350 1561 | X21491Y45350 1562 | X21491Y46350 1563 | X21491Y47350 1564 | X21491Y48350 1565 | X21491Y49350 1566 | X28727Y49350 1567 | X28727Y48350 1568 | X28727Y47350 1569 | X28727Y46350 1570 | X28727Y45350 1571 | X28727Y44350 1572 | X28727Y43350 1573 | X28727Y42350 1574 | X28727Y41350 1575 | X28727Y40350 1576 | X28727Y39350 1577 | X28727Y38350 1578 | X30491Y38350 1579 | X30491Y39350 1580 | X30491Y40350 1581 | X30491Y41350 1582 | X30491Y42350 1583 | X30491Y43350 1584 | X30491Y44350 1585 | X30491Y45350 1586 | X30491Y46350 1587 | X30491Y47350 1588 | X30491Y48350 1589 | X30491Y49350 1590 | X37727Y49350 1591 | X37727Y48350 1592 | X37727Y47350 1593 | X37727Y46350 1594 | X37727Y45350 1595 | X37727Y44350 1596 | X37727Y43350 1597 | X37727Y42350 1598 | X37727Y41350 1599 | X37727Y40350 1600 | X37727Y39350 1601 | X37727Y38350 1602 | X39491Y38350 1603 | X39491Y39350 1604 | X39491Y40350 1605 | X39491Y41350 1606 | X39491Y42350 1607 | X39491Y43350 1608 | X39491Y44350 1609 | X39491Y45350 1610 | X39491Y46350 1611 | X39491Y47350 1612 | X39491Y48350 1613 | X39491Y49350 1614 | X46727Y49350 1615 | X46727Y48350 1616 | X46727Y47350 1617 | X46727Y46350 1618 | X46727Y45350 1619 | X46727Y44350 1620 | X46727Y43350 1621 | X46727Y42350 1622 | X46727Y41350 1623 | X46727Y40350 1624 | X46727Y39350 1625 | X46727Y38350 1626 | X48491Y38350 1627 | X48491Y39350 1628 | X48491Y40350 1629 | X48491Y41350 1630 | X48491Y42350 1631 | X48491Y43350 1632 | X48491Y44350 1633 | X48491Y45350 1634 | X48491Y46350 1635 | X48491Y47350 1636 | X48491Y48350 1637 | X48491Y49350 1638 | X55727Y49350 1639 | X55727Y48350 1640 | X55727Y47350 1641 | X55727Y46350 1642 | X55727Y45350 1643 | X55727Y44350 1644 | X55727Y43350 1645 | X55727Y42350 1646 | X55727Y41350 1647 | X55727Y40350 1648 | X55727Y39350 1649 | X55727Y38350 1650 | M30 1651 | -------------------------------------------------------------------------------- /Hardware/v20/Production/SparkFun_Pro_Micro-Panel.dri: -------------------------------------------------------------------------------- 1 | Generated by EAGLE CAM Processor 9.5.1 2 | 3 | Drill Station Info File: C:/Users/Poole/Documents/GitHub/Pro_Micro/Hardware/Production/SparkFun_Pro_Micro-Panel.dri 4 | 5 | Date : 11/8/2019 2:11 PM 6 | Drills : generated 7 | Device : Excellon drill station, coordinate format 2.4 inch 8 | 9 | Parameter settings: 10 | 11 | Tolerance Drill + : 0.00 % 12 | Tolerance Drill - : 0.00 % 13 | Rotate : no 14 | Mirror : no 15 | Optimize : yes 16 | Auto fit : yes 17 | OffsetX : 0inch 18 | OffsetY : 0inch 19 | Layers : Drills Holes 20 | 21 | Drill File Info: 22 | 23 | Data Mode : Absolute 24 | Units : 1/10000 Inch 25 | 26 | Drills used: 27 | 28 | Code Size used 29 | 30 | T01 0.0120inch 870 31 | T02 0.0150inch 15 32 | T03 0.0256inch 30 33 | T04 0.0335inch 360 34 | T05 0.0669inch 360 35 | 36 | Total number of drills: 1635 37 | 38 | Plotfiles: 39 | 40 | C:/Users/Poole/Documents/GitHub/Pro_Micro/Hardware/Production/SparkFun_Pro_Micro-Panel.TXT 41 | -------------------------------------------------------------------------------- /Hardware/v20/Production/SparkFun_Pro_Micro-Panel.gpi: -------------------------------------------------------------------------------- 1 | Generated by EAGLE CAM Processor 9.5.1 2 | 3 | Photoplotter Info File: C:/Users/Poole/Documents/GitHub/Pro_Micro/Hardware/Production/SparkFun_Pro_Micro-Panel.gpi 4 | 5 | Date : 11/8/2019 2:10 PM 6 | Plotfile : C:/Users/Poole/Documents/GitHub/Pro_Micro/Hardware/Production/SparkFun_Pro_Micro-Panel.GTP 7 | Apertures : generated: 8 | Device : Gerber RS-274-X photoplotter, coordinate format 2.5 inch 9 | 10 | Parameter settings: 11 | 12 | Emulate Apertures : no 13 | Tolerance Draw + : 0.00 % 14 | Tolerance Draw - : 0.00 % 15 | Tolerance Flash + : 0.00 % 16 | Tolerance Flash - : 0.00 % 17 | Rotate : no 18 | Mirror : no 19 | Optimize : yes 20 | Auto fit : yes 21 | OffsetX : 0inch 22 | OffsetY : 0inch 23 | 24 | Plotfile Info: 25 | 26 | Coordinate Format : 2.5 27 | Coordinate Units : Inch 28 | Data Mode : Absolute 29 | Zero Suppression : None 30 | End Of Block : * 31 | 32 | Apertures used: 33 | 34 | Code Shape Size used 35 | 36 | D10 square 0.0236inch 240 37 | D11 square 0.0236inch 270 38 | D12 draw 0.0118inch 90 39 | D13 draw 0.0100inch 660 40 | D14 rectangle 0.0315inch x 0.0472inch 30 41 | D15 rectangle 0.0248inch x 0.0327inch 30 42 | D16 rectangle 0.0472inch x 0.0217inch 75 43 | D17 rectangle 0.0394inch x 0.0433inch 60 44 | D18 rectangle 0.0394inch x 0.0354inch 60 45 | D19 rectangle 0.0295inch x 0.0276inch 60 46 | D20 rectangle 0.0472inch x 0.0787inch 30 47 | D21 rectangle 0.0236inch x 0.0531inch 60 48 | D22 rectangle 0.0118inch x 0.0394inch 120 49 | D23 rectangle 0.0236inch x 0.0394inch 60 50 | D24 draw 0.0004inch 13330 51 | 52 | -------------------------------------------------------------------------------- /Hardware/v20/Production/SparkFun_Pro_Micro-Panel.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Pro_Micro/df836f3bf2955c4f1199a852f618d2ac80866d47/Hardware/v20/Production/SparkFun_Pro_Micro-Panel.zip -------------------------------------------------------------------------------- /Hardware/v20/Production/ordering_instructions.txt: -------------------------------------------------------------------------------- 1 | panel size, 133x196mm 2 | PCB thickness, 1.6mm 3 | number of layers, 2 4 | soldermask color, Red 5 | silkscreen color, White 6 | oz copper, 1oz 7 | finish, HASL lead free 8 | stencils, top 9 | pcs per panel, 20 10 | min trace width, 0.152400mm / 0.006000in 11 | min drill size, 0.304800mm / 0.012000in 12 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | SparkFun License Information 2 | ============================ 3 | 4 | SparkFun uses two different licenses for our files — one for hardware and one for code. 5 | 6 | Hardware 7 | --------- 8 | 9 | **SparkFun hardware is released under [Creative Commons Share-alike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/).** 10 | 11 | Note: This is a human-readable summary of (and not a substitute for) the [license](http://creativecommons.org/licenses/by-sa/4.0/legalcode). 12 | 13 | You are free to: 14 | 15 | Share — copy and redistribute the material in any medium or format 16 | Adapt — remix, transform, and build upon the material 17 | for any purpose, even commercially. 18 | The licensor cannot revoke these freedoms as long as you follow the license terms. 19 | Under the following terms: 20 | 21 | Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 22 | ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. 23 | No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 24 | Notices: 25 | 26 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. 27 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. 28 | 29 | 30 | Code 31 | -------- 32 | 33 | **SparkFun code, firmware, and software is released under the MIT License(http://opensource.org/licenses/MIT).** 34 | 35 | The MIT License (MIT) 36 | 37 | Copyright (c) 2016 SparkFun Electronics 38 | 39 | Permission is hereby granted, free of charge, to any person obtaining a copy 40 | of this software and associated documentation files (the "Software"), to deal 41 | in the Software without restriction, including without limitation the rights 42 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 43 | copies of the Software, and to permit persons to whom the Software is 44 | furnished to do so, subject to the following conditions: 45 | 46 | The above copyright notice and this permission notice shall be included in all 47 | copies or substantial portions of the Software. 48 | 49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 50 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 51 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 52 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 53 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 54 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 55 | SOFTWARE. 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SparkFun Pro Micro and Qwiic Pro Micro USB-C 2 | ======================================== 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Pro Micro - 3.3V/8MHz
[DEV-12587]
Pro Micro - 5V/16MHz
[DEV-12640]
Qwiic Pro Micro - USB-C (ATmega32U4)
[DEV-15795]
16 | 17 | The Pro Micro is a microcontroller with an ATMega32U4 IC on board. The USB transceiver is inside the 32U4, adding USB connectivity on-board without external USB interfaces. The Pro Micro comes in both a 3.3V and 5V version. For users using the Qwiic Pro Micro USB-C, the board includes a jumper to select either 5V or 3.3V, reset button, castellated pads, and Qwiic connector. The USB connector and voltage regulator are also different. 18 | 19 | Repository Contents 20 | ------------------- 21 | * **/Documentation** - Data sheets (.pdf and .svg) 22 | * **/Firmware** - Arduino example code used in the hookup guide 23 | * **/Hardware** - All Eagle design files (.brd, .sch, .STL) 24 | * **/Production** - Test bed files and production panel files 25 | 26 | Documentation 27 | -------------- 28 | * **Hookup Guide** 29 | * **[Pro Micro & Fio V3](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide)** - Basic hookup guide for the Pro Micro (ATmega32U4) 3.3V and 5V versions as well as the Fio V3. 30 | * **[Qwiic Pro Micro USB-C](https://learn.sparkfun.com/tutorials/qwiic-pro-micro-usb-c-atmega32u4-hookup-guide)** - Basic hookup guide for the Qwiic Pro Micro. 31 | * **[SparkFun Arduino Board Addon](https://github.com/sparkfun/Arduino_Boards/)** - Arduino board addon for Qwiic Pro Micro. 32 | * **[SparkFun Graphical Datasheets](https://github.com/sparkfun/Graphical_Datasheets)** - Graphical datasheets for various SparkFun products. 33 | * **[SparkFun Fritzing repo](https://github.com/sparkfun/Fritzing_Parts)** - Fritzing diagrams for SparkFun products. 34 | 35 | Product Versions 36 | ---------------- 37 | * [DEV-15795](https://www.sparkfun.com/products/15795)- 5V/16MHz version with Qwiic connector and USB C 38 | * [DEV-12640](https://www.sparkfun.com/products/12640)- 5V/16MHz version 39 | * [DEV-12587](https://www.sparkfun.com/products/12587)- 3.3V/8MHz version 40 | 41 | License Information 42 | ------------------- 43 | This product is _**open source**_! 44 | 45 | Please review the LICENSE.md file for license information. 46 | 47 | If you have any questions or concerns on licensing, please contact technical support on our [SparkFun forums](https://forum.sparkfun.com/viewforum.php?f=152). 48 | 49 | Distributed as-is; no warranty is given. 50 | 51 | - Your friends at SparkFun. 52 | 53 | __ 54 | --------------------------------------------------------------------------------