From fc2a9f78618cebddcfa59d1d368b5f41e7be1628 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 6 Mar 2019 20:44:25 -0500 Subject: Add README --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..b959e91 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# XInput USB Core for Arduino AVR + +The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller. + +## License + +The Arduino core files are licensed under the terms of the [GNU Lesser General Public License (LGPL) version 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html). Modifications are released under these same terms. See the [LICENSE](LICENSE.txt) file for more information. + +Newly contributed files for XInput support are licensed under the terms of the more permissive [MIT license](https://opensource.org/licenses/MIT). -- cgit v1.2.3-18-g5258 From dbdc21467c53132fae4d811784476e02d5ce0309 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 6 Mar 2019 21:07:42 -0500 Subject: Supported board section in README These are all of the USB-capable boards in the boards.txt file, all using the 32U4. --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index b959e91..cc6b962 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,22 @@ # XInput USB Core for Arduino AVR The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller. + +## Supported Boards + +* [Adafruit Circuit Playground 32u4](https://www.adafruit.com/product/3000) +* [Arduino Esplora](https://store.arduino.cc/usa/arduino-esplora) +* [Arduino Industrial 101](https://store.arduino.cc/usa/arduino-industrial-101) +* [Arduino Leonardo](https://store.arduino.cc/usa/leonardo) +* [Arduino Leonardo ETH](https://store.arduino.cc/usa/arduino-leonardo-eth) +* [Arduino Micro](https://store.arduino.cc/usa/arduino-micro) +* [Arduino Robot Control / Motor](https://store.arduino.cc/usa/arduino-robot) +* [Arduino Yún](https://store.arduino.cc/usa/arduino-yun) +* [Arduino Yún Mini](https://store.arduino.cc/usa/arduino-yun-mini) +* [LilyPad Arduino USB](https://www.sparkfun.com/products/12049) +* [Linino One](https://store.arduino.cc/usa/linino-one) + +Unfortunately boards such as the Uno, Nano, or Mega that do not have native USB support will *not* work. ## License -- cgit v1.2.3-18-g5258 From 8d86efe5d822643fc09eac486d331f2723df4ad5 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 6 Mar 2019 21:36:12 -0500 Subject: Add Installation section to README --- README.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index cc6b962..424110c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,35 @@ # XInput USB Core for Arduino AVR The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller. - + +## Installation +
+└───Arduino Installation
+	├───drivers
+	├───examples
+	├───hardware
+	│   ├───arduino
+	│   ├───tools
+	│   └───xinput
+	│       └───avr
+	│           ├───bootloaders
+	│           ├───cores
+	│           ├───libraries
+	│           └───variants
+	├───java
+	├───lib
+	├───libraries
+	├───reference
+	├───tools
+	└───tools-builder
+
+ +To install, 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' folder with an 'avr' folder inside of it, containing the files from this repository (see the tree view above). + +Restart the Arduino IDE. If the XInput AVR core is installed correctly, you should see a new collection of "XInput AVR Boards" in the `Tools -> Boards` menu. + +To uninstall, delete the 'xinput' folder in the 'hardware' directory, and then restart the Arduino IDE. + ## Supported Boards * [Adafruit Circuit Playground 32u4](https://www.adafruit.com/product/3000) -- cgit v1.2.3-18-g5258 From 4804dce9482cfb189e01710e44f78c71166d43ac Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 6 Mar 2019 22:01:35 -0500 Subject: Add auto-upload warning section to README --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 424110c..bb5fdb5 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,23 @@ Restart the Arduino IDE. If the XInput AVR core is installed correctly, you shou To uninstall, delete the 'xinput' folder in the 'hardware' directory, and then restart the Arduino IDE. +## Upload Warning and Instructions + +**!!!!!!! IMPORTANT !!!!!!!** + +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. + +To upload to the board: +* Connect the board via USB +* Make sure the proper board is selected in the IDE +* Hold the 'reset' button +* Press 'Upload' in the IDE +* Release the 'reset' button + +If you did these steps properly, the board should reset to the bootloader and the upload should begin. If your board does not have a 'reset' button, you can wire your own by connecting the 'reset' pin to ground. + +**Do *not* upload XInput sketches to your Arduino unless you know how to reset it!** + ## Supported Boards * [Adafruit Circuit Playground 32u4](https://www.adafruit.com/product/3000) -- cgit v1.2.3-18-g5258 From d9c3f16a6edab9131d2c08b8d4ebeb320410b9f8 Mon Sep 17 00:00:00 2001 From: David Madison Date: Sat, 9 Mar 2019 17:17:34 -0500 Subject: Re-wrote uploading section of README The "hold and then release" reset process is what Arduino recommends but it never worked for me, the double reset is much more reliable. --- README.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index bb5fdb5..3f1c357 100644 --- a/README.md +++ b/README.md @@ -36,16 +36,24 @@ To uninstall, delete the 'xinput' folder in the 'hardware' directory, and then r 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. +You can ignore this section if you're using an external programmer. + +### How to Upload + +Connect the board to your computer using a USB cable, and make sure you have the proper board selected in the IDE's 'boards' menu (with or without XInput). If the board already has an XInput sketch on it, you do *not* need to select a serial port. You should also turn on 'verbose output' for uploading in the Arduino IDE's preferences (`File -> Preferences`). This makes it easier to time the manual reset and see if the upload succeeded. + +Lastly, you need to know where the 'reset' button is on your Arduino. If your board does not have a 'reset' button, you can wire your own by momentarily connecting the 'reset' pin to ground. + To upload to the board: -* Connect the board via USB -* Make sure the proper board is selected in the IDE -* Hold the 'reset' button -* Press 'Upload' in the IDE -* Release the 'reset' button +* Press the 'Upload' button in the IDE +* Wait until the status bar says "Uploading..." +* Press the reset button twice, quickly + +If you did these steps properly, the board should reset to the bootloader and the upload should begin. AVRDUDE will do its thing and you should see `avrdude done. Thank you.` near the bottom of the output window. -If you did these steps properly, the board should reset to the bootloader and the upload should begin. If your board does not have a 'reset' button, you can wire your own by connecting the 'reset' pin to ground. +Note that the IDE may say that it "Couldn't find a Board on the selected port" even if the upload succeeded. This is why it's important to turn on the verbose uploading output - look for the `avrdude` message. -**Do *not* upload XInput sketches to your Arduino unless you know how to reset it!** +**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. ## Supported Boards -- cgit v1.2.3-18-g5258 From daefff2c9517ac0b58d56255bfc200b3f231f0fb Mon Sep 17 00:00:00 2001 From: David Madison Date: Sat, 9 Mar 2019 23:30:09 -0500 Subject: Add limitations section to README --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 3f1c357..dadb809 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,16 @@ Note that the IDE may say that it "Couldn't find a Board on the selected port" e Unfortunately boards such as the Uno, Nano, or Mega that do not have native USB support will *not* work. +## Limitations + +### No Console Support + +This will *not* enable you to use your Arduino with an Xbox console! Genuine controllers use a dedicated hardware security chip that handshakes with the console. The Arduinos do not have this chip, and its security method has not been (openly) broken. + +### No Commercial Use + +These board definitions make use of Microsoft's VID and PID in order to latch on to the PC driver. As such this is strictly for educational or development use by non-commercial entities. + ## License The Arduino core files are licensed under the terms of the [GNU Lesser General Public License (LGPL) version 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html). Modifications are released under these same terms. See the [LICENSE](LICENSE.txt) file for more information. -- cgit v1.2.3-18-g5258 From 1689c59f61841b094166351cac6f5d431dd5fe04 Mon Sep 17 00:00:00 2001 From: David Madison Date: Sun, 10 Mar 2019 01:05:14 -0500 Subject: Added link to library in README --- README.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index dadb809..329fc9e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller. +This is meant to be used in conjunction with the [ArduinoXInput library](https://github.com/dmadison/ArduinoXInput). + ## Installation
 └───Arduino Installation
-- 
cgit v1.2.3-18-g5258


From bf126654a23765f20083ee6311aa8427d6a21622 Mon Sep 17 00:00:00 2001
From: David Madison 
Date: Mon, 11 Mar 2019 00:44:10 -0400
Subject: Add link to original repository in README

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'README.md')

diff --git a/README.md b/README.md
index 329fc9e..95775ef 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # XInput USB Core for Arduino AVR
 
-The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller.
+The files in this repository allow you to emulate an Xbox gamepad (XInput) using a USB-capable Arduino microcontroller. Originally forked from [the official Arduino AVR core](https://github.com/arduino/ArduinoCore-avr).
 
 This is meant to be used in conjunction with the [ArduinoXInput library](https://github.com/dmadison/ArduinoXInput).
 
-- 
cgit v1.2.3-18-g5258