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