-// but when printed ends up being too small
-sonar_sensor_radius = 15.82 / 2 + 0.3;
-sonar_sensor_height = 13.8;
-between_sensor_centers = 15.82 + 10.82;
-sonar_plate_length = 3 + between_sensor_centers + sonar_sensor_radius + 3;
-sonar_holder_length = sonar_plate_length + 10;
-sonar_holder_width = sonar_plate_width + 3;
-sonar_holder_depth = 4;
-
-deck_holder_length = 30;
-
-module sensors(){
- translate([between_sensor_centers / 2, 0, 0]){
- cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}
- translate([-between_sensor_centers / 2, 0, 0]){
- cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}}
-
-module sensor_holder(){
+// but when printed ends up being too small, so add some
+sonar_diameter = 15.82 + 0.4;
+sonar_radius = sonar_diameter / 2;
+sonar_height = 13.8;
+between_sonar_centers = sonar_diameter + 10.82;
+// the sonar cylinders are placed on the pcb at slightly different positions
+// from one sensor to the next, so this allows for that variance.
+between_sonar_centers_variance = 2;
+// keep at least this much plastic surrounding the sonar cylinder on all sides
+buffer = 3;
+sonar_holder_length = buffer + between_sonar_centers + sonar_diameter + buffer;
+sonar_holder_width = buffer + sonar_diameter + buffer;
+// sonar_holder_depth is deck_depth minus a little bit to make arm fit
+// into deck holder
+sonar_holder_depth = deck_depth - 0.7875;
+
+deck_holder_length = sonar_holder_depth * 2 + deck_depth + 15;
+
+module sonars(){
+ translate([between_sonar_centers / 2, 0, 0]){
+ cylinder(r = sonar_radius, h = sonar_height);}
+ // for the variance with which the physical sonar cylinders are placed
+ translate([between_sonar_centers / 2 - between_sonar_centers_variance, 0, 0]){
+ cylinder(r = sonar_radius, h = sonar_height);
+ translate([0, -sonar_radius, 0]){
+ cube([between_sonar_centers_variance, sonar_diameter, sonar_height]);}}
+ translate([-between_sonar_centers / 2, 0, 0]){
+ cylinder(r = sonar_radius, h = sonar_height);}}
+
+module sonar_holder(){
+ elbow_length = deck_depth - 0.5;