feat(case): add a reset button hole in the back wall
Momentary switch wired to the board's EN/GND, mounted past the µSD so it's never hit while typing. BOOT is omitted on purpose: on the S3, auto-download makes it recovery-only. Positions are << MEASURE >> placeholders — a custom carrier PCB will re-fix them later.
@@ -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.
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||