Put the numbers in the link
Every parameter is a link parameter; the link below opens the example part. ChatGPT, Claude or any assistant can write one like it from the parameter list (names, units, ranges) at: parameter list (JSON)
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.
The real generator runs in your browser: set the parameters, then download STEP or STL. Nothing to install, no sign-up.
The first open downloads the CAD engine (about 20 MB).
Each parameter below rebuilds real geometry on every change — this is parametric CAD, not a scaled mesh.
| Parameter | Default | Range | What it does |
|---|---|---|---|
| BoardBOARD | ESP32 DevKit V1 | 15 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 boardPINS | Pins soldered | pins down / no pins / jumper wires | Pins 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 clearanceFIT | 0.3 mm | 0.1 – 1 | Gap 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 thicknessWALL | 2 mm | 1.2 – 3 | 2 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 antennaROOM | 2 mm | 0 – 15 | Free 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_EXIT | None | none / slot / PG7 | In 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 earsEARS | off | on / off | Two 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 ventsVENTS | on | on / off | 2 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
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.
| Board | Board data from | Case outside | Over the screw bosses | Height | Screws | |
|---|---|---|---|---|---|---|
| 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 spread | 58.6 × 33.1 | 65.5 × 40.0 | 21.6 / 17.1 / 33.6 | 4 × M3 × 16 | Open → |
| ESP32-DevKitC V4 (38-pin) | Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs | 60.9 × 32.5 | 67.8 × 39.5 | 21.6 / 17.1 / 33.6 | 4 × M3 × 16 | Open → |
| ESP32-S3-DevKitC-1 | Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs | 75.8 × 30.0 | 82.7 × 37.4 | 21.6 / 17.1 / 33.6 | 4 × M3 × 16 | Open → |
| YD-ESP32-S3 (N16R8 44-pin) | The maker's drawing and an independent STEP, which agree; the USB-C openings cover both | 70.0 × 32.5 | 76.9 × 39.5 | 20.5 / 17.1 / 32.5 | 4 × M3 × 16 | Open → |
| ESP32-C3 SuperMini | Clone board: seller drawing and a community STEP; the pocket takes boards up to 1.5 mm longer | 30.6 × 22.6 | 37.6 × 29.5 | 21.0 / 17.1 / 33.0 | 4 × M3 × 16 | Open → |
| ESP32-C6-DevKitC-1 | Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs | 64.8 × 30.0 | 71.7 × 40.2 | 21.0 / 17.1 / 33.0 | 4 × M3 × 16 | Open → |
| ESP32-C3-DevKitM-1 | Espressif dimension DXF and PCB layout (nothing under the board); connector heights from other boards' STEPs | 50.9 × 30.0 | 57.9 × 36.9 | 21.6 / 17.1 / 33.6 | 4 × M3 × 16 | Open → |
| Waveshare ESP32-S3-Zero | Waveshare drawing and STEP | 30.1 × 22.6 | 37.0 × 29.5 | 20.6 / 17.1 / 32.6 | 4 × M3 × 16 | Open → |
| Seeed XIAO ESP32S3 | Seeed STEP and DXF (external u.FL antenna) | 27.7 × 22.4 | 34.7 × 29.3 | 20.2 / 17.1 / 32.2 | 4 × M3 × 16 | Open → |
| Seeed XIAO ESP32S3 Sense | Seeed 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.4 | 37.8 × 29.3 | 22.5 / 17.1 / 34.5 | 4 × M3 × 16 | Open → |
| Seeed XIAO ESP32C6 | Seeed's own STEP and KiCad PCB | 27.6 × 22.4 | 34.5 × 29.3 | 20.2 / 17.1 / 32.2 | 4 × M3 × 16 | Open → |
| Seeed XIAO ESP32C3 | Community STEP checked against Seeed's KiCad PCB; PCB thickness not published, the case assumes 1.25 | 27.6 × 22.4 | 34.5 × 29.3 | 20.2 / 17.1 / 32.2 | 4 × M3 × 16 | Open → |
| Arduino Nano ESP32 | Arduino STEP and datasheet | 49.8 × 22.4 | 56.7 × 29.3 | 20.8 / 17.1 / 32.8 | 4 × M3 × 16 | Open → |
| LilyGO T-Display-S3 | LilyGO PCB and full STEP; window over the display glass | 67.4 × 30.5 | 74.3 × 37.5 | 20.6 / 17.1 / 32.6 | 4 × M3 × 16 | Open → |
| ESP32-CAM (AI-Thinker) | Ai-Thinker drawing and a community STEP; the pocket covers the 40–40.5 length spread | 47.1 × 31.6 | 54.0 × 38.5 | 23.7 / 21.1 / 35.7 | 4 × M3 × 20 | Open → |
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).
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.
| This generator | Typical online STL generator | Vendor CAD library | |
|---|---|---|---|
| Any size within the range | Yes | Yes | Catalog sizes only |
| STEP with exact surfaces | Yes | Usually an STL mesh only | Yes |
| Changes the sliders don't cover | “AI edit” on the page | No | No |
| Account needed to download | No | Usually no | Often |
Every parameter is a link parameter; the link below opens the example part. ChatGPT, Claude or any assistant can write one like it from the parameter list (names, units, ranges) at: parameter list (JSON)
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 →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 →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 %.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Already have your own .scad file? Convert OpenSCAD to STEP → · Preview it in the browser →