From 0cf5df9b6e0a78b78926cc1abae4a543120968bb Mon Sep 17 00:00:00 2001 From: MangaValk Date: Sat, 31 Oct 2026 19:32:43 +0100 Subject: [PATCH] Add 3D-printable desk case for the VFD and a WEMOS D1 R1 Parametric OpenSCAD design: 15 degree bezel holding the display on M3 heat-set inserts, slides into the body; base carries the board with the DC jack and USB reachable through the back. Includes STLs, previews and collision checks. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 4 + README.md | 1 + case/README.md | 88 ++++++++++++++ case/preview.png | Bin 0 -> 33100 bytes case/section.png | Bin 0 -> 17309 bytes case/stl/base.stl | Bin 0 -> 193084 bytes case/stl/bezel.stl | Bin 0 -> 114084 bytes case/stl/body.stl | Bin 0 -> 87484 bytes case/vfd-case.scad | 295 +++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 388 insertions(+) create mode 100644 case/README.md create mode 100644 case/preview.png create mode 100644 case/section.png create mode 100644 case/stl/base.stl create mode 100644 case/stl/bezel.stl create mode 100644 case/stl/body.stl create mode 100644 case/vfd-case.scad diff --git a/CLAUDE.md b/CLAUDE.md index d25c68d..6d96ec2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,6 +20,10 @@ server, so `type: git` with a URL, not `github://`). The layout must stay - `docs/20L203DA12-datasheet.pdf`: the command set (section 5.4), jumpers, wiring and the CG-ROM tables (section 6). Check it before changing the protocol. +- `case/vfd-case.scad`: parametric OpenSCAD desk case (body, bezel, base) for + the display and a WEMOS D1 R1. After any change, run all the `check_*` parts + (each must be empty or zero-volume) and re-export `case/stl/*.stl`. On + Windows, call `openscad.com` for console output. - `examples/samsung-vfd.yaml`: the full reference device config. It pulls the component from git; for local work, switch to the commented `type: local, path: ../components` source. diff --git a/README.md b/README.md index 6e3a604..a3511af 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ components/samsung_vfd/ the component (Python schema + C++) examples/samsung-vfd.yaml full example device config examples/secrets.yaml.example docs/ photos and the 20L203DA12 datasheet +case/ 3D-printable desk case (OpenSCAD + STL), see case/README.md tools/gen_charmaps.py regenerates components/samsung_vfd/charmaps.h ``` diff --git a/case/README.md b/case/README.md new file mode 100644 index 0000000..b95b313 --- /dev/null +++ b/case/README.md @@ -0,0 +1,88 @@ +# Desk case + +A 3D-printable desk case for the Samsung 20L203 VFD and a WEMOS D1 R1 +(UNO-sized ESP8266 board). The display is tilted back 15° and bolted to the +front with M3 screws. The DC jack and the USB port are reachable through the +back wall. + +

+ Case preview + Cross-section: display on the bezel, board on the base +

+ +Outer size: about 208 × 112 × 86 mm (W × D × H). The parts need a print bed of +at least 210 × 115 mm. + +## Parts + +| File | Print orientation | Notes | +|------|-------------------|-------| +| [stl/body.stl](stl/body.stl) | upside down, top on the bed (as exported) | Sides, top and back wall. No supports needed. | +| [stl/bezel.stl](stl/bezel.stl) | face down (as exported) | Front panel with the window and the display bosses. | +| [stl/base.stl](stl/base.stl) | flat (as exported) | Floor with the board standoffs and the screw holes. | + +PETG is a good choice: the display warms the inside by a few degrees. PLA +works if the case stays out of the sun. + +## Hardware + +- 10 × M3 heat-set inserts (about 4.6 mm OD, 5.7 mm long; the holes are 4.0 mm + and 6 mm deep): + - 4 in the bezel's display bosses + - 2 in the bezel's feet + - 2 in the body's rear corners + - 4 on the base's board standoffs +- 4 × M3×8 to bolt the display to the bezel +- 4 × M3×6 to hold the D1 board on its standoffs +- 4 × M3×8 to hold the base on, from below + +## Assembly + +1. Melt the inserts in. +2. Bolt the display to the bezel from behind, glass facing the window. +3. Screw the D1 board onto the base, with the DC jack and USB edge at the back. +4. Slide the bezel, with the display on it, into the body from below. Its edges + run in the grooves in the side walls until it stops against the top. +5. Connect the display cable. The MAX3232 sits inline in the cable; tie it to + the anchor on the base. +6. Put the body on the base and screw it together from below. The base holds + the bezel in place. + +## Measure before printing + +The dimensions come from the 20L203**DA12** datasheet. Your board is a DA5, so +check these against yours and change the values at the top of +[vfd-case.scad](vfd-case.scad) if needed: + +- `disp_hole_inset`, `disp_w`, `disp_h`: the display's mounting holes, 182 × + 56 mm apart. +- `glass_x0`, `glass_y0`, `glass_w`, `glass_h`, `glass_depth`: the glass + position and the distance from its front face to the PCB. +- `usb_pos`: where the micro-USB port is along the D1's back edge (38 mm from + the jack side is a guess based on the UNO layout). Also check `jack_pos`. + +If only the display is off, it's enough to reprint the bezel. + +## Changing the design + +Open [vfd-case.scad](vfd-case.scad) in OpenSCAD. Every dimension is a variable +at the top, including the tilt, wall thickness and clearances. Export a part +with: + +``` +openscad -D 'part="body"' --export-format binstl -o stl/body.stl vfd-case.scad +openscad -D 'part="bezel"' --export-format binstl -o stl/bezel.stl vfd-case.scad +openscad -D 'part="base"' --export-format binstl -o stl/base.stl vfd-case.scad +``` + +`part="assembly"` shows everything with dummy display and board models, and +`part="section"` shows a cut-away. The `check_*` parts are collision checks; +each one must render as an empty object: + +- `check_body_bezel`, `check_body_display`, `check_bezel_display` +- `check_body_base`, `check_bezel_base`, `check_display_base` +- `check_board` +- `check_insertion`: sweeps the bezel and display along their slide-in path + through the body. + +Faces that only touch can show up as a zero-volume result, which is fine. diff --git a/case/preview.png b/case/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..a342b590aec73197d33f5b6b3180e6880550d4e1 GIT binary patch literal 33100 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 l;+Tvf7XXHG*;~g{+p4!purRYgI~q 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 HdH?i(mjXLJ literal 0 HcmV?d00001 diff --git a/case/section.png b/case/section.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e6f28c62a27eb3f60886547e15a1a4a756188c GIT binary patch literal 17309 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

i^PaZ+D?n03)eNZ-SxV1#!K1y2Qi7# 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%0DYoJzCN1xp=X6qUW#8iV)Orv!>vW~i$?_X78 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 literal 0 HcmV?d00001 diff --git a/case/vfd-case.scad b/case/vfd-case.scad new file mode 100644 index 0000000..f657615 --- /dev/null +++ b/case/vfd-case.scad @@ -0,0 +1,295 @@ +// Desk case for the Samsung 20L203 2x20 VFD and a WEMOS D1 R1 (UNO-sized ESP8266). +// +// Three parts, all printable without supports: +// body sides, top and back wall (DC jack + USB cut-outs). Print upside down, top on the bed. +// bezel 15 degree front panel with the window and the display bosses. Print face down. +// base floor with the board standoffs. Print flat. +// +// Assembly: +// 1. Melt M3 heat-set inserts into: 4 display bosses + 2 feet on the bezel, +// 2 rear corner bosses in the body, 4 board standoffs on the base. +// 2. Bolt the display to the bezel from behind (4x M3x8). +// 3. Screw the D1 board onto the base (4x M3x6). +// 4. Slide the bezel (with display) up into the body's side grooves from below. +// 5. Wire up, put the body on the base and screw it together from below (4x M3x8). +// +// Render one part: openscad -D 'part="body"' -o body.stl vfd-case.scad +// Parts: "assembly" (preview with dummy display + board), "body", "bezel", "base", +// "check_*" (collision checks, see the end of this file). + +part = "assembly"; +section_x = 130; // cut position for part = "section" + +/* [Case] */ +tilt = 15; // display tilt back from upright, degrees +wall = 3; // side, top and back wall thickness +lip = 1.5; // how far the bezel sits behind the front edge of the body +bezel_t = 3; // bezel thickness +groove = 1.5; // how deep the bezel edges sit in the side walls +clr = 0.3; // fit clearance for sliding / mating parts +base_t = 3.5; // base plate thickness +depth = 112; // outer depth (front bottom edge to back) +top_margin = 4; // bezel above the display's top edge (along the panel) + +/* [Display module, datasheet 4.10] */ +disp_w = 190; +disp_h = 64; +disp_hole_inset = 4; // hole centres from the PCB edges (182 x 56 spacing) +glass_x0 = 3.0; // glass left edge from PCB left edge (front view) +glass_y0 = 7.85; // glass bottom edge from PCB bottom edge +glass_w = 175.2; +glass_h = 48.3; +glass_depth = 12.0; // glass front face to PCB front face +glass_gap = 0.5; // air gap between bezel and glass (datasheet asks for one) +pcb_t = 1.6; +disp_back = 11; // components behind the display PCB +disp_raise = 14; // PCB bottom edge, measured along the panel from the bottom + +/* [Window] */ +win_w = 156; +win_h = 36; +win_r = 2; +win_chamfer = 1.5; + +/* [Heat-set inserts, M3] */ +insert_d = 4.0; // hole for the insert +insert_depth = 6; +boss_d = 7; // display bosses (larger would touch the glass) +screw_d = 3.4; // M3 clearance +head_d = 6.2; // M3 head counterbore in the base +head_depth = 2; + +/* [WEMOS D1 R1 (Arduino UNO footprint)] */ +board_l = 68.58; // along the case depth, connector edge at the back +board_w = 53.34; +board_gap = 0.5; // board edge to back wall +standoff_h = 6; +standoff_d = 7; +// UNO hole positions: (distance from the connector edge, distance from the jack side) +board_holes = [[13.97, 2.54], [15.24, 50.8], [66.04, 7.62], [66.04, 35.56]]; +jack_pos = 7.6; // DC jack centre from the board's jack-side edge +jack_cut = [12, 13]; // width, height (from 0.5 below the PCB top) +usb_pos = 38.1; // micro-USB centre from the jack-side edge -- measure yours! +usb_cut = [12, 8]; // width, height (centred 1.6 above the PCB top) +board_comp_h = 10; // tallest part on the board (dummy for the collision check) + +$fn = 48; + +// ---------- derived ---------- +gx_c = glass_x0 + glass_w / 2; // glass centre from PCB left +inner_w = 2 * (max(gx_c, disp_w - gx_c) + 1.5); // window centred, 1.5 mm side clearance +outer_w = inner_w + 2 * wall; +disp_x0 = inner_w / 2 - gx_c; // PCB left edge, x +z_top_in = (disp_raise + disp_h + top_margin) * cos(tilt); // top wall underside +height = z_top_in + wall; +n_bezel_in = lip + bezel_t; // bezel inner face (local N) +n_glass = n_bezel_in + glass_gap; +n_pcb = n_glass + glass_depth; +win_s = disp_raise + glass_y0 + glass_h / 2; // window centre along the panel +board_x0 = inner_w / 2 - board_w / 2; +board_conn_y = depth - wall - board_gap; // y of the board's connector edge +pcb_top_z = standoff_h + pcb_t; +foot_n = n_bezel_in + 6; // insert axis in the bezel feet +foot_y = foot_n / cos(tilt); +foot_xs = [inner_w * 0.25, inner_w * 0.75]; +rear_boss = 9; // rear corner boss block size +rear_screws = [[rear_boss / 2, depth - wall - rear_boss / 2], + [inner_w - rear_boss / 2, depth - wall - rear_boss / 2]]; +base_screws = concat([for (x = foot_xs) [x, foot_y]], rear_screws); + +echo(str("Outer size: ", outer_w, " x ", depth, " x ", height + base_t, " mm (W x D x H)")); + +// Panel-local frame: X = across, S = up the panel from the bottom front edge, +// N = into the case from the body's front plane. The matrix is its own inverse. +M = [[1, 0, 0, 0], + [0, sin(tilt), cos(tilt), 0], + [0, cos(tilt), -sin(tilt), 0], + [0, 0, 0, 1]]; +module panel() multmatrix(M) children(); + +module rrect(w, h, r) { + offset(r) square([w - 2 * r, h - 2 * r], center = true); +} + +// 2D side profile (y, z) extruded along x. +module side_extrude(w) rotate([90, 0, 90]) linear_extrude(w) children(); + +// ---------- body ---------- +module body() { + difference() { + union() { + translate([-wall, 0, 0]) side_extrude(outer_w) + polygon([[0, 0], [depth, 0], [depth, height], [height * tan(tilt), height]]); + } + // cavity, open at the front and bottom + translate([0, -50, -1]) cube([inner_w, depth - wall + 50, z_top_in + 1]); + // bezel grooves in the side walls + intersection() { + panel() translate([-groove - clr, -50, lip]) cube([inner_w + 2 * (groove + clr), 300, bezel_t + clr]); + translate([-50, -50, -1]) cube([inner_w + 100, depth + 100, z_top_in + 1]); + } + // DC jack and USB + for (c = [[jack_pos, jack_cut, pcb_top_z - 0.5 + jack_cut[1] / 2], + [usb_pos, usb_cut, pcb_top_z + 1.6]]) + translate([board_x0 + c[0], depth - wall / 2, c[2]]) + rotate([90, 0, 0]) linear_extrude(wall + 2, center = true) rrect(c[1][0], c[1][1], 1.5); + // top vents over the back half + for (i = [0 : 3]) translate([inner_w / 2, depth - wall - 14 - i * 8, height - wall / 2]) + linear_extrude(wall + 2, center = true) rrect(inner_w - 50, 3, 1.4); + } + // rear corner bosses for the base screws, chamfered up into the walls + for (p = rear_screws) { + x0 = p[0] < inner_w / 2 ? 0 : inner_w - rear_boss; + xw = p[0] < inner_w / 2 ? 0 : inner_w - 0.01; + difference() { + hull() { + translate([x0, depth - wall - rear_boss, 0]) cube([rear_boss, rear_boss, 10]); + translate([xw, depth - wall - 0.01, 0]) cube([0.01, 0.01, 10 + rear_boss]); + translate([x0, depth - wall - 0.01, 0]) cube([rear_boss, 0.01, 10 + rear_boss]); + translate([xw, depth - wall - rear_boss, 0]) cube([0.01, rear_boss, 10 + rear_boss]); + } + translate([p[0], p[1], -1]) cylinder(d = insert_d, h = insert_depth + 1); + } + } +} + +// ---------- bezel ---------- +display_holes = [for (hx = [disp_hole_inset, disp_w - disp_hole_inset]) + for (hy = [disp_hole_inset, disp_h - disp_hole_inset]) + [disp_x0 + hx, disp_raise + hy]]; + +module bezel() { + difference() { + intersection() { + panel() union() { + // plate + translate([-groove + clr, -50, lip]) cube([inner_w + 2 * (groove - clr), 300, bezel_t]); + // display bosses, from the bezel to the PCB front face + for (h = display_holes) translate([h[0], h[1], n_bezel_in - 0.01]) + cylinder(d = boss_d, h = n_pcb - n_bezel_in + 0.01); + // feet that take the front base screws + for (x = foot_xs) translate([x - 6, -10, n_bezel_in - 0.01]) cube([12, 22, 12]); + } + // flat bottom on the base, flat top against the top wall + translate([-50, -50, 0]) cube([inner_w + 100, depth + 100, z_top_in - clr]); + } + // window, chamfered on the front + panel() translate([inner_w / 2, win_s, 0]) { + translate([0, 0, lip - 1]) linear_extrude(bezel_t + 2) rrect(win_w, win_h, win_r); + hull() { + translate([0, 0, lip - 0.01]) linear_extrude(0.01) rrect(win_w + 2 * win_chamfer, win_h + 2 * win_chamfer, win_r + win_chamfer); + translate([0, 0, lip + win_chamfer]) linear_extrude(0.01) rrect(win_w, win_h, win_r); + } + } + // inserts in the display bosses + panel() for (h = display_holes) translate([h[0], h[1], n_pcb - insert_depth]) + cylinder(d = insert_d, h = insert_depth + 1); + // inserts in the feet (vertical) + for (x = foot_xs) translate([x, foot_y, -1]) cylinder(d = insert_d, h = insert_depth + 1); + } +} + +// ---------- base ---------- +module base() { + difference() { + union() { + translate([-wall, 0, -base_t]) cube([outer_w, depth, base_t]); + // locating rim inside the side and back walls (stops short of the bezel and bosses) + rim_y0 = 20; + for (x = [clr, inner_w - clr - 1.6]) + translate([x, rim_y0, -0.01]) cube([1.6, depth - wall - rear_boss - clr - rim_y0, 2]); + translate([rear_boss + clr, depth - wall - clr - 1.6, -0.01]) + cube([inner_w - 2 * (rear_boss + clr), 1.6, 2]); + // board standoffs + for (h = board_holes) translate(board_xy(h)) cylinder(d = standoff_d, h = standoff_h); + // cable-tie anchor for the MAX3232 / display cable + translate([inner_w / 2, board_conn_y - board_l - 4.5, 0]) tie_anchor(); + } + // screws into the body / bezel inserts, counterbored from below + for (p = base_screws) translate([p[0], p[1], -base_t - 1]) { + cylinder(d = screw_d, h = base_t + 2); + cylinder(d = head_d, h = head_depth + 1); + } + // board standoff inserts + for (h = board_holes) translate(board_xy(h)) translate([0, 0, standoff_h - insert_depth + 0.5]) + cylinder(d = insert_d, h = insert_depth); + // vents under the display + for (i = [0 : 2]) translate([inner_w / 2, 20 + i * 7, -base_t / 2]) + linear_extrude(base_t + 2, center = true) rrect(inner_w - 70, 3, 1.4); + } +} + +function board_xy(h) = [board_x0 + h[1], board_conn_y - h[0], 0]; + +module tie_anchor() { + difference() { + translate([-5, -3, 0]) cube([10, 6, 5]); + translate([-2.5, -4, -0.01]) cube([5, 8, 3.2]); + } +} + +// ---------- dummies for the preview and the collision checks ---------- +module display_dummy() { + panel() { + translate([disp_x0 + glass_x0, disp_raise + glass_y0, n_glass + 0.01]) + cube([glass_w, glass_h, glass_depth - 0.02]); + translate([disp_x0, disp_raise, n_pcb + 0.01]) difference() { + cube([disp_w, disp_h, pcb_t + disp_back]); + for (hx = [disp_hole_inset, disp_w - disp_hole_inset]) + for (hy = [disp_hole_inset, disp_h - disp_hole_inset]) + translate([hx, hy, -1]) cylinder(d = 3.5, h = pcb_t + 2); + } + } +} + +module board_dummy() { + translate([board_x0, board_conn_y - board_l, standoff_h + 0.01]) difference() { + union() { + cube([board_w, board_l, pcb_t]); + translate([2, 2, pcb_t]) cube([board_w - 4, board_l - 4, board_comp_h]); + // DC jack, sticking out 1 mm past the board edge + translate([jack_pos - 4.5, board_l - 14, pcb_t]) cube([9, 15, 11]); + } + for (h = board_holes) translate([h[1], board_l - h[0], -1]) cylinder(d = 3.2, h = pcb_t + 2); + } +} + +// ---------- output ---------- +if (part == "assembly") { + color("SlateGray", 0.5) body(); + color("DimGray") bezel(); + color("Gainsboro") base(); + color("SeaGreen") display_dummy(); + color("SteelBlue") board_dummy(); +} else if (part == "section") { + // assembly cut at x = section_x, for checking the inside + intersection() { + union() { + color("SlateGray") body(); + color("DimGray") bezel(); + color("Gainsboro") base(); + color("SeaGreen") display_dummy(); + color("SteelBlue") board_dummy(); + } + translate([section_x, -50, -50]) cube([500, 500, 500]); + } +} else if (part == "body") { + translate([0, depth, height]) rotate([180, 0, 0]) body(); // top on the bed +} else if (part == "bezel") { + translate([0, 0, -lip]) multmatrix(M) bezel(); // front face on the bed +} else if (part == "base") { + translate([0, 0, base_t]) base(); +} +// Collision checks: each must render as an empty object. +else if (part == "check_body_bezel") intersection() { body(); bezel(); } +else if (part == "check_body_display") intersection() { body(); display_dummy(); } +else if (part == "check_bezel_display") intersection() { bezel(); display_dummy(); } +else if (part == "check_body_base") intersection() { body(); base(); } +else if (part == "check_bezel_base") intersection() { bezel(); base(); } +else if (part == "check_board") intersection() { union() { body(); bezel(); base(); display_dummy(); } board_dummy(); } +else if (part == "check_display_base") intersection() { base(); display_dummy(); } +// The bezel slides in from below along the panel: sweep it (with the display) down and check. +else if (part == "check_insertion") intersection() { + body(); + for (k = [5 : 5 : 80]) translate(-k * [0, sin(tilt), cos(tilt)]) { bezel(); display_dummy(); } +}