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