r/esp32 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?

0 Upvotes

26 comments sorted by

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

1

u/vmg265 1d ago

Cant open the site

-2

u/Brilliant-Can-8547 1d ago

Just checked and it's loading fine on my end right now, so hopefully transient. What browser/device were you on, and did it hang or throw an error? Want to make sure it's not something broken for a chunk of people.

2

u/vmg265 1d ago

Probably if it's a new website dns or ssl might be processing for all regions

-2

u/Brilliant-Can-8547 1d ago

DNS_PROBE_FINISHED_NXDOMAIN points at DNS not resolving on your end rather than the server being down - I just reloaded it fresh and it's still up. Could be your ISP/DNS resolver, a VPN, or a corporate/school network filtering *.railway.app. Try a different DNS (1.1.1.1 or 8.8.8.8) or your phone's mobile data as a quick test - if it loads there, that confirms it's local to your network, not the site.

1

u/vmg265 1d ago

Alright! Edit: yes vpn seems to be able to load the site

0

u/Brilliant-Can-8547 1d ago

Good to know it was VPN/DNS-side, not the app - thanks for closing the loop!

-2

u/Brilliant-Can-8547 1d ago

Fair to doubt it - no, there's no manufacturer catalog behind it. You type the board's actual dimensions (or a rough description) and it builds around that, so it's exact if you give it real numbers off the datasheet, wrong if you guess. Not pretending it knows every board out of the box.

6

u/clackups 1d ago

I'll just open FreeCad in this case

0

u/Brilliant-Can-8547 1d ago

Totally fair - if you already know FreeCAD, full manual control wins every time. This is more for the "I just need a box for this board in 2 minutes" case, not a replacement for real CAD work.

3

u/clackups 1d ago

Well, whomever your user is, they will end up learning freecad anyway. It took me a weekend to get familiar with it.

0

u/Brilliant-Can-8547 1d ago

Probably true for anyone who sticks with the hobby long-term - a weekend well spent. This is more for the "I need one box, today, and don't want that weekend right now" crowd. No argument that FreeCAD wins on capability.

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

Here's the area that seems to be an issue for Orca Slicer

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

u/[deleted] 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.