diff --git a/hardware/README.md b/hardware/README.md index 63cb5d0..e54ead3 100644 --- a/hardware/README.md +++ b/hardware/README.md @@ -105,8 +105,9 @@ The ESP8266 and GoPro talk over Wi-Fi — **no data cable between them**. The on | | W × D × H (mm) | |---|---| -| Case body external | ~56.8 × 42.0 × 19.2 | +| Case body external | ~56.8 × 36.6 × 19.0 | | Lid external | ~56.8 × 32.8 × 4.0 | -| Tripod clamp | ~43.0 × 54.5 × 16.0 | +| Tripod clamp | ~43.0 × 53.5 × 16.0 | +| Clamp-to-case mount | Two M3 screws through flat mounting plate | | Clamp pole fit | Nominal 35mm; smaller poles TBD / may need inserts | | Total weight | TBD after prototype print | diff --git a/hardware/case/case-body-v3.stl b/hardware/case/case-body-v3.stl index 4eaa1d9..0179787 100644 Binary files a/hardware/case/case-body-v3.stl and b/hardware/case/case-body-v3.stl differ diff --git a/hardware/case/full-case-preview-v3.stl b/hardware/case/full-case-preview-v3.stl index 922b70a..59642f5 100644 Binary files a/hardware/case/full-case-preview-v3.stl and b/hardware/case/full-case-preview-v3.stl differ diff --git a/hardware/case/tripod-case-v3.scad b/hardware/case/tripod-case-v3.scad index c32fa83..12ed146 100644 --- a/hardware/case/tripod-case-v3.scad +++ b/hardware/case/tripod-case-v3.scad @@ -1,5 +1,5 @@ // RemoteRig — Dual-ESP Tripod Case v3 -// v3 changes: screw-tightened tripod clamp + dovetail slide interface. +// v3b changes: screw-tightened tripod clamp + two-screw flat mounting plate interface. // Coordinate system: all case/lid geometry uses bottom-origin Z. $fn = 36; @@ -29,15 +29,16 @@ mouth_width = 13.0; // clamp opening m3_clearance = 3.4; // M3 screw clearance nut_flat = 6.4; // M3 nut trap flat-to-flat -// Dovetail slide interface -// Female receiver is on the case; male tab is on the tripod clamp. -// This makes the separate parts visually/physically obvious: tab slides into slot. -rail_z = outer_h * 0.78; -rail_depth = 5.0; -rail_neck_w = 12.0; // narrow side of the trapezoid profile -rail_outer_w = 18.0; // wide side of the trapezoid profile -rail_clearance = 0.55; // FDM sliding clearance -socket_wall = 2.2; +// Case ↔ clamp interface +// v3b removes the dovetail: use a flat two-screw mounting plate instead. +// This is simpler to print, easier to inspect, and field-serviceable. +mount_plate_w = 24.0; +mount_plate_h = 16.0; +mount_plate_thick = 4.0; +mount_hole_spacing = 10.0; +mount_screw_clear = 3.4; // M3 clearance through clamp plate +mount_case_pilot = 2.7; // pilot/insert hole through case boss +mount_boss_r = 1.2; // Cable ports usb_port_w = 12; usb_port_h = 6; @@ -107,30 +108,20 @@ module screw_post(x, y) { } } -module case_dovetail_socket() { - // Receiver boss on the case back. A dovetail-shaped through-slot is cut - // vertically through it so the clamp's male tab slides down from above. - socket_outer_w = rail_outer_w + socket_wall*2; - socket_depth = rail_depth + socket_wall*2; - boss_y0 = outer_d/2 - 0.15; - +module case_mount_boss() { + // Flat rear boss on the case. The clamp plate bolts directly to this face. + // Holes run front/back (Y axis) for M3 screws, heat-set inserts, or nuts. + boss_y = outer_d/2 + mount_plate_thick/2 - 0.2; difference() { - translate([0, boss_y0 + socket_depth/2, outer_h/2]) - rounded_cube_centered(socket_outer_w, socket_depth, rail_z + socket_wall*2, 1.2); + translate([0, boss_y, outer_h/2]) + rounded_cube_centered(mount_plate_w, mount_plate_thick, mount_plate_h, mount_boss_r); - // Through-cut, centered within the receiver boss, oversized for FDM. - translate([0, boss_y0 + socket_wall, outer_h/2]) - dovetail_prism( - rail_z + socket_wall*3, - rail_neck_w + rail_clearance, - rail_outer_w + rail_clearance, - rail_depth + rail_clearance - ); + for (zoff = [-mount_hole_spacing/2, mount_hole_spacing/2]) { + translate([0, outer_d/2 + mount_plate_thick/2, outer_h/2 + zoff]) + rotate([90, 0, 0]) + cylinder(d=mount_case_pilot, h=mount_plate_thick + wall*3, center=true, $fn=24); + } } - - // Bottom stop shelf: clamp tab slides down until it rests here. - translate([0, boss_y0 + socket_depth/2, outer_h*0.08]) - rounded_cube_centered(socket_outer_w, socket_depth, 1.8, 0.8); } module case_body() { @@ -138,7 +129,7 @@ module case_body() { case_shell(); for (x = [-1, 1], y = [-1, 1]) screw_post(x*(outer_w/2 - 5), y*(outer_d/2 - 5)); - case_dovetail_socket(); + case_mount_boss(); } } @@ -162,7 +153,7 @@ module clamp_ring_with_mouth() { outer_r = pole_dia/2 + clamp_thick; difference() { cylinder(r=outer_r, h=clamp_width, center=true, $fn=72); - cylinder(r=pole_dia/2 + rail_clearance, h=clamp_width + 1, center=true, $fn=72); + cylinder(r=pole_dia/2 + tol, h=clamp_width + 1, center=true, $fn=72); // Mouth opens toward +Y. Width is intentionally generous for snap-on placement before tightening. translate([0, outer_r, 0]) cube([mouth_width, outer_r*2, clamp_width + 2], center=true); @@ -189,25 +180,29 @@ module clamp_ears() { } } -module clamp_male_dovetail_tab() { +module clamp_mount_plate() { outer_r = pole_dia/2 + clamp_thick; + plate_y = -outer_r - mount_plate_thick/2 + 0.2; - // Positive tab on rear of clamp, opposite the tightening mouth. This is - // intentionally the moving/replaceable side: it slides into the case socket. - translate([0, -outer_r - rail_depth + 0.2, 0]) - dovetail_prism( - rail_z - rail_clearance, - rail_neck_w - rail_clearance, - rail_outer_w - rail_clearance, - rail_depth - 0.25 - ); + // Flat plate matching the case boss. Two M3 clearance holes pass through + // along Y so the clamp bolts to the case with ordinary hardware. + difference() { + translate([0, plate_y, 0]) + rounded_cube_centered(mount_plate_w, mount_plate_thick, mount_plate_h, mount_boss_r); + + for (zoff = [-mount_hole_spacing/2, mount_hole_spacing/2]) { + translate([0, plate_y, zoff]) + rotate([90, 0, 0]) + cylinder(d=mount_screw_clear, h=mount_plate_thick + 2, center=true, $fn=24); + } + } } module tripod_clamp() { union() { clamp_ring_with_mouth(); clamp_ears(); - clamp_male_dovetail_tab(); + clamp_mount_plate(); } } diff --git a/hardware/case/tripod-clamp-v3.stl b/hardware/case/tripod-clamp-v3.stl index d4a008c..c0377fd 100644 Binary files a/hardware/case/tripod-clamp-v3.stl and b/hardware/case/tripod-clamp-v3.stl differ