Setting up a Guitar

Finished guitar

Wiring

Supplies

  • A microcontroller

    • The Pi Pico is recommended, but click below to see information about other microcontrollers.

      Microcontroller information
      • Pi Pico
        • This micro controller was created by the Raspberry Pi foundation, so it means that buying one supports them instead of random companies cloning Arduinos. They are considerably more powerful than any of the other supported Arduinos. The Pi Pico supports a few extra features, such as USB Input (which allows for XB1 / Series compatability), Peripheral microcontrollers and the GHWT tap bar. Note that the Pi Pico runs at 3.3v, so it can just be used as is for PS2 and Wii adapters. Pi Picos also tend to be quite cheap and often have the advantage that they can often be brought at local stores. With the currrent firmware, picos work much much better than arduinos if your goal is to create adaptors, but they also work better for direct wiring too. There are many boards based on the Pi Pico as well, and all of these work just fine with the firmware.
      • Sparkfun Pro Micro (5v)
        • The 5V Pro Micro will work okay for direct wiring, but being that it runs at 5V, it will require voltage conversion to build Wii adapters and PS2 adapters and turntables.
      • Sparkfun Pro Micro (3.3v)
        • If you want to build an adapter for a Wii or PS2 guitar, then this will be easier to use than any of the 5v microcontrollers. Due to the lower voltage, these do run at half the speed of the 5v variants, a. Clones of the Pro Micro are quite cheap but will need to be purchased from ebay or aliexpress, real Pro Micros are quite expensive but there isn't really much of a difference. 3.3V arduinos will poll a wii guitar slightly slower than a 5V arduino but in practise this does not end up mattering as there are a lot of other delays necessary for communicating with a wii guitar.
      • Arduino Micro
        • This is essentially the same thing as a 5v Pro Micro, however these are officially made by Arduino. These are often a bit more expensive as they aren't really cloned.
      • Arduino Leonardo
        • This is essentially a 5v Pro Micro with the layout of a Arduino Uno, so you get more pins but it is also much larger. You can get clones of these, but they are still more expensive than Pro Micros or picos.
      • Arduino Uno (r1/r2/r3)
        • These micro controllers are actually two micro controllers in one, and they work in tandem to provide a working controller. This has its disadvantages, as code needs to keep these controllers in sync, and this can result in issues if a bad configuration is programmed, and generally results in requiring more complicated and optimised code to work. Unos do still get 1000hz, but I would recommend against them if you are buying a new Arduino. Note that some clone Arduino Unos are actually missing the second micro controller, and these ones will NOT work at all. If you see an Arduino Uno listing that mentions "ch340g" or something along those lines do not purchase it. Due to this, they are harder to purchase and since they require more parts, they are more expensive than a Pro Micro or Pi Pico.
      • Arduino Mega 2560
        • These are in the same situation as the Uno, however the main micro controller has a lot more pins. These do also end up being rather expensive due to the sheer amount of parts that are needed to make one.
      • Arduino Uno r4
        • This is the newest entrant to the Arduino Uno line, and it is a totally different microcontroller and hence it is not supported.
      • Arduino Mini or Nano or Pro Mini or Pro Nano
        • These do NOT work, as they are essentially Unos that lack the second micro controller that allow for custom USB device emulation.
      • ESP32
        • Currently this is not supported due to the base ESP32 not fully supporting USB. There are some ESP32 models that have USB support, but these end up being more expensive than the Pi Pico, and thus it does not make sense to support these.
  • Some Wire

  • Soldering Iron

  • Multimeter (it will be used mainly in continuity mode, where it beeps when the two contacts are shorted together)

  • Wire Strippers

  • Wire Cutters

  • Heatshrink

  • Supplies for specific features

    • Tilt
      • Any of the following options are supported
        • A Digital Tilt Switch (somtimes called a mercury or ball tilt switch)
          • I recommend using two tilt sensors in series, as this can help with accidental activations
        • The ADXL345, MPU-6050 or LIS3DH Accelerometer
          • This gives a proper analog value of the devices acceleration
            • Tilt is detected by observing acceleration due to gravity
        • An analog accelerometer, such as the ADXL335, or the accelerometer on some GH guitars
          • This gives a proper analog value of the devices acceleration
            • Tilt is detected by observing acceleration due to gravity
    • Guitar Hero World Tour Guitar
      • MPR121
        • An MPR121 is necessary for hooking up the slider bar, but it can also be used for the frets in order to save on the number of pins being used.
    • Guitar Hero 5 Guitar or Crazy Guitar
      • Standard Mode, worst latency
        • No extra parts required.
      • MPR121 Mode, great latency
        • Requires a MPR121, replaces the microcontroller on the slider bar and handles both slider and frets.
      • Peripheral Pico Mode, great latency
        • Requires a second Pi Pico, places the second Pi Pico in the neck and uses that to poll the frets, while leaving the original slider bar pcb to poll the slider bar, sharing power and data between both devices.
      • Hardwire frets, great latency
        • No extra parts required, but sacrifices the detachable neck.
    • USB Host
      • Pi Pico
      • One of the following
        • A USB female breakout
        • A USB extension cable
        • A controller with a cable already attached that you are willing to cut
          • Needs to be a wired controller, wireless only controllers won't work, nor will the play and charge kit.

Wiring Steps

Electronics basics

This guide assumes that you know how to solder, if you do not stop now and go practice soldering.

If you have no idea what a microcontroller is, start here. If you are familiar with microcontrollers and pcbs skip to choosing a microcontroller.

A microcontroller is a small board that can be programmed to perform various functions. In this guide you will be using the microcontroller to replace the main board of the guitar. Around the edge of the microcontroller, you will see various solder through holes called pins. These are labelled with a pinout (which you can find by googling {your microcontroller} pinout) and sometimes on the microcontroller itself. The pins have various functions, but for this controller mod you will need to be familiar with 4 kinds:

  • GND (ground) - the common connection that all electrical components must connect to in one way or another in order to complete the circuit. Every set of functions for the guitar will feature a GND pin. On the Pi Pico, you will also see a AGND pin. This is also functionally just another GND, however it is recommended to use this for analog inputs like a stick or whammy.
  • VCC (common collector voltage) - this is where you would connect to provide power to a circuit. Sometimes this pin is labelled as 5V, 3.3V or 3v3 on the microcontroller or pinout.
  • Digital Pins - These pins are the "basic" pins. They can essentially only show if a button is pressed or not pressed. You will use these for strum, start/select and frets. The are the most common pin on your microcontroller and are usually labelled with just a number.
  • Analogue Pins - These pins provide a range of values rather than just on and off. These are the pins you will need to use for whammy, tilt (when using an accelerometer), or your joystick. Analogue pins are labeled on the pinout with A followed by a number.
Note

Analogue pins can be used as a digital pin, but digital pins CANNOT be used as an analogue pin. So if it the instructions say connect to a digital pin, you can use an analogue pin.

>Analogue pins can be used as a digital pin, but digital pins CANNOT be used as an analogue pin. So if it the instructions say connect to a digital pin, you can use an analogue pin.
Note

V<sub>CC</sub> and GND can have more than one wire soldered to them. For example, if you want tilt and whammy but only have one V<sub>CC</sub> you can solder them both to the single V<sub>CC</sub> pin on the microcontroller.

>V<sub>CC</sub> and GND can have more than one wire soldered to them. For example, if you want tilt and whammy but only have one V<sub>CC</sub> you can solder them both to the single V<sub>CC</sub> pin on the microcontroller.
Danger

Avoid pins 0 and 1 on the Arduino Uno, as these get used for sending controller information over USB.

>Avoid pins 0 and 1 on the Arduino Uno, as these get used for sending controller information over USB.
Danger

Note that on the pi pico you need to use the 3v3 out pin (pin 36) for your V<sub>CC</sub>, not 5V or 3v3_en. The pins on the pico are not rated for 5v, and the 3v3_en pin is actually an input that will stop your pico from starting.

If you are unfamiliar with microcontrollers, you may also be unfamiliar with PCBs in general and figuring out which pins correlate to which function. Here are some terms you will need to know.

  • PCB (printed circuit board) - the often green or brown boards containing traces and electronic components
  • traces - the copper conductors on a board. They look flat and are often metalic. Think of them as "wires" on the board itself connecting components. If you are still confused, a quick google can help you understand traces.

For every function of the guitar, you will follow these same 3 basic steps. More details for specific functions will be given below.

  1. Find out what each pin correlates to on the exsisting components in the guitar. (AKA work out the pinout) In some guitars, all of the pins are labeled on the main board or other various pcbs, sometimes on the bottom of the main board.
  2. Cut the wires away from the main board as close to the PCB as you can, giving yourself the most amount of wire that you can get. You may find however that the wire isn't long enough, in this case you can either join some more wire onto the end of the existing wires or you can desolder the cables and replace them.
  3. Connect the wires to appropriate pins on the microcontroller.

Once you have successfully modded one guitar (or even during your first) you will find it easiest to disconnect everything then begin soldering as it gives you more room to work. To keep the relevant information in this guide easy to find, information is sorted by function.

Start and Select

360startselect

wiilpstartselect

  1. If it is not labeled on the motherboard, you need to figure out which pin (or pins) is GND. If you remove the membrane, you will be able to see which pin connects to both start and select by following the traces - that pin is GND. (if there are multiple "grounds" they may be labeled as col, or column) Marking GND with a sharpie or using a differently colored wire is reccomended. If you are still unsure, the multimeter can help you confirm if you have the wires correct, as it will beep when you hit a button and have the correct wires. There are examples of the 360 WT and WiiLP above.
  2. Connect the common ground to a GND on the microcontroller. If there are two ground wires, you can twist them together and put them in one ground pin on the microcontroller. This will sometimes be necessary when using a microcontroller that has a smaller number of pins.
  3. Connect each button to an unused digital pin on the microcontroller.
Note

To wire an xplorer start/select board you will have to solder directly to the contacts and cut the traces that connect to each contact. It is not recommended you try to mod an xplorer as your first project because this can be difficult.Note that with the Pi Pico, you can instead just hook these inputs up over USB, and avoid soldering them.

Whammy
  1. With most whammy's there are 3 pins. (if there are 4, you do not need the fourth. 2 pins is discussed below) The middle pin is the data pin, one outer pin is VCC while the other pin is GND (it doesn't matter which one, you can flip it when programming later if needed). Whammy needs to go to an analogue pin.
  2. Connect VCC and GND to the microcontroller. (the two outside wires)
    • If your whammy is not responding correctly in game, you may need to swap VCC and GND around.
  3. Connect the data (middle) pin to an analogue pin on the microcontroller. These are labeled with an A on the microcontroller.

If you are working on a controller with only "2" pins as shown below, you will need to desolder the bridged pins and run 3 wires yourself as noted above for the whammy to work best with the configurator.

2pinwhammy

Pickup Selector
  1. With most pickup selectors's there are 3 pins. (if there are 4, you do not need the fourth. 2 pins is discussed below) The middle pin is the data pin, one outer pin is VCC while the other pin is GND (it doesn't matter which one, you can flip it when programming later if needed). Whammy needs to go to an analogue pin.
  2. Connect VCC and GND to the microcontroller. (the two outside wires)
    • If your whammy is not responding correctly in game, you may need to swap VCC and GND around.
  3. Connect the data (middle) pin to an analogue pin on the microcontroller. These are labeled with an A on the microcontroller.

If you are working on a controller with only "2" pins as the RB Precision Bass, you will need to desolder the bridged pins and run 3 wires yourself as noted above for the pickup selector to work best with the configurator. For the Precision Bass this is easiest done by desoldering the PCB attached to the potentiometer, and then running your own wires directly to the potentiometer.

Digital Tilt
  1. Connect one pin of the first tilt sensor to ground
  2. Connect the other pin of the first tilt sensor to a pin on the second tilt sensor
  3. Connect the other pin of the second tilt sensor to a digital pin on your microcontroller.
  4. Affix the sensors to your guitar. You will need to play around with their position to get them to activate at the exact point you want tilt activating.
Analog Tilt
  1. Connect GND to GND
  2. Connect VCC to VCC
  3. Connect the signal pin to an analog pin on your microcontroller
ADXL345 Or MPU 6050 or LIS3DH
  1. Connect GND to GND

  2. Connect VCC to VCC (note that this is a 3.3v device, so for 5V microcontrollers make sure your breakout has a voltage regulator onboard or you are using your own regulator)

  3. Hook up SDA and SCL to the microcontroller

    Microcontroller SDA SCL
    Pi Pico (Recommended) GP18 GP19
    Pro Micro, Leonardo, Micro 2 3
    Uno A4 A5
    Mega 20 21
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
Joystick (or DPad)

For d-pads that are integrated with the main board it is advised you skip wiring the dpad as you have to solder directly to the contacts and run wires accross the board. You will either be able to use your keyboard for these buttons, or they really won't really be needed as the games were designed to be controlled with the guitar alone. Below is an example of what this can look like, and why it is advisable to skip.

curseddpad

For guitars with a DPad that is seperate, it will be much easier to wire as you can follow the traces and wire it to the pins like you would for start/select.

wtdpad

  1. Find ground. There will be a single common ground and a pin for each direction or multiple "grounds" depending on the model. (some may once again be labeled as col or column) Just like for start and select, you will need to follow the traces to figure out which pin is GND. Mark GND, then connect it to a GND pin on the microcontroller. If there are more than one ground wires, you can twist them together and combine them again.
  2. Up and down on the dpad MUST be connected to the same pins you will be using for strum. You will want to twist those wires together and solder them to the same pin. You may want to wait until you are working on the strum to connect these pins.
  3. Home, left, and right can be connected to any unused digital pin on the microcontroller.

For guitars with a joystick, there will be four pins, one is VCC, one is GND, one is the x axis and one is the y axis. You can work out which is which by tracing the traces, however on some guitars the traces are labelled for you. The joystick needs to go to an analogue pin (one of the A pins)

Frets
  1. For the frets, if it is not labeled it is easiest to open up the neck and follow the traces between the fret contacts. The ground wire traces will connect to all of the fret contacts, whereas a fret trace will lead to a single fret contact. At the end of this guide, there are some images for known neck pinouts. If using the multimeter, test between the fret wire and the ground wire, and the multimeter should beep when the fret is pressed.
  2. Connect the common grounds to a ground pin on the microcontroller.
  3. Connect each fret to its own unused digital pin.
Strum

The Strum switches are similar to the start and select buttons, they will be three wires on some guitars. For these situations it is easy enough to connect to the microcontroller.

  1. Connect Strum
  2. Connect the common ground to a GND on the microcontroller.
  3. Connect each strum switch to seperate unused pins on the microcontroller.

On others, the Strum switches are a part of the main PCB, and you will need to solder directly to the strum switches, which should poke out the back of the main PCB. For example, on a wiitar, you will see the following:

Wii Strum PCB

In this case, there are two grounds that will be shorted together, so with the multimeter, you should be able to work out which pins are ground, by testing a pin from each switch, and working out which ones are shorted together by it beeping.

Note that you can also choose to replace the original PCB with a 3D printed strum switch holder. If you want to go that route, there are some designs around for various guitars. The image at the beginning of this guide shows how this would look.

When the strums are part of the main board you will need to cut the traces or you will have phantom inputs as your signal will still be traveling through the motherboard. (this is when your strum switches constantly input and you likely cannot autobind inputs in the configurator) You will need to take a knife and cut any traces that connect to the strum switches. In the picture below, the person did not cut many traces as they knew which ones were causing phantom inputs. Cutting extra traces is not going to affect your arduino guitar, as none of the traces are used except the one that connects the two grounds of the switches together. Even if you accidentally cut that trace, you will be able to connect the grounds again with a little extra wire.

Trace Cuts on PCB

USB Host (Pi Pico Only) If you want to use your controller on an unmodifed Xbox 360 or Xbox One or Xbox Series, you can wire a USB port to the Pi Pico. You can also use this feature if your guitar is USB based (like the xplorer) and you would rather pass some inputs through instead of wiring them manually, such as the dpad or start and select on the xplorer.

usb

  1. If you are using a USB extension cable, cut it in half and expose the four cables.
  2. Hook up the V+ / VBUS (Red) to the VBUS pin on your Pi Pico
  3. Hook up the V- / GND (Black) to ground on your Pi Pico
  4. Hook up D+ (Green) to a unused digital pin.
  5. Hook up D- (White) to the digital pin directly after D+. For example, you can hook up D+ to GP2 and D- to GP3.
Guitar Hero World Tour neck

The world tour slider bar originally used a single wire to connect between the bar and the main PCB. This caused a lot of problems, as the format of data being sent over this wire is not optimal for speed, and it limits the combinations of frets we can read from the slider bar. To combat this, we bypass the chip generating this data, and opt to use a dedicated touch sensor chip, the MPR121, to handle reading from the slider bar and sending us data in a format that we can easily use.

  1. Cut the traces indicated with red lines in the following image on your Slider bar PCB. You can also opt to just desolder U2 if you prefer.

    World tour slider traces

  2. Solder each of the circled vias on the WT Slider bar PCB to its own channel on the MPR121. It is recommended to use channels 0-4 for the slider bar, as the MPR121 requires assigning touch pads first before other pins.

    World tour slider pins

  3. For the frets, follow the traces between the fret contacts. The ground wire traces will connect to all of the fret contacts, whereas a fret trace will lead to a single fret contact. At the end of this guide, there are some images for known neck pinouts. If using the multimeter, test between the fret wire and the ground wire, and the multimeter should beep when the fret is pressed.

  4. Connect the common grounds to a ground pin on the MPR121.

  5. Connect each fret to its own unused channel on the MPR121.

  6. Hook up VCC (marked as 3.3V) and GND (marked as GND) to the microcontroller. Note that this means you need to use a 3.3V power pin on your microconroller, so if your microcontroller only has 5V power pins you will need a voltage regulator.

  7. Hook up SDA and SCL to the microcontroller

    Microcontroller SDA (D) SCL (C)
    Pi Pico (Recommended) GP18 GP19
    Pro Micro, Leonardo, Micro 2 3
    Uno A4 A5
    Mega 20 21
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
GH5 guitar neck (Standard)
  1. Hook up VCC (marked as V or VCC) and GND (marked as GND or G) to the microcontroller

  2. Hook up SDA (Marked as D) and SCL (marked as C) to the microcontroller

    Microcontroller SDA (D) SCL (C)
    Pi Pico (Recommended) GP18 GP19
    Pro Micro, Leonardo, Micro 2 3
    Uno A4 A5
    Mega 20 21
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
Crazy guitar neck (Standard)

crazy guitar

  1. Hook up VCC, GND, SCL and SDA pins to your microcontroller. Note that this is one of the few I2C devices that works perfectly fine on 5v.

  2. Hook up SDA (Marked as D) and SCL (marked as C) to the microcontroller

    Microcontroller SDA (D) SCL (C)
    Pi Pico (Recommended) GP18 GP19
    Pro Micro, Leonardo, Micro 2 3
    Uno A4 A5
    Mega 20 21
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
GH5 / Crazy guitar frets (Direct, lower latency)
  1. If you wish to bypass the neck connector for your frets, there are three choices, you can opt to wire the frets directly from the fret pcb to the pico, you can use an MPR121 and avoid needing to run more wires, or you can use peripheral mode and avoid needing to run more wires. The MPR121 replaces the entire slider bar PCB and handles both the slider pads and the frets, while the peripheral only handles the frets, and requires using the original slider bar PCB for keeping slider functionality.
  2. For direct mode, run a wire from the fret pin to a pin on the pico, and make sure there is a wire from the ground pin on the fret pcb to the picos ground pin.
GH5 / Crazy guitar frets (MPR121, Low Latency Frets with 4 pins)
  1. In some cases, you may want to poll frets directly, but you still wish to use a neck connector that does not have enough pins to connect the frets. You can get around this by using an MPR121.

  2. Cut the traces going from the main chip to the pads on the slider PCB.

  3. Solder each via on the Slider bar PCB to its own channel on the MPR121. It is recommended to use channels 0-4 for the slider bar, as the MPR121 requires assigning touch pads first before other pins.

  4. For the frets, follow the traces between the fret contacts. The ground wire traces will connect to all of the fret contacts, whereas a fret trace will lead to a single fret contact. At the end of this guide, there are some images for known neck pinouts. If using the multimeter, test between the fret wire and the ground wire, and the multimeter should beep when the fret is pressed.

  5. Connect the common grounds to a ground pin on the MPR121.

  6. Connect each fret to its own unused channel on the MPR121.

  7. Hook up VCC (marked as 3.3V) and GND (marked as GND) to the microcontroller. Note that this means you need to use a 3.3V power pin on your microconroller, so if your microcontroller only has 5V power pins you will need a voltage regulator.

  8. Hook up SDA and SCL to the microcontroller

    Microcontroller SDA (D) SCL (C)
    Pi Pico (Recommended) GP18 GP19
    Pro Micro, Leonardo, Micro 2 3
    Uno A4 A5
    Mega 20 21
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
GH5 / Crazy guitar frets (Peripheral, Low Latency Frets with 4 pins)
  1. In some cases, you may want to poll frets directly, but you still wish to use a neck connector that does not have enough pins to connect the frets. You can get around this by putting a second Pi Pico in the neck.

  2. Choose some SDA and SCL pins on each Pico, and connect them by these pins.

    Microcontroller SDA SCL
    Pi Pico (Recommended) GP18 GP19
    Pi Pico (Advanced, Channel 0) GP0, GP4, GP8, GP12, GP16, GP20 GP1, GP5, GP9, GP13, GP17, GP21
    Pi Pico (Advanced, Channel 1) GP2, GP6, GP10, GP14, GP18, GP26 GP3, GP7, GP11, GP15, GP19, GP27
  3. Connect the Slider bar to the same SDA and SCL pins

  4. Connect VBUS and GND between the two Pi Picos.

  5. Connect the Slider bar to 3.3v and GND on the peripheral Pico.

  6. For the frets, if it is not labeled it is easiest to follow the traces between the fret contacts. The ground wire traces will connect to all of the fret contacts, whereas a fret trace will lead to a single fret contact. At the end of this guide, there are some images for known neck pinouts. If using the multimeter, test between the fret wire and the ground wire, and the multimeter should beep when the fret is pressed.

  7. Connect the common grounds to a ground pin on the peripheral Pico.

  8. Connect each fret to its own unused digital pin on the peripheral Pico.

Programming

Peripheral

If you intend to use the peripheral features, it is recommended to program the peripheral pico first. Follow the below instructions to do that, or skip these if you are not using this feature.

  1. Plug the peripheral pico into your computer. Make sure the main pico is not plugged in at this stage.
  2. Open Santroller
  3. Set the Input Type to Peripheral Device
  4. Pick the SCL and SDA pins
  5. Hit configure
  6. Now you can unplug the peripheral pico from your comptuter, and follow the rest of the instructions

Main

  1. Start Santroller with your microcontroller plugged in.
  2. Set the Input Type to Directly Wired
  3. Hit Configure
  4. Click on Controller Settings
  5. Set Emulation Type to Controller
  6. Set the Controller Type based on the game you want to play.
  7. Windows controller mode can be set based on your preferences. Note that this only affects windows, a controller in XInput mode will use the correct mode on a console, and will automatically use HID mode on Linux and macOS.
    1. XInput - This works more natively on windows, and most games will automatically bind controls.
    2. HID - This uses HID on windows, which means games won't automatically bind controls, but HID is polled a bit more efficiently in games like Clone Hero.
  8. If you would like to adjust settings related to polling, click on Controller Poll Settings
  9. If you would like to use Queue Based Inputs you can turn that on here. This puts any buttons you press into a queue, and sends them out to the PC as fast as USB allows. This means that the controller will process your inputs at a faster poll rate than 1ms (the fastest rate USB allows) and then the PC will be sent your inputs at a 1ms rate.
  10. Set the Poll Rate to your preferred setting. 0 sends data as fast as possible, any other number polls inputs at that speed.
  11. Debounce can be adjusted here. Debounce is necessary as button inputs are noisy. When you hit a button, it will often bounce and send multiple presses, which some games may percieve as you hitting the button multiple times, which can result in dropped sustains. When you set debounce to a value, the signal ignores any release inputs for that time frame, so if you for example set it to 1ms, then the button input will be on for a minimum of 1ms, and only after that will the release be processed. This has the effect of stretching out the button press to at least 1ms, which ignores any bouncing in that timeframe.
  12. Combined strum debounce shares the debounce timeframe between both strums. This means that if you set the strum debounce to 1ms and strummed down, both strum up and down inputs are ignored over that 1ms timeframe. This helps avoid extra strum inputs when your strum switch rebounds after being released.
  13. Now you can start setting up your inputs. To keep this information relevant, it is grouped by function.
Frets, strum and other buttons
  1. Click on the button you want to configure, and make sure the Input Type is set to Digital Pin Input.
  2. Make sure Pin Mode is set to Pull Up.
  3. Click on the Find Pin button, and then press the button on the guitar. If you have wired everything correctly, the tool should detect the pin and the icon for that button should now light up whenever the button is pressed.
Start + Select to Home
  1. Click on the home / Xbox / PS button.
  2. Set the Input Type to Shortcut
  3. Set the next Input Type to Digital Pin Input
  4. Make sure Pin Mode is set to Pull Up.
  5. Click on the first Find Pin button, and then press the start button on the guitar. If you have wired everything correctly, the tool should detect the pin.
  6. Click on the second Find Pin button, and then press the select button on the guitar. If you have wired everything correctly, the tool should detect the pin and the icon for the home button should now light up whenever both start and select is pressed.
Joystick
  1. Click on D-pad Left, and set the Input Type to Analog Pin Input.
  2. Set Type to Joystick Negative
  3. Click on Find Pin and move the joystick left or right
  4. Adjust the threshold so that the D-pad Left icon lights up when you have pushed the Joystick far enough to the left. This means you can adjust how sensitive you want your joystick to be.
  5. You can do the same for D-pad right, however, set the Type to Joystick Positive instead.
  6. If you wish to also map joystick up and down, click Add Setting and add another Strum Up and Strum Down input. Then you can follow the above instructions again, only using negative for up and positive for down, and when detecting the pin, move the joystick up and down instead.
Whammy
  1. Click on the whammy, and make sure the Input Type is set to Analog Pin Input.
  2. Click on the Find Pin button, and then press on the whammy. If you have wired everything correctly, the tool should detect the pin and the Original Value value should change when you push on the whammy.
  3. Click on Calibrate.
  4. Release the whammy bar and hit Next.
  5. Push the whammy all the way in, and hit Next
  6. Release the whammy again, and hit Next. If your whammy is noisy, you can push it in a tiny bit, and the zero position will be set to this location, which will make sure that the whammy is always considered released when it is released.
Pickup Selector
  1. Click on the pickup selector, and make sure the Input Type is set to Analog Pin Input.
  2. Click on the Find Pin button, and then move the pickup selector. If you have wired everything correctly, the tool should detect the pin and the Original Value value should change when you move the pickup selector.
  3. If the Original Value of the pickup selector decreases as you increase the notch position on your guitar, turn on Invert.
  4. Set the pickup selector to the second position
  5. Drag the slider for Notch 2 Value so that the current notch is Notch 2.
  6. Set the pickup selector to the third position and then move the slider for Notch 3 as detailed above.
  7. Repeat this for the other notches. After this, the current notch should reflect the status of the pickup selector.
Digital Tilt
  1. Click on Tilt, and make sure the Input Type is set to Digital Pin Input.
  2. Make sure Pin Mode is set to Pull Up.
  3. Click on the Find Pin button, and then tilt your guitar. If you have wired everything correctly, the tool should detect the pin and the tilt icon should light up whenever you tilt the guitar.
  4. If you are using a SW520D based tilt sensor, some versions of this sensor will have an inverted output. You can turn on the Invert option to correct this.
Analog Tilt
  1. Click on Tilt, and make sure the Input Type is set to Analog Pin Input.
  2. Click on the Find Pin button, and then tilt your guitar. If you have wired everything correctly, the tool should detect the pin and the tilt Original Value value should change as you tilt your guitar.
  3. Click on Calibrate
  4. Hold your guitar in its resting position, and then hit Next
  5. Tilt the guitar up, and then hit Next
  6. Tilt your guitar up a little bit and then hit Next. Values below this position will be zeroed.
ADXL345 or MPU-6050 or LIS3DH based Tilt
  1. Click on Add setting
  2. Add an Accelerometer
  3. For the Pi Pico, set the SDA and SCL pins that you have used.
  4. Set the Accelerometer Type for your given sensor
  5. Hit save.
  6. Click on Tilt, and make sure the Input Type is set to Accelerometer Input.
  7. Click on Calibrate
  8. Hold your guitar in its resting position, and then hit Next
  9. Tilt the guitar up, and then hit Next
  10. Tilt your guitar up a little bit and then hit Next. Values below this position will be zeroed. With the adxl, you can increase the deadzone to help counteract strumming or shaking activating tilt.
  11. Adjust the Low Pass Filter. This value controls how new value from the ADXL are filtered, a value closer to 0 will result in a sensor that won't respond to a shake or strumming, but if you decrease it too much the sensor will have a decreased responsiveness. If you set it closer to 1, then the sensor will be very responsive but it will also pick up any tiny vibrations as well. From testing a value of 0.05 seemed like a good place to start.
MPR121
  1. Click on MPR121 Settings
  2. Enable the Peripheral
  3. Set the SDA and SCL pins that you have used.
  4. Set the MPR!21 Capacitive Touch Pad Count based on the number of touch pads you are using. For a normal slider bar, this should be 5, or if you aren't using a slider bar set this to 0.
  5. Hit save
Peripheral
  1. Click on Peripheral Settings
  2. Enable the Peripheral
  3. Set the SDA and SCL pins on the main PCB that are being connected to the peripheral.
  4. Hit save
World Tour Slider Bar
  1. Click on Add Setting, and add a Slider setting
  2. Set the Input Type to MPR121 Input
  3. Hit Save Settings. Note that everything else needs to be configured before you can do this.
  4. Set the channels based on your wiring. The configuration will update live, so if you are unsure which via maps to which slider pad, you can just work through the channels and assign things to the correct pads by touching each pad and working out which channel is which.
  5. Go to each fret, and set its Input Type to MPR121 Input.
  6. Set the channel based on your wiring. If you are unsure which channel you used, you can just walk through each channel and work out which one was used, as the status of the MPR121 will update live as you press and release frets.
GH5 Neck (Standard wiring)
  1. The GH5 neck puts inputs over a single set of pins. This does add a bit of latency to the frets, but if you want the simplest wiring, you can keep the frets connected to the neck.
  2. Click on Add Setting, and add a GH5 Neck Inputs setting
  3. Set the SDA and SCL pins to the pins you used when you wired up the neck.
  4. If you would like to map the slider bar to the standard frets, you can enable "Slider to frets". Note that if you are using Rock Band mode, the tap bar is automatically mapped to the solo frets.
  5. Click on enable for each of the frets.
Crazy Guitar Neck (Standard wiring)
  1. The Crazy Guitar neck puts inputs over a single set of pins. This does add a bit of latency to the frets, but if you want the simplest wiring, you can keep the frets connected to the neck.
  2. Click on Add Setting, and add a Crazy Guitar Neck Inputs setting
  3. Set the SDA and SCL pins to the pins you used when you wired up the neck.
  4. If you would like to map the slider bar to the standard frets, you can enable "Slider to frets". Note that if you are using Rock Band mode, the tap bar is automatically mapped to the solo frets.
  5. Click on enable for each of the frets.
GH5 / Crazy Guitar (MPR121 Mode)
1. If you wish to have better latency frets with these necks, you can replace the slider bar controller with an MPR121, which will give you low latency but will still use the same amount of wires.
2. Click on Add Setting, and add a `Slider` setting
3. Set the `Input Type` to `MPR121 Input`
4. Hit `Save Settings`. Note that everything else needs to be configured before you can do this.
5. Set the channels based on your wiring. The configuration will update live, so if you are unsure which via maps to which slider pad, you can just work through the channels and assign things to the correct pads by touching each pad and working out which channel is which.
6. Go to each fret, and set its `Input Type` to `MPR121 Input`.
7. Set the channel based on your wiring. If you are unsure which channel you used, you can just walk through each channel and work out which one was used, as the status of the MPR121 will update live as you press and release frets.
GH5 / Crazy Guitar (Peripheral Mode)
  1. If you wish to have better latency frets with these necks, but do not want to hardwire the frets, you can instead opt to use the peripheral mode. You can still follow the Standard wiring if you would like the slider bar to work, but then you do not need to enable the frets as we will bypass the original neck for those inputs.
  2. Go to each fret, and set its Input Type to Digital Pin Input (Peripheral).
  3. Make sure Pin Mode is set to Pull Up.
  4. Use Find Pin to detect the pin your fret was hooked up to.
USB Host (Pi Pico Only)
  1. Click on Add setting
  2. Find and add USB Host inputs
  3. Bind D+
  4. Hit Save
  5. If you plug in a supported controller, the tool should detect it and tell you what it is.
  6. If you have a modded xbox and are using usbdsecpatch, you can disable Authentication for Xbox 360.
  1. If you do not want to hook an input up, hit the Remove button to the right on that input.
  2. Once everything is configured correctly, the Save Settings button should be clickable and you can hit that button to write your config to the guitar. It is now ready.