|  | 
| 1 |  | -# SparkFun Arduino Boards w/ XInput [](https://github.com/dmadison/ArduinoXInput_Sparkfun/actions?query=workflow%3Abuild) | 
|  | 1 | +# SparkFun Arduino Boards w/ XInput | 
|  | 2 | +[](https://github.com/dmadison/ArduinoXInput_Sparkfun/actions?query=workflow%3Abuild) | 
| 2 | 3 | 
 | 
| 3 |  | -This repository contains support for the following SparkFun Arduino-compatible development boards, modified to work as XInput devices. Originally forked from [the SparkFun repo](https://github.com/sparkfun/Arduino_Boards). | 
|  | 4 | +This repository contains support for the SparkFun Arduino-compatible development boards, modified to work as XInput devices. Originally forked from [the SparkFun repo](https://github.com/sparkfun/Arduino_Boards). | 
| 4 | 5 | 
 | 
| 5 | 6 | These boards are meant to be used in conjunction with the [ArduinoXInput library](https://github.com/dmadison/ArduinoXInput). | 
| 6 | 7 | 
 | 
| 7 |  | -## Included Boards | 
|  | 8 | +## Automated Installation | 
| 8 | 9 | 
 | 
| 9 |  | -* [MaKey MaKey](https://www.sparkfun.com/products/11511) | 
| 10 |  | -* [Pro Micro 3.3V](https://www.sparkfun.com/products/10999) | 
| 11 |  | -* [Pro Micro 5V](https://www.sparkfun.com/products/11098) | 
| 12 |  | -* [Fio v3](https://www.sparkfun.com/products/11520) | 
| 13 |  | -* [Qduino Mini](https://www.sparkfun.com/products/13614) | 
| 14 |  | -* [LilyPad USB Plus](https://www.sparkfun.com/products/14346) | 
|  | 10 | +Follow the official instructions for [adding third party boards](https://support.arduino.cc/hc/en-us/articles/360016466340-Add-or-remove-third-party-boards-in-Boards-Manager) and [adding boards to the Arduino IDE](https://support.arduino.cc/hc/en-us/articles/360016119519-Add-boards-to-Arduino-IDE). | 
|  | 11 | + | 
|  | 12 | +Add the following line to the "Additional Boards Manager URLs" list: | 
|  | 13 | +``` | 
|  | 14 | +https://raw.githubusercontent.com/dmadison/ArduinoXInput_Boards/master/package_dmadison_xinput_index.json | 
|  | 15 | +``` | 
|  | 16 | + | 
|  | 17 | +If you've done this correctly, the XInput boards packages will be available within the Boards Manager. Install the "XInput AVR Boards" package as well as the "XInput SparkFun Boards" package. Note that the core "XInput AVR Boards" package is required for the SparkFun boards to work. | 
| 15 | 18 | 
 | 
| 16 |  | -## Installation | 
|  | 19 | +## Manual Installation | 
| 17 | 20 | <pre> | 
| 18 |  | -└───Arduino Installation | 
| 19 |  | -	├───drivers | 
| 20 |  | -	├───examples | 
| 21 |  | -	├───hardware | 
| 22 |  | -	│ ├───arduino | 
| 23 |  | -	│ ├───tools | 
| 24 |  | -	│ ├───<b>xinput</b> | 
| 25 |  | -	│ └───<b>xinput_sparkfun | 
| 26 |  | -	│ └───avr | 
| 27 |  | -	│ ├───bootloaders | 
| 28 |  | -	│ ├───cores | 
| 29 |  | -	│ ├───libraries | 
| 30 |  | -	│ └───variants</b> | 
| 31 |  | -	├───java | 
| 32 |  | -	├───lib | 
| 33 |  | -	├───libraries | 
| 34 |  | -	├───reference | 
| 35 |  | -	├───tools | 
| 36 |  | -	└───tools-builder | 
|  | 21 | +└───Arduino App Data Folder | 
|  | 22 | + ├───cache | 
|  | 23 | + ├───logs | 
|  | 24 | + ├───staging | 
|  | 25 | + └───packages | 
|  | 26 | + ├───arduino | 
|  | 27 | + └───<b>xinput</b> | 
|  | 28 | + └───<b>xinput_sparkfun | 
|  | 29 | + └───hardware | 
|  | 30 | + └───avr | 
|  | 31 | + └───{version} | 
|  | 32 | + ├───bootloaders | 
|  | 33 | + ├───libraries | 
|  | 34 | + └───variants</b> | 
| 37 | 35 | </pre> | 
| 38 | 36 | 
 | 
| 39 |  | -To install, you first need to install the latest version of the Arduino XInput AVR Core, [which can be found here](https://github.com/dmadison/ArduinoXInput_AVR). Follow [the installation instructions](https://github.com/dmadison/ArduinoXInput_AVR/#installation) provided in that repository and verify that those boards are installed correctly before proceeding. | 
|  | 37 | +To install manually you will need to find the Arduino IDE's application data folder. On Windows this is located in `%APPDATA%\..\Local\Arduino15`. | 
| 40 | 38 | 
 | 
| 41 |  | -This boards package uses the same process for installation. Download [the latest version](../../releases/latest) of this repository to your PC. Navigate to the directory containing your Arduino installation, and then open up the 'hardware' folder. Extract the contents of the .zip file into this directory. You should have a new 'xinput_sparkfun' folder with an 'avr' folder inside of it, containing the files from this repository (see the tree view above). | 
|  | 39 | +You will need to create the necessary folders in the "packages" directory: `xinput_sparkfun/hardware/avr/{version}`, where `{version}` is the current [semantic version number](https://en.wikipedia.org/wiki/Software_versioning) of the repository (e.g. "1.0.0"). The subfolder of this repository containing the boards files should then be copied into this folder. See the tree view above for reference. | 
| 42 | 40 | 
 | 
| 43 |  | -Restart the Arduino IDE. If the SparkFun boards are installed correctly, you should see a new collection of "SparkFun AVR Boards w/ XInput" in the `Tools -> Boards` menu. | 
|  | 41 | +You will also need to copy the boards files from the [Arduino XInput AVR core](https://github.com/dmadison/ArduinoXInput_AVR). Follow the instructions in the README. The two folders, `xinput` and `xinput_sparkfun`, should live next to each-other in the "packages" directory. | 
| 44 | 42 | 
 | 
| 45 |  | -To uninstall, delete the 'xinput_sparkfun' folder in the 'hardware' directory, and then restart the Arduino IDE. | 
|  | 43 | +After you have copied the files, restart the Arduino IDE. If the SparkFun boards files are installed correctly, you should see a new collection of "SparkFun AVR Boards w/ XInput" in the `Tools -> Boards` menu. If you get an error while compiling, make sure the XInput AVR core is installed properly. | 
| 46 | 44 | 
 | 
| 47 |  | -## Upload Warning and Instructions | 
|  | 45 | +To uninstall, delete both "xinput" folders and then restart the Arduino IDE. | 
| 48 | 46 | 
 | 
| 49 |  | -**!!!!!!! IMPORTANT !!!!!!!** | 
|  | 47 | +## Upload Warning and Instructions | 
| 50 | 48 | 
 | 
| 51 | 49 | Due to the nature of how the XInput USB mode works, Arduinos that have XInput sketches on them will ***not*** automatically reset when programmed by the IDE! You will need to reset the board by hand every time you upload new code. | 
| 52 | 50 | 
 | 
| 53 | 51 | [Full instructions for uploading are provided in the AVR Core repository](https://github.com/dmadison/ArduinoXInput_AVR/#upload-warning-and-instructions). | 
| 54 | 52 | 
 | 
| 55 |  | -**Do *not* upload XInput sketches to your Arduino unless you know how to reset it!** Otherwise you will not be able to program it anymore and you'll have to [reflash the bootloader](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader/all) with an external programmer. | 
|  | 53 | +**Do *not* upload XInput sketches to your Arduino unless you know how to reset it!** Otherwise you will not be able to program it anymore and you'll have to remove the XInput sketch by flashing the board with an external programmer. | 
|  | 54 | + | 
|  | 55 | +## Included Boards | 
|  | 56 | + | 
|  | 57 | +All of the following boards make use of the [Arduino XInput AVR core](https://github.com/dmadison/ArduinoXInput_AVR): | 
|  | 58 | + | 
|  | 59 | +* [MaKey MaKey](https://www.sparkfun.com/products/11511) | 
|  | 60 | +* [Pro Micro 3.3V](https://www.sparkfun.com/products/10999) | 
|  | 61 | +* [Pro Micro 5V](https://www.sparkfun.com/products/11098) | 
|  | 62 | +* [Fio v3](https://www.sparkfun.com/products/11520) | 
|  | 63 | +* [Qduino Mini](https://www.sparkfun.com/products/13614) | 
|  | 64 | +* [LilyPad USB Plus](https://www.sparkfun.com/products/14346) | 
|  | 65 | + | 
|  | 66 | +Other SparkFun boards may be theoretically compatible with XInput, but are not yet available because the XInput USB modifications have not been ported to their architecture. | 
0 commit comments