Design and modify the OpenSCAD parametric enclosure for the handheld console
Design and modify the parametric 3D enclosure for the ESP32 Emu Turbo handheld console.
Argument (optional): Component or feature to modify (e.g., dpad, battery, usb-c, shoulder-buttons).
The enclosure is a landscape handheld (170 x 85 x 25 mm) with:
| File | Purpose |
|---|
hardware/enclosure/enclosure.scad | Main enclosure (top/bottom shell, PCB, assembly, views) |
hardware/enclosure/modules/buttons.scad | Button cutout modules (D-pad, ABXY diamond, pill, shoulder) |
hardware/enclosure/modules/display.scad | Display viewport cutout and bezel |
hardware/enclosure/modules/ports.scad | USB-C, SD card, power switch, speaker grille cutouts |
hardware/enclosure/modules/battery.scad | Battery compartment, wire channel |
body_w=170, body_h=85, body_d=25 — Overall dimensionswall=2.0 — Wall thicknesscorner_r=8 — Corner radiustop_d=10, bot_d=15 — Shell splitdisp_w=86.4, disp_h=64.8 — Active areadisp_pcb_w=98, disp_pcb_h=72 — Module PCB sizedpad_x=-62, dpad_y=5 — D-pad centerabxy_x=62, abxy_y=5, abxy_spacing=10 — ABXY diamond center + spacingss_x=dpad_x, ss_y=-17 — Start/Select positionmenu_x=62, menu_y=-25 — Menu buttonusbc_x=0 — USB-C (centered)sd_x=60 — SD card (right)pwr_sw_x=-40 — Power switch (left)spk_x=-50, spk_y=-15 — Speaker grille (back)pcb_w=160, pcb_h=75, pcb_d=1.6, pcb_corner_r=6pcb_z=bot_d (15mm) — PCB sits on screw boss tops at shell splitbat_w=65, bat_h=55, bat_d=9.5 — LiPo dimensionsZ=0: Bottom shell outer face
Z=2: Bottom shell floor (wall=2)
Z=2-11.5: Battery (9.5mm)
Z=12-15: ESP32 module zone (3mm below PCB)
Z=15: PCB bottom face / shell split line
Z=16.6: PCB top face (1.6mm board)
Z=15-23: Top shell interior (8mm)
Z=23: Top shell ceiling
Z=25: Top shell outer face
enc_x = kicad_x - 80, enc_y = 37.5 - kicad_y
(KiCad origin is top-left of board outline at (0,0), board center at (80, 37.5))Each button cap has 3 parts:
Parameters: btn_flange_extra=3mm, btn_flange_h=0.8mm, btn_stem_d=2.0mm, btn_stem_h=2.0mm
The part variable selects the view:
assembly — Complete assembly (default)top / bottom — Individual shellsexploded — Exploded view with all componentscross_section — XZ plane cut at Y=0fit_check — Bottom shell open-top with internalsbattery_fit — Bottom shell + battery onlypcb — PCB model onlycase_top / case_bottom — Shells for STL exportpart_dpad, part_btn_a, etc. — Individual button capshardware/enclosure/enclosure.scad — Main enclosure designhardware/enclosure/modules/*.scad — Component modulesscripts/render-enclosure.sh — Render pipeline (7 views)website/static/img/renders/ — Output renderswebsite/docs/enclosure.md — Design documentation