This is an RP2040-based adapter designed to allow the use of 5-fret rhythm game PS2 guitar controllers on PC and other, later consoles. It also supports gamepads and dance mats, as well as some PSX controllers too. Drums might be supported, but haven't been tested.
Firmware can be anything you want that supports reading PS2 inputs and converting them to HID, but Santroller works well and is highly versatile.
In theory, you could even plug whatever USB controller you wanted into the USB host port and convert it to a Santroller device compatible with whatever console you wanted.
IMPORTANT: IF YOU WANT AN EASY PRE-BUILT SOLUTION FOR THIS, THERE ARE ALREADY GOOD OPTIONS ON THE MARKET. I have no intention of building and selling these adapters myself, so this repo exists solely for people who know what they're doing.
Most generic PS2 to USB adapters might work, but they aren't specifically made for guitars. As of the time of writing this, RetroCultMods offers a pre-built adapter that also runs Santroller firmware, making it compatible with a similar wide variety of input devices.
This was designed when I wanted a device that my friends and I could use and nobody offered anything flexible enough. Other Santroller-based solutions were either sold out or out of production.
Since this was a small project for my friends and I to use, it isn't well documented. I only decided to throw this up over a year later in case anyone was interested. You're on your own when it comes to having boards fabricated, but it shouldn't be too bad if it's something you've done before.
The PCB layout and case design are very amateur, but from all our testing, it works perfectly fine for everything we wanted to do. It even worked the first time I had a batch fabricated.
It works great for playing emulated 5-fret rhythm games, Clone Hero, YARG, etc, as well as playing any other games (console, emulated, or native PC) with a PS2 or PSX gamepad.
case/Case+Rev1.f3zcase/Case+Rev1.step
Fusion 360 and STEP exports of the case design, including a reference model of the PCB. I created this before I switched to Linux, otherwise this would've been a FreeCAD project.
case/Rev. 1 Case Final.3mf
Rendered mesh of the case with my logo and port labels added in Orca Slicer, ready for printing. I didn't have any kind of multi-material system at the time, so the logo and text were printed in one color and the print was paused to swap the filament for the rest of the print.
PCB/
KiCAD project for the PCB itself, including some third-party symbols, footprints, and 3D models.
These settings are necessary for the PS2 controller port and the USB host port to work correctly. All other settings are personal preference and you should refer to the Santroller documentation for those.
Add a PS2 Controller Inputs setting and use these pins:
- MOSI / Command (Orange) Pin:
GP3 / SPI0 MOSI - MISO / Data (Brown) Pin:
GP4 / SPI0 MISO - Sck / Clock (Blue) Pin:
GP6 / SPI0 SCK - Acknowledge (Green) Pin:
GP7 / SPI0 MOSI - Attention (Yellow) Pin:
GP10 / SPI1 SCK
Add a USB Host Inputs setting and use these pins:
- D+ (Green) Pin:
GP16 - D- (White) Pin:
GP17
The entire project, outside of the included library files and the 3D model of the PS2 controller port, is licensed under the GNU General Public License Version 3.
EnvOpenPico was used as a starting point and reference for an RP2040 board with a USB Type-C connector, but nearly every single aspect was substantially modified in the final design.
Also thanks to sanjay900 for Santroller as a very convenient and flexible firmware. I thought about writing my own, but it's hard to justify putting in the effort when such a good solution exists.