-
Brief Update
08/17/2019 at 10:53 • 1 commentIt's been about 6 months since I've updated this project and I've been busy with many things, but nothing practical to show for it:
- I just did a quick update of the tags a little bit ago but didn't spam the feed with it.
- I've been tracking down a deeper understanding of various thermodynamic properties and what role they play in what I'm trying to accomplish
- Doing various additional 3D modeling to minimize cost of producing new parts. I also produced a clear resin print for case tolerance testing and fitment, which I'll post when I get around to using it.
- Attempting to understanding various material properties and how they influence thermal performance has been where my focus exists, which means trolling a lot of research PDFs.
- I still need to write up some Arduino code to take some thermal readings of the cooling solution since I'm polling 4 thermocouples that have been attached to very specific points on the cooling solution. It doesn't help that I'm not in the same thermal environment when I did my original testing.
- After taking those readings, I also need to characterize the thermocouples to reduce their error and refine the data. From there, I can reasonably determine which of the 3 parts of the cooling solution has the greatest thermal resistance to prove or disprove my previously stated hypothesis.
- Located/purchased a near-identical, full copper, zipper fin stack on AliExpress for under $15.
Work is ongoing. I'm not done with this project by any reasonable measure.
-
Detailed Analysis of the i7-8700B & i5-8500B - Part 2
02/08/2019 at 23:38 • 2 commentsDue to the physical length of the previous log, I have written this one for a more detailed analysis and to posit a few ideas to keep performance along around longer despite the thermal limitations.
---------- more ----------Power vs Performance
The smoothed, peak power draw from the i7 is 113 W. For a 65 W TDP part. *IF* you equate a 1:1 power vs performance scaling between the i5 & i7, that increased consumption is equivalent to ~11 cores. Granted this lasts for about 2 seconds, but still. Hyperthreading/SMT gives an advantage of about 25% per logical core when the physical core is fully loaded. It can be higher or lower depending on the actual type of computations, and even lower than if only a single thread occupied the core.
Apple knows this, and they have generally, at least from an end-user perspective, mitigated perceptive interruptions as apart of the user experience. In terms of speed, Mac OS X 10.6.8 is still a favorite of mine. Newer macOS versions have improvements and their fair share of regressions too. One of which is that they know which cores are physical, and which are virtual. First and foremost, Apple's scheduler prioritizes the utilization of the physical cores first and then starts adding things to the virtual ones once the system in inundated with heavier workloads. The problem though is that with more power comes more heat.
Improvements via TIM
So early on, prior to ~3-4 minutes, the cooling solution is able to "cope" with the heat and there is a delay before it begins to submit to the heat. The MX-2 holds the later time due to better properties, thermal conductivity and/or bond line thickness, but it only goes so far. I bet that even if I used a liquid metal TIM, the same effect will still occur, though I'm not sure if it'll happen sooner due to the increased heat flux, or later from the greater transparency of the TIM.
That's a rabbit hole I won't bother trying to address, though I can say that better TIM will increase the performance of the solution under short, pulsed, or transient workloads. Everything significantly short of Jeremy Clarkson yelling "moar power" and the TIM will help, but it does not fix the inadequacy of Apple's cooling solution.
Performance vs Physics
Once you pass about 10 seconds of loading, it doesn't really matter what TIM you've got because the cooling solution's design is inadequate. Because I loaded up all physical and virtual cores, much more heat was generated than normal. Hotter cores means that you'll reach the limiting temperature sooner rather than later. Even running a short benchmark like Cinebench R15 nets a MC:SC ratio speedup of 7:1. Yeah, those 6 extra virtual cores net a grand total of 1 more core of performance on the i7-8700B when combined with Apple's cooling solution. FOR $200!
Anyhow, in order to get the best performance in the cooling solution as is, you need to limits the number of threads that will load the CPU. If you try and load everything, the heat will swamp it out and limit individual cores. Due to the reduced speed of the i5-8500B, you don't have a frequency drop when that 6th core is loaded. However, for sustained loading with the i7-8700B, 5 threads is where diminishing returns begin happening as we loose ~2.8% performance and when 6 threads are active, you'll loose 6.5% performance due to the frequency drop from increased thermals and throttling. If you load it up to the full 12 threads, you'll top out at the equivalent of 8 cores but running slow enough to match 7 cores and suffer a 12.5% performance penalty. That means Hyperthreading/SMT nets a 33.3% increase at best on this architecture, at least by power/thermal loads.
To reiterate, these performance hits do not occur on the i5-8500B. Following others' suggestions and recommendations, buying this CPU is a sweet spot in performance if you're just going to run the computer in its stock configuration or maybe change out the TIM in the future.
Predicted Performance Improvement vs Cost
So what happens next? What will be the improvement I hope to achieve, with Zach's help btw? Hotter doesn't equal better. Cooling the CPU will affect 3 performance factors:
- We'll get a cooler operating computer which will increase its lifespan, ~$$$$.
- We'll gain back the Turbo Boost frequency loss under sustained load, ~+12.5%
- We'll gain back the performance from throttled Turbo Boost hitting 113 Watts. This is for an unknown time frame, but typically a max of 28 seconds. If that's the case, it means ~38% performance boost, equivalent to 11 physical cores, during that time frame
The cost delta of the i3 vs i5 is $100. The cost delta of the i3 v i7 is $300. These are equivalent to ~1/8th & ~3/8th the cost of the Mac mini. Coincidently, ~12.5% and ~37.5% of the base cost of the computer for the successive upgrades. If you go with the former, the cooling upgrade only nets its namesake, cooling, as there is no performance differential with the i5 outside of going to the extreme and using a galinstan-based TIM. This leaves, in actuality, the delta of the i5 vs i7, $200 and 25% of the cost of the computer, and thus my general cost marker for this project.
I can say now, that doing a one-off of a modified heat pipe variation of the cooling solution will cost about $175, but I'm not sure it'll be able to achieve the performance goal of reducing thermal resistance in half. It'll be aided some nickel plating to use 100In solder (~80 W/(m-K)) instead of 58Bi42Sn solder (~20 W/(m-K)) and then the whole assembly copper plated as Zach has done already. This replaces what I believe to be an e-coating on the cooling solution. I may test and add a thinned spray paint finish to see if the increased emissivity can in fact help the fin stack radiator, or if it is hurting performance.
Fall Back Plan - $400-$600
If that fails to work, then I'll quite possibly resort to the last ditch effort of exotic cooling if another idea doesn't present. It'll cost ~$170 to make ~95 ml of a custom galinstan alloy and I need a little more than that. At extremely low flow rates, ~13 ml/sec, and a simple copper pipe loop, way simpler than micro-channel impingement of current water blocks, 70-ish watts of heat created ~45 °C gain over ambient. Doubling flow rate reduced that by 6 °C. Using better heat transfer in the cold plate and forced convection on the radiator will dramatically improve the performance. Add in a all copper radiator for the fluid, a pump, a new radiator for the internal fan... The downside to this complexity is added cost, probability of failure, and lack of [Apple] aesthetics.
-
Detailed Analysis of the i7-8700B & i5-8500B - Part 1
02/08/2019 at 08:53 • 0 commentsAfter a bit of voodoo with Excel, I was able to make some dynamic graphs and simultaneously extract temperature, wattage (power), and absolute thermal resistance from the logs I created. I reached out to a YouTuber, PixelPoison, and asked him to run the same cooling test I did and pass me the data. He was nice enough to do so. I wanted data for the i3 variant, but didn't get a response, though after stepping through the i5 data, I'm not terribly concerned about it.
The 'B' designation of the CPUs is insignificant in this testing, but is included for accuracy.
---------- more ----------Overview
Here is what I did. After smoothing the data with Savitzky-Golay methodology, I was able to calm the sporadic nature of the power reporting by Intel Power Gadget but then also smooth the windowed data I generated to identify patterns much more easily. The data is heavily convoluted, but due to how S.G. filtering works, I does an excellent job at extracting the real signal. In a couple of the following screenshots, there is still some temporal aliasing, but it isn't hardly a concern. The following windowed data will be presented as follows:
- First 12 seconds of loading at 10 ms resolution
- First 60 second of loading at 50 ms resolution
- First 15 minutes of loading at 750 ms resolution
- Middle 40 minutes of loading at 2 s resolution
- Last 10 minutes of loading at 0.5 s resolution
Average temperature, power, and thermal resistance will be reported for each of the 5 windows at 0.1 °C temperature, 0.01 W power, and 0.0001 °C/W thermal resistance resolutions. Additionally, the data will be ordered in the i5-8500B in the stock configuration, i7-8700B in the stock configuration, and the i7-8700B with a lapped heat sink and MX-2 thermal paste. Overt and semi-obvious observations will be included too.
Due to how tight the graphs get, I'm included the smoothed temperature data, "RAW" and smoothed power and thermal resistance data. Frequencies and fan speeds were recorded, but not included in these graphs. Thermal resistance is the higher of the two plotted data sets and it's y-axis is the one of the right. Temperature (white) and power data are both plotted on the secondary y-axis on the left.
First 12 Seconds
i5-8500B Stock i7-8700B Stock i7-8700B MX-2 Average Temp 72.3 °C 92.2 °C 88.2 °C Average Power 62.53 W 97.5 W 99.6 W Average °C/W 0.8064 °C/W 0.7297 °C/W 0.6683 °C/W The i5 turbos up to 3.9 GHz with no problem and due to the thermal mass of the system, albeit how little it is, no throttling or immediate issues arise. Now, due to the simple nature of calculating absolute thermal resistance, temperature delta relative to ambient divided by [heating] power, you see that the same cooling solution produced different results for all three setups. This will be discussed as a separate topic.
If you look closely, you'll see that with MX-2, the i7-8700 had a longer sustained Turbo Boost level by about 2 seconds relative to stock, which increased the average power by 2 watts, coincidently. If you look closely though, you'll see throttling of Turbo Boost happen about 0.25 seconds in due to temperatures. This data also confirms that the TDP of 65W for the i7-8700 is erroneous.
First 60 Seconds
i5-8500B Stock i7-8700B Stock i7-8700B MX-2 Average Temp 87.3 °C 94.1 °C 94.1 °C Average Power 64.7 W 79.0 W 88.3 W Average °C/W 1.008 °C/W 1.0167 °C/W 0.8771 °C/W This is our first glimpse of things beginning to slow down. The i5 levels out and then the thermal throttling of the i7 begins and shows us the difference the paste makes. THe MX-2 allows for a bit more Turbo Boost and that is pretty evident when looking at the power figures, but even still, the temperatures match each other.
First 15 Minutes
i5-8500B Stock i7-8700B Stock i7-8700B MX-2 Average Temp 92.9 °C 95.9 °C 96.0 °C Average Power 65.6 W 72.2 W 75.3 W Average °C/W 1.0813 °C/W 1.0368 °C/W 0.9859 °C/W Between 5 & 6 minutes, the i5's fan is in full swing and brings the cooling solution into thermal equilibrium as it doesn't heat up or cool down any further. It is pretty much smooth sailing with no interruptions from then on. Amazingly, this CPu never throttles, but it does run damn hot.
However, with the i7, the opposite seems to happen. I don't have time to pull up the fan data at the moment, but since the i7 is overpowering the cooling solution, the thermal behavior is different. After ~3 minutes the thermal resistance of the cooling solution begins to rise under stock TIM and about a minute later for the MX-2. Both begin to plateau @ ~12 min, but aren't fully normalized as you'll see shortly. It goes like "I'm coping, I'm coping, I'm coping" and then is just too fatigued and it just gives out slightly. The effect is subtle, though definite and might be dealing with a slight drying out of the heat pipes since we're just on the edge of their inferred limit, QMax.
Speaking of heat, when it comes to thermal transfer, it either happens or it doesn't When it does happen, heat is conducted. But when it doesn't that heat is insulated. That's what we're seeing here. The better conductivity of the MX-2 is allowing the thermal energy move into, and thus dissipated, the cooling solution. It isn't by much, but it is noticeable. The dissipated power is aliased directly due to the multiplier, the frequency at which the CPU is running, and the MX-2 is allowing it to be faster for longer, but only just.
Middle 40 Minutes
i5-8500B Stock i7-8700B Stock i7-8700B MX-2 Average Temp 92.3 °C 96.8 °C 96.1 °C Average Power 65.3 W 71.6 W 72.0 W Average °C/W 1.0784 °C/W 1.0455 °C/W 1.0308 °C/W After about 5 minute into this window, the stock TIM vs MX-2 TIM difference is moot. This is because the problem isn't specifically the TIM, but the cooling solution. Here is the funny part: the single, 250 mm heat pipe cooling solution for my HP ProBook 450 G3, which is made by Foxconn, is stated to have a thermal resistance of 1.26 °C/W according to its label. Apple's huge-by-comparison solution is netting ~82% of that. The fin stack radiator is several multiple times the ProBook's fin stack and Apple is using 2 shorter heat pipes (shorter is generally better) too.
Last 10 Minutes
i5-8500B Stock i7-8700B Stock i7-8700B MX-2 Average Temp 92.2 °C 96.6 °C 96.3 °C Average Power 65.2 W 71.2 W 71.3 W Average °C/W 1.0787 °C/W 1.0485 °C/W 1.0425 °C/W So if you're doing some intensive and long duration taxing work, then it doesn't matter if you run the stock TIM or upgrade it a touch. There is less throttling of Turbo Boost happening, but averages and filter show that it's really insignificant. As demonstrated by the i5-8500B, Apple really did design this cooling solution around a 65 W TDP.
Whether in firmware or just the standard limiter behavior, the average temps will not go above ~96 °C for the entirety of the package. With Apple putting in the i7-8700B but not validating the performance of the CPU under sustained load is irresponsible. You get the privilege of spending an extra $200 for a CPU that doesn't even give you a full extra core's worth of performance. More on that later.
-
Plans A1/A2, Plan B, & Plan C Details
01/19/2019 at 09:20 • 0 commentsAs I've been working on the project, I've been able to figure out what needs to be done and what I can do in order to try and achieve it. As such, I've been developing backup plans concurrently to each other. What I'll be discussing here is the figurative fleshing out of the said ideas and bringing up the rationalization of that has cause me to pump over to the "next level" of cooling, thus the next plan. Most of what I've already written thus far is regarding Plan A. What I'd like to achieve is a solution that fits inside the mini if at all possible.
Note: I'm not providing many links in this log right now due to the WIP-state a lot of the research I'm conducting. With whichever plan(s) I execute, I will have full documentation.
---------- more ----------Plan A1/A2
Shush, it's in the title... Recap though. There are 2 heat pipes in the current solution provided by Apple. I'm betting on them being the limiting factor in cooling this SFF (small form factor) computer. There are a variety of combinations of aftermarket heat pipes that can move greater power away from the CPU. Similarly, the cold plate would need to redesigned, a little, to accommodate for this change. A common method of increasing surface area if that of creating louvers. Now why do I want more surface area?
There are 2 problems when dealing with the heat coming from the i7-8700B. The first is removing it from the die in totality and then dissipating it by the fins. The other is spreading it away from the die reducing the effective heat flux so that the cold plate can do its job better. In conjunction with a sandwich plate, placing a piece of PGS film between the die and cold plate can achieve this. The current power density (heat flux) for the ~120 W peak, ~81 W sustained, over the 149.6 mm^2 die area is ~54-80 W/cm^2. With that PGS film, that can go down to ~10.2% of what it currently is. The 2 versions of this plan deal with figuring out if I want a louvered or sandwich plate.
Plan B
The problem with heat pipes is that the long they get, the less power they can transmit. Currently, My best case scenario gets my Qmax up from an estimated 60 W to ~107 W. I mean, when on burst workloads, the solution already helps and does a kinda okay job with thermals not spiking after you pt on better paste, but a 78% increase in capacity might not get me as far as I need. I'm looking for a max operating temperature of 85 °C in a 35 °C environment, which means I need to drop the overall absolute thermal resistance of the cooling solution to a little less than half of what is currently is. The math isn't quite there.
If though, I use 2 shorter heat pipes, like a particular 8 mm pair I'm spying, then I have the capacity of removing ~150 W right off the bat, but they are only 100 mm long. I'd make a junction piece of copper to terminate them with and then use 2-3 other heat pipes coming off the fin stack and mating with that pair in the block. The junction block would allow for direct contact, but also greater contact area and thus lower resistance to transfer the heat to the fin stack.
However, there is a clearance problem, or more specifically, 3 of them that make this a daunting task.
- First up is the RAM EMI cage limiting me to a pair of 8 mm heat pipes; well I could use a 10 mm further way, but that's not an option.
- The second obstruction is the right-most fan screw mount on the fin stack. I have to be clever to get around it and I haven't figured out how to yet.
- Finally the third is the speaker in the mini. It causes the largest opening between the cold plate and the fin stack to be 20-22 mm, I estimate. I haven't gotten to modeling it yet.
Larger heat pipes means larger bend radii. It's a SFF computer so something has to give and though the speaker is crappy, I don't intend on removing anything just yet.
Anyhow, deciding which Plan A to use and if I'll double down and produce an extra set of parts doubling my cost on Plan B is dependant upon one factor I mentioned before: thermal resistance.
Now I won't talk about it much here because I have a log file that is forthcoming that deals with this topic explicitly but to reiterate, I'm attempting to double the performance of Apple's cooling solution. Granted, 85 °C is definitely not ideal, but it certainly is acceptable. If I cannot find sufficient information to support that modifications to the air cooling setup will net at least a 2x increase, I will have to ditch them. If the math is supportive enough but practical human implementation without specialized manufacturing equipment doesn't produced acceptable results, I will ditch them.
Plan C
Exotic cooling. A category that hardly a soul touches. The simple end is water cooling, which is no longer niche. Next up you might chill your water. Then maybe dry ice. To top it off, liquid nitrogen. All of these have inherent drawbacks aside from some of them not being practical for a daily driver computer. One such item that very few people have toyed with but might actually be perfect for this application is liquid cooling, but at 0.6 W / (m * K), water isn't high on my list as a coolant.
Even still, I'm confident that there if I go with liquid cooling, this is still a feasible task. I don't possess the time to establish low count contacts to have special parts machined, but I'm away that metal foams exist. Instead of dealing with having micro-fins, micro-channels, or micro-posts machined into a low-profile, direct die water block, I can solder copper foam to a plate with an o-ring and bolt it all together. Restrictive, yes, but I have only one thing in the loop! Looking around at radiators, it is apparent that a good, all copper, single 120 mm radiator can dissipate more than 100 W of heat with a 10 °C delta in water temps.
Why am I considering this? Well, this mini will be paired next to a 2012 quad core and both will be mounted underneath a shelf. This shelf is being modified to have 2, 120 mm fans circulate air and their RPM will be directly controlled by its neighboring mini. The internal fan connectors are Molex's Pico-EZMate and you can pickup pre-crimped wire from Mouser along with SMD board connectors and female wire housings. I digress. On to of the shelf will be a collection of 2.5" and 3.5" drives in HDD and SSD flavors. Behind them will be enough room to squeeze in a small pump. The only fabrication problem I have as a result of this Plan is that I need to physically modify the fin stack to allow tubing to enter and exit the case. Now about that coolant...
Plan C's Coolant
Stop. I know all about Aluminum and Gallium, and it's alloys. Just read the rest will ya? Anyhow, gallium-based liquid metal alloys have been explored for their potential for cooling. The trademarked Galinstan isn't specifically on the table for use and when you drop that capitalization, "galinstan" references nearly all alloys that come from the ternary mix of gallium, indium, and tin.
Most who have dealt with higher end cooling are familiar with 3 common liquid metal products, Conductonaut being the most recognizable to some, that are all in this family. The thing is, not even their datasheets give much information as to the specific ratios used for the mix. Additional reading indicates doping with antimony as an antioxidant, bismuth to reduce viscosity, and zinc reduces the melting point. Despite the common "16.5 W / (m * K)" claim to Galinstan, it actually ranges from ~22-35 W / (m * K) on the usable temperatures for computer CPU cooling. What has always bugged me is that Thermal Grizzly claims a melting point near 8 °C and a thermal conductivity of ~73 W / (m * K) or more than double that of any public data I can find on galinstan. Additionally, to make your own, you need gallium, which can be a tad expensive for how much you get, to which ~60% of your traditional liquid metal would consist of this.
But, I found 2 research documents that claim a 30-10-60 (% by weight), Gallium-Indium-Tin mix is still eutectic and has a melting point of 12 °C. That's half the Gallium or less of every other mix I've seen. Optimizing for buying the metals for the least dollar-per-gram cost, I can reportedly pick up all of the needed metals for ~$170 and will be able to produce ~98 ml of liquid metal. Compare that to Conductonaut at $15/gram, this works out to $0.27/gram.
Now, anyone who is more familiar with chemistry than me, I'm aware of a big caveat that I need to test. According to the ternary phase diagram for GaInSn alloys, nearly any reduction in Gallium increases the melting point well beyond 30 °C. The problem though is that eGaIn, which is a 75-25-0 mix, has a melting point of 16 °C, but in fact shouldn't be a liquid at that temp according to the binary phase plot. GaInSn in a 62-25-13 mix has a melting point of 5 °C. GaInSnZn in a 71-15-13-1 mix has a melting point of 3 °C. and just 4% by weight of 67-29-4 of GaInZn melts at 13 °C. There are others too, but it appears that that 1-5% of zinc by weight can alter the crystalline structures heavily. Moreover, with more tin in the 30-10-60 mix, the thermal conductivity has got to be higher, or so I assume. Add up to 3-5% by weight of a couple other metals and if the alloy behaves, I couldn't be happier.
But Pumps! Flow Rates!
Water vs galinstan alloys:
Water Galinstan-like alloys Units Density 1.0 ~6.4 gram / ml Thermal Conductivity ~0.6 ~24-35 (73 tops?) W / (m * K) Specific Heat 4183 ~296 J / (kg * K) Absolute Viscosity 1.0 2.4 cP Yeah, so??? Even if you pick a middle ground thermal conductivity of 30 W / (m * K), these alloys have about 5x the thermal conductivity of water and they are 6 times denser. If you account for the specific heat and take in account density, 1 ml of water will accept 41.83 J / ml for a 10 °C temperature increase and galinstan alloys will be about 18.94 J / ml. Heat transfer happens better when there is a greater temperature delta and this is achieved. Thermal conductivity is 30x better which means that you need 1/30th the fluid to conduct the same amount of heat from the system. It also means you don't need a massive flow rate to achieve the same cooling performance. It also means you don't need complicated geometry and flow patterns to maximize the surface area to achieve the same cooling performance. You just need a lot less of it and it doesn't need any maintenance except for the occasional hose swap in the pump. Pump?
There are a few options that can be had. If there were enough room, I'd try for a magnetohydrodynamic pump, of MHP. Using a TEC, apparently these can be pretty low on power consumption. I don't have enough space for a 200 W TEC though. I could go for a water lubricated D5 of DDC pump, but I don't know what the life of that ceramic bearing would be, nor do I have an lubricity data on galistan. There is some friction research out there, but I doubt the properties are comparable. Next up, peristaltic pumps. If you've used a mix-you-own drink from a specific soft drink company, you've used a peristaltic pump. They are non-contact with the fluid involved and the pump heads can be separate from the motors. Even better still is that the motors are commonly stepper motors, which can be practically silent.
Heat Pickup & Radiation
Just one, $50 copper tube, brass & steel in the end caps, 1x 120 mm fan, 30 mm thick, radiator is all that I'll need. A single one can easily dissipate the heat I need when dealing with a water setup so I expect it to perform even better with a better coolant on board.
The pump I'm currently eying claims up to 240 ml/min whereas a detailed research document got a 61 °C heating element temperature with a 73 W load at 14 ml/min with a simple 'U' copper tube between about 6 mm in diameter (not stated). Copper foam soldered to a plate, with a variable fan and pump speeds based on the fan speed signal given off by the mini should net a pleasing result.
Yeah, I put a lot of thought into Plan C. Last thing I need is an electrically conductive coolant spraying everywhere inside the computer. Thankfully, in the normal orientation, gravity is away from the motherboard. I really want the elegance of Plan A1/A2 to work. Initial math tells me that I need to beef it up a lot which is where Plan B came to mind. I definitely need to model more obstructions in the case to have Plan B work, which is more technically complex than Plan C.
Stay tuned on my Thermal Resistance log. I won't be going into CFD analysis and getting 2D & 3D dispersion graphics, but I have been able to work the math and make sense of 1D data for a variety of TIMs, not thermal greases, but even how metals behave in order to explain very clearly why very specific things happen.
-
Models Updated & Further Development
01/14/2019 at 12:06 • 0 commentsAdjusted a couple little parameters of the CAD files based on inaccuracies of the model that printed. Just widening the space between the threaded posts and adjusting the cutout for the heat pipes.
To do list:
- Place general markers in the CAD files for the fin stack and tie down points and some other clearance objects.
- Develop a 5 pipe setup to provide a thermal capacity of over 200 W via the heat pipes and a copper interconnect.
- Develop a larger cold plate with integrated barbs for possible water cooling.
While spending more time reading up and playing with variables, it appears that the fin stack may also be insufficient. If that proves to be the case, then I will escalated things. In order to prove it, using two, short heat pipes to conduct up to 200 W of heat off the cold plate into a remote copper slug will be used. This will be right next to the speaker. 3 heat pipes will connect the slug to the fin stack. Despite the thermal resistance of the additional slug, it'll be modeled for all 5 pipes and in a way such that they can touch and be soldered to each other. If that doesn't provide my 50 °C temperature delta, then I have a last resort.
Not practical on the machining side, but great for DIY, I will then enlarge and create a cavity in the cold plate. Enough room for a 1.5-2 mm thick copper foam sheet. After bolting and sandwiching, a cold plate with a larger thermally conductive surface area will have been made. Trim a few fins on the fin stack and you can create a custom, rather mini, water cooling loop.
-
Test Print Ordered (Updated)
01/10/2019 at 04:57 • 0 commentsSTL files don't translate well over to a machine shop for making prototypes. In my travels, I came across https://print.all3dp.com/. There are probably other, better sites, but this works well enough for what I seem to need. I took the OpenSCAD model, outputted a STL model with angles aliased to every 10 degrees, and have an SLS print in nylon on the way and it will be here Friday. I'm serious about "fixing" the cooling solution.
---------- more ----------What's Next?
There is an EMI cage around the RAM and it creates a clearance issue for the cold plate. Also, since the cage is also screened, obstructing it will heat up the RAM. Granted, a 90 °C CPU will probably transfer more heat to the RAM than reduced airflow, but I digress.. As long as I abide by the existing 0.1" gap to minimize airflow obstruction, I can enlarge the cold plate for heat pipes at will.
In a standard heat sink, increasing the heat spreader thickness allows for more heat to be dissipated under forced convection. However, lower power outputs and thus lower fan speeds, one will see higher temps due to increased thermal resistance. There are estimation equations that will lend a hand and should give me a ~5-10% upper margin for this calculation. Even though I will not have an end result that can abide by these calculations (keep reading), I can still play around with the results to see if changes can have significant impacts on the thermal resistance.
Goal Reminder
I want an 85 °C CPU max sustained temperature in a 35 °C environment. Under peak load, this is, for the sake of argument, a 120 W load and a 50 °C differential. In other words, the thermal resistance of the entire solution is desired to be ~0.42 °C / W or more than a 60% reduction compared to stock and that's a tall order. Unfortunately, nearly all online tools for heat sinks are the standard type that you'd bolt or use push-lock fasteners to a die. None of them are cold plate -> heat pipe -> fin stack or even an analog of such.
Stock Cold Plate and Cooling Solution
There is a blank coating over the majority of the body of the cooling solution. RAW metal, albeit oxidize raw metal, has a low emissivity. The black coating, yes you can call it paint, but you will not find appropriate aftermarket products if you use the term "paint", is bonded to the metal improving the emissivity. Thus it allows the entirety of the cooling solution is passively dissipate heat, but additionally improved the efficacy of the zipper/folded fin pack/stack.
The cold plate is made up of 2 parts, a cast, then machined, aluminum chassis with an aluminum slug pressed into it. The heat pipes are then soldered onto the copper plate by a yet-to-be-determined low temp alloy. From what I've seen, it'll have a melting temp between ~140 °C and 250 °C. Indium is one of the lowest of the commonly available solder alloys and it also has one of the highest thermal conductivities, thus I assume it is the solder of choice. I have confirmed sub-0.2 ohm resistance between the aluminum cold plate and the threaded fastening points on the fin stack, thus affirming a soldered connection.
The heat pipes are 150 mm & 200 mm long from what I'd mentioned before and contact the fin stack in 2 separate placed. The fan has maximum output power of 8.4 W, aka 700 mA @ 12 V. The previous Mac mini fans were much less powerful with 1/10th the output power. As such, Apple moved to a 6-pin connector, up for 4-pin, and I need to verify that the extra two lines are for current supply.
Modified Cold Plate
I've previously uploaded a dimensionally accurate model of the cold plate of the cooling solution. It's not significant to model the heat pipes, nor the fin stack as only 1 of those can be reasonably reproduced/procured by means of 3rd parties. I've updated the model to include a red, rectilinear object to signify the clearance of the EMI cage around the RAM that is a physical obstruction.
Please use a developmental version of OpenSCAD to view the files.
- Mac mini (Late 2018) Cold Plate - Clearance.scad
- Mac mini (Late 2018) Cold Plate - SA Mod - Sine Wave.scad
The second file listed is the complete base model adjusted to have louvers in the cold plate and still clear the FCBGA-1440 package. The louvers have no function unless coupled with an inverted plate, which I still need to model. The function of this plate is to sandwich a very thin layer of TIM and a PGS, a pyrolytic graphite sheet, from Panasonic. The die has 3 cores on one side and 3 cores on the other side, along the long edges of die. Even though the PGS will not discriminate between the 'x' or 'y' directions, it stands to reason that more surface area adjacent to the long edges of the die than the short. Thus the louvered version is the Surface Area Mod.
Apple did design in manufacturer tolerances to the cold plate mounting since soldering the heat pipes into a precise spot on the cold plate isn't exactly precise. This modified model does not have similar tolerances designed into it at this time and is only meant as a starting point to work from. The only other notable change is an increase from ~0.5 mm to ~1.0 mm thickness of copper the h=thermal flux has to flow through before reaching the heat pipes, if soldered directly to the flat surface.
Obligatory Renders of Both Cold Plates
- Stock
- Modified Base
Post Script
As-is, the SA Mod cold plate being lost-wax cast, or so they say, in copper will cost anywhere from $90-$105 in the current arrangement, with shipping. Since I've extended the flat portion of the contact surface to the length of the cold plate and it has a thickness of 1 mm, there is plenty of room for reducing the volume of copper used and reducing the cost.
Dimensional Check
With the arrival of that test print, I did update the dimensions/locations of a couple of things. I have also moved those photos to here.
-
Preliminary Results, Notes, & Conclusion
12/30/2018 at 05:41 • 0 commentsIt has taken a few days to look at the data I've collected and tried to figure out what is going on. Why did I not see a notable increase in performance via reduced temperatures or faster clock speeds? Why did the quad core version have its thermals mostly sorted, albeit they are still high? Why do I have a 8-10 ˚C delta between half of my cores? What is my power consumption of the CPU more than 1.5 times that of the rated TDP? Did Apple fsck up or did Intel? Yes, Intel.
---------- more ----------First Things First, Lapping
Comparative analysis is a great way to learn about something. You can see how some is or isn't supposed to work/perform/behave and then make corrections or perturbations and see what the results are. In a way, this isn't dissimilar to a phrase from the security community: trust but verify. As such, cleaning off the non-fluid stock TIM and looking at the cold plate mounting on the CPU die is the first thing to verify.
I spent way too many hours sanding and lapping the copper slug on the heat sink. Over 2 dozen mounts later, I have consistent contact and performance. The process I used was initially a bit flawed due to sleep depravation and I probably removed a little too much copper and spent 3-4 times longer than I should've on this process. However, the copper slug is already too thin and I highly doubt the difference is significantly tangible. Instead of showing all the mounts, I've selected a few key points to demonstrate the process.
I used wet sanding with 600 grit and 1500 grit along with localized polishing with felt wheels and aluminum compound in a 99% isopropyl solute. In order to check how well the cold plate and die mounted together, I used dry erase marker as a solid film. It's opacity/visible darkness is proportional to how thick the film is, but it is thinner and easier to work with, plus a lot less costly, than using thermal grease. I think mounted the heat sink back onto the PCB for 30-300 seconds, more time when more contact area was made, and then removed and photographed the results.
Anyhow, here is the initial contact.
About midway through the process:
Amount of MX-2 finally applied:
Final mating conditions denoting very good contact for by-hand finishin, imho:
Initial Results
I don't have graphs for you right now, mostly because I need to incorporate other sensor data that I've not had a chance to process. However I do have global frequency data, temperature data, and thermal resistance of the cooling solution. Remember, the TIM is a practical part of the cooling solution. A couple of additional notes before continuing:
- Peak/maximums are during the first 10 minutes of the thermal load, excluding thermal resistance
- Minimums are during the last 10 minutes of the thermal load, excluding thermal resistance
- Averages are from the entire 60 minute load
- [Maximum] Sustained are from the middle ~40 minutes of the load, which should be consistency of intermittent moderate/heavy workloads.
- Standard deviation is from the middle ~40 minutes of the load, which again should indicate consistent performance.
Stock
Frequency Temperature Power Therm.Resistance Max. Peak 4300 MHz 100.3 ˚C 115.78 W 2.0960 ˚C/W Max. Sustained 3800 MHz 100.4 ˚C 81.67 W 1.1959 ˚C/W Average 3792 MHz 96.6 ˚C 69.71 W 1.0714 ˚C/W Minimum 3700 MHz 65.1 ˚C 62.78 W 0.4722 ˚C/W Standard Deviation 34.66 MHz 1.1 ˚C 2.14 W 0.0208 ˚C/W Time to EQM. 40 minutes Lapping + MX-2
Frequency Temperature Power Thermal Resistance Max. Peak 4300 MHz 100.3 ˚C 113.96 W 1.0723 ˚C/W Max. Sustained 3900 MHz 100.5 ˚C 83.47 W 1.1916 ˚C/W Average 3818 MHz 96.1 ˚C 70.76 W 1.0496 ˚C/W Minimum 3800 MHz 63.3 ˚C 67.63 W 0.4432 ˚C/W Standard Deviation 28.89 MHz 0.9 ˚C 1.90 W 0.0198 ˚C/W Time to EQM. 25 minutes Notes
The maximum and minimum frequencies went up 100 MHz and the standard deviation went down 17%, thus meaning that there is greater frequency stability. Average temperatures went down 0.5 ˚C, which I know is from 3 cores running at cooler temperatures, but I do not have data analyzed to show this yet. In addition to the minor frequency bump of 0.686%, which I'd normally write off as statistical noise, average and sustained power consumption went up ~1.15% and ~2.2%. Average thermal resistance, which is the temperature delta compared to ambient by unit of power, decreased by 2.18%
Yes, I ignored peak power and thermal resistance. This is where not having sufficient temporal resolution is a factor, i.e. sampling rate isn't fast enough. However, this tells me something very significant: With the two averaged together, the corresponding TDP is ~1.77x that of PL1 when it should be only 1.25x. Ummm...
If you do just a little bit of digging online, you'll note that the i7-8700K has a slightly different Turbo Boost, per-core, frequency behavior, but these differences are only 100 MHz, or a single clock multiplier. However, the 'K' is an unlocked processor and it has a 95W TDP rating. A couple hundred MHz does not account for a 30W TDP difference. Especially when power testing the two chips against each other produced a ~5 W power consumption difference.
So, did Apple design a poor cooling solution? Eh, probably. Is it that bad? Probably not. For the high end i7-8700B processor, it appears that Apple designed a cooling solution to Intel's spec, but Intel's spec is wrong.
This is substantiated by another metric I observed. Remember how I said that the mini is a heavily grounded computer? Grounding means that various conductors are attached at both ends if they leave the PCB. The heat sink is grounded at the cold plate, mid way on the heat pipes, and in 8 places/screws on the fin array. 4 of those fin fasteners are straight through the PCB. The cold plate fasteners are straight through the PCB. This means that all of the heat that passes into these anchor points get passed to the ground plane(s) which are copper and distribute this heat to the rest of the logic/motherboard. Under the stock setup it took ~40 minutes for other parts of the PCB to reach thermal equilibrium. Under the lapped setup it took ~20 minutes for the same parts to reach equilibrium. More even, less localized heating means that heat is being distributed better in the system.
Where Do I Go From Here?
I've reached out to a couple of people who I've seen that have reviewed/tested the thermal performance of the Mac mini. If they agree, they'll be running the same thermal load and collecting metrics for me to compare all three processor configurations under Apple's design.
I will be waiting for replacement heat sinks to appear on iFixit or the like. Even though I don't have "industry contacts" I might attempt to get one in this manner too. I need to open up the mini again in a few days and take additional measurements and photos of the RAM RF cage and cold place clearance. From that information, I am highly considering using pure Indium on a 145 copper block machined to surround the heat pipes and better fill the volume of space occupied by the stock cold plate.
-
Mac mini i7-8700B Lapped CSV Files
12/27/2018 at 04:07 • 0 commentsHere are the CSV files of the thermal results from lapping the heatsink and using MX-2 TIM, compressed with 7-zip & bzip2, for others to look at on their own.