Summary: This is an Arduino based project to control light colors and animations in a 3D printed vase and rose. I originally made it for my girlfriend as an anniversary gift, but I thought people might like to make their own. You can check out the introduction to the project here. The project uses the Adafruit NeoPixel library and it was tested in an Arduino Uno board with an ATmega328P processor. It is compatible with the Adafruit ProTrinket 5v. The vase is a remix of "Wave Vase" by didierkl, and the flower is a remix of"Make a rose for your girl" by hansliu. You can download the code here.

A youtube playlist detailing the development process will be found here.


  • Connect the power supply to the vase. (In this case using 5V, 2A)
  • Flip the slide switch to the "on" position. This will power the board and the NeoPixel Ring.
  • Click the pushbutton for less than 0.5s to flip through the vase's light animations.
  • Click the pushbutton for more than 0.5s to flip through the flower's light animations.

Note: Do not leave lights turned off while the slide switch in the "on" position for an extended period of time. The board will still be powered during this time.


  • 1x Arduino ProTrinket 5v
  • 1x Arduino RGB Neopixel Ring 16x
  • 1x Arduino RGB Neopixel
  • 1x 5.5mmx2.1mm female barrel jack power adapter
  • 1x slide switch
  • 1x 6mmx6mm push button
  • 1x 1000μF capacitor
  • 2x 510Ω resistor
  • 3x battery contact plates (or a similar thin conductive metal)
  • 1x 5v, 2A power supply with 5.5mmx2.1mm plug
  • ~250g translucent PLA (I used Shaxon "natural" PLA)
  • 22ga wire (green for the stem, the rest is up to you)
  • Cyanoacrylate glue and/or 5second Fix resin

If you would like to donate to my Grad School Fund, you can do so via my GoFundMe campaign at or via Paypal at Thank you very much for your support! Print Settings

  • Printer: Monoprice Maker Select
  • Rafts: No 
  • Supports: Yes 
  • Resolution: 0.1mm
  • Shell thickness: 1mm
  • Bed Adhesion: You might want a brim for printing the stem.


  • Solder 3 green wires to the 5v, Din, and GND leads in the single Neopixel.
  • Make sure the wires are at least 180cm long to account for the twisting.
  • Insert Neopixel and cable through stem. Strip wires and glue exposed wires to the groves in the stem.
  • Clockwise starting at the fin of the stem base: 5V, Din, and GND.
  • Glue the petals to the stem using plenty of CA glue.
  • Solder wires to the 5v, Din, and GND leads in the Neopixel Ring.
  • Solder wires to the 3 battery plates.
  • Cut and mold the plates to fit separately in the stem coupler.
  • Load vase.ino into the ProTrinket.
  • Solder components to board according to the schematics.
  • Ensure that all components fit in the 3D printed insert while you trim and solder wires in place.
  • Glue the button, switch, power adaptor, and wired battery plates in place using CA glue or resin.
  • Screw the insert into the vase, and lightly glue in place.
  • Plug in and test the assmebly

Design Files

File Size

1.89 MB
4.64 MB
3.77 MB
393 KB


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now