The G4 Cube, Part II: CUBE_HELL

This one’s gonna be a doozy.

Last we left the Cube, I had some parts on order to try and get the thermals under control within the Cube. Specifically, the thermals with the video card portion, seeing as that was almost completely cut off from the rest of the Cube airflow-wise. My plan first and foremost was to install a base fan so that rather than blowing air at the CPU heatsink and letting the air kinda scatter and try and find its way out of the Cube by itself, the base fan would blow air past the heatsink, up and out of the top where it should be going. The hope was that this would drop the overall temperature of the Cube and maybe free up a little more thermal headroom.

Failing that, I bought some small blower fans to put near the video card to try and force more air through it. Kind of conveniently, they also used the very same JST connector as the video card’s built-in fan. However, in giving them a test run…while they do move air, they don’t move a lot, and sadly I don’t think they’d move enough to make any real difference to the temperatures of the card. They were dirt cheap though, so I’ll keep them around just to have them in my back pocket, so to speak.

As I attested to in the previous piece, installing a base fan in the Cube is an affair and a half, as the logic board (and CPU) need to both come out to expose the slot where the base fan can be slid in. It’s also an adventure because you need to find proper screws to secure the fan in place, and try as I might, I didn’t have many. I found two that worked good enough, and the fan is thankfully plenty secure with just two screws in. But due to the way the screw holes are, you need longer screws than usual (that cover the thickness of the fan and then some).

Much to my delight, the base fan install was a success, barring a soldering snafu with a cold joint when making the cable to connect it to the VRM header. If you’re curious which header it is, it’s the one right above the big connector that connects the VRM to the logic board. It’s a 1.25mm JST connector. I used these ones from Amazon. (Not an affiliate link, don’t worry.) The ones I got were the proper polarity, all I had to do was graft it onto the base fan and I was off to the races. The fan I got moved a fair bit of air, I could feel it sitting a few feet back from the Cube. Did this make the Cube not so silent? Yes. But that’s fine with me. The fan noise wasn’t grating fan noise, and that’s what matters.

The JST header on the Cube VRM for the base fan.

I eagerly put everything back together, wanting to test out the Cube now that we have a proper base fan installed. However, rather than being a taste of Cube bliss, this would be Cube hell.

Everything Goes Wrong

Everything back together, I powered up the Cube only to be greeted by nothing more than a partial OS 9 boot. It got just past loading the accelerator drivers, and then bombed with a bus error. That’s…odd. Reboot?

Gray screen. Nothing.

Okay, this isn’t the first time the Cube has been weird. Hard power off, reboot again? Odd, now we’re just dumping out into Open Firmware with a default catch.

I figured something must have gotten knocked loose, so I tried all of the things you’d do in this situation: Checking the IDE cable, checking the RAM, checking whether the video card riser was seated properly…nothing worked. Just kept crashing out to Open Firmware. I feared something very deep had gone wrong. I had been told that Cubes–when taken apart enough times–tend to just die due to fatigue, and I feared that maybe I had crossed that point. I hoped I hadn’t.

Another order later, I had a vat of thermal paste ready to go so I could continue on with my experimenting. I pulled the Cube to bits once again, and this time removed the heat spreader from the CPU card. I thought I had found the culprit: dried thermal paste from when I installed this accelerator. The heat spreader sat rather loosely on the CPU, and was susceptible to shifting, so I figured when I pulled the Cube to bits to install the base fan the spreader had shifted enough to break the bond between the CPU die and heat spreader, and the thermal contact wasn’t as good as it should be. To combat this, I used a thermal pad instead of more paste.

I put it all back together, and it seemed to have worked!…for a little bit, anyway. It wasn’t long before the Cube began acting up again. To back up my hypothesis that this was a thermal issue, I sat the Cube in front of my air conditioner (blasting it with really cold air) and powered it on, and surprise: it completed a boot just fine, did not crash out to Open Firmware. This was definitely a thermal problem of some sort, I just had to figure out where in the chain this problem was happening.

There was also a nonzero chance my accelerator was just hosed, and this was potentially a BGA issue, which is way above my pay grade to deal with.

On a fateful night (yesterday night as of when I’m typing this), I couldn’t sleep. I figured maybe I should do something productive, so I said screw it and got back to trying to figure the Cube out. I pulled it down to every last screw, pulling the CPU card off and giving it a close inspection. I even decided to lap the heat spreader to make damn sure that thing had optimal contact with the CPU die. Everything looked good going back together, until something caught my eye. Something dumb, but something hard to spot if you’re not looking for it, either.

When you’re pulling the logic board out of the Cube, you’re probably doing so with the logic board side facing up. This means the CPU is under the logic board, effectively. This is also how I install the logic board, with the logic board side facing up. Makes it easier when gravity isn’t fighting you on the alignment.

To make sure the CPU card and heat spreader sit perfectly against the heat sink in the core of the Cube (and so it doesn’t sit crooked against the logic board, either) there are three little spacers. The spring screws to keep tension on the whole stack go right through these spacers, too. When screwing everything back together, you should be able to see the edge of the spacers in the screw holes on the logic board. What caught my eye was that I couldn’t spot one of them. What had happened was that when I was trying to slide the logic board back into place, that spacer fell ever so slightly off center, enough to make the CPU and heat spreader sit crooked against the core heatsink, but not so much that the spring screw wouldn’t go through it. And because the spring screw still went through to the spreader/heatsink fine, I suspected nothing was wrong.

I pulled the logic board back off the Cube, re-centered that rogue spacer, and made sure it was still in the right spot when everything was all said and done.

I reassembled the Cube just enough to test, convinced that no, that couldn’t possibly be it (…though to be fair, I’ve had similar “small” things cause issues on modern systems, even, so this wouldn’t be out of the ordinary) but lo and behold, the Cube was now operating flawlessly. It booted into 10.4.0 perfectly, with nary a complaint. I was able to update it to 10.4.11, something it wasn’t able to do before before crashing due to thermal problems.

I couldn’t believe it. I lost hours, hours of my life all due to that tiny little jerk of a spacer causing contact issues. To confirm it beyond a reasonable doubt, I tried reinstalling OS 9 (I had formatted the SSD because I thought this was an OS corruption issue at first) and where that once failed, it was now working perfectly fine. Again: I couldn’t believe it. I was also eternally thankful that this Sonnet accelerator hadn’t fried itself in the process, as I know some G4s lack any kind of thermal protection and will gladly just cook themselves to death if you let them. This one didn’t, much to my astonishment and gratitude toward Sonnet/the tech gods that be.


After all was said and done, I got to reinstalling absolutely everything I once had on the Cube, as I foolishly thought this was a disk corruption issue and wiped everything. OS 9 reinstalled without a hitch, and–for some true nostalgia–I opted to go with Jaguar for my flavor of OS X on this machine. Jaguar holds a special spot in my heart because it’s the version of OS X that I started out on. I never got to truly experience the bad old days of 10.0 and 10.1, but maybe someday I’ll grab one of my vintage machines, sit down, and really experience the crunch of OS X before it really started coming into its own.

Despite all this work, I still haven’t done much on the GPU cooling side of things, but I did run some games (Quake 3, Unreal Tournament ’99, Diablo II) and it seemed to hold up fine, so maybe I worry a little too much.

I still also need to tackle retrofitting the VRM with some beefier MOSFETs but I’m actually holding off on that until dosdude1 can verify that the replacements that should drop in won’t knock the voltages and such out of spec. But at least for now, the Cube seems to be fine, plugging along completely unaware of me absolutely botching the reinstallation of the CPU card/heat spreader. Whew.

The next part will likely be a small one: Retrofitting the VRM, and maybe exploring modding the case (lightly and tastefully) to allow more airflow to the GPU. The latter is a heavy maybe.