Not South American, but a revolution nonetheless

Some of you may have seen this blog post (Insert shameless self promotion here :smiley:) and I’d like to share a few developments that came to life since the interview : I’ve taken some ideas found on the interweb and decided to redesign the rack in order to add ventilation to it : meaning a honeycombed upper plate and an integrated fan mount - this one is sized for a 80mm usb fan (Noctua sells theirs with the usb adaptor included).


Here’s the OpenSCAD file for those who may want to adapt it to their own needs :

$fn=60;

include <BOSL2/std.scad>;
include <honeycomb.scad>;
include <nutsnbolts/cyl_head_bolt.scad>;
include <fan_holder_v2.scad>

base_length=100;
base_width=20;
base_height=15;

module screw() {
    nutcatch_parallel("M3", clh=0.1);
	translate([0,0,23]) hole_through(name="M3", l=16, cld=0.1, h=10, hcld=0.4);
	*nutcatch_sidecut("M3", l=20, clk=0.1, clh=0.1, clsl=0.1);
}

module pcie_mount() {
    color("cyan") difference() {
        union() {
            // Base
            cuboid([base_length,base_width,base_height], rounding=2, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT], anchor=TOP);
            translate([0,-10,-5]) cuboid([80,4,50], rounding=40, edges=[TOP+RIGHT,TOP+LEFT,], anchor=BOT+FRONT);
            // Front support
            *translate([-65,0,0]) cuboid([10,20,80.5], rounding=2, edges=[FWD+LEFT,BACK+LEFT, TOP+RIGHT], anchor=BOT+RIGHT);
        }
        // riser_screwholes
        translate([29,-8,-7.25]) rotate([0,-90,-90]) screw();
        translate([-29,-8,-7.25]) rotate([0,-90,-90]) screw();
        // cage_screwholes
        translate([0,-20,35]) rotate([0,-90,-90]) screw();
        translate([0,-20,5]) rotate([0,-90,-90]) screw();
        // riser_nest
        cuboid([68,2,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+BACK,TOP+FRONT], anchor=TOP+FRONT);
        translate([0,-3,0]) cuboid([44,14,base_height], rounding=-1, edges=[TOP+RIGHT,TOP+LEFT,TOP+FRONT], anchor=TOP+FRONT);
    }
}

module riser() {
    color("grey") {
        difference() {
            union() {
                cuboid([67.45,1.65,14.25], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP);
                cuboid([39,7.125,10.55], rounding=.5, anchor=BOT);
                translate([0,0,-7.5]) cuboid([42,7,7.5], rounding=1, edges=[TOP+RIGHT,TOP+LEFT,BOT+RIGHT,BOT+LEFT], anchor=TOP);
                }
            translate([29,0,-7.25]) ycyl(l=5, d=3.25);
            translate([-29,0,-7.25]) ycyl(l=5, d=3.25);
    }
    translate([-63.2,11,2]) difference() {
        cuboid([12.75,18.25,80], rounding=2, anchor=BOT+BACK+RIGHT);
        translate([-1,2,-1]) cuboid([15,25,80], rounding=2, anchor=BOT+BACK+RIGHT); 
    }
    }
}

translate([0,65.5,-27.5]) {
    pcie_mount();
    translate([0,1,0]) riser();
}


!color("grey") {
    // 2_hdds_stand
    difference() {
        rotate([0,90,0]) translate([0,0,-75]) rect_tube(150, 110, 105, rounding=10);
        translate([0,0,45]) cuboid([130,120,50], rounding=5, edges=[BOT+LEFT,BOT+RIGHT]);
        translate([0,0,-54]) cuboid([130,120,20], rounding=5, edges=[TOP+LEFT,TOP+RIGHT]);
        // hdds_holes
        translate([0,0,-5]) cuboid([125,120,4], rounding=2, edges=[TOP+LEFT,TOP+RIGHT,BOT+LEFT,BOT+RIGHT]);
        translate([0,0,-35]) cuboid([125,120,4], rounding=2, edges=[TOP+LEFT,TOP+RIGHT,BOT+LEFT,BOT+RIGHT]);
        // riser_holes
        translate([0,0,7.5]) ycyl(d=3, l=120);
        translate([0,0,-22.5]) ycyl(d=3, l=120);
    }
    translate([-75,-55,17]) linear_extrude(2.5) {
	honeycomb(150, 110, 15, 4, whole_only=true);
    }
    translate([0,51,-13]) cuboid([150,5,2], rounding=3, edges=[FRONT+LEFT,FRONT+RIGHT]);
    translate([0,51,-43]) cuboid([150,5,2], rounding=3, edges=[FRONT+LEFT,FRONT+RIGHT]);
    translate([0,-51,-13]) cuboid([150,5,2], rounding=3, edges=[BACK+LEFT,BACK+RIGHT]);
    translate([0,-51,-43]) cuboid([150,5,2], rounding=3, edges=[BACK+LEFT,BACK+RIGHT]);
    // fan_mount
    rotate([0,-90,0]) {
        difference() {
            translate([0,0,75]) rect_tube(size1=[110,110], size2=[60,60], wall=2.5, h=30, rounding1=10, rounding2=3);
            rotate([0,50,0]) translate([-35,0,90]) cuboid([35,60,10], rounding=10, , edges=[FRONT+LEFT,BACK+LEFT]);
        }
        translate([-30,-30,103]) fan_mount(size=60,thick=3);
    }
}

The libraries I’ve used and abused :

The whole setup now runs at a steady 45°C and went through last couple of weeks heatwave like charm (unlike me, obviously :stuck_out_tongue:).

1 Like