+ linear_extrude(length + housing_extra_l)
+ difference() {
+ housing_shape();
+ housing_shape(0);
+ }
+}
+
+module flare_shape(outline, extra_len) {
+ hull() {
+ at_key()
+ key_interface_shape(epsilon + extra_len, outline);
+ translate([pico_board_l-extra_flare, 0, 0])
+
+ translate([-extra_len, 0, 0])
+ rotate([90, 0, 0])
+ rotate([0, 90, 0])
+ linear_extrude(epsilon+extra_len)
+ housing_shape(outline);
+ }
+}
+
+module flare() {
+ difference() {
+ flare_shape(thickness, 0);
+ flare_shape(0, epsilon);
+ }
+}
+
+module at_board() {
+ translate([0, -pico_board_w/2, -pico_board_h])
+ children();
+}
+
+module tattlekey_case() {
+ key_interface();
+