m r b r o w n @ 0 x d 6 home // projects // contact

PlayStation 2 Serial Cable

Introduction

This page has instructions for building your own serial cable that connects directly to the PS2's EE processor. It only needs 5 wires soldered onto the PS2 mainboard, and a simple interface circuit to convert the EE's voltage levels to the standard RS232 levels.

Once you complete the serial cable, you can easily test it by setting your terminal app to 38400 8N1 and powering on the PS2. You should see a bunch of messages that look like this.

The cable supports up to 115200 bps.

Parts List
Qty.PartFrom
1MAX3323EEPEMaxim
50.1μF Monolythic CapacitorsRadio Shack
1Female DB9 connectorRadio Shack
1Plastic DB9 hoodRadio Shack
116-Pin IC socketRadio Shack (276-1998)
1Dual PC boardRadio Shack (276-148)

You should be able to order free samples of the MAX chip from Maxim's site. The rest are common parts you can find at Radio Shack. Of course, you'll also need a soldering iron, solder, wires, etc.

I had an old broken crappy Neo 2.2 modchip laying around, so I removed the 5-pin plastic header (male end) from its board and used it to connect the 5 wires coming out of the PS2. You might want to try using a 5-pin header also. Another approach would be to simply mount the interface board inside the PS2. Because I'm a novice hardware hacker, I decided to keep mine external in case things went wrong :).

Instructions

Visio serial cable schematic (.vsd)

Because there are at least 10 major PS2 mainboard revsions, and I built my cable on a V4, there might a few differences in the location of the points you'll need to solder. The main one is the pad for +3.3V. Refer to the installation diagrams of any recent modchip (Messiah, DMS, whatever) for your PS2 version, and you should be able to find the right +3.3V pad to use. Also, my pictures of the serial pads beneath the EE might differ slightly from what you see on your mainboard. As far as I know, the serial port pads exist on all PS2s, so as long as you find the right set of pads you should be fine.

I used the following color scheme for the wires on the PS2 mainboard and the interface circuit:

  • Red - +3.3V
  • Black - GND
  • White - EE core voltage (Vcore)
  • Blue - EE_TXD / PC_TXD
  • Green - EE_RXD / PC_RXD

First, open your PS2 and get to the mainboard. Again, use the installation instructions of a modchip to figure out how to take apart your PS2. You should be facing the side of the mainboard opposite the EE, with the A/V and optical connectors closest to you.

Start by connecting GND, then locate your board's pad for +3.3V and connect it.

If you look at the right side of the bottom of the EE, you should see 4 square-shaped pads. You should also see a gap between the first pad and the bottom three. This is the EE's serial port. The top pad is EE_TXD. Make note of the via (the tiny circle) sitting by itself immediately above EE_TXD. That's the EE_RXD pin. The third and fourth pads are RTS and CTS, but we won't be using those for our cable.

Carefully - VERY CAREFULLY - connect the wire to the EE_RXD via. The best thing to do is to tin the wire, and when soldering allow the solder to flow down the wire onto the via, to avoid touching the soldering iron to the via. Coat the via with flux to make sure it gets wet. Take your time because if that via falls into the depths of the board, your PS2 won't be able to receive data.

Connect EE_TXD to its pad.

The last spot is the EE core voltage (labeled Vcore in the schematic). There should be a large black capacitor sitting right next to the second pad, connect Vcore to the silver end.

Now that you have all of the wires connected, tape them down and run them through the side of the board that has a notch for the power supply's power switch. The PS2 has two small screw holes on opposite ends of the back, and I ran my wires through the hole that sits in between the A/V connector and optical connector.

Reassemble the PS2, making sure to thread the wires through the screw hole so they stick out of the rear of the PS2. If you got ahold of a 5-pin plastic header, attach the wires to the female end.

Building the interface circuit should be straightforward, just use the schematic at the top of this page. The board I listed in the Parts List has more than enough room for the MAX chip and spots to attach the 5-pin header and DB9 cable. In the schematic, PC_RXD is pin 2 of the DB9 header, and PC_TXD is pin 3. Also be sure to connect GND (pin 5) of the DB9 header to GND on the circuit. Here's the complete list of connections:

  • Capacitor across C1+ and C1-
  • Capacitor across C2+ and C2-
  • Capacitor across V+ and GND
  • Capacitor across V- and GND
  • EE_TXD to TIN1
  • EE_RXD to ROUT1
  • PC_TXD to RIN1
  • PC_RXD to TOUT1
  • Vcore to VL
  • +3.3V to SHDN, RENABLE, TXENABLE, and Vcc
  • Capacitor across Vcc and GND
  • Pin 5 of DB9 (GND) to GND

Testing / Code

To test your new cable, connect it, start your terminal app and set your your serial port parameters to 38400 8N1. The PS2's BIOS initializes the port to these parameters, and outputs boot messages during startup. If you power on the PS2 and see these messages (or similiar ones) then all is well. If not, check your cable. Make sure that the wires coming in from the PS2 read +1.7V and the +3.3V points are all connected.

The EE's SIO has a very simple and easy-to-use interface. Here are a few code snippets for initializing the port and doing basic character input and output: sio.c. I've integrated this code along with a few more routines into PS2Lib CVS (PS2Lib home), they'll be included in the next official release.

I have a few projects I'd like to work on that use the serial cable:

  • A serial-based GDB stub for native code
  • DECI2 emulator for logging debugging messages output by games
  • KGDB and serial console for PS2/Linux

I'd be interested in hearing about more ideas for it.

Credits / Misc

I got the information on how to build the cable from Herben of Napalm. He also had the patience to point out where the serial port pads were.

Please e-mail me with any corrections, additions, or other comments, so that I can keep this page accurate and useful.

© 2002-2003 Marcus R. Brown