PS2 RPI4 Part I: Restoration

Multithreaded JavaScript has been published with O'Reilly!

For years I've wanted to take a PlayStation 2 chassis and shove a modern computer inside of it, keeping the original look as much as possible, much like a classic car restoration. Unfortunately it's nearly impossible to fit gaming components into a PS2, especially with cosmetic constraints.

The PlayStation 2 is the pinnacle of Cyberpunk aesthetic
The PlayStation 2 is the pinnacle of Cyberpunk aesthetic

The base of the PS2 is 159mm x 270mm, the top is slightly longer and wider, and the height is 77mm, all with a couple millimeters of plastic wall. A Mini-ITX motherboard is 170mm x 170mm, which is too large for the bottom (it might fit upside-down in the top compartment). A Nano-ITX board is 120mm x 120mm, which would fit, but is pretty hard to find and still requires a lot of power supply.

The Raspberry Pi, on the other hand, is about 55mm x 85mm, which means a few of them could probably fit in the PS2. It can also be powered by a tiny wall adapter that can be included in the case.

While my original PS2 has long-since been pawned off, I was able to rescue one from a recycle bin about a year ago. It's one of the “fat” SCPH-30001 units, which leaves much more room than the “slim” variants.

Project Goals

The machine should perfectly resemble the original PlayStation 2 from the front, sides, and top—barring a few tiny changes, like maybe the black USB 2 ports being replaced with blue USB 3 ports. The machine should mostly resemble the original PS2 from the back. Some mods I've seen in the past result in the entire back plate being removed and a motherboard dangling out the back. Disgusting.

The two USB ports might be a little tricky
The two USB ports might be a little tricky

The machine should use the existing power cord port and power switch. The PS2 didn't come with an external power supply, and neither should a restoration. There will need to be some sort of power supply inside since the PS2 takes a full 120v A/C power cord.

The optical drive doesn't need to function or even open. If I were building this ten years ago then keeping the optical drive door working would be important, but since most of us haven't touched an optical disc in years there really isn't a need.

The Power and Eject buttons should do something, and the Power LED should light up when the device is turned on. It would be nice to have the Power button turn on the unit, but I'm also fine with using the back switch to power on the machine.

Existing port holes should be reused whenever possible. The front two USB ports absolutely must work, though I'm torn on keeping the existing USB 2 ports or replacing it with USB 3, more on that in a bit. The obsolete S400 port next to the USB ports doesn't need to work.

The memory card doors should remain, though they don't necessarily need to open. The controller ports should remain as well, though they don't necessarily need to function.

There aren't many ports on the back
There aren't many ports on the back

Even though it's a technology still in use, I'm not sold on keeping the digital optical output port. I hear it's useful for high end audio equipment but I've never owned any. I'm not sure if the optical door flap is part of the case or part of the motherboard. If the latter then something will have to fill the hole.

The original AV Multi Out plug doesn't need to be reused, since the audio and video quality that comes from it is so rough, so again the hole should be repurposed.

Plans

Here are my current plans for the PS2, though they're definitely likely to change while I'm modifying the device.

  • Use a Raspberry Pi for the computing board
  • Replace the AV Multi Out plug with an HDMI port
  • Replace the optical out plug with a 3.5mm audio port
  • Keep the existing fan
  • Wire the Power LED to the GPIO 3.3v pin
  • Wire the Power and Eject buttons to a GPIO port—maybe pressing power executes shutdown
  • Add some sort of internal hard drive (might require additional power)

Power Supply

  • Either use the existing PS2 120v to 12v power supply and step it down to 5v
  • Or remove the PS2 power supply (it's large) and replace with a USB transformer

Using the existing power supply is nice because it should provide a decent number of amps. Also, the PS2 power supplies are probably built for longevity unlike modern USB wall transformers. That said, the power supply in this PS2 has already been used for twenty years and the capacitors could be bad. Replacing a PS2 power supply is harder than replacing a commodity USB transformer. Using the existing power supply will also require that I buy something to convert the 12v output to 5v.

Front USB Ports

  • Either keep the existing USB ports, chop from motherboard and solder
  • Or replace USB ports with a pair of glued USB 3 extenders

Keeping the existing USB ports is convenient because the front of the case will look even more original, and the existing ports will be more resilient than any cables I could hack up and glue in place. But, using USB 3 cables would allow me to plug in an external USB 3 device and benefit from the speed. Either way, it's going to take some work to either hack up and solder the existing ports, or hack up and glue new cables.

Controller Ports

  • Either purchase a PS2 to USB adapter and wire the ports up
  • Or leave the ports unwired

Reusing the existing ports and purchasing two PS2 controllers would look pretty sweet. They would be useful both when using the machine as an emulator as well as controlling the interface. However, using generic USB controllers would also work and would allow for more versatile options on what type to use (such as a wired XBox controller).

Ethernet Port

  • Either dremel a hole in the back and add an RJ45 port
  • Or do nothing and just rely on wireless

An Ethernet port would be nice, especially when it comes to streaming media over the network or possibly using the device as a NAS. The Raspberry Pi 4 comes with gigabit Ethernet as well. Wiring up a port would probably be the ugliest change. Otherwise, the board does come with built-in WiFi. The built in WiFi probably isn't that strong, so I might even add a USB WiFi card and wire up an external antenna port on the back, or have a big internal antenna.

Concerns

One concern I have is with the number of USB ports. The Pi comes with 4 ports (2 x USB 2, 2 x USB 3). The front two USB ports will consume two of them, leaving two for working with internal components, such as a USB hard drive and a USB WiFi card. I'd also like to pair a remote with the device, but luckily there are plenty of them that connect as Bluetooth keyboards and the Pi 4 has Bluetooth.

Power consumption is also a concern. I might choose to add a USB 3 hub to the mix, only using a single one of the USB ports on the Pi. This does constrain the space a little and also makes things more complex, but does help with power a lot. Internal temperature might be higher, too.

The Raspberry Pi will probably sit in the middle of the PS2 on standoffs with extension cables coming off and connecting to the external ports. This looks way better than most Pi conversions where the board is flush with the edge of the case. This does mean that the MicroSD card can't be accessed unless the case is opened again. They do make MicroSD ribbon cables so I could make an SD card slot on the back. Traditionally the Pi can only boot from MicroSD, however a Firmware Beta seems to make it possible to boot from USB. This could mean booting an installed OS from a USB M.2 adapter, or installing a new OS from an external USB drive, skipping the MicroSD card completely. This would make the device both run faster and be easier to maintain.

There was a finite number of PlayStation 2s ever created, and no new ones will be built, so I almost have “ethical” concerns about killing this one. That said, the PS2 is currently the best-selling console ever made, having sold over 150 million units, so it's not exactly rare.

Thomas Hunter II Avatar

Thomas has contributed to dozens of enterprise Node.js services and has worked for a company dedicated to securing Node.js. He has spoken at several conferences on Node.js and JavaScript and is an O'Reilly published author.