The Neopixel LED Vase

by maketvee in Circuits > LEDs

22364 Views, 259 Favorites, 0 Comments

The Neopixel LED Vase

neopixelvase.png
The Neopixel LED Vase
20201101_160434.jpeg
title.jpg

This vase uses transparent 3D printer filament as a light guide. The filament is integrated in a vase to realize light effects with addressable Neopixel LEDs. Therefore a LED ring is inserted in the base of the vase and controlled by an Arduino board. The transparent filament guides the LED light through channels in the vase structure to the top of the vase.

This project was partly inspired by the 3D filament vase from 3DWinnipeg.

Supplies

Design and 3D Files

render.png
Bildschirmfoto 2020-11-01 um 16.21.42.png
Bildschirmfoto 2020-11-01 um 16.23.23.png

Vase

A simple vase design was used to add spiral channels for the filament. All parts were designed in Autodesk Fusion 360.

Base

The base has channels for guiding the transparent filament to the LEDs of the LED ring. The NeopixelRing and the Arduino board are mounted to the base via screws. The Micro USB port from the Arduino board is easy accessible form the side of the base.

All STL files are uploaded to prusaprinter.org including the mold for bending the 3D filament.

3D Printing

Bildschirmfoto 2020-10-31 um 12.51.23.png
Bildschirmfoto 2020-10-31 um 13.31.11.png
20201031_113452.jpg

The vase should be printed in vase mode. I was using a 0.4 nozzle and 1.75mm PETG filament on a Prusa MK3S 3D printer. The base is printed in standard mode and oriented upside down to avoid support structures.

Additional files are added for the filament mold and the mounting bar for the Neopixel ring.

Please check the files on prusaprinters.org:

https://www.prusaprinters.org/prints/45066-neopixel-vase

3D Filament As Light Guide

filament1.jpg
filament2.jpg
filament5.jpg
filament4.jpg
filament3.jpg

Even if my printer is using 1.75mm filament, the light guide is built out of 2.85 mm filament because this diameter fits much better to the Neopixel LED opening, which is approx. 3 mm. So this larger diameter inputs as much light into the filament as possible and still uses cheap 3D printer filament. You can use either PETG or PLA, the PLA I tested was a little bit more diffuse, so it depends on your design what looks better. This vase was build with PETG filament.

The filament comes in a roll, so it is pre-formed in a circle shape and because of its thickness, it is not easy to bend as much as intended for the vase. So it helps to preform it before assembly. I designed a mold with the outside shape of the vase. Originally I planned to put the filament in the mold and then heat it up in the mold (that's why there are the screws attaching the mold on a piece of wood). But this did not work very well.

Much better is to preheat the filament in the oven and then, when it is warm and flexible, put it into the cold mold and let it cool down. This works perfectly. I used a standard kitchen oven heated up to 90°C (approx. 195°F) and put the filament in for 1 minute. After that time, it already straightened a bit and you can put it into the mold. After a few seconds, it has its final shape. Also this procedure prevents local cracks of the filament which could reduce the light guide effect.

Assembly Vase

aseembl1.jpg
aseembl2.jpg
aseembl3.jpg
aseembl4.jpg
aseembl5.jpg
aseembl6.jpg
  1. Insert the prepared filament pieces one after the other by inserting them from the bottom of the base to the vase. After a few, base and vase are attached properly together and sliding in is not a problem.
  2. Repeating this procedure until all 16 filaments are inserted
  3. Click in all filaments to the filament traces in the vase
  4. Cut the filament at the base as close to the surface as possible with a side cutter
  5. Cut of all protuding parts on the top of the vase to get a clean border
  6. Check all filaments again if all of them are clicked in properly

Assembly Electronics

assembly7.jpg

Cabling is straight forward:

Trinket USB -> NeoPixelRing 5V

Trinket GND -> NeoPixelRing GND

Trinket Pin 2 -> NeoPixelRing DIN

Normally Neopixels are rated for 5V input, but in most of the cases, it also works fine with 3.3V levels like the Trinket outputs. If necessary, you can add a level shifter between the Trinket and the ring. Adding a small resistor (300-500 Ohm) between Arduino and Neopixel is recommended. Also you can use another pin of the Arduino.

Depending of the screws you are using, you may have to open the holes for the Trinket a little bit.

Coding

Bildschirmfoto 2020-10-31 um 17.21.54.png

There are many options for coding effects for this vase with the Trinket M0. For example:

  • Using Arduino IDE and Neopixel library
  • Using Arduino IDE and FastLED library
  • Using CircuitPython

The only things you have to setup are:

  • WS2811/WS2812 LEDs
  • Pin2 als data PIN
  • Number of LEDs: 16

The video shows just some example code from the libraries, but any type of custom animation is possible.

Result

vase1.jpg
20201101_174812.jpeg
20201101_174033.jpeg
The Neopixel LED Vase

At the end, you are getting a beautiful looking illuminated vase, which can play animations depending on the flowers you have putted in. And as always, reality looks even better then the video.

Enjoy the build!