The focus of this project was initially to make water cooling low cost and economical for the XU4. After working on the water block design I discovered a way to support a wide range of other SBC regardless of their ability to support a proper heatsink. This development was the auspice for the SBC Model Framework that I completed earlier. Now any SBC supported by the SBC Model Framework can utilize this design to provide a universal low cost water block for a liquid cooled system.
The past water cooled implementations that I have seen use components from the INTEL/AMD desktop arena that are larger, have more capacity then necessary for SBC’s and therefore typically have a relatively high cost. Cooling systems that cost more than the SBC it is cooling are not cost effective or economically justifiable in most cases IMO. They are fine for research and special one-off uses but not for wide spread adoption. So the first question I had to answer when I started this project was how much cooling cost is economically justifiable?
A lot can be said and has been said on this subject but for me I arrived at a value of no more than 20% of the total system cost or about the cost of a reasonable heatsink and fan. When I built my XU4 cluster the cost per node, including power supply, SD card and networking, was approximately $73. I wondered if it was possible to build a water cooled system for $14 or less. I already knew it was not if using off the shelf components so I had to get creative designing new components while looking to re-purpose components from other industries.
There are a host of problems that have to be solved in order to reach all of the goals set out for this project. This post deals specifically with the first phase of the project, a universal water block and attachment method with low cost fittings and pump. The heat exchanger and final packaging of the complete cooling system will be addressed in the second phase. This project is also the first step toward my ultimate goal to design a low cost, scale-able water cooled XU4 cluster. I’m using a single SBC to work through many of the design issues prior to a cluster implementation.
After experimenting with several approaches for the water block design, and in consideration that some SBC’s do not have a practical way to attach a heatsink, I started to experiment with a water cooled case that could accommodate different size water blocks and a universal attachment method. Odroid XU4 SBC Water Cooled Case Design with RTC and UART holder
By integrating the water block directly in the case, this approach provided both a way to accommodate most SBC layouts and a solid attachment for the water block. The water block could easily be made to any size, shape and allow multiple water blocks on either side of the PCB. With the increasing trend of additional hardware on SBC’s to handle A.I., networking or other specialized processing, I felt it would be beneficial to provide the means to water cool them as well, if needed. It could also provide a way to cool multiple memory chips. A 1/8”(3.19mm) thick piece of copper inserted into the water block is used to transfer heat from the SOC to the cooling media. Odroid-XU4 Water Block
Water Cooled Case Design
Some of the additional features of the SBC Water Cooled Case design include:
Universal SBC Support
Up to 4 water blocks, top and/or bottom
Integrated and/or user provided standoffs
Blind or thru bolted case top with or without countersink
Predefined accessories (UART holder, RTC holder, XU4 case bottom support, artwork, multi-shape fan or cable holes, etc)
User defined additive or subtractive accessories
Issues and Tips
There have been 3 main issues that I have had to work on to bring this design forward. The first was finding fittings that were inexpensive, small and strong enough to work adequately. Fittings from INTEL/AMD liquid cooled systems are too large for most SBC SOC. Two of them will not fit within the size of many SOC. Being familiar with drip irrigation systems, I decided to use ABS drip irrigation barbs that are both strong, small, and can be easily glued in place and come in straight and 90 degree variations.
For testing I needed a strong but reversible method to attach them for reuse. After trying several glues, Cyanoacrylate(Super Glue) seemed to work best. I cut the barb off one end and glued them in place. It was strong enough to hold under considerable stress and the barbs could still be freed due to the glues brittleness. Another stronger and permanent glue or ABS acetone weld will be used for the final production. It may even be possible to tap one end of the barb for a threaded solution.
The second issue was finding a suitable pump that was inexpensive, was rated for continues duty, had a flow rate that was adequate and ran on 5 volts. After searching in both the medical and food industries I was able to acquire for $5(delivered), an ET-Tech series 23 5v 1.5w micro pump rated for continues duty. It also had the benefit of being very quite.
The third issue to solve had to do with producing the case. The weak point of the design has to do with the manufacturing of the water block using 3D printing technology. Each layer of the water block was a potential water leak. On top of this, the XU4 SOC location provided a unique challenge due to it’s close proximity to the 12 pin GPIO header. Because of the required water block wall thickness, the water block did not have the proper clearance for the connector. None of the other SBC I tested had this issue, it was specific to the XU4. To make things worse, it was close to working but if you forced the assembly of the case, the pressure bowed the top of the case slightly and ultimately created enough pressure to open micro cracks in the print layers that immediately or eventually leaked.
Over several months of working on this issue I could not solve it and set the design aside. The design still worked for other SBC but the XU4 was the main reason I wanted this solution. After many more attempts to address what I considered a major design issue, I realized that the housing for the 12 pin GPIO header could easily be slide off the pins which allowed enough room for the water block to make proper contact with the SOC. Generally speaking my overall design approach is never to make permanent modifications to the SBC. I felt this solution was a reasonable compromise since the housing could be easily re-installed. Please note, due to the minimization of solder used in the manufacturing of the PCB and lack of support with the housing off, it is very easy to pop a pin loose, so be careful if you remove the GPIO header housing. To add some assurance that micro leaks would not be an ongoing concern I also developed a technique to strengthen the whole water block. Using a swab(Q-tip) and acetone, I dipped the swab in the acetone and then rubbed it back in forth across each side of the water block and corners. I repeated this process 2-3 times per side so that the ABS melted and formed a continuous bond across the face, significantly minimizing the chance of any micro cracks forming in the water block. I have not had any leaks using this method. If the case was manufactured with an injection mold, this problem would not exist. It is specifically because of the layered manufacturing process of 3D printing that this issue had to be solved.
One other tip worth mentioning is to dip the 1/4” tubing in boiling water to form any needed curves so that connections are not under strain once assembled. It only takes a few seconds exposure to soften the plastic enough to form any shape you might need and the shape is permanent once cooled. It also makes it easier to fit the tubing over the barbs.
Beta Release of Design
I’m at a point I can make a beta release of the design even though the heat exchanger is not complete. A lot of radiators incorporate a pump in the radiator so anyone that has an old one from an INTEL/AMD system could create an inexpensive water cooled SBC using this current beta design.
It is not practical to test every SBC and case configuration this program can create; it also includes air cooled versions. It has not been since the beginning of the year that I did multiple SBC test prints and it was restricted to the Odroid SBC that I owned. No operational testing was conducted at that time. Odroid Water Cooled Cases (MC1, N1, C2 and XU4)
Since then I have complete rewritten the OpenSCAD case algorithm and added new features. The N2 was released and the H2 became available again so be aware and please provide any feedback you have if you try one of these SBC(not that the N2 needs water cooling) or a new one.
SBC Water Cooled Case Design Files
The SBC Model Framework is needed and its directory should be installed in the same parent directory as the SBC Water Cooled Case directory. If you would like to use a different directory structure the include and use statements in sbc_water_cooled_case.scad need to be changed accordingly.
Code: Select all
use <../sbc_models/sbc_models.scad> include <../sbc_models/sbc_models.cfg>
- - sbc_water_cooled_case.scad