All
SOLID MODELSmart Home & IoT3-Oct-2026

Desk Stand Case for Waveshare ESP32-P4-86-Panel-ETH-2RO (Home Assistant voice assistant)

Nickclark7
4 Files
stl Format

Description

A tilted desk-stand enclosure for the Waveshare ESP32-P4-86-Panel-ETH-2RO 4" touch panel, designed for use as a Home Assistant voice assistant and dashboard. It has a square bezel tilted back 15°, with a smooth curved back and diagonal side vents.

also fits the regular ESP32-P4-86-Panel (non ethernet version)

Features

Snap-fit, no screws. Two parts: the bezel and the body click together with three snap catches. A small pry slot at the bottom lets you separate them with a flat screwdriver.

Mic holes lined up with the panel. Both mic holes are short, funnel-shaped ports matched to the panel's own pinholes. A thin raised ring seals around each one, so the mics hear the room rather than the inside of the case.

Speaker slot lined up with the panel's built-in speaker grille, on the side opposite the mics.

Power LED glows through a thinned section of the wall.

Recess for the BOOT/RESET buttons, so the panel slides in without pressing them.

Crush ribs hold the panel snugly with no rattle, whatever your printer's tolerances.

Optional USB-C power pocket. A covered side pocket fits a right-angle USB-C cable, and the cable runs inside the case and out through a notch at the back.

Room for the RJ45 port and the rear terminal blocks. The cable notch is open underneath, so cables lay in from below.

Files

bezel + body: version with the USB-C power pocket.

bezel_no_usb_pocket + body_no_usb_pocket: plain-sided version, for powering through the 6–30 V terminal block.

.scad source: fully parametric (see Customising below).

What you need

Waveshare ESP32-P4-86-Panel-ETH-2RO.

For the USB version: a low-profile 90° (right-angle) USB-C cable where the cable bends over the flat face of the plug. The pocket fits a head about 12.5 mm wide and 9 mm tall, with 42 mm of straight pocket behind the port centre plus an angled exit.

No screws or other hardware.

Print settings

Bezel: print face-down (screen opening on the bed). No supports needed.

Body: print on its flat bottom, with tree/organic supports set to "everywhere" (not build plate only) for the inside of the curved top. The supports pull out through the open front. Optionally add support blockers over the vent slots.

Brim: add a 5–8 mm brim to the body to stop the large flat bottom warping.

0.2 mm layers, at least 4 walls. PLA is fine indoors; use PETG for sunny spots.

Assembly

Plug the USB-C cable into the panel's power port, if you're using the USB version.

Slide the panel into the bezel from the back. With the USB version, the plug rides in its pocket.

Feed the cables out through the notch at the back of the body.

Push the body straight into the bezel until all three catches click.

Customising (OpenSCAD)

Everything is a parameter near the top of the file. The useful ones:

usb_power: turn the USB-C pocket on or off.

usb_power_port: which of the two USB-C ports the pocket lines up with.

catch_h, catch_out: how tight the snaps are and how hard they are to pull apart.

rib_interf: how tightly the panel is held.

plug_t, plug_w, plug_len, plug_up: pocket size for different plugs.

tilt, back_reach: the case's angle and depth.

mic_u, pin_top, pin_bot: mic hole positions, if your panel differs.

https://github.com/chrisdunnname/esphome-p4-86-panel-eth-2ro-lvgl (origonal)

https://github.com/nickclark7/esphome-p4-86-panel-eth-2ro-lvgl (my custom fork)

Downloads

p4_86_bezel_v16.stl
379.3 KB
p4_86_body_v16.stl
669.0 KB
p4_86_bezel_v16_no_usb_pocket.stl
371.2 KB
p4_86_body_v16_no_usb_pocket.stl
654.3 KB
Desk Stand Case for Waveshare ESP32-P4-86-Panel-ETH-2RO (Home Assistant voice assistant) — Solids Ranch — Tinkster