aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: bb5fdb5b563a0e8f97fd0f415cf2074480f580d5 (plain)
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

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 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.

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

Unfortunately boards such as the Uno, Nano, or Mega that do not have native USB support will not work.

License

The Arduino core files are licensed under the terms of the GNU Lesser General Public License (LGPL) version 2.1. Modifications are released under these same terms. See the LICENSE file for more information.

Newly contributed files for XInput support are licensed under the terms of the more permissive MIT license.