1
0
mirror of https://github.com/rene-dev/stmbl.git synced 2024-12-25 10:02:18 +00:00
stmbl/hw/kicad/v4.0/stmbl.scad
2016-10-07 21:25:57 +02:00

541 lines
25 KiB
OpenSCAD

pcb_hight = 1.6;
$fn = 20;
module capp(){
color("grey") cylinder(r = 12.5, h = 50);
color("gold") translate([5, 0, 0]) cube([1, 1, 6], true);
color("gold") translate([-5, 0, 0]) cube([1, 1, 6], true);
}
module cap(){
color("red") cube([8, 18, 15]);
color("gold") translate([4.5, 18 / 2 - 15 / 2, 0]) cube([1, 1, 6], true);
color("gold") translate([4.5, 18 / 2 + 15 / 2, 0]) cube([1, 1, 6], true);
}
module rj45(){
difference(){
color("silver") cube([16.5, 15.6, 13.2], false);
translate([0.25, 0,0]){
color([0.2, 0.2, 0.2]) translate([8, 3.9, 13.33/2]) cube([11.5, 8, 7.5], true);
color([0.2, 0.2, 0.2]) translate([8, 3.9, 13.33-2]) cube([6, 8, 2], true);
color("grey") translate([16-3, 0.45, 13.33-2]) cube([4, 1, 2], true);
color("grey") translate([3, 0.45, 13.33-2]) cube([4, 1, 2], true);
}
}
translate([0.25, 0,0]){
color("green") translate([16-3, 0.5, 13.33-2]) cube([4, 1, 2], true);
color("yellow") translate([3, 0.5, 13.33-2]) cube([4, 1, 2], true);
color([0.2, 0.2, 0.2]) translate([(16 - 12.7) / 2, 5.4, -3]) cylinder(r = 1.6, h = 3);
color([0.2, 0.2, 0.2]) translate([(16 - 12.7) / 2 + 12.7, 5.4, -3]) cylinder(r = 1.6, h = 3);
color("silver") translate([-0.13, 5.4 + 3.54, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([16.26, 5.4 + 3.54, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([(16 - 13.72) / 2, 5.4 + 9.12, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([(16 - 9.14) / 2, 5.4 + 9.12, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([(16 - 13.72) / 2 + 13.72, 5.4 + 9.12, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([(16 - 9.14) / 2 + 9.14, 5.4 + 9.12, -3]) cylinder(r = 0.6, h = 3);
for(a = [0:3]){
color("silver") translate([(16 - 12.7) / 2 + 2.79 + a * 2.03 + 1.02, 5.4 + 2.54, -3]) cylinder(r = 0.6, h = 3);
color("silver") translate([(16 - 12.7) / 2 + 2.79 + a * 2.03, 5.4 + 4.32, -3]) cylinder(r = 0.6, h = 3);
}
}
}
module soic8(){
difference(){
translate([1.1, 0, 0.25]) color([0.2, 0.2, 0.2]) cube([4, 5, 1.5]);
translate([1.1, -0.5, 1.72 - 0.5]) color([0.2, 0.2, 0.2]) rotate([0, -45, 0]) cube([1, 6, 1]);
}
for(a = [0:3]){
color("silver") translate([0, 0.33 + a * 1.27, 0]) cube([1.1 / 2, 0.51, 0.19]);
color("silver") translate([1.1 / 2 - 0.19 / 2, 0.33 + a * 1.27, 0]) cube([0.19, 0.51, 1.75 / 2 + 0.19 / 2]);
color("silver") translate([1.1 / 2, 0.33 + a * 1.27, 1.75 / 2 - 0.19 / 2]) cube([1.1 / 2, 0.51, 0.19]);
color("silver") translate([4 + 1.1 + 1.1 / 2, 0.33 + a * 1.27, 0]) cube([1.1 / 2, 0.51, 0.19]);
color("silver") translate([4 + 1.1 + 1.1 / 2 - 0.19 / 2, 0.33 + a * 1.27, 0]) cube([0.19, 0.51, 1.75 / 2 + 0.19 / 2]);
color("silver") translate([4 + 1.1, 0.33 + a * 1.27, 1.75 / 2 - 0.19 / 2]) cube([1.1 / 2, 0.51, 0.19]);
}
}
module smd_8b(){
difference(){
translate([1.65, 0, 0.1]) color([0.2, 0.2, 0.2]) cube([6.5, 9.5, 3.2]);
translate([1.65 + 6.5 / 2, 9.5, 0.1 + 3.2 - 0.2]) color([0.2, 0.2, 0.2]) cylinder(r = 1, h = 1);
}
for(a = [0:3]){
color("silver") translate([0, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 0]) cube([1.65 / 2, 0.6, 0.2]);
color("silver") translate([1.65 / 2 - 0.2 / 2, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 0]) cube([0.2, 0.6, 3.2 / 2 + 0.2 / 2 + 0.1]);
color("silver") translate([1.65 / 2, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 3.2 / 2]) cube([1.65 / 2, 0.6, 0.2]);
}
for(a = [0,2,3]){
color("silver") translate([6.5 + 1.65 / 2 + 1.65, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 0]) cube([1.65 / 2, 0.6, 0.2]);
color("silver") translate([6.5 + 1.65 + 1.65 / 2 - 0.2 / 2, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 0]) cube([0.2, 0.6, 3.2 / 2 + 0.2 / 2 + 0.1]);
color("silver") translate([6.5 + 1.65 / 2 + 1.65 / 2, 9.5 / 2 - 1.27 - 2.54- 0.6 / 2 + a * 2.54, 3.2 / 2]) cube([1.65 / 2, 0.6, 0.2]);
}
}
module r2512(){
color("silver") cube([1.5, 3.2, 1.6]);
translate([1.5, 0, 0]) color("grey") cube([3.35, 3.2, 1.6]);
translate([1.5 + 3.35, 0, 0]) color("silver") cube([1.5, 3.2, 1.6]);
}
module akl230(l){
//color("red") translate([0, 1.4, 7.8]) cube([l * 5.08 + 1.2, 12 - 1.4, 4.5 - (7.8 - 1.4 - 5)]);
difference(){
color("green") cube([l * 5.08 + 1.2, 12, 7.8]);
for(a = [0:l - 1]){
color("green") translate([0.6 + a * 5.08, 4, 1.4]) cube([5.09, 9, 5]);
}
}
for(a = [0:l - 1]){
color("gold") translate([0.6 + a * 5.08 + 5.08/2, 7, 3.8]) cube([1, 10, 1], true);
}
for(a = [0:l - 1]){
color("gold") translate([0.6 + a * 5.08 + 5.08/2, 2, 0.175]) cube([1, 1, 3.45 + 3.8], true);
}
}
module akl249(l){
translate([0.6, 12, 0.0]) {
color("darkgreen") cube([l * 5.08, 9.9, 15.5]);
color("darkgreen") translate([0, -9.9, 0.9]) cube([l * 5.08, 18.2, 5.5]);
for(a = [1:l - 1]){
color("darkgreen") translate([a * 5.08 - 1.5 / 2.0, -5, 8]) cube([1.5, 5.0, 2.0]);
}
}
}
//module akl182(l){
// difference(){
// color("grey") cube([l * 3.5 + 1.6, 11.2, 8.7]);
// for(a = [0:l - 1]){
// color("grey") translate([0.8 + a * 3.5, 4, 1.4]) cube([3.51, 9, 5]);
// }
// }
// for(a = [0:l - 1]){
// color("gold") translate([0.8 + a * 3.5 + 3.5/2, 11.2 - 8.9 / 2, 3.1]) cube([1, 8.9, 1], true);
// }
// for(a = [0:l - 1]){
// color("gold") translate([0.8 + a * 3.5 + 3.5/2, 11.2 - 8.9, -0.2]) cube([1, 1, 3.5 + 3.1], true);
// }
//}
module akl182(l){
translate([0, 2, 0]){
difference(){
color("green") cube([l * 3.5 + 1.4, 9.2, 7.0]);
for(a = [0:l - 1]){
color("green") translate([a * 3.5 + 0.7 + 0.3 / 2, 4, 1]) cube([3.2, 9, 5]);
}
}
for(a = [0:l - 1]){
color("gold") translate([0.8 + a * 3.5 + 3.5/2, 4 + 1.2, 3]) cube([0.8, 8, 0.8], true);
}
for(a = [0:l - 1]){
color("gold") translate([0.8 + a * 3.5 + 3.5/2, 1.2, -0.5 / 2]) cube([0.8, 0.8, 3.5 + 3], true);
}
}
}
module akl169(l){
translate([2.5, 3.3, 0]){
color("darkgreen") translate([-3.5 / 2, 8, -3.4]) cube([l * 3.5, 7.5 + 1.4, 11.4]);
for(a = [0:l - 1]){
color("darkgreen") translate([a * 3.5 - 3.5/2, 8 - 6.6, 1]) cube([3.2, 6.6, 4]);
}
for(a = [0:l - 1]){
color("darkgreen") translate([a * 3.5 - 0.5, 8 - 6.6, 5]) cube([1, 2, 1]);
}
for(a = [0:l - 1]){
color("black") translate([a * 3.5, 8 + 7.5 + 1.4, -2]) rotate([-90, 0, 0]) cylinder(r = 0.6, h = 5);
}
}
}
module pina(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 1.5 + 2.54, -(3 + 1.27) / 2 + 1.27]) cube([0.64, 0.64, 3 + 1.27], true);
//color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 1.5 + 2.54, -(3 + 1.27 + 2.54) / 2 + 1.27 + 2.54]) cube([0.64, 0.64, 3 + 1.27 + 2.54], true);
}
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, -(6 + 2.54 + 1.5) / 2 + 1.5 + 2.54, 1.27]) cube([0.64, 6 + 2.54 + 1.5, 0.64], true);
//color("gold") translate([2.54 / 2 + a * 2.54, -(6 + 2.54 + 1.5 + 2.54) / 2 + 1.5 + 2.54 + 2.54, 1.27 + 2.54]) cube([0.64, 6 + 2.54 + 1.5 + 2.54, 0.64], true);
}
color([0.2, 0.2, 0.2]) translate([0, 0, 0]) cube([l * 2.54, 2.54, 2.54]);
}
module pina2(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 1.5 + 2.54, -(3 + 1.27) / 2 + 1.27]) cube([0.64, 0.64, 3 + 1.27], true);
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 1.5 + 2.54, -(3 + 1.27 + 2.54) / 2 + 1.27 + 2.54]) cube([0.64, 0.64, 3 + 1.27 + 2.54], true);
}
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, -(6 + 2.54 + 1.5) / 2 + 1.5 + 2.54, 1.27]) cube([0.64, 6 + 2.54 + 1.5, 0.64], true);
color("gold") translate([2.54 / 2 + a * 2.54, -(6 + 2.54 + 1.5 + 2.54) / 2 + 1.5 + 2.54 + 2.54, 1.27 + 2.54]) cube([0.64, 6 + 2.54 + 1.5 + 2.54, 0.64], true);
}
color([0.2, 0.2, 0.2]) translate([0, 0, 0]) cube([l * 2.54, 2.54, 5.08]);
}
module pin2(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 1.5, (8 + 1.27) / 2 - 2]) cube([0.64, 0.64, 8 + 1.27 + 2], true);
color("gold") translate([2.54 / 2 + a * 2.54, 1.5 + 2.54, (8 + 1.27) / 2 - 2]) cube([0.64, 0.64, 8 + 1.27 + 2], true);
}
color([0.2, 0.2, 0.2]) translate([0, 0.2, 0]) cube([l * 2.54, 5.08, 2.54]);
}
module pad(l){
for(a = [0:l - 1]){
translate([a * 2.54, 0, -pcb_hight]) difference(){
color("gold") translate([0, 0, -0.05]) cylinder(r = 0.9, h = pcb_hight + 0.1);
color("gold") translate([0, 0, -0.1]) cylinder(r = 0.5, h = pcb_hight + 0.2);
}
}
}
module soca2(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 1.5 + 2.54, -(3 + 1.27) / 2 + 1.27]) cube([0.64, 0.64, 3 + 1.27], true);
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 1.5 + 2.54, -(3 + 1.27 + 2.54) / 2 + 1.27 + 2.54]) cube([0.64, 0.64, 3 + 1.27 + 2.54], true);
}
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 4 - (6 + 2.54 + 1.5) / 2 + 1.5 + 2.54, 1.27]) cube([0.64, 6 + 2.54 + 1.5 - 8, 0.64], true);
color("gold") translate([2.54 / 2 + a * 2.54, 4 - (6 + 2.54 + 1.5 + 2.54) / 2 + 1.5 + 2.54 + 2.54, 1.27 + 2.54]) cube([0.64, 6 + 2.54 + 1.5 + 2.54 - 8, 0.64], true);
}
difference(){
color([0.2, 0.2, 0.2]) translate([0, -6, 0]) cube([l * 2.54, 2.54 + 6, 5.08]);
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, -(1 + 6) / 2, 1.27]) cube([0.64, 6, 0.64], true);
color("gold") translate([2.54 / 2 + a * 2.54, -(1 + 6) / 2, 1.27 + 2.54]) cube([0.64, 6, 0.64], true);
}
}
}
module soc2(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 / 2, -3 / 2]) cube([0.64, 0.64, 3], true);
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 2.54 / 2, -3 / 2]) cube([0.64, 0.64, 3], true);
}
difference(){
color([0.2, 0.2, 0.2]) translate([0, 0, 0]) cube([l * 2.54, 5.08, 2.54 + 6]);
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 / 2, 5]) cube([0.64, 0.64, 10], true);
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 2.54 / 2, 5]) cube([0.64, 0.64, 10], true);
}
}
}
module soc(l){
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 / 2, -3 / 2]) cube([0.64, 0.64, 3], true);
//color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 2.54 / 2, -3 / 2]) cube([0.64, 0.64, 3], true);
}
difference(){
color([0.2, 0.2, 0.2]) translate([0, 0, 0]) cube([l * 2.54, 2.54, 2.54 + 6]);
for(a = [0:l - 1]){
color("gold") translate([2.54 / 2 + a * 2.54, 2.54 / 2, 5]) cube([0.64, 0.64, 10], true);
//color("gold") translate([2.54 / 2 + a * 2.54, 2.54 + 2.54 / 2, 5]) cube([0.64, 0.64, 10], true);
}
}
}
module usb(){
rotate([90, 0, 0]) translate([0, 0, -5.06]) difference(){
color("silver") linear_extrude(height = 5.06, convexity = 10, twist = 0) polygon( points = [[1.1, 0], [0, 1.1], [0, 2.5], [7.8, 2.5], [7.8, 1.1], [6.7, 0]]);
//color("silver") cube([7.8, 2.5, 5.06]);
//color("silver") translate([7.8 / 2, 2, 2.5 / 2]) cube([7, 5, 1.8], true);
color("silver") translate([0, -0.4, 0.1]) linear_extrude(height = 5, convexity = 10, twist = 0) polygon( points = [[1.2, 0.7], [0.4, 1.5], [0.4, 0.7 + 1.8], [0.4 + 7, 0.7 + 1.8], [0.4 + 7, 1.5], [6.6, 0.7]]);
}
}
module heatsink(l){
translate([46, 0, 0]) rotate([90, 0, 180]) color([0.3, 0.3, 0.3]) linear_extrude(height = 94, convexity = 10, twist = 0) polygon( points=[[0, 1], [0, 9.5], [7, 9.5],
[7, 12.5], [0, 12.5], [0, 32], [1, 33],
[3.5, 33], [3.5, 25], [6.5, 25], [6.5, 33],
[39.5, 33], [39.5, 25], [42.5, 25], [42.5, 33],
[45, 33], [46, 32], [46, 17.5], [39, 17.5],
[39, 14.5], [46, 14.5], [46, 1], [45, 0], [43, 0],
[43, 7], [40, 7], [40, 0], [38, 0], [37, 1],
[37, 27], [35, 29], [33.5, 29], [31.5, 27],
[31.5, 3], [30.5, 2], [29.5, 3], [29.5, 27],
[27.5, 29], [26, 29], [24, 27], [24, 3], [23, 2],
[22, 3], [22, 27], [20, 29], [18.5, 29], [16.5, 27],
[16.5, 3], [15.5, 2], [14.5, 3], [14.5, 27],
[12.5, 29], [11, 29], [9, 27], [9, 1], [8, 0],
[6, 0], [6, 7], [3, 7], [3, 0], [1, 0]]);
//difference(){
// color("grey") cube([46, 94, 33]);
// color("grey") translate([8, -1, -1]) cube([5, 97, 30]);
// color("grey") translate([16, -1, -1]) cube([5, 97, 30]);
// color("grey") translate([24, -1, -1]) cube([5, 97, 30]);
// color("grey") translate([32, -1, -1]) cube([5, 97, 30]);
//}
}
module fan(){
difference(){
color([0.2, 0.2, 0.2]) cube([45, 45, 10], false);
color([0.2, 0.2, 0.2]) translate([22.5, 22.5, -1]) cylinder(r = 20, h = 12);
color([0.2, 0.2, 0.2]) translate([4, 4, -1]) cylinder(r = 1.5, h = 12);
color([0.2, 0.2, 0.2]) translate([4 + 37, 4, -1]) cylinder(r = 1.5, h = 12);
color([0.2, 0.2, 0.2]) translate([4, 4 + 37, -1]) cylinder(r = 1.5, h = 12);
color([0.2, 0.2, 0.2]) translate([4 + 37, 4 + 37, -1]) cylinder(r = 1.5, h = 12);
}
color([0.2, 0.2, 0.2]) translate([22.5, 22.5, 0]) cylinder(r = 10, h = 10);
for(a = [0:6]){
color([0.2, 0.2, 0.2]) translate([22.5, 22.5, 0]) rotate([0, 0, 360 / 7 * a]) translate([12, 0, 7.5]) rotate([30, 0, 0]) cube([14, 7, 1], true);
}
}
module lqfp100(){
color([0.2, 0.2, 0.2]) translate([1, 1, 0]) cube([14, 14, 1.6]);
for(a = [0:24]){
color("silver") translate([a * 0.5 + 2, 0.5, 0.05]) cube([0.22, 1, 0.1], true);
color("silver") translate([a * 0.5 + 2, 0.5 + 15, 0.05]) cube([0.22, 1, 0.1], true);
color("silver") translate([0.5, a * 0.5 + 2, 0.05]) cube([1, 0.22, 0.1], true);
color("silver") translate([0.5 + 15, a * 0.5 + 2, 0.05]) cube([1, 0.22, 0.1], true);
}
}
module lqfp48(){
color([0.2, 0.2, 0.2]) translate([1, 1, 0]) cube([7, 7, 1.6]);
for(a = [0:11]){
color("silver") translate([a * 0.5 + 1.75, 0.5, 0.05]) cube([0.22, 1, 0.1], true);
color("silver") translate([a * 0.5 + 1.75, 0.5 + 8, 0.05]) cube([0.22, 1, 0.1], true);
color("silver") translate([0.5, a * 0.5 + 1.75, 0.05]) cube([1, 0.22, 0.1], true);
color("silver") translate([0.5 + 8, a * 0.5 + 1.75, 0.05]) cube([1, 0.22, 0.1], true);
}
}
module iram256(){
difference(){
color([0.2, 0.2, 0.2]) cube([22.3, 62, 5.7]);
translate([11.4, 3, -1]) color("grey") cylinder(r = 1.7, h = 7);
translate([11.4, 3 + 56, -1]) color([0.2, 0.2, 0.2]) cylinder(r = 1.7, h = 7);
translate([11.4 - 3.4/2, -0.1, -0.1]) color([0.2, 0.2, 0.2]) cube([3.4, 3.1, 6]);
translate([11.4 - 3.4/2, 56 + 3, -0.1]) color([0.2, 0.2, 0.2]) cube([3.4, 3.1, 6]);
translate([0, 62, 2.9]) rotate([0, 0, 45]) color([0.2, 0.2, 0.2]) cube([5, 5, 6], true);
translate([0, 0, 2.9]) rotate([0, 0, 45]) color([0.2, 0.2, 0.2]) cube([5, 5, 6], true);
translate([22.3, 62, 2.9]) rotate([0, 0, 45]) color([0.2, 0.2, 0.2]) cube([5, 5, 6], true);
translate([22.3, 0, 2.9]) rotate([0, 0, 45]) color([0.2, 0.2, 0.2]) cube([5, 5, 6], true);
}
for(a = [0:6]){
translate([-(16.75 - 11.4) / 2, 62/2 - a * 2.54 - 2.54, 3.2]) color("silver") cube([16.75 - 11.4, 0.6, 0.5], true);
translate([-(16.75 - 11.4), 62/2 - a * 2.54 - 2.54, (4.7 + 5.7 - 3.2)/2 + 3.2]) color("silver") cube([0.6, 0.5, 4.7 + 5.7 - 3.2], true);
translate([-(16.75 - 11.4 + 5) / 2, 62/2 - a * 2.54 - 1.27, 3.2]) color("silver") cube([16.75 - 11.4 + 5, 0.6, 0.5], true);
translate([-(16.75 - 11.4 + 5), 62/2 - a * 2.54 - 1.27, (4.7 + 5.7 - 3.2)/2 + 3.2]) color("silver") cube([0.6, 0.5, 4.7 + 5.7 - 3.2], true);
}
for(a = [0:3]){
translate([-(16.75 - 11.4) / 2, 62/2 + a * 5.08 + 2.54, 3.2]) color("silver") cube([16.75 - 11.4, 0.6, 0.5], true);
translate([-(16.75 - 11.4), 62/2 + a * 5.08 + 2.54, (4.7 + 5.7 - 3.2)/2 + 3.2]) color("silver") cube([0.6, 0.5, 4.7 + 5.7 - 3.2], true);
}
for(a = [1:3]){
translate([-(16.75 - 11.4 + 5) / 2, 62/2 + a * 5.08 + 1.27, 3.2]) color("silver") cube([16.75 - 11.4 + 5, 0.6, 0.5], true);
translate([-(16.75 - 11.4 + 5), 62/2 + a * 5.08 + 1.27, (4.7 + 5.7 - 3.2)/2 + 3.2]) color("silver") cube([0.6, 0.5, 4.7 + 5.7 - 3.2], true);
}
}
module f4_pcb(){
difference(){
translate([0, 1, 0]) color("darkgreen") cube([51, 100, pcb_hight], false);
color("darkgreen") translate([45.5, 89, -1]) cube([10, 13, 4], false);
color("darkgreen") translate([45.5 - 5, 101 - 5, -1]) cube([6, 6, 4], false);
}
color("darkgreen") translate([45.5 - 5, 96, 0]) cylinder(r = 5, h = pcb_hight);
}
module f3_pcb(){
difference(){
color("darkgreen") translate([0, 7, 0]) cube([46, 88, pcb_hight], false);
color("darkgreen") translate([32.5, 30, -1]) cylinder(r = 3, h = 3);
color("darkgreen") translate([32.5, 30 + 56, -1]) cylinder(r = 3, h = 3);
color("darkgreen") translate([5, 10, -1]) cylinder(r = 1.5, h = 3);
//color("darkgreen") translate([5, 28, -1]) cylinder(r = 1.5, h = 3);
color("darkgreen") translate([5 + 36, 10, -1]) cylinder(r = 1.5, h = 3);
}
}
module cover(){
difference(){
translate([-1, -9, 55]) color("silver") cube([48, 104, 0.95]);
translate([6.5, 62, 54.9]) color("silver") cube([8, 23.5, 1.2]);
translate([11, 51.5, 54.9]) color("silver") cube([3.5, 8.5, 1.2]);
//translate([8.5, 52, 53.9]) color("silver") cube([6, 10, 1.2]);
translate([8.5, 31, 54.9]) color("silver") cube([6, 18, 1.2]);
translate([4, -5, 54.9]) color("silver") cylinder(r = 1.25, h = 1.2);
translate([42, -5, 54.9]) color("silver") cylinder(r = 1.25, h = 1.2);
}
translate([40, 0, 56]) color("black") rotate([0, 0, 90]) text("STMBL 4.0", font = "Liberation Sans", size = 13);
//translate([20, 4, 55]) color("black") rotate([0, 0, 90]) text("IO", font = "Liberation Sans", size = 3);
//translate([15, 10, 55]) color("black") rotate([0, 0, 90]) text("1", font = "Liberation Sans", size = 2);
//translate([15, 32, 55]) color("black") rotate([0, 0, 90]) text("10", font = "Liberation Sans", size = 2);
//translate([24, 10, 55]) color("black") rotate([0, 0, 90]) text("11", font = "Liberation Sans", size = 2);
//translate([24, 32, 55]) color("black") rotate([0, 0, 90]) text("20", font = "Liberation Sans", size = 2);
//translate([6, 38, 55]) color("black") rotate([0, 0, 90]) text("FB0", font = "Liberation Sans", size = 2);
//translate([8, 38, 55]) color("black") rotate([0, 0, 90]) text("5V 12V", font = "Liberation Sans", size = 2);
//translate([19, 38, 55]) color("black") rotate([0, 0, 90]) text("FB1", font = "Liberation Sans", size = 2);
//translate([17, 38, 55]) color("black") rotate([0, 0, 90]) text("5V 12V", font = "Liberation Sans", size = 2);
//translate([10, 48, 55]) color("black") rotate([0, 0, 90]) text("USB", font = "Liberation Sans", size = 2);
translate([-1, -10, -12]) color("silver") cube([1, 105, 67]);
difference(){
translate([-1, 95, -12]) color("silver") cube([23.8, 0.95, 67]);
translate([-2, 94, 1]) color("silver") cube([27, 3, 12]);
translate([15, 94, 23.5]) color("silver") cube([9.5, 3, 33]);
translate([5, 97, -10]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
for(a = [0:3]){
translate([5 + 5 * a, 97, -5]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
}
for(a = [0:5]){
translate([10, 97, 20 + 5 * a]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
}
}
difference(){
translate([0, -9.95, -12]) color("silver") cube([15.5, 1, 67]);
//translate([15.5, -11, 4.5]) color("silver") cube([8, 3, 50]);
translate([4.5, -11, 0]) color("silver") rotate([-90, 0, 0]) cylinder(r = 1.5, h = 3);
translate([23, -10, -18.5]) color("silver") rotate([-90, 0, 0]) cylinder(r = 20, h = 1.1);
}
translate([-1 + 46 + 1, -10, -12]) color("silver") cube([1, 105, 67]);
difference(){
translate([23, 95, -12]) color("silver") cube([24, 0.95, 67]);
//translate([37, 94, 1]) color("silver") cube([11, 3, 8]);
translate([22, 94, 1]) color("silver") cube([6, 3, 12]);
//translate([15, 94, 22.5]) color("silver") cube([9.5, 3, 33]);
translate([5 + 36, 97, -10]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
for(a = [0:3]){
translate([5 + 36 - 5 * a, 97, -5]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
}
for(a = [0:5]){
translate([36, 97, 20 + 5 * a]) color("silver") rotate([90, 0, 0]) cylinder(r = 1.5, h = 3);
}
}
difference(){
translate([29, -9.95, -12]) color("silver") cube([17, 1, 67]);
//translate([21, -11, 0]) color("silver") cube([8, 3, 64]);
translate([4.5 + 37, -11, 0]) color("silver") rotate([-90, 0, 0]) cylinder(r = 1.5, h = 3);
translate([23, -10, -18.5]) color("silver") rotate([-90, 0, 0]) cylinder(r = 20, h = 1.1);
}
}
module f4(){
f4_pcb();
translate([1, 0, pcb_hight]) rj45();
translate([1 + 16.5, 0, pcb_hight]) rj45();
translate([1 + 16.5 + 16.5, 0, pcb_hight]) rj45();
translate([5, 105 - 11.2 + 1, pcb_hight]) rotate([0, 0, 0]) akl182(6);
translate([5, 105 - 11.2 + 1, pcb_hight]) rotate([0, 0, 0]) akl169(6);
translate([6 * 3.5 + 1.6 + 5, 105 - 11.2 + 1, pcb_hight]) rotate([0, 0, 0]) akl182(2);
translate([6 * 3.5 + 1.6 + 5, 105 - 11.2 + 1, pcb_hight]) rotate([0, 0, 0]) akl169(2);
translate([11.2 - 1, 65 + 2 * 3.5 + 1.6 , pcb_hight]) rotate([0, 0, 90]) akl182(6);
translate([11.2 - 1, 65 + 2 * 3.5 + 1.6 , pcb_hight]) rotate([0, 0, 90]) akl169(6);
translate([-1, 38, 0]) rotate([0, 180, -90]) usb();
//translate([15, 54, 0]) rotate([0, 180, 90]) pad(4);
translate([5, 64, pcb_hight]) rotate([0, 0, -90]) soca2(7);
translate([11.2 - 1, 65 , pcb_hight]) rotate([0, 0, 90]) akl182(2);
translate([11.2 - 1, 65 , pcb_hight]) rotate([0, 0, 90]) akl169(2);
//translate([6 - 1, 63, 0]) rotate([0, 180, -90]) pina2(3);
translate([1 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([1 + 0.25 + 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([1 + 0.25 + 5 + 0.25, 28, 0]) rotate([180, 0, 90]) soic8();
translate([1 + 0.25 + 5 + 0.25 + 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([17.5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([17.5 + 0.25 + 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([17.5 + 0.25 + 5 + 0.25, 28, 0]) rotate([180, 0, 90]) soic8();
translate([17.5 + 0.25 + 5 + 0.25+ 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([34 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([34 + 0.25 + 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
translate([34 + 0.25 + 5 + 0.25, 28, 0]) rotate([180, 0, 90]) soic8();
translate([34 + 0.25 + 5 + 0.25+ 5 + 0.25, 18, 0]) rotate([180, 0, 90]) soic8();
//translate([53, 41, pcb_hight]) rotate([0, 0, 90]) pina2(2);
translate([44.5, 68, 0]) rotate([0, 180, 90]) pina(4);
translate([18, 60, 0]) rotate([180, 0, 0]) lqfp100();
}
module f3(){
f3_pcb();
translate([32, 45, pcb_hight]) rotate([0, 0, -45]) capp();
translate([32, 45 + 26, pcb_hight]) rotate([0, 0, 45]) capp();
//translate([2, 45, pcb_hight]) cap();
translate([0, 96 - 12, pcb_hight]) akl230(3);
translate([0, 96 - 12, pcb_hight]) akl249(3);
translate([3 * 5.08 + 1.2, 96 - 12, pcb_hight]) akl230(2);
translate([3 * 5.08 + 1.2, 96 - 12, pcb_hight]) akl249(2);
translate([20, 45, 0]) rotate([180, 0, 0]) lqfp48();
//translate([5, 40, 0]) rotate([180, 0, 0]) soic8();
translate([21, 27, -8]) iram256();
translate([9.5 + 15,47,0]) rotate([0, 180, 0]) r2512();
translate([9.5 + 15,50.5,0]) rotate([0, 180, 0]) r2512();
translate([9.5 + 15,54,0]) rotate([0, 180, 0]) r2512();
translate([2.54 + 4, 48 - 0.16, pcb_hight]) rotate([0, 0, 90]) soc(4);
translate([4, 40, 0]) rotate([180, 0, 0]) soic8();
}
module spacer(l){
difference(){
color([0.3, 0.3, 0.3]) cylinder(r = 3, h = l);
translate([0, 0, -1]) color("grey") cylinder(r = 1.5, h = l + 2);
}
}
module m3(l){
translate([0, 0, -l]) color("darkgrey") cylinder(r = 1.5, h = l);
difference(){
color("darkgrey") cylinder(r = 2.5, h = 2);
color("darkgrey") translate([0, 0, 0.5]) cylinder($fn = 6, r = 1.3, h = 1.6);
}
}
module io(){
difference(){
color("darkgreen") cube([38, 63, pcb_hight]);
translate([4, 4, -1]) color("darkgreen") cylinder(r = 1.5, h = 3);
translate([4 + 38, 20, -1]) color("darkgreen") cylinder(r = 1.5, h = 3);
}
translate([38 / 2 - 16.5, -1, pcb_hight]) rj45();
translate([38 / 2, -1, pcb_hight]) rj45();
translate([0, 30 + 10 + 5 + 0.2 + 2.54, 0]) rotate([180, 0, 90]) pin2(6);
translate([5, 20, -3]) spacer(3);
translate([5, 20, pcb_hight]) m3(8);
translate([5 + 30, 20, -3]) spacer(3);
translate([5 + 30, 20, pcb_hight]) m3(8);
}
module stmbl(){
rotate([0, 90, 0]) translate([-51 - 2 - 2 - 33 - 8, 0, 7.5]) f4();
translate([1, 10, 33 + 8]) f3();
rotate([90, 0, 0]) translate([1.5, -41 + 33 + 8, -11]) fan();
translate([1, 11, 0]) heatsink();
translate([5.5, 1, 4]) rotate([90, 0, 0]) m3(15);
translate([5.5 + 37, 1, 4]) rotate([90, 0, 0]) m3(15);
translate([5.5, 0, 4 + 37]) rotate([90, 0, 0]) m3(10);
translate([5.5 + 37, 0, 4 + 37]) rotate([90, 0, 0]) m3(10);
translate([6, 20, 33]) spacer(8);
translate([6 + 36, 20, 33]) spacer(8);
translate([6, 20, 33 + 8 + pcb_hight]) m3(15);
translate([6 + 36, 20, 33 + 8 + pcb_hight]) m3(15);
translate([22 + 11.4, 27 + 3 + 10, 33 + 5.7]) m3(10);
translate([22 + 11.4, 27 + 3 + 10 + 56, 33 + 5.7]) m3(10);
//translate([1 + 8, 1, 96 + 4]) io();
//translate([1, 10, 33 + 8]) cover();
translate([6, 106, 31]) rotate([-90, 0, 0]) m3(5);
translate([6 + 36, 106, 31]) rotate([-90, 0, 0]) m3(5);
}
stmbl();