module via() {
cylinder(h=10,r=0.5,center=true,$fn=12);
}
module vias100mil(count) {
for(i=[0 : count-1]) {
translate([0,2.54*i,0]) via();
}
}
module esp32() {
for(x=[0, 1, 10, 11]) {
translate([2.54*x,0,0]) vias100mil(10);
}
}
module amp() {
vias100mil(9);
}
module wire_pack() {
for(x=[0 : 4]) {
translate([0,4*x,0]) via();
}
}
module resistors() {
wire_pack();
translate([10,0,0]) wire_pack();
}
difference() {
union() {
cube([40,90,1.25]);
translate([12.5,70,0.5]) cube([15,10,3.5]);
}
translate([6.25,8.5,0]) esp32();
translate([11.5,-1.5,-1]) cube([17,15,3]);
translate([5,36,0]) resistors();
translate([25,36,0]) resistors();
translate([5,57,0]) rotate([0,0,-90]) vias100mil(5);
translate([25,57,0]) rotate([0,0,-90]) vias100mil(5);
translate([15,60,0]) rotate([0,0,-90]) vias100mil(5);
translate([30,67.5,0]) rotate([0,0,90]) amp();
}