Pi Pico (RP2040) based adapter to use USB controllers on a Saturn console.
I've been working on this for quite some time.
It's not finished. But as I don't have much more free time to work on it, I decided to release it as is..
It supports a bunch of controllers.
Most controllers for ogXbox, x360, One, Series, PS3, PS4, PS5, Switch should work.
Some Logitech Racing Wheels are also supported.
It can emulate the following devices:
3D pad in Digital mode
3D pad in Analog mode
Arcade Racer (Steering Wheel)
Mission Stick (Three-Axis Mode)
Mission Stick (Six-Axis Mode) AKA Dual Mission Stick
Wiring
All data pins must be level shifted!
Pico's GPIO runs at 3.3v and saturn runs at 5v.
Use a USB-OTG adapter to connect a controller to the pico's usb port.
Usable mode depends on the input controller type:
Digital Input
Mode can be changed in real time.
To change mode, hold the "mode change button" and press A, B, X (input follows the xinput layout/name)
"Mode change button" changes depending on the device being used and it's buttons.
It follows this priority: HOME, START+SELECT, START.
IE: If a device contains a HOME button, use that. If the device only have START, use that.
A controller with 6 face buttons should map correctly on the saturn too.
A device with four face buttons (today's standard) will map this way. (input follows the xinput layout/name
Racing Wheel when in Arcade Racer mode maps:
Gas pedal to C
Brake pedal to Z
Dual Stick when in Twin Stick mode maps:
L2 as left stick weapon (trigger)
L1 as left stick dash (thumb button)
R2 as right stick weapon (trigger)
R1 as right stick dash (thumb button)
See it in action
Advice:
I'm going to update this page later.
I'm not sure if I'm going to make any change to the firmware the short term. No time for that, please don't ask.
There's an multitap version too that I plan to release later.
If you like my work, please consider supporting me via ko-fi. 🙂
I've been working on this for quite some time.
It's not finished. But as I don't have much more free time to work on it, I decided to release it as is..
It supports a bunch of controllers.
Most controllers for ogXbox, x360, One, Series, PS3, PS4, PS5, Switch should work.
Some Logitech Racing Wheels are also supported.
It can emulate the following devices:
3D pad in Digital mode
3D pad in Analog mode
Arcade Racer (Steering Wheel)
Mission Stick (Three-Axis Mode)
Wiring
Saturn | GPIO |
---|---|
D0 | 0 |
D1 | 1 |
D2 | 2 |
D3 | 3 |
TL | 4 |
TR | 5 |
TH | 6 |
VCC | VBUS |
GND | GND |
All data pins must be level shifted!
Pico's GPIO runs at 3.3v and saturn runs at 5v.
Use a USB-OTG adapter to connect a controller to the pico's usb port.
Usable mode depends on the input controller type:
Digital Input
- Digital (led on)
- 3D Digital (led on)
- 3D Analog (led blink fast)
- Twinstick (led blink slow)
- Wheel (led on)
- 3D Analog (led blink fast)
- Mission Stick 3 Axis (led on)
- 3D Analog (led blink fast)
Mode can be changed in real time.
To change mode, hold the "mode change button" and press A, B, X (input follows the xinput layout/name)
"Mode change button" changes depending on the device being used and it's buttons.
It follows this priority: HOME, START+SELECT, START.
IE: If a device contains a HOME button, use that. If the device only have START, use that.
A controller with 6 face buttons should map correctly on the saturn too.
A device with four face buttons (today's standard) will map this way. (input follows the xinput layout/name
Input | Saturn |
---|---|
X | A |
A | B |
B | C |
L1 | X |
Y | Y |
R1 | Z |
L2 | L |
R2 | R |
START | START |
Racing Wheel when in Arcade Racer mode maps:
Gas pedal to C
Brake pedal to Z
Dual Stick when in Twin Stick mode maps:
L2 as left stick weapon (trigger)
L1 as left stick dash (thumb button)
R2 as right stick weapon (trigger)
R1 as right stick dash (thumb button)
See it in action
Advice:
- NEVER connect it the console and to a usb host (ie: a PC) at the same time.
- Connect the controller and adapter to the console while the console is still powered off.
- Do not use a power hungry controller. IE: a DualSense.
- If you're going to use a controller that contains an internal battery, make sure to fully charge it before using. You don't want it to be charged by the console's controller port.
I'm going to update this page later.
I'm not sure if I'm going to make any change to the firmware the short term. No time for that, please don't ask.
There's an multitap version too that I plan to release later.
If you like my work, please consider supporting me via ko-fi. 🙂