Picowinder is an adapter that uses an RP2040 (i.e., a Raspberry Pi Pico) to turn the Microsoft Sidewinder Force Feedback Pro joystick into a USB joystick, including force-feedback communication.
Picowinder is compatible with both Linux and Windows. It has not been tested elsewhere.
The adapter is mostly compliant with the HID (Human Interface Device) PID (Physical Interface Device) spec.
Strictly speaking, this adapter can be built using nothing except a Raspberry Pi Pico and a GamePort connector. A few optional resistors are also recommended.
Any pins not listed on both the GamePort side and the Pico side can be left disconnected.
GamePort Pin | Recommended Resistor | Pico Pin | Notes |
---|---|---|---|
1 (VCC) | Pin 39 (VSYS) | ||
2 (Button 1; Sidewinder CLK) | Pin 5 (GP3) | ||
3 (Axis X1; Sidewinder Trigger 0) | 2.2k ohm | Pin 4 (GP2) | GamePort pins 3 and 10 both connect to GP2 |
4 (GND) | Any GND pin | ||
7 (Button 2; Sidewinder Data 0) | Pin 6 (GP4) | ||
10 (Button 3; Sidewinder Data 1) | Pin 7 (GP5) | ||
11 (Axis X2; Sidewinder Trigger 1) | 2.2k ohm | Pin 4 (GP2) | |
12 (MIDI TX) | 220 ohm | Pin 1 (GP0) | |
14 (Button 4; Sidewinder Data 2) | Pin 9 (GP6) |
To flash a release of the firmware to your Pico:
- Hold the BOOTSEL button while plugging the Pico in to your computer.
- Release the BOOTSEL button. The Pico should present itself as a storage drive.
- Drag the picowinder.uf2 file into that storage drive. It should automatically disconnect, and the Pico should reboot.
- Other than the Sidewinder Force Feedback Pro joystick, no other joysticks or peripherals are supported.
- The adapter does not support plugging in the GamePort connector after USB has already connected. You must connect the GamePort first, then plug the USB in.
- This project uses a lot of information from the adapt-ffb-joy project, and from the reverse-engineering that went into it.
- In addition, several forks of adapt-ffb-joy, including those by juchong and jaybee, provided additional insight.