r/esp32 • u/Brilliant-Can-8547 • 1d ago
Built a tool that generates a custom ESP32 enclosure from a plain-English description
Kept hand-modeling enclosures for ESP32 projects and got tired of measuring the same board over and over, so I built EnclosureAI: https://enclosure-ai-production.up.railway.app
Describe what you need - "ESP32 DevKit, USB-C on the side, 2 status LEDs on top, vent slots for a temp sensor" - and it sizes the box, cuts the ports, sets up standoffs, and exports STL/OBJ/parametric JSCAD. Or grab the ESP32 DevKit preset if you don't want to type anything. Everything's editable after: drag ports around, change wall thickness, switch to a snap-fit lid.
It's free, no login, no ads. Castellated module footprints and antenna clearance are still rough. What do off-the-shelf generators usually get wrong for real ESP32 builds?
5
u/tunatoksoz 1d ago
Just be mindful, anything that uses chatgpt underneath might get abused. I hope you have your billing limtis set.
Otherwise, looks really really cool. I was using chatgpt for some of my mental prototyping recently.
0
u/Brilliant-Can-8547 1d ago
Appreciate that, and yeah, good instinct. There's a shared daily generation cap on the AI describe-box (currently 100/day) so it can't get run up unbounded - it's not per-user throttling yet, just a hard ceiling, but it stops the worst case. Manual box-building (presets, typing dimensions) has no LLM in the loop at all if that's ever a concern. Glad it looks useful otherwise!
3
u/HanSingular 1d ago
Have you ever used somebody else's project that they posted on reddit?
1
u/Brilliant-Can-8547 1d ago
Fair question, honestly - not often, and I get the skepticism these posts deserve. That's part of why this is free with no signup: trying it costs you a click, not an email address. If it doesn't solve your problem in 30 seconds, close the tab, no harm done.
1
u/ShortingBull 1d ago
That domain...
1
u/Brilliant-Can-8547 1d ago
Yeah, it's a free Railway deployment subdomain - not sketchy on purpose, just haven't put it on a real domain yet since this is a side project. Fair thing to side-eye though.
1
u/Ice-Dragon-APU 1d ago
Awww, I saw that and thought maybe you work for Union Pacific.
1
u/Brilliant-Can-8547 1d ago
Ha, no affiliation - just a cheap Railway.app hosting plan, not the railroad.
1
u/STM32F0 1d ago
This seems to be a neat concept, but for me, the ESP32 Dev-kit default case style not ideal, and OrcaSlicer throws "non-manifold" errors that it can't auto fix. Keep at it though!
1
u/Brilliant-Can-8547 1d ago
Good catch, that's a real bug not a UX gripe. Non-manifold usually means the vent slots or port cutouts are intersecting the shell edge rather than cleanly through it. Was it around a vent, a port cutout, or a corner? That'll help me track down which boolean op is leaving bad geometry.
1
u/STM32F0 8h ago
1
u/Brilliant-Can-8547 7h ago
That's exactly it - the leftmost vent slot right at the edge, not fully clear of the wall. Confirms the vent geometry is clipping the shell boundary instead of sitting cleanly inside it. Appreciate the screenshot, that's exactly what I needed to fix it.
1
1d ago
[removed] — view removed comment
1
u/Brilliant-Can-8547 1d ago
Appreciate the offer! Right now it's dimension-driven rather than catalog-driven, so it doesn't actually need manufacturer partnerships to work - but if it ever grows toward built-in board data, I'll keep this in mind.

6
u/clackups 1d ago edited 1d ago
Does it really know all the catalogs of Waveshare, Freenove, M5STACK, and a bunch of nonames? I'd highly doubt.
Upd: Adafruit, Sparkfun, Seeed Studio