]> git.scottworley.com Git - tattlekey/blobdiff - housing/tattlekey.scad
Describe this project
[tattlekey] / housing / tattlekey.scad
index 4567a3dc691c274016d51967a194002fc6617906..1f5ea4c0709e41051971179d6eae28318a52a25c 100644 (file)
@@ -5,8 +5,10 @@ key_interface_corner_r = 5;
 key_interface_thickness = 1.484;
 
 // Chosen to let board fit inside
-housing_inner_h = 8;
+housing_inner_h = 6;
 housing_inner_w = 21;
+housing_flat = 8;
+housing_extra_l = 10;
 
 thickness = 1.7;
 
@@ -17,6 +19,7 @@ extra_flare = wiring_l;
 
 pico_board_l = 51.0;
 pico_board_w = 21.0;
+pico_board_h = 1.0;
 pico_total_h = 3.7;
 
 $fs = .1;
@@ -30,10 +33,9 @@ module pico_hole(d, x, y) {
     cylinder(h=slop, d = d);
 }
 
-module pico_board(gap = 0) {
-    board_h = 1.0;
-    translate([-gap, -gap, -gap])
-    cube([pico_board_l + 2*gap, pico_board_w + 2*gap, board_h + 2*gap]);
+module pico_board(length = pico_board_l, gap = 0) {
+    translate([-gap - length + pico_board_l, 0, -gap])
+    cube([length + 2*gap, pico_board_w, pico_board_h + 2*gap]);
 }
 
 module pico_w(hole_d = 2.1) {
@@ -112,19 +114,23 @@ module key_interface() {
 }
 
 module housing_shape(outline = thickness) {
-    inner_squish = housing_inner_h / housing_inner_w;
     housing_w = housing_inner_w + 2 * outline;
     housing_h = housing_inner_h + 2 * outline;
-    squish = housing_h / housing_w;
+    squish = housing_h / (housing_w - housing_flat);
 
     scale([1, squish])
-    circle(d = housing_w);
+    minkowski() {
+        circle(d = housing_w - housing_flat);
+        square([housing_flat, epsilon], center=true);
+    }
 }
 
-module housing(length = pico_board_l - extra_flare) {
+module housing() {
+    length = pico_board_l - extra_flare;
+    translate([-housing_extra_l, 0, 0])
     rotate([90, 0, 0])
     rotate([0, 90, 0])
-    linear_extrude(length)
+    linear_extrude(length + housing_extra_l)
     difference() {
         housing_shape();
         housing_shape(0);
@@ -153,7 +159,7 @@ module flare() {
 }
 
 module at_board() {
-    translate([0, -pico_board_w/2, -1])
+    translate([0, -pico_board_w/2, -pico_board_h])
     children();
 }
 
@@ -166,7 +172,7 @@ module tattlekey_case() {
             flare();
         }
         at_board()
-        pico_board(board_gap);
+        pico_board(slop, board_gap);
     }
 }