Fan shroud for Devterm

The fan is cool (pun intended) but a lot of the air is blown out of the bottom chassis vent holes before it can push the heat away from the hotspots.

I quickly made a shroud the clips onto the top of the fan to direct the air better.

Here are tools I used. I just measured up some angles, and drew them onto some 2mm Tamiya pla plate.

Test fitting, and sanding was done.
Using “the chopper” I made some equal sized edging strips using the same pla plate.

I could go into more details, but I think this is pretty self explanatory. You could even use a piece of cardboard if you really wanted.

I’ll do some tests to see how it performs with and without it on the weekend.


could you provide measurements or put it on milimeter paper and take a photo? I would try to create it in openscad then and post an stl for 3d printing :smirk:


Ha! Ironically, this took me longer to measure up and take photos of than it did for me to make it.

I don’t have any millimetre graph paper on me right now, and won’t have time to pick any up till the weekend.

I didn’t make it very precise, using a T ruler and cave man methods to replicate the dimensions.

I hope there’s enough info here for you to sketch it up, trigonometrically. If I have time, I’ll provide a better diagram.

Don’t forget that the edge “wall” is 2mm thick on each side, thus having a slightly smaller inner width than the outer.

(Sorry for the files changing - the upload screwed up)


Thanks, this is helpful! I will create a prototype, test, refine and post the result here. It will take a bit since I need to get home first and printing is not really fast :laughing: I hope I can post the result tomorrow :smirk:


Dang that’s fast!!
It would be way more refined than mine. But I guess first thing’s first; we might need to find out if it actually does anything!
I still think that the heat sink itself needs to have thinner fins to be able to actually pull any heat away.

Oh its less enclosed than what I thought, initially I thought of a full shroud over the SBC too to guide the air

1 Like

Yeah! Like those ones you see in laptops, directed out the side. I was almost tempted to airbrush it “laptop shroud” black to make it look legit :wink:

I just need a starting point and will refine it, maybe print two parts that fit into each other…
I think if the fan delivers enough air the heatsink might be good enough, it is sometimes surprising how much a little bit of airflow helps!

1 Like

Another thing is, it’s mainly going to be directing the air underneath the heat sink. I mean, by virtue of fluid dynamics, and orientation of the Devterm having it facing down, there should be enough of a low pressure point at the heat sink fins to have the air current pull some heat away. But the fact of the matter is, there’s not really much clearance for the shroud to blow air over the fins, due to the rear case being so close to the heat sink.

I have ordered the rpi cm4 and an adapter. Will take a bit to reach me. I think i will design a new back cover. Makes sense to implement better airflow then…

Ooh hold onto your horses; I just saw this on the clockworkpi Instagram. Looks like they have a slimmer CM4 module integration in the works!


looks nice!
But I think my CM4 will be in my hands wwaaayyyy earlier :laughing:

1 Like

I wondered why your shroud has these angles, now I realized they are due to the height differences because of the so-dimm slot. I opted for a simpler design thats possible because of 3d printing:

I will try a print and keep you updated :sunglasses:


the hole is not perfectly centered, but big enough that it fits…

Please don‘t just print in PLA, that could get soft at those temperatures… I used PETG. I hope that is good enough.

Since I don’t see a way to attach a file here the code from openscad:

//numbers in mm

$fn = 50;

fan_w = 30.4;
fan_l = 30.4;
fan_h = 4.6;
fan_d = 21;

shroud_l = 25;
shroud_l1 = 3;
shroud_l2 = 11;
shroud_l3 = 3;
shroud_l4 = 8;

shroud_h1 = 4.6;
shroud_h2 = 7;
shroud_h3 = 1;
shroud_h4 = 2;
shroud_thickness = 1;

wall = 2;


module fan_enclosure(){

    cube([fan_l+2*wall,fan_w+2*wall,fan_h+shroud_thickness]);                               //outer size
    translate([wall,wall,0])cube([fan_l+wall,fan_w,fan_h]);                                 //inner size
    translate([fan_l/2+wall,fan_w/2+wall,0])cylinder(d=fan_d, h=fan_h+shroud_thickness);    //fan hole
    translate([0,0,0])cube([wall*2,wall*2,fan_h+wall]);                                          //counter hole because of cable and easier mounting
    translate([0,fan_w,0])cube([wall*2,wall*2,fan_h+wall]);                                      //counter hole because of cable and easier mounting


module shroud(){

            translate([0,0,fan_h-shroud_h1])cube([shroud_l1, fan_w+wall*2, shroud_h1+shroud_thickness]);                        //those 4 lines are to accomodate differnt heighs
            translate([shroud_l1,0,fan_h-shroud_h2])cube([shroud_l2, fan_w+wall*2, shroud_h2+shroud_thickness]);
            translate([shroud_l1+shroud_l2,0,fan_h-shroud_h3])cube([shroud_l3, fan_w+wall*2, shroud_h3+shroud_thickness]);
            translate([shroud_l1+shroud_l2+shroud_l3,0,fan_h-shroud_h4])cube([shroud_l4, fan_w+wall*2, shroud_h4+shroud_thickness]);
        translate([0,wall,-fan_h])cube([shroud_l, fan_w, fan_h*2]);
        translate([shroud_l1,wall,-fan_h])cube([shroud_l2, fan_w+1, fan_h*2]); //because of the assymetric pci-e slot




Another suggestion: I have removed the very thin tape behind the heatsink, then used a small piece (cpu size) of 3M thermally conductive double-sided tape (2mm thick, you can also use a thicker tape) to reconnect the cpu and the heatsink, which created a larger gap between the heatsink and core, and then… the overheating problem was solved!


that would mean the adhesive tape is less heat conducive than your 3M…

1 Like

I’d be curious to see how this compares to the default adhesive on the heatsink. Maybe if someone else does this they can run a test with numbers, like the stuff posted here:

Given time I might even end up doing it myself and posting something. But I haven’t taken the time to actually build my devterm yet, so first things first! :slight_smile:

1 Like

That is VERY clean! A huge refinement on my 15 minute backyard job!
You’re 100% right re: my choices to do the angles based on the sodimm slot being a different height/angle.
You perfectly captured what I was going for, and absolutely nailed it!
Thanks! I’ll definitely be printing one myself!

Re: the thicker thermal compound conducting better than the tape, I remember my housemate telling me about quantum thermodynamics they were doing at uni relating to how something that seems like an insulator doing a better job at conducting. I’d be more keen to see the rest of the components touching the heat sink to pull more heat away.

However with a thicker compound comes even less clearance to the rear housing, and more hot air being localised and trapped. Ultimately a new rear housing design or modification needs to be done if we want to improve cooling.

I only encountered thermal throttling while trying to emulate GameCube/Wii on the “sixth gear”. Besides that though, nothing has really pushed my Devterm to the limit. Then again, I’ve only owned it for 3 days, so I’m sure to find something!

@adcockm ha! I was lucky I was in a huge model making bender! Otherwise it would have been stuck in my backlog too. If it’s any consolation, it’s actually a lot less work than the gameshell. You don’t even need to cut and sand the orange pegs down perfect for a slick build. They’re just retention pegs. Most of the mission critical parts are pre cut very nicely. :slight_smile:


This is the test data using the “gear 6”:

and my heatsink :grinning:

I thought if I could get a larger heatsink like the M.2 SSD heatsink, it may be faster.


This is very nice. I’ll give this a try when I get mine as well.

1 Like