From 141e93372e7eb0d010d85a7a0fccca607b148224 Mon Sep 17 00:00:00 2001 From: Thomas Haukland Date: Sun, 19 May 2024 20:22:13 +0200 Subject: [PATCH] Right bottom prototype done --- case/cheapino-bottom.scad | 110 +++++++++++++++++++++++++++---------- case/hotswap.scad | 112 ++++++++++++++++++++++++++++++++------ 2 files changed, 176 insertions(+), 46 deletions(-) diff --git a/case/cheapino-bottom.scad b/case/cheapino-bottom.scad index a99fab1..8ed9633 100644 --- a/case/cheapino-bottom.scad +++ b/case/cheapino-bottom.scad @@ -1,9 +1,9 @@ use -height = 95.1738; -width = 132.6134; +// height = 95.1738; +// width = 132.6134; step = 0.05; -$fn=30; +//$fn=30; // hotswap socket is ~1.75 high at the highest. // magsafe ring is 0.4 high @@ -30,6 +30,8 @@ module base() module board() { +color("#1f77b4") +translate([0,0,-1]) linear_extrude(1) rotate([0,180,0]) import("cheapino-brd.svg", center=true); @@ -38,15 +40,15 @@ import("cheapino-brd.svg", center=true); //import("plate_and_holes.svg", center=true); -//difference() -//{ -// bottom(); -//v translate([13,11,-0.4]) - // magsafe_ring(); +difference() +{ + bottom(); +translate([13,11,2.1]) + magsafe_ring(); // The exported board from KiCad, for debug -translate([0,0,0]) - board(); +//translate([0,0,0]) +// board(); // Columns starting from MCU translate([19.3,-2.84,0]) @@ -76,7 +78,7 @@ rotate([0,0,-23]) translate([65.65,-7.09]) switch(); -// The diodes +// The horizontal diodes translate([-18, 10.21, 0]) diode(); translate([-28.59, 10.21, 0]) diode(); translate([-26.23, 29.18, 0]) diode(); @@ -86,23 +88,71 @@ translate([14.106, 19.872, 0]) diode(); translate([16.138,1.066,0]) diode(); translate([5.888,-19.128,0]) diode(); translate([-5.018, 2.971, 0]) diode(); -translate([-18,10.21,0]) diode(); +translate([-37.267,3.555,0]) diode(); +translate([-47.627,3.555,0]) diode(); +translate([-61.234,12.013,0]) diode(); +translate([-61.6,-7.011,0]) diode(); +translate([-47.616,22.504,0]) diode(); -/* -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); -translate([-18,10.21,0]) diode(); - */ -//} -// circle(55.3); \ No newline at end of file +// The vertical(ish) diodes +translate([10.61, 24.7, 0]) rdiode(); +translate([10.585, 7.061, 0]) rdiode(); +translate([29.66, 25.106, 0]) rdiode(); +translate([28.365, -2.935, 0]) rdiode(); +translate([10.585, -13.146, 0]) rdiode(); +translate([25.977, -31.18, 0]) rdiode(); + +translate([46.5, -35.5, 0]) +rotate(76) +diode(); + +// rj 45 stabilizers +rj_hole(); +translate([0,-11.43,0]) rj_hole(); + +// rj 45 housing through holes +translate([3.1,2,0]) rj_hole(); +translate([3.1,-13.49,0]) rj_hole(); + +// rj 45 pins +rj_pin_hole(); +translate([0,-2.54,0]) rj_pin_hole(); +translate([0, -5.08,0]) rj_pin_hole(); +translate([0,-7.62,0]) rj_pin_hole(); +translate([0,-10.16,0]) rj_pin_hole(); +translate([-2.54,-1.27,0]) rj_pin_hole(); +translate([-2.54,-3.81,0]) rj_pin_hole(); +translate([-2.54,-6.35,0]) rj_pin_hole(); +translate([-2.54,-8.89,0]) rj_pin_hole(); + +mcu(); + +encoder(); + +// Mounting holes +mounting_hole(); +translate([-27.432,4.572,0]) mounting_hole(); +translate([-18.288,44.704,0]) mounting_hole(); +translate([-36.132,25.02,0]) mounting_hole(); +translate([-56.183,52.928,0]) mounting_hole(); +translate([-75.399,46.599,0]) mounting_hole(); +translate([-94.267,36.473,0]) mounting_hole(); +translate([-94.241,17.313,0]) mounting_hole(); +translate([-3.048,-16.256,0]) mounting_hole(); + +// Inserts for silicone bumpers +bumper(); +translate([0, -46, 0]) bumper(); +translate([10.3, -67, 0]) bumper(); +translate([-29.5, -61.6, 0]) bumper(); +translate([-64, 7.5, 0]) bumper(); +translate([-64, -31, 0]) bumper(); +translate([-101, -47.7, 0]) bumper(); +translate([-101, -9, 0]) bumper(); + +// Inserts for magnets +translate([24,26,0]) magnet(); +translate([24,-18,0]) magnet(); +translate([-43,28,0]) magnet(); +translate([-43,-9,0]) magnet(); +} \ No newline at end of file diff --git a/case/hotswap.scad b/case/hotswap.scad index 76dbeaf..15deeb2 100644 --- a/case/hotswap.scad +++ b/case/hotswap.scad @@ -40,7 +40,7 @@ translate([0, 38, 0]) switch(); module switch() { // hotswap socket - color("yellow") + color("#ff7f0e") translate([0,0,1.85]) rotate([180,0,0]) hotswap_mx(); @@ -48,42 +48,122 @@ module switch() { // main pin of switch // 4mm d, 2.8mm high, 1.6mm pcb // means 1.2 of it sticks below, 1.3 for margin - color("teal") + color("#2ca02c") translate([-0.57, -4.7, 0]) - linear_extrude(height=1.3) + linear_extrude(height=1) circle(d=4.2); + + // The two switch alignment pins - // Could not find specs for these, assuming max 3.3=1.7 below - color("brown") + // They will need to be snipped if too long + color("#d62728") translate([-5.74, -4.7, 0]) - linear_extrude(height=1.7) + linear_extrude(height=1) circle(d=1.8); - color("brown") + color("#d62728") translate([4.45, -4.7, 0]) - linear_extrude(height=1.7) + linear_extrude(height=1) circle(d=1.8); } module diode() { -color("blue") +color("#8c564b") linear_extrude(height=1.65) square([9.5, 1.6]); } -module magsafe_ring() -{ -linear_extrude(height=0.5) -difference() { - circle(d=55.3); - circle(d=50.2); - } +module rdiode() { + rotate(90) + diode(); } +module magsafe_ring() +{ +translate([0,0,0]) +linear_extrude(height=1.4) +difference() { + circle(d=55.1); + circle(d=44.9); + } +} + + +module rj_hole() { +color("#e377c2") + linear_extrude(1.7) { + translate([40.1,3.5,0]) + circle(d=3.5); + translate([40.1,4.8,0]) + circle(d=3.5); + } +} + +module rj_pin_hole() { + color("#e377c2") + linear_extrude(1.3) + translate([33.7,3.5,0]) + circle(d=2); +} + +module encoder() { + color("#7f7f7f") + linear_extrude(0.6) { + translate([35.7, 29.8]) + square([7,2]); + translate([32.65, 21.6]) + square([2, 3.3]); + translate([43.85, 21.6]) + square([2, 3.3]); + translate([36.8, 16.3]) + circle(d=2); + translate([41.77, 16.3]) + circle(d=2); + } +} + +module mcu() { + color("#7f7f7f") + linear_extrude(1.5) { + translate([30.65, 11.5]) + square([2,22.5]); + translate([45.83, 11.5]) + square([2,22.5]); + } + + color("#7f7f7f") + linear_extrude(1) + translate([31.65, 11.5]) + square([15,2]); +} + +module mounting_hole() { + color("#bcbd22") + translate([45.85, -23, 0]) { + cylinder(h=1.5, r1=1, r2=2); + + translate([0,0,1.5]) + cylinder(h=4, r=2); + } +} + +module bumper() { + color("#17becf") + translate([41, 29, 2.5]) + cylinder(h=2, r=5); + color("#17becf") + translate([41, 29, 1.3]) + cylinder(h=1.2, r1=4.5, r2=5); +} + +module magnet() { + color("#9467bd") + cylinder(h=2.1, r=3.05); +} /* hotswap_mx();