The Neopixel LED Vase

17,104

239

47

Introduction: The Neopixel LED Vase

About: Old school maker doing all kinds of electronic projects. I love to play around with adressable LEDs. Raspberry Pi collector ;-)

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

Step 1: Design and 3D Files

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.

Step 2: 3D Printing

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

Step 3: 3D Filament As Light Guide

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.

Step 4: Assembly Vase

  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

Step 5: Assembly Electronics

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.

Step 6: Coding

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.

Step 7: Result

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!

1000th Contest

Participated in the
1000th Contest

Be the First to Share

    Recommendations

    • Lamps and Lighting Contest

      Lamps and Lighting Contest
    • Halloween Contest

      Halloween Contest
    • Robots Contest

      Robots Contest

    47 Comments

    0
    HeleneHelene
    HeleneHelene

    Question 9 months ago on Step 7

    Hello,
    Thank you for your beautiful projet! I would like to reproduce the 3D model with fusion 360, butI don't know how you did the lodgement for the filament. Is it made with a loft, a sweep or anything else?
    Thank you for your help

    0
    maketvee
    maketvee

    Answer 9 months ago

    It is a little bit tricky, I tried several strategies and it failed because of different reasons. Biggest problem was a changing diameter in the filament channel. At the end, I modeled it with the form tab, but maybe I have to record a short video to show how I did it.

    0
    jeffeb3
    jeffeb3

    10 months ago

    I love the look. I would try to fit an esp8266 in there though, and run it with wled. It won't be any more expensive and you will be able to control it from your phone. No software needed, just flash the precompiled binary.

    I also think that a smaller one, perhaps with 1.75mm clear PLA filament would make it more accessible. I haven't found anywhere that sells 2.85mm in less than 1kg, and I can't use it in any of my printers.

    I hope that is constructive feedback, and I am very thankful and impressed by your work. I don't mean to take anything away from this awesome project by suggesting these things. Thank you for sharing.

    0
    maketvee
    maketvee

    Reply 10 months ago

    Thanks! Yes, wled is a great option and I will try it in this vase soon. Regarding the 1.75mm, that's also possible and I initially tested it, but the openings of the LEDs are approx. 3 mm and that's why I changed it to 2.85mm filament. In Europe it is quite common that the shops are selling 50g filament samples, but I don't know how US shops are handling this. And of course, I have some very nice projects with filament light guiding in my project pipeline. ;-)

    0
    Spoocky
    Spoocky

    10 months ago

    Hello, thanks for the nice project ! I just finished it but the result is not as good as yours, sadly...
    Light does not diffuse up to the top for some filaments, and also the resulting light is not as strong as yours... I set up the brightness to the maximum (ie 255). Any ideas ?

    I had to print at 106% to be able to slide the filament into the vase, I had indeed some troubles like some people here to do that... the leds are still in front of the filament.

    0
    maketvee
    maketvee

    Reply 10 months ago

    Hello, I have already realized, that the vase is more tricky to build than I thought, sorry for that. Which filament are you using for the light guide? Did you used the mold?

    0
    Spoocky
    Spoocky

    Reply 10 months ago

    For the light guide, I am also using the transparent filament with 2.85 mm diameter. I did use the mold for half of it, and stops when I figured it out that the filament slides very well with my 106% print. I will try the same by printing at 103/104% i guess, and using the mold for every filament then. Thanks for your answer !

    0
    glennfoyster
    glennfoyster

    Question 10 months ago

    Having problems with circuitpy if anyone is an expert. I can see the trinketboot when I double press the reset button but when I load up and run a programme (I have the neopixel test programme running on the vase) the circuitpy drive is not showing in Explorer although shown in Drive Manager. It means I have difficulty in dragging other libraries etc to the Trinket. The programmes seems to run even when circuitpy is not showing

    Would appreciate any input..

    0
    craiglindley
    craiglindley

    Question 10 months ago

    Like glennfoyster I could not get the filament to slide into the vase and I destroyed the vase in the process. Should the filament be cold or still warm and pliable? Did you use some kind of lubrication in your build? Did you slide the filament in or snap it in to the vase?

    Any help would be appreciated.

    0
    glennfoyster
    glennfoyster

    Answer 10 months ago

    I tried 'cooking' the filaments and then put in the former straight out of the oven but they do set really quickly, so no chance to click them in when warm. They actually clicked into the guides OK but as Craig says just too easy to put a finger through the vase while trying to 'persuade' them to click in near the base.

    The next one came out a lot thicker but the guides were two thick to click the filaments in, or even slide in from the top with soap as a lubricant. So Mk 3 had increased size size guide holes which made it easier to slide them into the vase guides but not into the base. This needs working on.

    What I desperately need is instructions on how to load the code shown above onto the Trinket and get it too work.

    Craig Lindley - Have you done this part yet? Would like some advice if you have.

    0
    maketvee
    maketvee

    Reply 10 months ago

    Yes, clicking it in sometimes puts another one out, it took me 10 minutes to put them in place. But since then, none of them ever went out again.
    Regarding the code, just start with Neopixel standtest.ino example. Do you have Neopixel library installed already?

    0
    glennfoyster
    glennfoyster

    Reply 10 months ago

    Thanks for the reply maketvee. I have the Neopixel Library installed and have loaded the strandtest.ino. I get a solid green light (Dotstar) and a slowly pulsing red light. But no pixel lights,

    0
    maketvee
    maketvee

    Reply 10 months ago

    Okay, so you change the pin in the strandtest.ino to the pin you are using on the trinket/LEDs? And maybe you can post a picture of your wiring here I can try to find out what is maybe the issue.

    0
    glennfoyster
    glennfoyster

    Reply 10 months ago

    Getting somewhere at last - video is of vase using the strandtest programme - I haven't tried the FastLED 100-lines-of-code yet - that is the next thing.

    This is heavy duty version with the light guides (PETG) sliding in from the top.
    However there is a 5 mm gap between the bottom of the vase and the top of the black base which i have yet to sort.

    Also because the size was slightly increased the hole for the pixel ring to fit is alsoi bigger and its doesn't sit in snugly. The 3D printer guy did not take this into account (but I should have thought of it!!)

    However, quite pleased with the result. I have set the brightness at 255 as already discussed above but does not reach the top of the vase.

    I have not tried roughening the surface yet but might give that a go but would be interesting to hear how maketvee achived his which loks a lot better.

    0
    maketvee
    maketvee

    Answer 10 months ago

    Filament should be cold, the mold is for preforming it and cooling it down in it. Afterwards it is snapped in, sliding may not work. No lubrication was used, maybe you have to post process the bottom openings at the vase because of the so called elephant foot effect with a sharp cutter knife.
    https://all3dp.com/2/elephant-s-foot-3d-printing-problem-easy-fixes/

    0
    glennfoyster
    glennfoyster

    10 months ago

    I have just completed Mk 1 vase but found it too thin too click in the filaments resulting in a damaged vase; Mk 2 was too thick (!) and it was impossible to click in the filaments (no give in the guides); Mk 3 was modified to be thicker but to have increased diameter guide holes in which the filaments would slide. Slight problem where they go into the black base but am sure this can be overcome.
    I downloaded both MU editor and Arduino IDE for Windows but cannot get the vase to work.

    Have soldered the links as the details above, and I have also found the code shown above (in part) on Github.

    How do I go about writing this code to the Trinket and starting the vase to display colours?

    Newby here so be gentle with me. I have read both the Mu and Arduino IDE pages but none the wiser..!!

    Help!

    0
    maketvee
    maketvee

    Reply 10 months ago

    I dont't think it will work with warm filament, please cool it down in the mold. For the Trinket, did you follow follow this guide to setup Arduino IDE for the Trinket:
    https://learn.adafruit.com/adafruit-trinket-m0-cir...
    Press reset button twice to change Trinket to boot loader mode before programming (red led is on and changing brightness)

    0
    craiglindley
    craiglindley

    11 months ago

    How long did it take to print the vase and base?

    0
    craiglindley
    craiglindley

    Reply 10 months ago

    You made me do it. I purchased a Prusa just like yours for this specific project. I'm having a lot of beginner issues like getting the PETG to stick on the bed even after cleaning it and running the first layer calibration. Assuming I get the basics to work,
    What quality mode did you print the base and the vase with? ultradetail, detail, quality, speed, draft?

    Thanks for any additional information you can give.