CB Labs

14 — FABRICATION · 2026

Star & Moon Lamp

A talking night lamp for a small child: one base, two swappable heads, eight printed parts, and 51 dimension checks before anything was printed.

Built
A talking night lamp with one base and two swappable heads, a star and a moon.
Stack
Classic ESP32, DFPlayer Mini, eight printed parts, 51 dimension checks.
State
Designed and checked; star face, button and sound working on the bench.

IN PROGRESS · UPDATED 27 JUL 2026

Designed and checked: all 51 dimension checks pass. The star face, button and sound work on the bench.

Carter Barnes · cloud engineer, federal Azure · Contact

Photo, AI-assisted edit · A printed star head on its stem, lit. Backdrop and finish regenerated from my photo.

What it is

A night light that talks. A shared base takes either head, a star or a crescent moon, on a printed stem. Each head has a beveled window over a small screen, and the base plays sounds from a microSD card.

Eight printed parts, each with a size and a print orientation on one print sheet, and 51 dimension checks recorded as passing before anything was printed.

Render · Both heads, assembly preview.

How it works

Base
210 × 100 × 32 mm, with two sockets 115 mm apart, closed by a 204.6 × 94.6 mm bottom plate.
Stems
Ø14 mm, 57 and 87 mm long, printed vertically with a brim.
Heads
A 1.54-inch square screen in the star and a 1.28-inch round one in the moon. Star window 33.5 mm square at the surface, moon window Ø38.5, both beveled at 45° so the board is never visible.
Electronics
A classic ESP32 board in the base, a DFPlayer Mini MP3 module reading clips from a microSD card, and a small speaker behind a grille. One button plays the next clip.
Fits
Stems +0.4 mm in their sockets, plates +0.6 mm in their pockets.
Assembly
Wires run through the stem bores; M3 self-tappers go into printed pilots, with a foam pad behind each screen.

By the numbers

51
dimension checks before printing, all passing at 0.00 mm delta
8
printed parts on one print sheet
2
pocket defects the audit caught before the printer did
23.5 mm
gap between the two heads on the base

What I learned

  1. 01

    The print sheet is the single source of truth

    It names every part, its size, its orientation on the printer and its audit status. With eight parts across versions, 'which file do I print?' wastes an evening; a table answers it in five seconds.

  2. 02

    Audit the geometry before the printer

    A 0.6 mm pocket mismatch found after a four-hour print costs the whole print. Back plates and pockets are checked against each other numerically.

  3. 03

    Pair mating parts on the print sheet

    The star's v2 back plate fits the new 57 × 45 pocket in the v3 head; the moon's v3 plate fits the new Ø60 one. The version numbers don't match across the pair, so the print sheet says which plate goes with which head. Printing by version number alone is how you print a lid that does not fit.

  4. 04

    Design for small hands

    Beveled faces, no sharp points, a stem meant to take being yanked. The constraints came from the user, not the datasheet.

What went wrong

  1. 01

    The v2 back pockets broke through the heads

    The star's pocket broke through its silhouette in the neck under the top point, and the moon's nicked its outer rim. The audit caught both before printing: the star pocket went from 57 × 56 to 57 × 45 and the moon's from Ø64.5 to Ø60.

Next · 15 / 18App-Control Signing PipelineApplication control as software: signed, versioned WDAC policy (Windows' allow-list for what code may run), built by pipeline and rolled out ring by ring.