After modding my PS1 and improving its output, the last thing I wanted to fix was having to deal with the annoying controller cables. As much as I love old consoles, I do not love having to sit close, or untangle a bunch of cables. I considered buying an 8bitdo wireless controller, but then I heard about a really cool project named BlueRetro by darthcloud64.

The BlueRetro project allows you to build a single Bluetooth receiver using just an ESP32 and some cabling, along with multiple controller adapters for many different consoles, so that you can easily use nearly any Bluetooth controller to play on all the different consoles. It’s cheap, easy to build, and best of all, is open-source!

So I decided to go ahead and build a BlueRetro receiver, along with a cable adapter for my PSX (and PS2, since they are compatible).

Building the BlueRetro Receiver

As per the build instructions, I ordered an ESP32-DECKITX-32E with ESP-WROOM-32, a couple of DB-25 male and female connectors with shells, and two PSX controller extension cables, all from AliExpress:

Unfortunately, I had forgotten to specify not to solder on the headers onto the ESP32 board, so the first order of business was to remove them. The method I find easiest is to separate each header from each other with my flush cutters. This allows me to simply heat the solder joint on top and remove each header pin one at a time with pliers:

I printed out the connection diagram to wire up the ESP32 module to the DB-25 female connector:

Since I needed to connect 25 wires, I decided to make use of an old 40-pin IDE cable I had lying around. I removed the excess 15 wires, split out the ends and stripped each one. To help identify the wires, I used markers to color every fifth wire a different color:

I added wire number and color information to the connection diagram to help me out:

Then I tinned each wire:

And got to soldering. I first soldered every even numbered wire to the top row, then the odd numbered wires to the bottom:

Oops, you can see where I accidentally touched the plastic with my soldering iron:

One side complete:

Before I soldered the other end to the ESP32 module, I flashed the latest BlueRetro firmware to it:

I initially needed to install a driver on my Windows 10 machine for it to recognize the device. Then, when flashing, I needed to press a button on the module so that the tool could connect and upload the firmware to it:

Once complete, I used Bluefy, an iOS browser that supports Bluetooth browsing, to connect to the ESP32 running the new firmware:

This web interface is really cool, allowing you to configure how BlueRetro works. Note that apparently on Android, Chrome supports Bluetooth web browsing, so there’s no need to install a separate browser.

Alright, now with the firmware installed, it was time to wire the cable to the ESP32 module:

Three of the wires needed to connect to the Ground pin. I decided to tie all three together and solder them to a single piece of wire to make it easier to pass the wire through the small via:

This is how it looked in the end:

At this point, I still needed to clip the exposed wires under the board, and put the shell on the DB-25 connector. But I left this until the end, once I was sure everything worked.

Building the PSX Adapter

To build the PSX adapter, I first cut the PSX extension cables, exposed the wires, stripped and tinned them:

I used my multimeter in continuity mode to identify which pin each colored wire corresponded to, and wrote it down on the wiring diagram I printed out:

Note that not all cables are made the same, so it’s important to determine these connections on your own.

Following the diagram, I soldered both sets of wires to the DB-25 male connector:

Now it was time for a quick test. In my case, I decided to use PS3 Sixaxis controllers. I didn’t take pictures of it, but in order to pair them with the BlueRetro, I followed the guide, which involved getting the ESP32’s MAC address, and using the Sixaxis Pair Tool to configure each controller to pair with that MAC address.

I hooked up the BlueRetro receiver to the PSX adapter, and plugged it into the PSX, and gave it a spin:

It worked… well almost! The first player controller worked, but not the second. I went over my wiring, and realized I had accidentally swapped two wires on the ESP32 side coming from the second controller. I quickly fixed that, and everything worked beautifully!

Final Touches

Now that everything was working, it was time to close up the cables, starting with the PSX adapter:

I attached the included strain relief, popped it into the shell, and buttoned it up:

For the BlueRetro receiver, I twisted the IDE cable so that it would fit through the hole in the shell:

I clipped the exposed wires underneath the ESP32 module:

Finally, I printed out some labels to identify the player 1 and 2 connectors on the adapter:

The final product:

The last thing I still need to do is make some kind of shell for the ESP32 module itself. It’s fairly sturdy, but it would be safer if it was enclosed in something. If I had to redo it, I’d make the cable shorter, and maybe I wouldn’t use a flat IDE cable, but a proper 25 sheathed wire cable. Still, for the price, I’m quite happy with how it turned out!

Thoughts

Since I built this project, I’ve been having a blast playing both PSX and PS2 games from the comfort of my couch, without having to worry about long cables, or having to pull the console forward. It works really well! I love it so much that I’ve already ordered what I need to make an N64 adapter cable!

I definitely recommend this project for anyone looking for an affordable solution to using Bluetooth controllers on their old consoles. If you’re decent with a soldering iron, it’s not very difficult. If you do decide to make one, consider sponsoring Darthcloud, or buying him a coffee.