4.3 KiB
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.
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 | upside down, top on the bed (as exported) | Sides, top and back wall. No supports needed. |
| stl/bezel.stl | face down (as exported) | Front panel with the window and the display bosses. |
| stl/base.stl | flat (as exported) | Floor with the board standoffs and the screw holes. |
| stl/feet.stl | flat side down (as exported) | 4 feet, print in TPU. Each clamps under one of the base screws, with a spigot that locates in the screw's counterbore. |
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
- 12 × 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×6 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; M3×10 with the TPU feet
Assembly
- Melt the inserts in.
- Bolt the display to the bezel from behind, glass facing the window.
- Screw the D1 board onto the base, with the DC jack and USB edge at the back.
- 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.
- Connect the display cable. The MAX3232 sits inline in the cable; tie it to the anchor on the base.
- Put the body on the base and screw it together from below. The base holds the bezel in place. With the feet, put a foot on each screw first (the spigot faces the base) and use M3×10. Tighten until the foot is snug; the TPU only needs light compression.
Measure before printing
The dimensions come from the 20L203DA12 datasheet. Your board is a DA5, so check these against yours and change the values at the top of 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 checkjack_pos.disp_rotated: the glass is off-centre on the display's PCB, so the bezel depends on which way up the display is mounted.true(the default) is the orientation the display reads correctly in: turned 180° from the datasheet's front view, with the jumper header on the left seen from the front.
If only the display is off, it's enough to reprint the bezel.
Changing the design
Open 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
openscad -D 'part="feet"' --export-format binstl -o stl/feet.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_displaycheck_body_base,check_bezel_base,check_display_base,check_feet_basecheck_boardcheck_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.

