module via() {
cylinder(h=10,r=1,center=true,$fn=12);
}
module esp32() {
for(x=[0, 1, 10, 11]) {
for(y=[0 : 9]) {
translate([2.54*x,2.54*y,0]) via();
}
}
}
module amp() {
for(x=[0 : 8]) {
translate([0,2.54*x,0]) via();
}
}
module wire_pack() {
for(x=[0 : 4]) {
translate([0,4*x,0]) via();
}
}
difference() {
union() {
cube([40,80,1.25]);
translate([12.5,63,0.5]) cube([15,10,3]);
}
translate([6.25,2,0]) esp32();
translate([12,-2,-1]) cube([15,10,3]);
translate([5,35,0]) wire_pack();
translate([15,35,0]) wire_pack();
translate([25,35,0]) wire_pack();
translate([35,35,0]) wire_pack();
translate([30,60,0]) rotate([0,0,90]) amp();
}