Gamecube ASCII controller USB Retrofit
(April 2026 - )
1. PRESENTATION
There is this rather obscure piece of hardware called the GameCube ASCII Controller. It was made specifically for Phantasy Star Online and was only released in Japan. Since the GameCube was a big part of my childhood, and I also happen to be a keyboard enthusiast, this felt like the perfect excuse for another funky project. The idea is to replace the original PCBs and turn the whole thing into a regular USB device — basically doing the same thing I did with my keypad. The PC should see it as both a keyboard and an Xbox controller.
If you haven't already, I recommend reading the Keypad page first, as this project borrows quite a few ideas from it.
Just like the keypad, I'll use two microcontrollers: one for the keyboard side, running QMK, and another for the XInput side, running Arduino on a specialized ATmega32U4 setup with a custom USB descriptor. The two controllers will talk to each other over UART at 115200 baud. It's no DMA SPI, but it'll do. As long as they can exchange everything without any noticeable latency, that's good enough for this project.
The USB hub, combining the USB connections from both controllers, will be connected to a small daughterboard that will sit neatly behind this suspiciously USB-C-looking hole, where the main cables used to be :
2. THE OUTLINE (EDGE.CUT)
First, I desoldered every through-hole component. Then, armed with my trusty Mitutoyo caliper, I measured all around to determine the shapes and dimensions of the three PCBs in this controller. I designed the three pieces in SolidWorks and printed them in PLA to verify that they accurately replicated the original PCBs.
Left side, bottom view
Left side, top view
Left side, STL
Left side, STL on top of the PCB
Right side, bottom view
Right side, top view
Right side, STL
Right side, STL
Right side, STL on top of the PCB
I will make multiple revisions of the PCBs. A first one with no parts or assembly. Once I am comfortable with how it fits together, I will order the populated and assembled version.
3. DESIGNING
The basic architecture is fairly straightforward: the keyboard side runs QMK, while the controller side handles XInput. The main challenge is fitting everything onto the replacement PCBs while keeping the original mechanical layout intact. I use an I2C I/O expander since lots of pins are needed for the keyboard matrix
Schematic. Click to view full size
PCB top view. Click to view full size
PCB bottom view. Click to view full size
4. FIRST BATCH
Ordered from JLCPCB. Arrived 3 weeks later.
Left PCB. Click to view full size
Righ and joystick PCB. Click to view full size
The measurements where mostly good. I have two things to fix.
The left joystick was positionned/measured a bit too low so I had to raise it up by 0.5mm.
The Z button was not positionned correctly. The PCB cannot be inserted when I place the Z button, and can certainly not be pressed.
I shifted it by 1.75mm to the exterior.
Left joystick shift
Z button eror
5. SECOND BATCH - WITH ASSEMBLY
Ordered from JLCPCB. En route. Only the bottom side of the left part needs assembly, keeping the cost reasonable.
BOM. Click to view full size
PCBA. Click to view full size