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