Rev 4826 Rev 4833
1 use <./../../../../../Library/Graphics/MLAB_logo.scad> 1 use <./../../../../../Library/Graphics/MLAB_logo.scad>
2   2  
3 pedestal_height = 13; // designed for use the MLAB standard 12mm screws. 3 pedestal_height = 13; // designed for use the MLAB standard 12mm screws.
4 mount_hole = 3.5; 4 mount_hole = 3.5;
5 clear = 0.175; 5 clear = 0.175;
6 nut_size = 6.6; 6 nut_size = 6.6;
7   7  
8 MLAB_grid_xoffset = 3.6; 8 MLAB_grid_xoffset = 3.6;
9 MLAB_grid_yoffset = 1.5; 9 MLAB_grid_yoffset = 1.5;
10   10  
11 difference () { 11 difference () {
12 // translate ([-1,-16,0]) 12 // translate ([-1,-16,0])
13 cube([58,87,pedestal_height]); 13 cube([58,87,pedestal_height]);
14   14  
15 //mount holes for ODROID 15 //mount holes for ODROID
16   16  
17 translate ([4.5, 4.5,0]) 17 translate ([4.5, 4.5,0])
18 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 18 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
19 translate ([4.5, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) 19 translate ([4.5, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
20 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 20 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
21   21  
22 translate ([4.5 + 49, 4.5,0]) 22 translate ([4.5 + 49, 4.5,0])
23 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 23 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
24 translate ([4.5 + 49, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) 24 translate ([4.5 + 49, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
25 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 25 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
26   26  
27 translate ([4.5, 4.5 + 58,0]) 27 translate ([4.5, 4.5 + 58,0])
28 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 28 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
29 translate ([4.5, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) 29 translate ([4.5, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
30 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 30 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
31   31  
32 translate ([4.5 + 49, 4.5 + 58,0]) 32 translate ([4.5 + 49, 4.5 + 58,0])
33 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); 33 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
34 translate ([4.5 + 49, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) 34 translate ([4.5 + 49, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
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 translate ([1, 66 , pedestal_height - 4.5]) // HOLE for ODROD's USB and Ethernet connectors 38 translate ([1, 66 , pedestal_height - 4.5]) // HOLE for ODROD's USB and Ethernet connectors
39 cube([55,18,5]); 39 cube([55,18,5]);
40   40  
41 translate ([15, 8 , pedestal_height - 3.5]) // HOLE for ODROD's Passive components 41 translate ([15, 8 , pedestal_height - 3.5]) // HOLE for ODROD's Passive components
42 cube([41,50,5]); 42 cube([41,50,5]);
43   43  
44 translate ([21, 1.5 , pedestal_height - 2]) // HOLE for ODROD's Passive components 44 translate ([21.25, 1.5 , pedestal_height - 2]) // HOLE for ODROD's Passive components
45 cube([7,10,5]); 45 cube([7.5,10,5]);
46   46  
47 translate ([51.5, 19.5 , pedestal_height - 2]) // HOLE for ODROD's power header 47 translate ([51.5, 19.5 , pedestal_height - 2]) // HOLE for ODROD's power header
48 cube([6,3,5]); 48 cube([6,3,5]);
49   49  
50 translate ([5, 27.5 , pedestal_height - 3.5]) // eMMc Card 50 translate ([5, 27.5 , pedestal_height - 3.5]) // eMMc Card
51 cube([14,20,5]); 51 cube([14,20,5]);
52   52  
53 translate ([0, 46.5 , pedestal_height - 3.5]) // SD Card 53 translate ([0, 47 , pedestal_height - 3.5]) // SD Card
54 cube([20,12.5,5]); 54 cube([20,12.5,5]);
55   55  
56 translate ([2, 8 , pedestal_height - 1.7]) // IO connector 56 translate ([2, 8 , pedestal_height - 1.7]) // IO connector
57 cube([4.5,50.5,5]); 57 cube([4.5,50.5,5]);
58   58  
59 translate ([30, 3, pedestal_height - 3]) // ODROID serial connector 59 translate ([30, 3, pedestal_height - 3]) // ODROID serial connector
60 cube([10,3,5]); 60 cube([10,3,5]);
61   61  
62 translate ([48, 1, pedestal_height - 3]) // ODROID power switch connector 62 translate ([42.5, 1, pedestal_height - 3]) // ODROID power switch connector
63 cube([3.5,5,5]); 63 cube([8.5, 10, 5]);
64   64  
65 translate ([52, 43, pedestal_height - 3]) // ODROID power connector 65 translate ([52, 43, pedestal_height - 3]) // ODROID power connector
66 cube([5,3,5]); 66 cube([5,3,5]);
67   67  
68 rotate([30,0,0]) 68 rotate([30,0,0])
69 translate ([15,5.8, -3.0]) // ODROID eMMC adapter pocket 69 translate ([15,5.8, -3.0]) // ODROID eMMC adapter pocket
70 cube([25,2,15]); 70 cube([25,2,15]);
71   71  
72 translate ([8.8,2.5, pedestal_height - 3]) // ODROID IR receiver 72 translate ([8.8,2.5, pedestal_height - 3]) // ODROID IR receiver
73 cube([7.5,4,5]); 73 cube([7.5,4,5]);
74   74  
75 translate ([19,10, pedestal_height - 5]) // Heatsink mount holes 75 translate ([19,10, pedestal_height - 5]) // Heatsink mount holes
76 cylinder (h = 6, r= 3, $fn=10); 76 cylinder (h = 6, r= 3, $fn=10);
77 translate ([39,61.6, pedestal_height - 5]) // Heatsink mount holes 77 translate ([39,61.6, pedestal_height - 5]) // Heatsink mount holes
78 cylinder (h = 6, r= 3, $fn=10); 78 cylinder (h = 6, r= 3, $fn=10);
79   79  
80   80  
81 //////////////////////////////////////// 81 ////////////////////////////////////////
82   82  
83 // MLAB grid holes 83 // MLAB grid holes
84   84  
85 for (j = [0 : 5], i = [1 : 5]) { 85 for (j = [0 : 5], i = [1 : 5]) {
86 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0]) 86 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0])
87 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 87 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
88 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand ) 88 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
89 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10); 89 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
90 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0]) 90 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0])
91 cylinder (h = 10, r= nut_size/2, $fn=6); 91 cylinder (h = 10, r= nut_size/2, $fn=6);
92 } 92 }
93   93  
94 for (j = [0 : 5], i = [7 : 8]) { 94 for (j = [0 : 5], i = [7 : 8]) {
95 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0]) 95 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0])
96 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 96 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
97 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand ) 97 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
98 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10); 98 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
99 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0]) 99 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0])
100 cylinder (h = 10, r= nut_size/2, $fn=6); 100 cylinder (h = 10, r= nut_size/2, $fn=6);
101 } 101 }
102   102  
103 103
104 104
105 105
106 //// lightening central holes 106 //// lightening central holes
107 107
108 translate ([9, 8.5 , 0]) 108 translate ([9, 8.5 , 0])
109 cube([40,70,pedestal_height ]); 109 cube([40,70,pedestal_height ]);
110 110
111 111
112 // MLAB logo on the side 112 // MLAB logo on the side
113 union (){ 113 union (){
114 translate ([29,0.5, 6.5]) // ODROIDs passive components hole. 114 translate ([29,0.5, 6.5]) // ODROIDs passive components hole.
115 rotate ([90,0,0]) 115 rotate ([90,0,0])
116 scale(v = [0.4, 0.4, 0.4]) 116 scale(v = [0.4, 0.4, 0.4])
117 MLAB_logo_long(); 117 MLAB_logo_long();
118 } 118 }
119   119  
120 translate ([50, 86.5, 4]) // ODROIDs passive components hole. 120 translate ([50, 86.5, 4]) // ODROIDs passive components hole.
121 rotate ([90,0,180]) 121 rotate ([90,0,180])
122 linear_extrude(height = 0.5) { 122 linear_extrude(height = 0.5) {
123 text(text = "ODROID-C1+", size = pedestal_height * 0.4); 123 text(text = "ODROID-C1+", size = pedestal_height * 0.4);
124 } 124 }
125 } 125 }
126   126