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