This lamp needs a base for its (minimal) electronics:
The solid model won’t win many stylin’ points:
It’s big and bulky, with a thick wall and base, because that ceramic lamp socket wants to screw down onto something solid. The screw holes got tapped 6-32, the standard electrical box screw size.
The odd little hole on the far side accommodates a USB-to-serial adapter that both powers the lamp and lets you reprogram the Arduino Pro Mini without tearing the thing apart:
The sloped roof makes the hole printable in the obvious orientation:
There’s an ugly story behind the horizontal line just above the USB adapter that I’ll explain in a bit.
The adapter hole begins 1.2 mm above the interior floor to let the adapter sit on a strip of double-sticky foam tape. I removed the standard header socket and wired the adapter directly to the Arduino Pro Mini with 24 AWG U-wires:
I didn’t want to use pin connectors on the lamp cable leads, but without those you (well, I) can’t take the base off without un-/re-soldering the wires in an awkward location; the fact that I hope to never take it apart is irrelevant. Next time, I’ll use a longer wire from the plate cap and better connectors, but this was a trial fit that became Good Enough for the purpose.
And then It Just Worked… although black, rather than cyan, plastic would look spiffier.
Bluish phases look icy cold:
Reddish phases look Just Right for a hot lamp:
A ring of white double sided foam tape now holds the plate cap in place; that should be black, too.
The OpenSCAD source code adds the base to the plate cap as a GitHub gist: