# ESP32 + camera toy enclosure models All dimensions are millimetres. The enclosure is a two-piece 76 x 54 x 30 mm cap-style body with 2.4 mm walls, 0.6 mm lid clearance, a front camera window, a top-facing speaker opening, a configurable Ø2 mm microphone port, and a left-side USB service opening. There are no printed screw posts in this revision because the seller-specific board hole pattern is not published. | Source | Outputs | Purpose | | --- | --- | --- | | `base_shell.py` | `STEP/base_shell.step`, `STL/base_shell.stl` | Lower tray with open cavity | | `lid_shell.py` | `STEP/lid_shell.step`, `STL/lid_shell.stl` | Open-bottom lid, camera window, Ø34 mm speaker opening, USB cutout | | `enclosure_assembly.py` | `STEP/enclosure_assembly.step`, `STL/enclosure_assembly.stl` | Base + lid assembly | Build from this project directory with the pinned cadgen runtime: ```bash uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 python src/base_shell.py uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 python src/lid_shell.py uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 python src/enclosure_assembly.py ``` The selected Taobao CAM board's exact PCB/lens dimensions are not present in the listing text. Before final printing, measure the received board and adjust `OUT_X`, `OUT_Y`, `CAM_OPEN_X`, `CAM_OPEN_Z`, and the internal component datums in `src/common.py`. The current model is a fit-checkable starting enclosure, not a claim that physical assembly has already been verified. The speaker opening and cavity retention are also design assumptions until the received speaker, battery, and power board are measured.