. You can also choose to cut the end of the extension and solder your own cables on as well if you perfer.
If your wii extension breakout does not support 3.3v input, and you are using a 5v Pro Micro, you will need a 3.3v voltage regulator. The breakout listed above does however support either voltage so this is not required for that breakout.
Some Wire
A Soldering Iron
Supplies for specific features
Be careful that you don’t ever provide 5v power to the power pin of a Wii Extension, as they are not designed for this. The data pins however are tolerant of 5v, so you can hook these up directly to pins on your microcontroller.
Connect wires between the SDA and SCL pins on your breakout board / wii extension cable. Refer to the following image for the pinout of a Wii Extension connector.
The Pi Pico lets you pick from various pins for the SDA and SCL pins. We provide recommended pins below, and this pinout is the same as the old Ardwiino firmware. If you need to use other pins, the options are provided below but the SDA and SCL pins must be from the same channel.
If you are using a wii extension cable do NOT rely on the colours, the manufacturers are all over the place with this and the only way to validate them is to test each wire according to the above image. I’ve come across connectors wired with green as ground and black as 3.3V before, you just can’t rely on the colours at all unfortunately.
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 |
Connect the VCC on the microcontroller to the VCC on the breakout
vin
pin is used for both 3.3v input and 5v input. The 3v pin is actually an output and is not needed for this project.Connect the gnd pin on the wii breakout / extension cable to the gnd on your microcontroller.
If you would like to use tilt:
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 |
Start Santroller with your microcontroller plugged in.
Set the Connection Method
to Wii Adapter
.
Set Device to Emulate
for the type of device you want to emulate.
For guitars, if you wish to add tilt,
Hit Configure
If you are on the Pi Pico and are using different pins, set your SCL and SDA pin.
Hit Save Settings
.
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.
Dj Hero Turntables
this needs to be set to 10, otherwise the platter won't work correctly.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.
Combined strum debounce shares the debounce timeframe between both strums (only available on guitars). 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.
Click on Wii Extension Inputs
If you are using a Pi Pico, specify the SDA and SCL pins that you wired your extension port to.
Hit Save.
You can now calibrate your inputs. If your controller is already plugged in it should be detected and show only those inputs, but you can use the Wii Inputs to display below
dropdown to specify the controller you want to configure.
Calibrate
button and then move the stick all the way left / upNext
and then move the stick all the way right / downNext
and then move stick a little bit away from the center. This sets the deadzone, and any inputs closer to the center from this position will be ignored, which helps with noisy sticks.Calibrate
.Next
.Next
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.If you would like to use Tilt, make sure you are emulating a guitar, and then hit Add Setting
and add a Tilt
setting. Then follow one of the below options:
Input Type
is set to Digital Pin Input
.Pin Mode
is set to Pull Up
.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.Invert
option to correct this.Input Type
is set to Analog Pin Input
.Find Pin
button, and tthen 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.Calibrate
Next
Next
Next
.Add setting
Accelerometer
Accelerometer Type
for your given sensorInput Type
is set to Accelerometer Input
.Calibrate
Next
Next
Next
. Values below this position will be zeroed. With the adxl, you can increase the deadzone to help counteract strumming or shaking activating tilt.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.