The Neopixel LED Vase




简介:Neopixel LED花瓶


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 the3D filament vase from 3DWinnipeg.


Step 1: Design and 3D Files


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


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 toprusaprinter.org包括用于弯曲3D灯丝的模具。


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.


Step 3: 3D Filament As Light Guide

即使我的打印机使用1.75毫米灯丝,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.


  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. 重复此过程,直到插入所有16根丝
  3. 单击“所有丝块”到VASE中的灯丝迹线
  4. 尽可能靠近表面切割底座上的灯丝,侧刀具
  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


Trinket USB -> NeoPixelRing 5V

Trinket GND - > Neopixelring GND

饰品销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 isrecommended. 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.


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
  • LED数量:16

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



Enjoy the build!

1000th Contest

Participated in the
1000th Contest

Be the First to Share


    • Anything Goes Contest

      Anything Goes Contest
    • Block Code Contest

      Block Code Contest
    • Make it Real Student Design Challenge

      Make it Real Student Design Challenge

    45 Discussions


    12 days ago


    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.



    Reply 11 days ago



    22 days ago

    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.


    Reply 21 days 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?


    Reply 18 days 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 !


    Question20 days 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..


    Question24 days ago


    Any help would be appreciated.


    回答23 days 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.

    下一个厚度较厚,但引导件是两个厚的厚度,甚至用肥皂从顶部滑入顶部,用肥皂作为润滑剂。因此,MK 3具有增加的尺寸尺寸引导孔,这使得更容易将它们滑入花瓶导向器,但不会进入基座。这需要努力。

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

    Craig Lindley - 你完成了这个部分吗?如果你有一些建议。



    关于代码,刚刚从Neopixel Standtest.ino示例开始。你有没有安装的neopixel库吗?





    Reply 21 days ago

    好的,所以你将销钉中的别更换为在饰品/ LED上使用的引脚?也许你可以在这里发布你的接线照片,我可以试图找出可能的问题。


    Reply 21 days ago

    在最后一个地方到达 - 视频是使用Strandtest程序的花瓶 - 我没有尝试过错的100行代码 - 这是下一件事。

    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我应该想到它!!)




    24 days 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..!!




    我不认为它会使用温暖的灯丝,请将其冷却在模具中。对于TRONKET,您是否遵循本指南来设置TRONKET的ARDUINO IDE: ...
    Press reset button twice to change Trinket to boot loader mode before programming (red led is on and changing brightness)


    7 weeks 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,
    你打印了什么质量模式基础和vase with? ultradetail, detail, quality, speed, draft?

    Thanks for any additional information you can give.


    Reply 27 days ago

    Wow, great that you started 3D printing. What bed are you using (PEI or Powder coated)? Most important for PETG is preheating, I normally preheat the printer 10-15 minutes before starting the print. Also z-offset is very important, so what is your status right now regarding the bed adhesion?


    Reply 26 days ago

    Yes I now have the Prusa printing great with the PETG used in your project. Yes I found that preheating the bed and letting it set for a couple of minutes seems to do the trick. I am using the PEI base plate. Thanks Martin for the redesign of the base, it works perfect.