Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I agree with you to a point @MisterKeeks. However, the machine is applying old thermal data to a new cooling loop. The resulting control is definitely not correct. It is worth fixing that before proceeding further.

Once the calibration is done, or fails, I will work on the "kink" problem and see if I can loosen it. It is curious/telling that it that CPU that is running hotter... likely a correlation worth actioning.
 
The information doesn’t align, fine, but you don’t get anything useful out of calibrating a nonworking system. The fact is calibration is not going to be able to fix a CPU running away to 80C. The system isn’t able to preferentially cool one CPU more than another, it has a single pump. Pass or fail, it doesn’t really matter, you’ll have to make the exact same changes to the system later anyway. Then you’ll need to recalibrate once the system is working. Calibration is not going to have a big impact on the temps you observe; if the system was running hot before calibration it’s going to run hot after.
 
Thermal Calibration failed, predictably... no actual failure message, the system just froze. However, after calibration, the story was changed. CPU A was now stable in the mid 40s, and CPU B was stable in the low 60s. The fans, however, were the same as always... running full tilt, creating an unacceptable noise level

So... my new "FrankenCooler" at least didn't make things worse. It just didn't make them better!

Still, @MisterKeeks, you are spot on - I need to "fix" CPU B's intake hose, to have no kinks in it, or a lesser kink, and see what happens then. Likely not tomorrow (Friday) - have other things that need doing - but over the weekend, I will give this a go.

@MisterKeeks, I really appreciate your attention to this story and your helpful advise. Thanks!
 
Last edited:
Good luck! I’m surprised thermal calibration had such a large impact, tbh. I read someone else who thought the calibration froze but found that a calibration had actually gone through. Maybe that happened here.

It would be great to figure out what this calibration is really doing. There’s only so much it can accomplish given a pump, fans, and the laws of physics.
 
I would *love* to find an API for G5 Quad fan speed control and write a Terminal utility around it, allowing a Terminal user to directly control fan speeds. Does anyone know of such a thing?
 
Did some searching and I didn’t find an app, but apparently one can modify the Kext and make it work.


You must modify AppleFan.kext.


Code:

<key>fan-hysteresis-temp</key> <integer>14080</integer> <key>fan-polling-period</key> <integer>8</integer> <key>fan-slowdown-delay</key> <integer>48</integer> <key>fan-speed-table</key> <array> <integer>14592</integer> <integer>14922</integer> <integer>15059</integer> <integer>15164</integer> <integer>15252</integer> <integer>15331</integer> <integer>15401</integer> <integer>15466</integer> <integer>15526</integer> <integer>15583</integer> <integer>15637</integer> <integer>15688</integer> <integer>15736</integer> <integer>15783</integer> <integer>15828</integer> <integer>15872</integer> </array> <key>fan-speedup-delay</key> <integer>8</integer>

I modified the code to spool up gradually 129*f-163* then ramp up to max quickly between 165*f-167*f. Slowdown delay was cut by 2/3 from 48 to 16.

Code:

<key>fan-hysteresis-temp</key> <integer>13300</integer> <key>fan-polling-period</key> <integer>8</integer> <key>fan-slowdown-delay</key> <integer>16</integer> <key>fan-speed-table</key> <array> <integer>13800</integer> <integer>14200</integer> <integer>14600</integer> <integer>15000</integer> <integer>15500</integer> <integer>16000</integer> <integer>15500</integer> <integer>16768</integer> <integer>17200</integer> <integer>17800</integer> <integer>18176</integer> <integer>18700</integer> <integer>18950</integer> <integer>19100</integer> <integer>19150</integer> <integer>19200</integer> </array> <key>fan-speedup-delay</key> <integer>8</integer>

MAKE A BACKUP OF THE STOCK FILE BEFORE YOU CHANGE ANYTHING. Right click on AppleFan.kext and choose "compress" to make a copy that won't be modified.

I found a fan speed monitor program. Use at your own risk.

 
Thanks. Yes, I was aware of this approach, but I have yet to experiment with it. In the end, I do still have an insufficient cooling loop on my LCS. I cannot code my way out of that .. I just have to keep cranking until it *is* sufficient!

In e meantime though, thanks. I took a screenshot of your code and will give it a whirl.

Do you know what each numerical value is for? It is not obvious to me...
 
I am super curious what happened with the pump. It might be repairable. I would do an autopsy of it. They can be disassembled, I opened mine so that I could replace the o-ring in it.

I think I have deduced what happened to the pump. After it happened, I did what all good electrical engineers would do... I smelled it, and there was the unmistakable aroma of burned insulation. Conclusion: I inadvertently burned out the motor.

How did I do that? I probably violated its design limit duty cycle. We have all read that the motor control for these pumps relies on Pulse Width Modulation (PWM). In regular operation, PWM would cycle the pump speed up and down, and might even occasionally turn the pump on and off, all on a frequent but routine basis, driven by temperature feedback from the CPU temperature sensors. The pump is probably not designed to run 100% of the time at full speed. However, that is EXACTLY what I was doing to it. I had it hooked up to an external power supply, and left it running continuously for quite a while (half an hour or more), thinking it would help force more bubbles of air over to where I could bleed them (the output line of the pump, in my loop design).

My guess is that being on for 100% of the time at full tilt, for that long, was more than the motor was designed for, and it overheated and burnt out. That is my guess anyway... :oops:

Happily, it is clear from a little bit of Google'ing that I can find a gaming PC liquid cooling pump to replace it. They should come in the right sizes... it will just taken some hunting to find the right one. No matter what I find, it probably won't respect Apple's PWM controls, so it will run at full tilt 100% of the time. SO... I will need to select one carefully and ensure that the chosen pump can handle this easily.

Anyway, that is for my "other" Quad. The one I am working on right now is just about ready for its next test. I have eliminated the kink in the CPU B intake hosing and done my very best to bleed all the air out of the system again. There is still visible air in the system, but not a whole lot. I will never achieve perfection in this I think... as the old saying goes, you should never let perfection get in the way of excellence. I *think* I am approaching "excellence" in the amount of air left in the system. We shall see!
 
OK, FrankenCooler Rev 3 is ready for testing. For this latest revision of my cooling loop design, I took a piece of old Apple hosing that had a near right angle in it, mated it to a short piece of transparent hosing, and replaced the kinked CPU B intake hose with this new, kink-free one (it was the near right angle from the radiator output barb to the input barb of CPU B that was causing the kink - the right angle in the Apple piece took care of this).

Here is what FrankenCooler Rev 3 looks like:

2025-03-29.1215, FrankenCooler Rev 3.jpg
 
No matter what I find, it probably won't respect Apple's PWM controls, so it will run at full tilt 100% of the time.
Something I've wanted to do or reach out about was figuring or finding out exactly how Apple did PWM on the LCS, and perhaps making a small board with microcontroller to convert the Apple PWM signaling into PWM signaling that's compatible with standard hardware.

I know that'll at least be beneficial for the PC Cooler Quad and might also be useful for those who replace their pumps with contemporary pumps (like you've mentioned).

I'll have to source an oscilloscope to do it myself though.
 
Please areas the G5 threads on the 68MLA forum. There is a lot of stuff across the G5 threads about the pumps.

I can’t seem to find the Blood Mod thread anymore. I remember that one having tons of pump and operational info.

I don’t remember enough to answer your questions and I haven’t worked on my G5 in several years. I’ve probably forgotten more than I learned about powermacs which means I remember even less than I did when I started.

I’ll shut up unless I can actually help. I’m rooting for you and wish you success. The answers are out here, but they’re scattered. I appreciate you doing this thread.
 
The G5 quads used Laing DDC pumps, or that's what I recall at least. You can buy replacements. IIRC the circuitry is G5 specific though. Possibly you'd be able to transplant the PCB from your dead one into a replacement, if the failure was mechanical (if it's leaking, that's what it sounds like to me).

I would be extremely concerned about leaks with the current mating setup you have there. Even if it isn't visibly leaking, if there is small evaporation over time this will not be a durable solution. You might want to find a hose that tolerates bends better than what you are using.
 
...and the results are in! FrankenCooler Rev 3 is no better than Rev 2. Pretty much no change at all after all that work. CPU A idles in the mid to high 40s; CPU B idles in the low 60s. Both are stable, but CPU B is at least 15 C hotter than I would like, and that result is only accomplished with the fans running full speed and producing a nearly jet engine roar.

With Rev 3, I feel like I have built the best cooling loop I know how to - no kinks, no leaks and almost no air bubbles in the system. None of this has made any difference however.

My troubleshooting experience tells me therefore that I am not solving the right problem. Nothing I do is "moving the dial", so I am not attacking the right thing. Something else is causing this issue and I have yet to identify and fix it.

There is one last thing it could be and then I am completely out of ideas. The only thing I haven't checked is the micro channels in the CPU cooling pads themselves. If one or more of these channels for CPU B is clogged with any form of coolant debris, it could be obstructing the free flow of coolant.

I hate this idea: it means that I have to tear the whole thing down ...again... drain the system, extract the CPU B pad and disassemble it to get at the micro channels the coolant flows through. While I am now painfully well skilled at doing this, it is still a big job and an annoying job.

Nonetheless, it has to be done, and I will do it. If this last step does not solve the problem, I think I may be done with my stint as a "plumber". These LCS systems are just too finicky. Air cooling is THE way to go.

I hope that the micro channel work solves the problem once and for all, but if not, air cooling is next. Air cooling itself is a large and complex challenge, with unknown odds of success, but it seems more straighforward to me than this LCS stuff. I have built a lot of air cooled computers - going this way seems much more in my wheelhouse.

Time will tell!
 
Did some searching and I didn’t find an app, but apparently one can modify the Kext and make it work.





I found a fan speed monitor program. Use at your own risk.


Hi, do you know how to read the values in that kext? Each line in the fan speed table is three values, but I have no idea what each value relates to, and even more importantly, what the units of the numbers are. Are they degrees F with an implied decimal point between the last two digits and the rest of the number? Something else? Thanks!
 
Can’t help you there. I don’t know if the numbers represent time, temperatures, speeds, or all of them.
I would expect everything to be metric but it could be C or kelvin.
 
Regarding your cooling attempts, I agree you need to go deeper; Down to the cooling junction right below the CPUs.

When I tore my single pump system down and flushed it, I found lots of tiny nubs of rubber inside. I didn’t go deeper, but I should have.

I remember seeing a picture of this area as a copper zone with many towers extending into the coolant flow area.

How to get there? I think you’ll figure it out. I don’t have any pics or direct advice because I failed to do this on mine.
 
Thanks @Eriamjh1138@DAN, I have broken one other Quad all the way down to the cooling pads, extracted and flushed the micro channel guide and then rebuilt. Worked fine, but in that machine, the micro channels were not the issue, so it didn't improve anything.

You (perhaps) indirectly raise a good point - I will take lots of photos as I go and include them in this thread.
 
Finally, positive results to report in this epic battle.

I did a full tear down of the Quad once again, followed by a complete disassembly and thorough cleaning of the two CPU cooling pads, then rebuilding of the cooling loop, refilling it and then reassembly back into the Quad… and it worked! It finally worked! I dubbed the new cooling loop FrankenCooler Rev 4. Here is a photo of it, ready for reassembly into the Quad:

2025-04-03.1137, FrankenCooler Rev 4, Filled and Ready for Reassembly Into the Quad.jpg


The thoroughly cleaned CPU cooling pads, plus the careful design and construction of FrankenCooler Rev 4 (no kinks, no leaks, only one fill/bleed line and over 250 ml of coolant forced into the loop) finally did the trick.

CPU A now idles in the high 30 C area, a drop of 15-20 C over previous values, and CPU B, until now the "problem child", now idles in the high 40s C, again a drop of 15-20 C. This is an excellent result; I am very pleased with it.

The coolant I used is XSPC’s EC6 Blood Red, 1 Liter bottle. I chose this vibrant color to provide maximum visibility of coolant flow, and critically, leaks. Here is a photo of the coolant used:

Screenshot_20250404_062149_Amazon Shopping~(1).jpg


As you can see from the earlier photo of FrankenCooler Rev 4, the process of filling the loop and killing a few small leaks spattered red coolant all over the towel I was working on.

When it was all said and done, here are the iStatMenus readings for CPU temps and fan speeds (I let the Quad run for a while until I was sure that these were stable values):

2025-04-03.1830, CPU Temps, Fan Speeds.jpg


As you can see, fan speeds are still a little higher than I would like, but they are well within my acceptable range from an audible perspective.

Because I haven’t seen similar photos here on MacRumors, following are photos of the CPU cooling pads teardown. First, the CPU A cooling pad extracted from the LCS:

2025-03-31.1100, CPU A Cooling Pad Before Disassembly.jpg


Next, the same cooling pad with the heat sink removed from it, exposing the microchannels underneath. These channels circulate coolant evenly across the entire CPU heat spreader, transferring heat from the heat spreader to the coolant. That heat is then carried by the cooling loop to the radiator, where fan forced air extracts it and directs it out of the Quad’s case.

2025-03-31.1101, CPU A Cooling Pad Disassembly,  First Step.jpg


Finally, a photo of the two CPU cooling pads fully disassembled and before cleaning (I used a toothbrush and an exacto knife blade to meticulously clean each of the microchannel grooves.

2025-03-31.1233, CPU Cooling Pads A (Left) and B (Right) Extracted and Disassembled.jpg


Getting to this result with FrankenCooler Rev 4 was not without its challenges – Murphy never takes a holiday. It was CPU B’s cooling pad and micro channel guide that I really wanted to get to and thoroughly clean/flush. Guess which set of cooling pad screws would not budge, and started to strip the heads as I tried to turn them? You got it - CPU B! The “fun” just never ends on this task!

In an effort to overcome this new obstacle, I sprayed just a little bit of WD-40 onto the two screws that wouldn’t budge. WD-40 is reputed to be a “penetrating lubricant”, so with any luck, it would loosen things up a wee bit. Regrettably, it did not - no impact at all.

After watching multiple YouTube videos on the best ways to free up seized screws, I tried out each of the techniques I had seen. They all looked so easy and so effective on YouTube! But all too predictably, none of them worked… until the very last one which directed that if all else fails, drill out the screws. All else had failed, so I got out my electric drill and drilled out each of the two screws. With some effort, this eventually succeeded.

2025-04-01.1154, Drilling Out CPU B Cooling Pad Stuck Screws.jpg


Of course, drilling out the screws destroyed both the screws and the threads they screwed into:

2025-04-01.1225, The Drilled Out Screws from CPU B Cooling Pad.jpg


so I had to hunt down a nut and bolt arrangement to replace the two destroyed screws. Happily, I have a large stash of such things, and I was able to find two that fit.

There was more “fun” along the way, but in the interests of not writing a book here, I will skip further details – the end result was successful.

I would declare complete victory except that after reassembly into the Quad I noticed a new small coolant leak coming from the pump housing itself. At present, I have no means of correcting this, so my newly cool Quad has only a limited lease on life before enough coolant is lost from this new leak to render the LCS inoperative again. As I said before, the fun never ends on this task. The one saving grace here is that FrankenCooler Rev 4 retains its fill/bleed line, which is about 5 inches long, is filled with coolant and is clamped off at the very end. This is thus a form of coolant reservoir that will be able to replace coolant lost to the pump leak for a time, until it too is exhausted. For now, I have placed an absorbent pad under the cooler to sop up any coolant that leaks.

I will take apart the burnt-out pump from my other Quad and examine it carefully, to see if there is anything I can learn from it and apply to the FrankenCooler Rev 4 pump leak.

...and, since my other Quad is crippled by its burnt-out pump, I am going to try my hand at air cooling it. That will be a whole new adventure, but somehow this new adventure feels easier than the LCS approach. I will likely take a break and work on some other things before tackling the air cooling project. I am sure that it will be as all consuming as this current LCS project was.

For now however, I will savor the sweet taste of success after two months of incredibly frustrating work.

I have been documenting and photographing what I am doing all along. I am now about half way through writing a comprehensive guide to LCS reconditioning, covering the entire process from "you have an overheating Quad" to "your Quad is now properly cooled and working well" - tools, procedure steps, tips and tricks and LOTS of photos - pictures really are worth a thousand words. There probably will be "a thousand words" of course; by now it must be clear to you all that I am one of those people who prefer more words to fewer. Exhaustive documentation is of far more use than sketchy documentation!

When this guide is done, I will publish it to both my Quadras, Cubes and G5s WordPress blog and my www.retro-computing.com blog. I will publish a link here to both when done.

To all of you who have offered your thoughts, critical commentary and advice, thank you very, very much! I would never have gotten to this point without your help! You are SO appreciated!
 

Attachments

  • 2025-04-03.1830, CPU Temps After FrankenCooler Rev 4 Installed.jpg
    2025-04-03.1830, CPU Temps After FrankenCooler Rev 4 Installed.jpg
    54 KB · Views: 32
Last edited:
What a fantastic work! Maybe you should measure the dimensions of the cooling pad with calibers (post the pics of measurements), some machine geek could mill an all metal version
 
Did you run the thermal calibration yet?

I'd be concerned that the leak is going to get worse. Plus, it's likely to leak just sitting there, even when you're not using it.

Which CPU is B? Is it the one closest to the pump on the mounting plate or the other?
 
Which CPU is B? Is it the one closest to the pump on the mounting plate or the other?
I don't know relative to the LCS but CPU B is the processor closest to the power supply near the bottom.

e~ based on the photos it looks to be the one away from the pump
 
Yes, CPU B is the one farthest from the pump. As @Doq says, it is the one directly on top of the power supply.

I am happy to report that the leak was always very slow, and it appears to be getting slower. All well and good, but I agree with @Eriamjh1138@DAN, it is likely to get worse over time. Since I didn't observe it until I reassembled the LCS into the Quad, I have decided to extract the LCS one more time and have a very close look at the pump.

Perhaps, just perhaps, the leak is actually at the pump intake or output hoses/barbs, not the pump itself. If this were the case, the leaking fluid would drip down the side of the pump and appear to be coming from the pump housing. That is my fond hope.

Also, since fan revs are still higher than I would like (the Quad idles at fan speeds around 1900 RPM), I have come up with a novel idea for getting more coolant into the loop without opening the loop back up. It is an odd enough idea that I will hold it for now and report it and it's results together, in the next few days - stay tuned!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.