I bought a custom mechanical keyboard from WASD Keyboards to use with my Dreamcast.
When I ordered the keyboard I didn’t have a plan for how to connect it to a Dreamcast, but I wanted a solution that would fit inside the keyboard somehow so that it would be a true Dreamcast keyboard. My initial research was pointing in the direction of a tiny FPGA board to do the USB-Maple translation, but I stumbled on a much simpler way which I describe below. I imagine it could also work on other models of keyboards with detachable USB cables.
- Total Control 5 with USB to PS/2 adapter
- Total Control 5 with a Dreamcast controller cable
- Fitting it all “inside” the keyboard
- The finished product
Total Control 5 with USB to PS/2 adapter
I had a Total Control 5 PS/2 to Dreamcast adapter laying around which I assumed would work with a USB to PS/2 adapter. USB to PS/2 adapters are purely mechanical and only work with keyboards that natively support PS/2. Because my keyboard is a WASD V3, I had to downgrade to the V2 firmware before it would work with a USB to PS/2 adapter. One downside to the V2 firmware is that it doesn’t support programming the Num/Caps/Scroll Lock indicator LED colors (which in this case should be orange, of course), but I’m not sure that the Dreamcast can even turn on the keyboard LEDs as the official Dreamcast keyboards don’t have any.
The keyboard to USB cable to USB to PS/2 adapter to Total Control 5 to Dreamcast setup works, but it is not pretty.
Total Control 5 with a Dreamcast controller cable
The aesthetics could be improved by putting a cable between the Dreamcast and the Total Control 5.
What’s inside a Total Control 5 anyway? There isn’t much more than two connectors, an IC, and a crystal. The IC is a Parallax SX20AC/SS configurable communications controller (it would be interesting to try to dump the EEPROM).
I harvested the cable from a Dreamcast controller and soldered it in place of the Total Control 5’s controller connector. You can see in the third image below how it needs to be wired (the “green” wire is soldered to the same pad as the black ground wire, but on bottom of the PCB).
This is a slight improvement as this way the adapter stack can be moved out of sight.
Fitting it all “inside” the keyboard
While I initially wanted to put everything completely inside the case, I became hesitant to do so because the USB port would no longer be accessible for firmware updates and because WASD’s cases are difficult to open.
In search of a compromise, I realized that there might be room to hide the Total Control 5 PCB in the base of the keyboard where the USB cable plugs in. The PS/2 connector would have to be removed, and the PCB would need to be wired directly to a male USB connector instead.
(In this photo the keyboard’s female USB Type-C connector is barely visible at the bottom of the depression.)
I ordered from eBay this little USB Type-C connector that breaks the pins out to solder pads, and it fit perfectly into the depression with the Total Control 5 PCB once the PS/2 connector was removed.
Here are the USB connections to the Total Control 5 PCB. On a USB Type-C connector, pin A7 is D-, and pin A6 is D+. I added a little tape to the side of the Total Control 5 PCB to prevent the USB connector from shorting to it.
The USB connector and the Dreamcast controller cable wires keep it wedged securely in place, and none of the components are tall enough to stick out of the depression. It’s pretty snug, so I don’t think anything extra needs to be done to secure it.
The finished product
Now I just need to find a way to prematurely yellow the white plastic so that it matches the rest of my peripherals. Or leave it out in the sun for a decade or two.