Setting up a Turntable
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.
- Pi Pico
-
- 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
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.
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.
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.
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.
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.
To keep the relevant information in this guide easy to find, information is sorted by function.
Effects Knob
- Wire one of the outer pins to VCC
- Wire the other outer pin to GND
- Wire the middle pin to an analog pin on your microcontroller.
Crossfader
- Follow the pins going to the Crossfader. There should be three pins.
- Wire one of the outer pins to VCC
- Wire the other outer pin to GND
- Wire the middle pin to an analog pin on your microcontroller.
Euphoria Button and LED
-
Connect V to VCC on your microcontroller.
-
Connect V0 to ground on your microcontroller.
-
Connect AT to one of the following pins
Microcontroller Analog Output Pins Pi Pico (Recommended) Any Pro Micro, Leonardo, Micro 3, 5, 6, 9, 10, 11, 13 Uno 3, 5, 6, 9, 10 Mega 2 - 13, 44 - 46
Face buttons
- Remove the face button PCB from the turntable
- There is a smaller PCB attached to the main button PCB with headers, which contains the main micro controller. Disconnect this in some way, either by cutting it away, desoldering it or cutting traces going to the microcontroller on it. Be careful though, as the traces on these PCBs are very cheap and can break very very easily.
- Follow the traces from each pad. You will find that there will be common traces going to multiple pads, which you can connect to ground. Connect the other trace going to each pad to a digital pin on your microcontroller. In effect, you should end up with one side of every pad going to ground, and the other side going to a digital pin. Some tables may even have the pins labeled for you, which can make things easier.
Platter (Standard)
- The platters connect to the same PCB that the crossfader is on. There will be some labelled pads, V, C, D and G.
- Hook up V to VCC and G to GND. For safety I would recommend hooking V to 3.3v on a 5v microcontroller, as most I2C devices I have come across don't like being powered by 5v.
- Hook up the C to SCL and D to SDA. The Pi Pico lets you pick from various pins for the SDA and SCL pins. We provide recommended pins below. If you need to use other pins, the options are provided below but the SDA and SCL pins must be from the same channel.
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 |
Platter (Peripheral)
If you would like your frets to contain LEDs, or want your frets to poll at a different rate to the rest of the turntable, you can use the Peripheral feature. Note that you can currently only have a single peripheral, so you will not be able to use two peripherals to have multiple turntables connected at once.
-
Open up the platter on your turntable
-
Desolder the CLK and DATA from your platter, and solder them to the peripheral pins that you have chosen.
-
Desolder the 3V3 (Red) line from the platter and solder it to VBUS on your peripheral. Do the same on the main pico, you should end up with VBUS connected to VBUS via the slip ring and platter connector.
-
Connect CLK and DATA. The Pi Pico lets you pick from various pins for the SDA and SCL pins. We provide recommended pins below. If you need to use other pins, the options are provided below but the SDA and SCL pins must be from the same channel.
Microcontroller SDA (DATA, Yellow) SCL (CLK, Green) 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 -
Connect 3V3 out to the 3V3 pin on your platter
-
Disconnect the buttons from the platter, and connect them to digital pins your peripheral Pico.
-
Connect ground on the peripheral to ground (Blue) on the platter. This should also still be connected to ground on the main Pico.
-
There should be a common ground going to the frets, and then seperate signal wires. Disconnect the signal wires for the frets from the platter, and then connect them to digital pins on the peripheral pico.
Note: The pinouts for the various pins going through the slip ring are as follows:
- YELLOW: DATA (D)
- BLUE: GND (G)
- GREEN: CLK (C)
- RED: 3V3 (V)
- WHITE: SENSE PIN (ID)
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.
- Plug the peripheral pico into your computer. Make sure the main pico is not plugged in at this stage.
- Open Santroller
- Set the Input Type to
Peripheral Device
- Pick the SCL and SDA pins
- Hit configure
- Now you can unplug the peripheral pico from your comptuter, and follow the rest of the instructions
Main
-
Start Santroller with your microcontroller plugged in.
-
Set the Input Type to Directly Wired
-
Hit Configure
-
Click on
Controller Settings
-
Set
Emulation Type
toController
-
Set the
Controller Type
toDJ Hero Turntable
. -
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.XInput
- This works more natively on windows, and most games will automatically bind controls.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.
-
If you would like to adjust settings related to polling, click on
Controller Poll Settings
-
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. -
Set the Poll Rate to your preferred setting. 0 sends data as fast as possible, any other number polls inputs at that speed.
-
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.
-
Now you can start setting up your inputs. To keep this information relevant, it is grouped by function.
The Platter
- Click on
Dj Turntable Inputs
. - Set the SCL and SDA pins that you have wired the platter to.
- Leave the turntable poll rate at 10ms. If you poll it any quicker than this, the platter velocity will be less accurate due to how it is polled.
Buttons or Dpad
- Click on the button you want to configure, and make sure the
Input Type
is set toDigital Pin Input
. - Make sure
Pin Mode
is set toPull Up
. - 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.
Joystick
- Click on D-pad Left, and set the
Input Type
toAnalog Pin Input
. - Set
Type
toJoystick Negative
- Click on find pin and move the joystick left or right
- 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.
- You can do the same for D-pad right, however, set the
Type
toJoystick Positive
instead. - If you wish to also map joystick up and down, click
Add Setting
and add another Strup 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.
Crossfader
- Click on the crossfader, and make sure the
Input Type
is set toAnalog Pin Input
. - 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 theOriginal Value
value should change when you push on the whammy. - Click on
Calibrate
. - Move the crossfader all the way left and hit
Next
. - Move the crossfader all the way right, and hit
Next
- Move the crossfader to the center, and hit
Next
.
Effects Knob
- Click on the Effects Knob, and make sure the
Input Type
is set toAnalog Pin Input
. - 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 theOriginal Value
value should change when you rotate the effects knob.
Peripheral
- Click on
Peripheral Settings
- Enable the Peripheral
- Set the SDA and SCL pins on the main PCB that are being connected to the peripheral.
- Hit save
- Click on
Dj Turntable Inputs
- Disable all the frets
- Click on
Add Setting
- Add each fret for the turntable you are configuring
- For each fret:
- Click on the Fret
- Set the Input Type to
Digital Pin Input (Peripheral)
- Make sure
Pin Mode
is set toPull Up
. - Click on
Find Pin
- Press the fret in question. The tool should detect this and the fret should light up in the tool when pressed.
USB Host (Pi Pico Only)
- Click on Add setting
- Find and add
USB Host inputs
- Bind D+
- Hit Save
- If you plug in a supported controller, the tool should detect it and tell you what it is.
- If you have a modded xbox and are using
usbdsecpatch
, you can disableAuthentication for Xbox 360
.
- Click on
-
If you do not want to hook an input up, hit the
Remove
button to the right on that input. -
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.