ESP32 case generator: a 3D printed case for 15 ESP32 boards, held by the board's outline

Pick your board — the 30-pin DOIT ESP32 DevKit V1 by default — and get a two-part case: a base the board drops into and a lid whose ribs stop 0.3 mm above the module shield and the USB shell, closed by four M3 countersunk screws from the top. The board is held by its outline, not its mounting holes: Espressif's DevKitC boards have none, and on the DOIT clones the hole positions differ by up to 1.4 mm from one source to the next. Say whether the header pins point down, the board is bare or jumper wires stay plugged in, and the base gets that much room underneath.

Open the generator →Edit with AI

Use it right here

The real generator runs in your browser: set the parameters, then download STEP or STL. Nothing to install, no sign-up.

ESP32 Case Generator

The first open downloads the CAD engine (about 20 MB).

Parameters you can tune

Each parameter below rebuilds real geometry on every change — this is parametric CAD, not a scaled mesh.

ParameterDefaultRangeWhat it does
BoardBOARDESP32 DevKit V115 boards (table below)The 30-pin DOIT DevKit V1 by default: the most-downloaded ESP32 cases on MakerWorld are for these DevKit boards. Each board's outline, pins, antenna, connectors and buttons come from its own data, listed in the table below.
Under the boardPINSPins solderedpins down / no pins / jumper wiresPins pointing down is how most boards are sold; their tips reach 8.54 mm below the board, and the base leaves 1 mm more. Jumper wires adds room for 14 mm Dupont housings and a 5 mm wire bend. No pins gives the flattest case.
Fit clearanceFIT0.3 mm0.1 – 1Gap per side between the board and its pocket. 0.3 is the padding of the YAPP case library's ESP32-CAM box; users of tighter cases scale them 101–110 % to get clone boards in. Raise it if your board is a little bigger.
Wall thicknessWALL2 mm1.2 – 32 mm like the popular cases (YAPP 2.0, the open-source C3 SuperMini case 2); 1.2 is three 0.4 mm perimeters.
Room past the antennaROOM2 mm0 – 15Free space past the module's antenna end, across the full width. Popular cases leave 0.3–1 mm and users asked for 1–2 more; 15 is the clearance Espressif recommends round the antenna inside a housing.
Wire exitWIRE_EXITNonenone / slot / PG7In the far end wall: a 5.5 mm slot from the floor to the split (three 20 AWG wires, Dupont housings pass), or a 12.8 mm hole for a PG7 cable gland with room inside for its locknut. The ESP32-CAM always gets the slot: it is powered through its pins.
Mounting earsEARSoffon / offTwo 3 mm ears at floor level on the long sides, each with an M3 countersunk hole, for a wall or a panel. Off by default, so the case stands on a desk with nothing sticking out.
Lid ventsVENTSonon / off2 mm slots across the lid, kept clear of the ribs, windows and poke holes. On by default: an ESP32-CAM user reports that the flash LED "heats very much".

Every parameter can go in the page's link, so one link opens exactly the part you want. Example (DevKitC V4 case with room for jumper wires, a wire slot and wall-mount ears):https://www.forgent3d.com/en/generators/esp32-case-generator?BOARD=ESP32-DevKitC+V4&PINS=Jumper&WIRE_EXIT=Slot&EARS=true

The 15 boards and their cases

Each case at the defaults (fit 0.3, wall 2, room past the antenna 2, no wire exit), in mm; the height is base and lid together with the pins pointing down / no pins / jumper wires. A board is in the list only when its geometry is real: vendor CAD (STEP or DXF) that we measured, an official drawing, or, for clone boards, at least two independent sources that agree — with the pocket covering the spread between them. Each row opens the generator on that board.

BoardBoard data fromCase outsideOver the screw bossesHeightScrews
ESP32 DevKit V1 (DOIT 30-pin)Clone board: a full STEP with every part, outline from five sources (51.4–52.0 × 27.9–28.5); the pocket covers the spread58.6 × 33.165.5 × 40.021.6 / 17.1 / 33.64 × M3 × 16Open →
ESP32-DevKitC V4 (38-pin)Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs60.9 × 32.567.8 × 39.521.6 / 17.1 / 33.64 × M3 × 16Open →
ESP32-S3-DevKitC-1Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs75.8 × 30.082.7 × 37.421.6 / 17.1 / 33.64 × M3 × 16Open →
YD-ESP32-S3 (N16R8 44-pin)The maker's drawing and an independent STEP, which agree; the USB-C openings cover both70.0 × 32.576.9 × 39.520.5 / 17.1 / 32.54 × M3 × 16Open →
ESP32-C3 SuperMiniClone board: seller drawing and a community STEP; the pocket takes boards up to 1.5 mm longer30.6 × 22.637.6 × 29.521.0 / 17.1 / 33.04 × M3 × 16Open →
ESP32-C6-DevKitC-1Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs64.8 × 30.071.7 × 40.221.0 / 17.1 / 33.04 × M3 × 16Open →
ESP32-C3-DevKitM-1Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs50.9 × 30.057.9 × 36.921.6 / 17.1 / 33.64 × M3 × 16Open →
Waveshare ESP32-S3-ZeroWaveshare drawing and STEP30.1 × 22.637.0 × 29.520.6 / 17.1 / 32.64 × M3 × 16Open →
Seeed XIAO ESP32S3Seeed STEP and DXF (external u.FL antenna)27.7 × 22.434.7 × 29.320.2 / 17.1 / 32.24 × M3 × 16Open →
Seeed XIAO ESP32S3 SenseSeeed STEP of the camera stack; the camera pokes 3.76 mm through the lid; no microSD opening (the slot is not in the STEP)30.9 × 22.437.8 × 29.322.5 / 17.1 / 34.54 × M3 × 16Open →
Seeed XIAO ESP32C6Seeed's own STEP and KiCad PCB27.6 × 22.434.5 × 29.320.2 / 17.1 / 32.24 × M3 × 16Open →
Seeed XIAO ESP32C3Community STEP checked against Seeed's KiCad PCB; PCB thickness not published, the case assumes 1.2527.6 × 22.434.5 × 29.320.2 / 17.1 / 32.24 × M3 × 16Open →
Arduino Nano ESP32Arduino STEP and datasheet49.8 × 22.456.7 × 29.320.8 / 17.1 / 32.84 × M3 × 16Open →
LilyGO T-Display-S3LilyGO PCB and full STEP; window over the display glass67.4 × 30.574.3 × 37.520.6 / 17.1 / 32.64 × M3 × 16Open →
ESP32-CAM (AI-Thinker)Ai-Thinker drawing and a community STEP; the pocket covers the 40–40.5 length spread47.1 × 31.654.0 × 38.523.7 / 21.1 / 35.74 × M3 × 20Open →

Where a board's PCB thickness is not published, the case assumes 1.6 mm, the top of the measured range: a thinner board sits a little lower and gets up to about 0.7 mm of play under the ribs, it is never crushed. With a PG7 gland the lid grows to hold the locknut and the screws can get longer (DevKit V1: M3 × 20, 23.6 mm tall).

What's in the STEP file

STEP AP214 in millimetres, exact B-rep — it opens directly in SolidWorks, Fusion, FreeCAD, Onshape or Inventor, and goes straight into a CNC quote form. STL for the slicer is one click too.

How it compares

This generatorTypical online STL generatorVendor CAD library
Any size within the rangeYesYesCatalog sizes only
STEP with exact surfacesYesUsually an STL mesh onlyYes
Changes the sliders don't cover“AI edit” on the pageNoNo
Account needed to downloadNoUsually noOften

Let AI change it

Edit with AI on the page

Press “AI edit” in the generator and say what to change — a keyway, holes, a different shape. The AI edits the part's model.py and it rebuilds in your browser, with undo. A few edits a day are free without signing in; to keep the result or go further, copy it into your models and continue with the AI agent.

Edit with AI →

Keep going in your workspace

For bigger changes, several rounds, or a part you want to keep: copy it into your models (free account). The Forgent3D AI agent reads the model.py, edits it, rebuilds it and checks the result itself.

Copy and continue with the AI agent →

How it works

  1. 1.Open the generator — the model builds right in your browser, nothing to install.
  2. 2.Tune dimensions and options in the parameter panel; the geometry rebuilds live in 3D.
  3. 3.Export STL / STEP for printing — or ask the AI agent for features beyond the sliders.

FAQ

Why does the board sit in a pocket instead of on pegs or screws?

Espressif's DevKitC boards have no mounting holes, and on the DOIT clones the hole positions differ by up to 1.4 mm between sources. On the most-downloaded ESP32 case on MakerWorld, at least 12 comments say they had to cut the pegs out. So the pocket follows the board's outline with 0.3 mm a side, the board rests on pads where its underside is free, and ribs under the lid hold it down. If your clone is a little bigger, raise the fit clearance — users of other cases scale them 101–110 %.

Will it fit with the header pins soldered on, or with jumper wires plugged in?

Most boards are sold with the pins soldered pointing down, so that is the default: the pin tips reach 8.54 mm below the board and the base leaves 1 mm more. "Not enough room underneath for Dupont connector cables" is a common complaint on other cases — choose "Jumper wires on the pins" and the base makes room for 14 mm Dupont housings and a 5 mm wire bend (33.6 mm tall on a DevKit V1). XIAO, C3 SuperMini, S3-Zero, Nano ESP32 and T-Display-S3 boards are sold without headers fitted; "No pins" gives the flattest case.

Does the case hurt Wi-Fi?

We have not measured it, and the page makes no claim about the signal. Espressif's hardware design guidelines recommend at least 15 mm of clearance round a PCB antenna inside a housing, in all directions, and say the end product should be tested for throughput and range. "Room past the antenna" goes up to 15 mm past the antenna end, across the full width (an ESP32-S3-DevKitC-1 case grows from 75.8 to 88.8 mm); the sides stay at the pocket wall. In about 1,000 comments on popular ESP32 cases we found no complaint about reception; the antenna complaints were about the board not fitting.

Which screws and which filament?

Four M3 countersunk screws (ISO 10642 / DIN 7991) go down through the lid into self-tapping pilots in the base: M3 × 16 for every board except the ESP32-CAM, which takes M3 × 20 (a PG7 gland can lengthen them too). The generator picks the shortest standard length that leaves 6 mm of thread in the base. Print like the top-listed cases: PLA or PETG, 0.2 mm layers, no supports — the base floor-down and the lid ceiling-down, as they lie on the plate; the only bridges are over the vents and windows. Use PETG for the ESP32-CAM.

Does the ESP32-CAM case fit the CAM-MB programmer base?

No. There is no CAD file or drawing of the ESP32-CAM-MB, only retail sizes that disagree (40 × 27 × 10, 39.8 × 27, 40 × 25), so the case is for the bare board powered through its pins, and it always has a wire slot for those wires. Program the board on the MB base outside the case.

Why isn't my ESP32 board in the list?

A board goes in only when its geometry is real: vendor CAD, an official drawing, or two independent sources that agree. Left out for now: the 38-pin USB-C clones (no CAD, lengths from 48.26 to 51 mm), the USB-C version of the DOIT DevKit V1, the ESP32-S3 SuperMini, NodeMCU-32S, the LOLIN mini boards (connectors not dimensioned), the original LilyGO T-Display and the Freenove and M5Stack camera boards. Pick the closest board and use “AI edit” to change it. ESP32 is a trademark of Espressif Systems and the board names belong to their makers; this generator makes compatible cases and is not affiliated with them.

Has this case been printed and tested?

Not yet. The 11 boards that have a vendor or community STEP file (all but the four Espressif DevKits, which come as DXF drawings) were placed in their cases with zero overlap with base and lid, and 14 automated checks pass on every board and pin mode — but no case has been printed. Still to check on real prints: the 0.3 mm fit on each board, whether the ribs leave a thin board rattling (a dab of hot glue is the users' own fix), the M3 screws self-tapping in printed pilots, reaching the buttons with a paperclip, the ESP32-CAM lens slot, flash window and SD card, the XIAO Sense camera window, the T-Display-S3 glass rim, real plugs in the openings, the PG7 gland, and Wi-Fi through the case.

How do I get a 3D printed case for an ESP32-CAM?

Open https://www.forgent3d.com/en/generators/esp32-case-generator?BOARD=ESP32-CAM — a two-part case for the AI-Thinker ESP32-CAM: a slot over the lens (9 to 10.5 mm from the SD end, which covers the lens positions of three sources), a window for the flash LED, the microSD card in and out through the end wall, a floor hole for the reset button and a wire slot, because the board is powered through its pins. It is 54.0 × 38.5 mm over the screw bosses and 23.7 mm tall, closed with four M3 × 20 countersunk screws. Print it in PETG; the flash LED softened a PLA case in one user's report. The ESP32-CAM-MB programmer base is not supported.

Can I get an ESP32 DevKit case that screws to a wall, with a cable gland?

Yes: https://www.forgent3d.com/en/generators/esp32-case-generator?BOARD=ESP32%20DevKit%20V1&WIRE_EXIT=PG7&EARS=true — the 30-pin DOIT DevKit V1 case with a 12.8 mm hole for a PG7 cable gland in the far end wall, room inside for locknuts up to 19.05 mm across flats, and two ears with M3 countersunk holes on the long sides, 44.1 mm apart. The lid grows to hold the locknut: 23.6 mm tall, four M3 × 20 screws. With its vents and screwed seam it is not a sealed or waterproof case.

Can I sell prints made with these generators?

Yes. Models you generate and the STL / STEP files you export are yours: print them, sell the prints, or use them in a product. No attribution to Forgent3D is required.

More generators

Already have your own .scad file? Convert OpenSCAD to STEP → · Preview it in the browser →