Close

I Sketched The Layout On My Phone And Got Back OpenSCAD

A project log for VA5 — A $20 Voice Assistant With No Personality Un

A $20 ESP32-S3 voice assistant that ships with no personality. You write one from your phone — no code, no reflash.

udi-tiroshUdi Tirosh 08/19/2026 at 12:230 Comments

The breadboard version lived in a laser-cut wooden box. It worked, and I like giving a project a decent box, but a wooden rectangle with a breadboard rattling around inside is not a thing you hand to thirty teenagers.

So it needed a real enclosure: round, printable, with a mount for every module.

I'm fine in Fusion 360 — that isn't the problem. The problem is that a box like this is about a day of work, and none of it is interesting. Calipers on six modules, transfer the dimensions, place the bosses, check clearances, discover the speaker fouls the display bracket, go back and move three things. Tedious, not hard.

What made me try something else: Claude already knew this build. I'd been in VS Code with it for weeks on the firmware, so the component list, the pinout and the board dimensions were already in context. It wasn't starting from "design me a box" — it was starting from a project it had been reading for a month. That's the whole trick, and it's the part that doesn't transfer if you open a fresh chat and ask for an enclosure.

So I drew this on my phone. A circle and six words. No dimensions, no scale, nothing measured — screen up top, amp beside it, speaker in the middle, button right, ESP32 left, mic at the bottom.

What came back was a complete OpenSCAD script: mounting bosses sized per module, a speaker grille, and — the part I hadn't asked for — cantilever clips to retain the ESP32 and the speaker so neither needs a screw. Then it rendered the model and showed me a snapshot, which is what turned it from plausible-looking code into something worth spending filament on.

It did need some fixing, mostly for the sizes of the full boards, and getting the rails and the ESP32 cantilever right. 

Then off to the Bambu Lab P1S, and a few prints later, it was done. 

Worth being straight about what this is. It isn't "AI designed my enclosure." It's that the boring 80% — measuring, placing, writing out boss coordinates — is exactly what a model with your BOM already in context can do, and OpenSCAD happens to be the right output format for it, because it's text. I could read the script before I printed it, diff it when it changed, and fix a number instead of re-clicking a timeline. I wouldn't have trusted a binary I couldn't inspect.

This SCAD box isn't what ships now — once the custom PCB existed, I rebuilt the enclosure in build123d so the board and the case come from one parametric source. But that rebuild took an afternoon, because by then I knew exactly what the box needed to be. This version is what answered that question.

Full source: https://github.com/iollama/Voice-Assistant-5

Discussions