diff --git a/hardware/case/README.md b/hardware/case/README.md index a42d194..b8a9ba4 100644 --- a/hardware/case/README.md +++ b/hardware/case/README.md @@ -114,6 +114,13 @@ from below — far easier than fishing screws inside a shell. - The **DESPI-C579 breakout** sits in the cavity on the **left**, right under the FPC exit; short SPI jumpers (MOSI/SCLK/CS/DC/RST/BUSY + 3V3/GND) run across to the ESP32. Keep that left channel clear. +- A **reset button** — a small momentary switch, soldered to the board's **EN** + and **GND** header pins — mounts through a hole in the back wall, out past the + µSD slot so it's never hit while typing (`rst_*` params, `<< MEASURE >>`). This + is our own switch, not the DevKitC's on-board buttons: those are top-actuated + and buried once the board lies flat. **BOOT is deliberately omitted** — on the + S3, auto-download (UART-bridge DTR/RTS or the native USB-Serial-JTAG) makes it + recovery-only, not worth a fat-fingerable button on a writing appliance. - The baseplate screws **up into 4 corner posts** in the shell. - A **cable relief** notch at the back lets the keyboard's USB-C cable exit and route around to the front. @@ -146,7 +153,8 @@ Or inspect each half alone — `plan_up` (the deck/lid, shown from below) and - **`Hb` (back height) → deck angle.** 18–22° is typewriter-shallow; raise `Hb` toward ~28–35° if the screen reads too edge-on when you're sitting close. - **`<< MEASURE >>` items:** `esp_holes`, `brk_holes`, `port_x`, `port_z`, - `active_off_x/y` (the panel's active area sits off-centre from the glass). + `rst_x`/`rst_z`/`rst_d` (reset button), `active_off_x/y` (the panel's active + area sits off-centre from the glass). ## Print notes @@ -189,7 +197,9 @@ name. - [ ] Confirm the GDEY0579T93 active-area **offset** (FPC confirmed on the left edge); adjust `active_off_x/y`. -- [ ] Real ESP32-S3-DevKitC-1 mounting-hole + port coordinates. +- [ ] Real board mounting-hole + port coordinates. **A custom carrier PCB is + planned** — when it lands, re-fix `esp_holes`, `port_x/z`, and the reset + `rst_*` to the PCB (and decide there whether to expose BOOT as a test pad). - [ ] Optional **hinged lid** over the deck (portable-typewriter-case echo, protects the glass in a bag) — `docs/hardware.md` calls for one; not yet modelled. diff --git a/hardware/case/renders/body.png b/hardware/case/renders/body.png index 1c4ea03..103a917 100644 Binary files a/hardware/case/renders/body.png and b/hardware/case/renders/body.png differ diff --git a/hardware/case/renders/front34.png b/hardware/case/renders/front34.png index dc42947..45d48c6 100644 Binary files a/hardware/case/renders/front34.png and b/hardware/case/renders/front34.png differ diff --git a/hardware/case/renders/nameplate.png b/hardware/case/renders/nameplate.png index 73903b5..5c0eb55 100644 Binary files a/hardware/case/renders/nameplate.png and b/hardware/case/renders/nameplate.png differ diff --git a/hardware/case/renders/plan-down.png b/hardware/case/renders/plan-down.png index 554b2c0..81c90c1 100644 Binary files a/hardware/case/renders/plan-down.png and b/hardware/case/renders/plan-down.png differ diff --git a/hardware/case/renders/plan.png b/hardware/case/renders/plan.png index b0c0c39..7cb1fc4 100644 Binary files a/hardware/case/renders/plan.png and b/hardware/case/renders/plan.png differ diff --git a/hardware/case/renders/print.png b/hardware/case/renders/print.png index b236500..bbc05b1 100644 Binary files a/hardware/case/renders/print.png and b/hardware/case/renders/print.png differ diff --git a/hardware/case/typoena-case.scad b/hardware/case/typoena-case.scad index b2bd6ac..ce9b6b6 100644 --- a/hardware/case/typoena-case.scad +++ b/hardware/case/typoena-case.scad @@ -86,6 +86,18 @@ sd_w = 12; sd_h = 2.4; // microSD slot // X positions of the three openings along the back << MEASURE to your board >> port_x = [W/2 - 15, W/2, W/2 + 17]; // usb-c (kbd), usb-c (power), µSD +// ---- reset button (momentary wired to EN/GND) ----------------------------- +// Our OWN switch, soldered to the board's EN + GND header pins — NOT the +// DevKitC's on-board buttons (top-actuated and buried once the board lies flat +// on its standoffs). It sits on the back wall, out past the µSD, so it's never +// hit while typing. BOOT is left off on purpose: on the S3, auto-download +// (UART-bridge DTR/RTS or the native USB-Serial-JTAG) makes it recovery-only — +// not worth a fat-fingerable button on a writing appliance. +rst_btn = true; // set false to omit the reset hole entirely +rst_d = 7.2; // through-hole Ø for the switch barrel << MEASURE >> +rst_x = W/2 + 40; // X along the back wall (past the µSD @ +17) << MEASURE >> +rst_z = 12; // centre height off the desk << MEASURE >> + // ---- baseplate / chassis -------------------------------------------------- bp_t = 2.6; // baseplate thickness bp_gap = 0.5; // clearance so it drops into the shell @@ -202,6 +214,13 @@ module port_cuts() { } } +// reset switch mounting hole through the back wall (y = D) +module reset_cut() { + if (rst_btn) + translate([rst_x, D-wall-1, rst_z]) + rotate([-90,0,0]) cylinder(h=wall+2, r=rst_d/2); +} + // engraved nameplate on the DECK, in the band between the front edge and the // screen — faces the user as they write. Sits flat on the reclined deck. module nameplate() { @@ -221,6 +240,7 @@ module case_body() { } screen_cuts(); port_cuts(); + reset_cut(); nameplate(); // engrave (comment out for a blank face) } }