Monday, July 15, 2013

PowerMac G5 PC Build

I come from academia where grants come and grants go and it's every professor's prerogative to burn through this year's NSF money before the next round of proposals are due. As such, the e-waste dumpster behind my building is always brimming with goodies from rack-mount servers to IBM extension cards. The other day I happened upon a pile of early 2000's Apple desktops, buried under which were these two treasures:


For all my griping about Apple, I love these machines from the first generation of brushed-aluminum-and-glass. They're so fantastically over-engineered it's more fun to take them apart than it is to actually do anything with them. Two heatsinks the size of von Clausevitz texts cool the twin PowerPC processors (which put out a whopping 1.6 GHz each) while nine gray plastic fans shuffle air around the 4-tiered case. While I'm keeping one of the G5's intact to use as a network box (pretty much all it's good for), I've decided to turn the other into an actual, useable PC. I'm going to chronicle my adventures with the PowerMac G5 in the rest of this post.

The first step is to completely gut the G5 and figure out where I stand in terms of parts. One of my goals is to maintain the exterior look of the case. The pictures below give a sense of the layout. The fans can all be re-used with a little rewiring, as can the front panel. Otherwise I think the only pieces I keep will be structural.

The ridiculous number of parts in the case.

The full tear down took hours with hundreds of tiny little torx screws that like to hide behind all of the weird structural features of the case.




/*===~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~===*/

Okay, parts have been ordered! The breakdown:

$114.99 - ASRock Z87M Pro4 (uATX motherboard)
$139.99 - G.SKILL Ripjaws X series 2X8GB (DDR3-1600, 9-9-9-24-2N)
$69.99  - Seagate Barracuda 1TB 7200RPM 64MB cache SATA-III

Total (with tax and shipping): $696.93

The toughest decision was the motherboard. I ended up going with the uATX form factor to avoid having to cut into the top tray. I like the G5's HDD rack/fan setup so I wanted to preserve it as much as possible. My only concern is the uATX I/O panel which is shorter than the G5's so I'm not sure how I'm going to adjust for that. Everything should get here Monday and I can begin the fun part of this project (more fun than dropping $700 on computer parts at least...)

/*===~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~===*/

The build


So my first step was to situate the motherboard. Everything else revolved around this. I chose to use the existing standoffs rather than a motherboard tray. To pop them out, I wrapped them in cloth (they are made of soft aluminum) and pried them off with pliers. The standoffs in the case come in two heights and I used the shorter ones for the motherboard to keep the I/O panel out of the way of the rear fans.


I aligned the motherboard to the PCI slots using an old networking card:


I secured the standoffs to the rear panel with JB weld. First I lay down some painter's tape to contain the epoxy. I scored the mounting surface with a screw driver to give the epoxy something to hold on to. Then I put the motherboard in place and wiggled it around a bit to get really get the epoxy around the standoffs. Finally I put some heavy books on the motherboard and let it cure for about 20 hours.



While the JB weld dried, I began work on the power supply. I wanted to use the original outlet so the first thing I did was slice open a standard AC power cord and solder it to the G5 outlet.


I like the plastic cover so I made sure to place the power supply far enough back in the case that it wouldn't get in the way of the strange depression in the cover (which I think is supposed to act as a venturi for the CPU fans). With the position measured I dremeled the shape of the PSU out of the top of the case. I made a space to reach the power switch as well as extra room in the back for the modular connections.


Probably the most time consuming part of this project was re-wiring all of the original G5 fans. I used three 'sets' of fans and will describe them in turn. For all three, I used these handy PWM splitter cables that I re-wired as needed:


The pins in the connectors can be removed by reaching into a slot in the front right above the pin and pushing down on a small metal tab. Remember to push the tab back up before reinserting the pin or it won't stay.


The first (and simplest) were the twin power supply fans. These aren't terribly important but I like the way they look so I left them in. The connections are very simple. One simply has a high line (red) and a ground (black), the other also has a tachometer wire (yellow). These run really loudly at 12V so rather than bother with a control (and since these don't really cool anything) I simply tied the high line to 5V (red wire in Molex connector) and left it at that.


The real fun began with the rear fan. Every fan in the G5 (except the PSU fans) is controlled individually leading to weird 4, 5, 6, and 8 pin connectors and all of the wires are black and unmarked. I used these pinouts and did not find any errors. To read them, hold the connector wires-down with the metal release tabs facing you:


To run the rear fan with a 4-pin connector, I soldered the control lines to the same pin and did away with one of the tachometer pins. I ended up with


Next up were the front CPU fans. I decided to use the one fan from this case (which was a single CPU machine) as well as the two fans from the dual CPU machine that I scavenged. I pulled the same trick with these fans, combining the control lines so that I could use the 4 pin connectors.


Since my motherboard was DOA and I had some time to kill while waiting for a replacement, I got a little creative with the fan placement. The first step was to pop the fans out of the the plastic framing, being careful not to tear the little silicon cones that hold them in.


Conveniently, the front CPU fans are exactly the depth of a 2X4 (~1.75") and so a couple of framing braces, drilled to mount the holes on the fan worked perfectly.


I used the dremel to make some aluminum bracing and held it all together with some #8x32x2" machine screws.


Lastly, I JB welded the framing braces to the rear panel and CPU cover. I think it adds just the right amount of pizzazz to the build.  


The hard drive bay fans were the last hurdles to getting the case nice and ventilated. I'm not sure why, but for whatever reason, the control of these fans seems to be only on or off. I was unable to change the speed by varying the control voltage so I resorted to simply tying the high line to 5V (like the PSU fans). Otherwise these were fairly straight forward. The reason for the 5-pin connector on the blower is also something of a mystery.


And the completed HDD bay with SATA cables, power and fans:


The only change I had to make to the exterior of the case was cutting the I/O panel out. As much as I would have like to rewire everything into the original ports, it made the prospect of ever switching motherboards pretty daunting. Instead, I simply cut the whole I/O panel out and will hopefully get around to crafting a nice faceplate out of sheet aluminum in the future. For now, it's just open to the world.


With all of the fans in place and the wiring all sorted out, I was ready to put the motherboard back in.
 
I installed the processor and memory and carefully lowered the motherboard in place.





The final step to a working machine was wiring the front panel to the motherboard. I used the following diagram for the front panel connector:



The only difficult part here is that the power button is connected to the firewire ground pin (top left of the diagram) and only to this ground. So three wires sufficed for the front panel: motherboard +PWR to pin 13 in the above diagram; motherboard +PLED to pin 14; and finally motherboard GND to firewire ground (not the shielded gnd pin) - pin 2 above.


And with that I was able to fire it right up. There are still a few issues that I need to deal with. The first is that my motherboard cannot seem to control the G5's fans. Apple being Apple, they are likely controlled by some very specifically shaped pulse known only to the engineers who developed the fans and who have now been permanently stationed on Eros (Ender's Game anyone?) For now the control is tied to 5V which seems to keep them at a reasonable speed. I would like to wire the front USB port and front headphone jack but I need to go out an buy connectors to fit the corresponding motherboard headers. Otherwise I'm rather pleased with the build. Kubuntu 13.04 installed with absolutely no drama and within a few hours this has become my new work machine. All in all, very pleased with this project.