Rev 3910 Rev 3911
1   1  
2 pedestal_height = 13; 2 pedestal_height = 13;
3 mount_hole = 3.5; 3 mount_hole = 3.5;
4 clear = 0.175; 4 clear = 0.175;
5 nut_size = 6.6; 5 nut_size = 6.6;
6   6  
7 module ramp(width, depth, height) { 7 module ramp(width, depth, height) {
8 angle = atan(height / depth); 8 angle = atan(height / depth);
9 9
10 difference () { 10 difference () {
11 cube([width, depth, height]); 11 cube([width, depth, height]);
12 12
13 //color("red") 13 //color("red")
14 rotate([angle, 0, 0]) 14 rotate([angle, 0, 0])
15 translate([-1, 0, 0]) 15 translate([-1, 0, 0])
16 cube([width + 2, depth * 2, height]); 16 cube([width + 2, depth * 2, height]);
17 } 17 }
18 } 18 }
19   19  
20 difference () { 20 difference () {
21 // translate ([-1,-16,0]) 21 // translate ([-1,-16,0])
22 cube([50,100,pedestal_height]); 22 cube([50,100,pedestal_height]);
23   23  
24 //mount holes for ODROID U3 24 //mount holes for ODROID U3
25 translate ([4.5,4.5 + 76, 0]) 25 translate ([4.5,4.5 + 76, 0])
26 rotate([0,0,90]) 26 rotate([0,0,90])
27 cylinder (h = 6 ,r= nut_size/2 + clear, $fn=6); 27 cylinder (h = 6 ,r= nut_size/2 + clear, $fn=6);
28 translate ([4.5,4.5 + 76, 6.2]) 28 translate ([4.5,4.5 + 76, 6.2])
29 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 29 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
30 30
31 translate ([4.5 + 41, 4.5 + 76,0]) 31 translate ([4.5 + 41, 4.5 + 76,0])
32 rotate([0,0,90]) 32 rotate([0,0,90])
33 cylinder (h = 6,r= nut_size/2 + clear, $fn=6); 33 cylinder (h = 6,r= nut_size/2 + clear, $fn=6);
34 translate ([4.5 + 41, 4.5 + 76, 6.2]) 34 translate ([4.5 + 41, 4.5 + 76, 6.2])
35 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 35 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
36   36  
37   37  
38 /// Two holes for other side of ODROID-U3 PCB. 38 /// Two holes for other side of ODROID-U3 PCB.
39 translate ([4.5,4.5,0]) 39 translate ([4.5,4.5,0])
40 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 40 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
41 translate ([4.5,4.5,6.2]) 41 translate ([4.5,4.5,6.2])
42 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 42 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
43 43
44 translate ([4.5+41,4.5,0]) 44 translate ([4.5+41,4.5,0])
45 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 45 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
46 translate ([4.5+41,4.5,6.2]) 46 translate ([4.5+41,4.5,6.2])
47 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 47 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
48   48  
49 // MLAB grid holes 49 // MLAB grid holes
50   50  
51 for (j = [1 : 3], i = [0 : 0]) { 51 for (j = [1 : 3], i = [0 : 0]) {
52 translate ([4.5 + j*10.16, 4.5 + i*10.16,0]) 52 translate ([4.5 + j*10.16, 4.5 + i*10.16,0])
53 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 53 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
54 translate ([4.5 + j*10.16, 4.5 + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand ) 54 translate ([4.5 + j*10.16, 4.5 + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
55 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10); 55 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
56 translate ([4.5 + j*10.16, 4.5 + i*10.16, 6.3]) 56 translate ([4.5 + j*10.16, 4.5 + i*10.16, 6.3])
57 cylinder (h = 10, r= nut_size/2, $fn=6); 57 cylinder (h = 10, r= nut_size/2, $fn=6);
58 } 58 }
59   59  
60   60  
61 for (j = [0 : 7], i = [1 : 6]) { 61 for (j = [0 : 7], i = [1 : 6]) {
62 translate ([4.5 + j*10.16, 4.5 + i*10.16,0]) 62 translate ([4.5 + j*10.16, 4.5 + i*10.16,0])
63 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 63 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
64 translate ([4.5 + j*10.16, 4.5 + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand ) 64 translate ([4.5 + j*10.16, 4.5 + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
65 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10); 65 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
66 translate ([4.5 + j*10.16, 4.5 + i*10.16, 6.3]) 66 translate ([4.5 + j*10.16, 4.5 + i*10.16, 6.3])
67 cylinder (h = 10, r= nut_size/2, $fn=6); 67 cylinder (h = 10, r= nut_size/2, $fn=6);
68 } 68 }
69   69  
70 //////////////////////////////////// 70 ////////////////////////////////////
71 translate ([4,6, pedestal_height - 4]) // ODROIDs passive components hole. 71 translate ([4,6, pedestal_height - 4]) // ODROIDs passive components hole.
72 cube([42,27,5]); 72 cube([42,27,5]);
73 translate ([13, 2 , pedestal_height - 4]) // two small resistors on botom side. 73 translate ([13, 2 , pedestal_height - 4]) // two small resistors on botom side.
74 cube([3,3,5]); 74 cube([3,3,5]);
75 translate ([22, 30 , pedestal_height - 4]) // USB over voltage protection. 75 translate ([22, 30 , pedestal_height - 4]) // USB over voltage protection.
76 cube([21,5,5]); 76 cube([21,5,5]);
77 77
78 78
79 translate ([0, 41 , pedestal_height - 3.5]) // HOLE for ODROD's , SD card and eMMC. 79 translate ([0, 41 , pedestal_height - 3.5]) // HOLE for ODROD's , SD card and eMMC.
80 cube([48,32,5]); 80 cube([48,32,5]);
81 translate ([0, 38.5 , pedestal_height - 4.5]) // HOLE for ODROD's jack connector 81 translate ([0, 38.5 , pedestal_height - 4.5]) // HOLE for ODROD's jack connector
82 cube([14,8,5]); 82 cube([14,8,5]);
83 translate ([0, 65 , pedestal_height - 3.5]) // HOLE for ODROD's , SD card and eMMC. 83 translate ([0, 65 , pedestal_height - 3.5]) // HOLE for ODROD's , SD card and eMMC.
84 cube([17,13,5]); 84 cube([17,13,5]);
85   85  
86 //////////////////////////////////////// 86 ////////////////////////////////////////
87 87
88 //// lightening central holes 88 //// lightening central holes
89 89
90 translate ([10,10, 0]) // ODROIDs passive components hole. 90 translate ([10,10, 0]) // ODROIDs passive components hole.
91 cube([30,19.5,pedestal_height ]); 91 cube([30,19.5,pedestal_height ]);
92 92
93 translate ([10,41, 0]) // ODROIDs passive components hole. 93 translate ([10,41, 0]) // ODROIDs passive components hole.
94 cube([30,30,pedestal_height ]); 94 cube([30,30,pedestal_height ]);
95 95
96 ////// 96 //////
97 // MLAB electrical adapter part 97 // MLAB electrical adapter part
98 /////// 98 ///////
99 difference () { 99 difference () {
100 translate ([8,74.9,pedestal_height - 11]) // Central mount hole 100 translate ([8,74.9,pedestal_height - 11]) // Central mount hole
101 cube([34,17.1,pedestal_height - 8.5]); 101 cube([34,17.1,pedestal_height - 8.5]);
102 translate ([25,85.78,0]) 102 translate ([25,85.78,0])
103 cylinder (h = 30, r= nut_size*0.7, $fn=20); 103 cylinder (h = 30, r= nut_size*0.7, $fn=20);
104 } 104 }
105   105  
106 translate ([0,84, pedestal_height - 8.5]) // Holes for MLAB's adapter 5V power connector. 106 translate ([0,84, pedestal_height - 8.5]) // Holes for MLAB's adapter 5V power connector.
107 cube([50,20,20]); 107 cube([50,20,20]);
108   108  
109 translate ([42,84,pedestal_height - 11]) // Holes for MLAB's adapter 5V power connector. 109 translate ([42,84,pedestal_height - 11]) // Holes for MLAB's adapter 5V power connector.
110 cube([34,8,pedestal_height - 8.5]); 110 cube([34,8,pedestal_height - 8.5]);
111   111  
112 translate ([8,92,pedestal_height - 11]) // Holes for MLAB's adapter IO connectors. 112 translate ([8,92,pedestal_height - 11]) // Holes for MLAB's adapter IO connectors.
113 cube([34,8,pedestal_height - 8.5]); 113 cube([34,8,pedestal_height - 8.5]);
114   114  
115 115
116 translate ([0,74.9, pedestal_height - 8.5]) // Hole for MLAB PCB 116 translate ([0,74.9, pedestal_height - 8.5]) // Hole for MLAB PCB
117 cube([50,25.1,2]); 117 cube([50,25.1,2]);
118 translate ([7.5,78,pedestal_height - 8.5]) // Hole For connectors above the adapter PCB 118 translate ([7.5,77,pedestal_height - 8.5]) // Hole For connectors above the adapter PCB
119 cube([35.5,17.1,10]); 119 cube([35.5,17.1,10]);
120   120  
121 translate ([0,74.9, pedestal_height - 6.5]) 121 translate ([0,74.9, pedestal_height - 6.5])
122 ramp(50, 50, 25); 122 ramp(50, 50, 25);
123 /////// Elecrical adapter PCB mount holes 123 /////// Elecrical adapter PCB mount holes
124   124  
125 translate ([25,85.78,0]) 125 translate ([25,85.78,0])
126 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 126 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
127 translate ([25,85.78,3.2]) 127 translate ([25,85.78,3.2])
128 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10); 128 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10);
129   129  
130 translate ([4.68,85.78 + 10.16,0]) 130 translate ([4.68,85.78 + 10.16,0])
131 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 131 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
132 translate ([4.68,85.78 + 10.16,3.2]) 132 translate ([4.68,85.78 + 10.16,3.2])
133 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10); 133 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10);
134   134  
135 translate ([45.32,85.78 + 10.16,0]) 135 translate ([45.32,85.78 + 10.16,0])
136 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 136 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
137 translate ([45.32,85.78 + 10.16,3.2]) 137 translate ([45.32,85.78 + 10.16,3.2])
138 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10); 138 cylinder (h = pedestal_height + clear,r= mount_hole/2, $fn=10);
139   139  
140 } 140 }
141   141  
142   142  
143 /// Support material 143 /// Support material
144 /* 144 /*
145 color("Blue",0.5) 145 color("Blue",0.5)
146 //translate ([0,74.9, pedestal_height - 8.5]) // Hole for MLAB PCB 146 //translate ([0,74.9, pedestal_height - 8.5]) // Hole for MLAB PCB
147 cube([50,70,30]); 147 cube([50,70,30]);
148 */ 148 */