April 2023
A miniature 3D printed bonsai tree embedded with LEDs under a canopy of pom-poms. Inspired by Dr. Seuss.
I started out with this lovely 3D model I found on Thingiverse:
I used Blender to make some changes to the 3D model:
Changes I made to the model:
The 3D printing slicer software (Cura) auto-generates supports, but they seemed excessive… it also tripled the amount of filament compared to the tree alone! Designing my own supports sounded way more fun anyway. I designed them in Blender using the Wireframe modifier. They worked beautifully. I think you can also do stuff like this with Meshmixer, which doesn’t seem available for Mac users.
How I made these custom lattice supports in Blender:
shift-d z -0.4
)p
)e
)s z 0
)ctrl-r 10
)This print used 28g filament ($0.56) and took 9hr 24min to print.
I bought a custom clear and gold spray paint blend from an automotive paint supplier. It’s super shiny and sparkly but since it’s clear it needs an opaque base coat to really stand out. For the base coat I used an opaque gold.
A thin coat of spray paint does not block light from passing through the clear PETG filament, although it is a bit less bright, and is a bit blotchy if you look closely.
I used a CNC router for this, but a regular router works too.
For this design, I printed a base box and lid separately. This was before I knew how to design and 3d print boxes with hinges and latches. The way this box stays closed is with two grabby tabs on one side and an M3 nut and bolt on the other. In the photo below you can see a small nut glued into a “nut pocket” with Elmer’s glue. And then the lid has a recessed hole for the bolt to nestle in.
I designed this box and lid so that it can be printed without supports. You can get the STLs here.
Before soldering, don’t forget to:
I learned how to make mini pompoms out of yarn using a fork from this YouTube video.
The LEDs have two modes: solid color and twinkle. The button on the bottom of the tree changes the mode. Both modes slowly cycle through several color palettes.
The twinkle mode code is adapted from FastLED’s TwinkleFox algorithm.
In solid color mode, the color slowly transitions between colors in the active color palette. If you imagine a color palette as a spectrum, the color being displayed oscillates between each side of the spectrum with a sine wave:
void solidColorFade() {
int paletteIndex = beatsin8(10, 0, MAX_PALETTE_INDEX);
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = palette.getColorFromPalette(paletteIndex);
}
}
Thanks for reading!