The Pragmatic Addict

Home Made DVD External Rack

I have an obstensibly large collection of DVD/BluRay/CD discs. The decision was made to finally get those into a format that I could keep on a server (with backups!).

DVD Rack

It’s not pretty, but very functional. The drives came from some salvaged PC’s from a few years back. I ran a couple of sata cables and a USB sata adapter to connect the data side of the drives. I came up with a simple skeleton framework to hold the three drives together as a unit. The power source is a lightly hacked used ATX power supply.

ATX powersupply mod

This is the simplest mod I think I’ve ever done. Plus, it’s reversable!

Warning this is a powersupply that works off mains electricity!

In order for the powersupply to turn on, all you have to do is short the green wire (power signal) to ground. I used a thicker paperclip (thin falls out) and just jammed it into the 24 pin connector.

For 24 pin connectors (version 2.0) short the black (GND #15), to green (PS_ON #16).
For older 20 pin connectors (version 1.0) short the black (GND #13), to green (PS_ON #14).

ATX Hack

Drive Rack 3d Print

Drive Rack

I printed mine on a Prusa Mini+, the design was done using OpenSCAD from there I generated the STL files for the slicer.

The code generates 3 “bays” for the drives using the subassembly module. You can grow or shrink the number of bays at the bottom of the script.

module screwholes()
{
    hull()
    {
        translate([5,0,0]) cylinder($fn=60,d=3.5,h=5);
        translate([-5,0,0]) cylinder($fn=60,d=3.5,h=5);
    }
}
module subassembly()
{
    difference()
    {
        cube([102,42,2],center=true);
        translate([80/2,.5,-2]) screwholes(); 
        translate([80/2,-11,-2]) screwholes();
        translate([-80/2,.5,-2]) screwholes();
        translate([-80/2,-11,-2]) screwholes();  
        // Diamond spacers
        translate([-18,0,-2]) cylinder(d=25,h=5,$fn=4);
        translate([18,0,-2]) cylinder(d=25,h=5,$fn=4);
    }
    translate([0,(42/2)+(6/2),0]) cube([102,6,10],center=true);
    translate([0,((42/2)+(6/2))*-1,0]) cube([102,6,10],center=true);
}
translate([0,96/2,0]) subassembly();
translate([0,0,0]) subassembly();
translate([0,-96/2,0]) subassembly();

Created: 2024-02-03 Modified: 2024-04-01