summaryrefslogtreecommitdiff
path: root/backplane.scad
blob: 9f00c95e9734a03f732330d7794a133a8a855b64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
include <parameters.scad>

use <screw_hole.scad>

module hdd_connector(w,h,d) {
      difference() {
        cube([w, d, h]);
	translate([1, 2, 1])
	  cube([w - 2, d, h - 2]);
      }
}


// board
module backplane_pcb() {
  color("sienna")
  difference() {
    cube([backplane_width, backplane_thickness, backplane_height]);

    // screw holes for PCB screws
    for (p = [[0, bar_thickness/2],
              [0, tray_height - bar_thickness/2],
	      [tray_width/2 - bar_thickness, tray_height - bar_thickness/2]])
      translate([p[0] - backplane_hoffset, 0, p[1] - backplane_voffset])
      rotate([-90, 0, 0])
      screw_hole();
  }
}

module backplane_populated() {
  backplane_pcb();

  // front connector (power + data)
  color("darkgrey")
    translate([backplane_con_hoffset, 0, backplane_con_voffset])
      mirror([0, 1, 0]) {
          hdd_connector(backplane_con_width/ 3 * 2 + 1, backplane_con_height, backplane_con_depth);
        translate([backplane_con_width / 3 * 2, 0, 0])
          hdd_connector(backplane_con_width / 3 * 1, backplane_con_height, backplane_con_depth);
      }

  // back connector (data)
  translate([backplane_con_hoffset + backplane_con_width / 3 * 2,
             backplane_thickness, backplane_con_voffset])
    mirror([0, 1, 0]) rotate([90, 0, 0])
      hdd_connector(backplane_con_width / 3 * 1, backplane_con_height, backplane_con_depth);
}

backplane_populated();
contact: Jan Huwald // Impressum