|
|
@@ -32,24 +32,28 @@ include <CCRMA_logo.scad>;
|
|
|
////
|
|
|
|
|
|
// size of Zapnspark printed circuit board
|
|
|
-// (ideal size in Kicad design)
|
|
|
-pcb_length = 79.375;
|
|
|
-pcb_width = 19.050;
|
|
|
-// (specification of ultimaker pcb material)
|
|
|
-pcb_thickness = 1.61;
|
|
|
+// kicad length = 79.375
|
|
|
+// measured length = 79.20 (2016.08.25)
|
|
|
+pcb_length = 79.20;
|
|
|
+// kicad width = 19.050
|
|
|
+// measured width = 18.82 (2016.08.25)
|
|
|
+pcb_width = 18.85;
|
|
|
+// ultimaker spec thickness = 1.61
|
|
|
+// measured thickness = 1.56 (w/ copper)
|
|
|
+pcb_thickness = 1.58;
|
|
|
|
|
|
// tolerance to add to length and width of pcb
|
|
|
//
|
|
|
-// printed with pcb_fit = 0.25 -> 19.05 + 0.25 = 19.3 (ideal printed)
|
|
|
-// measured printed = 19.04 - 0.25 = 18.79 (ultimaker 2 plus, 2016.08.23)
|
|
|
-// measured pcb width = 18.85 (diff = 0.06, othermill)
|
|
|
+// measured 3d print width = 18.70 (with pcb_fit = 0.3)
|
|
|
+// actual printed = 18.70 - 0.3 = 16.97
|
|
|
+// total correction = 18.85 - 16.97 = 1.88
|
|
|
//
|
|
|
-pcb_fit = 0.2;
|
|
|
+pcb_fit = 0.55;
|
|
|
|
|
|
// tolerance add to thickness of pcb
|
|
|
//
|
|
|
-// printed with pcb_tfit = 0.3 -> 1.61 + 0.3 = 1.91 (ideal printed)
|
|
|
-// measured print channel = 1.85 : 0.06 thinner (ultimaker 2 plus, 2016.08.23)
|
|
|
+// printed with pcb_tfit = 0.15 -> 1.58 + 0.15 = 1.73 (ideal printed)
|
|
|
+// measured print channel = 1.63 : 0.1 thinner (ultimaker 2 plus, 2016.08.24)
|
|
|
// measured pcb thickness = 1.58 (othermill)
|
|
|
//
|
|
|
pcb_tfit = 0.15;
|
|
|
@@ -61,28 +65,27 @@ pcb_tfit = 0.15;
|
|
|
pcb_low_exp = 12.0;
|
|
|
pcb_hi_exp = 8.0;
|
|
|
|
|
|
+// lip fit for flares
|
|
|
+lip_fit = 0.15;
|
|
|
+
|
|
|
// clearance from the bottom and top of pcb's to the start of the flare,
|
|
|
// this adds space for the protuding molex pins on which we solder
|
|
|
pcb_low_clear = 15.0;
|
|
|
pcb_hi_clear = 15.0;
|
|
|
|
|
|
+// depth of slot into which the printed circuit board fits
|
|
|
+pcb_slot_depth = 1.0;
|
|
|
+
|
|
|
// diameter of four conductor cable
|
|
|
cable_diam = 9.5;
|
|
|
|
|
|
// lip that mounts flares into main body box
|
|
|
mount_lip = 6.0;
|
|
|
|
|
|
-// main body corner radius
|
|
|
-mount_corner = 15.0;
|
|
|
-
|
|
|
// capsule array mount, height of flare and stalk
|
|
|
flare_height = 50;
|
|
|
stalk_height = 40;
|
|
|
|
|
|
-// lip fit for flares
|
|
|
-// 0.20 seems to be fine (0.3 was too lose)
|
|
|
-lip_fit = 0.20 / 2;
|
|
|
-
|
|
|
// wall thickness
|
|
|
wall = 1.0;
|
|
|
|
|
|
@@ -93,6 +96,9 @@ pcb_back = 3.0;
|
|
|
// calculated minimum "radius" of microphone box
|
|
|
box_radius = pcb_front + (pcb_thickness + pcb_tfit) + pcb_back + 2 * wall;
|
|
|
|
|
|
+// calculated main body corner radius
|
|
|
+mount_corner = box_radius - pcb_width / 2 + pcb_slot_depth + 1.0;
|
|
|
+
|
|
|
// shock mount parameters
|
|
|
//
|
|
|
|
|
|
@@ -168,7 +174,7 @@ module tetra_mount_body(height, radius, corner, lower_lip, upper_lip, clear) {
|
|
|
tetra_mount_box(height, radius, corner);
|
|
|
union() {
|
|
|
// hollow out the inside with slots for pcbs
|
|
|
- tetra_pcb_clear(pcb_length, pcb_width, pcb_thickness, 1.0, pcb_front, pcb_back);
|
|
|
+ tetra_pcb_clear(pcb_length, pcb_width, pcb_thickness, pcb_slot_depth, pcb_front, pcb_back);
|
|
|
// trim square angles
|
|
|
cylinder(r = pcb_front, h = height, $fn = facets);
|
|
|
// remove slots from inside body
|
|
|
@@ -525,7 +531,7 @@ module render_tetra_pcb_mount(z_offset, showint) {
|
|
|
rotate([0, 0, -90]) {
|
|
|
translate([0, -(box_radius - 0.5), tetra_pcb_mount_height / 2]) {
|
|
|
rotate([90, 270, 0]) {
|
|
|
- logo_scale = 1/2;
|
|
|
+ logo_scale = 1 / 2.2;
|
|
|
scale([logo_scale, logo_scale, 1.0]) {
|
|
|
ccrma_logo(1.75);
|
|
|
}
|
|
|
@@ -572,9 +578,11 @@ module render_tetra_microphone(z_offset, spread) {
|
|
|
module render_tetra_microphone_cutout(z_offset, spread) {
|
|
|
difference() {
|
|
|
render_tetra_microphone(z_offset, spread);
|
|
|
- // a cube that blots out half the microphone
|
|
|
- translate([0, -50, -50]) {
|
|
|
- cube([50, 100, 650]);
|
|
|
+ // a cube that blots out 1/4 of the microphone
|
|
|
+ rotate([0, 0, 45]) {
|
|
|
+ translate([0, 0, -50]) {
|
|
|
+ cube([50, 100, 650]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|