Embedded LED 3D Printed Christmas Tree

22,797

169

15

Introduction: Embedded LED 3D Printed Christmas Tree

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

This is a 3D-printed Christmas tree with embedded addressable LEDs inside. So it is possible to program the LEDs for nice light effects and using the 3D printed structure as a diffusor.

The tree is separated in 4 stages and a base element (the tree trunk) to make it easier to assemble and embed the LEDs during the prints. So in total 5 elements have to be printed.

LEDs are part of the print, they are not removable afterwards. Please ensure that everything works fine before embedding them into the print.

3D files were designed in Fusion360 and are available at prusaprinters.org


Supplies

  • Transparent and green filament (In this case PLA filament was used)
  • Teensy M0 or other small Arduino board (Trinket M0)
  • Single Cell LiPo, for example a 18560 from Adafruit (battery)
  • ON/OFF Switch with 17.5 mm hole distance
  • 25 WS2812B LEDs
  • Coated Copper wire or other thin wires
  • Files at https://www.prusaprinters.org/prints/13643

Step 1: Soldering the LEDs

Before embedding the LEDs in the 3D print, they have to be connected to each other for every stage separately. Using a 3D printed stencil (stencil.stl file) makes it much easier to match the correct wire length for stages 1-3. LEDs are connected like displayed in the schematic, DOUT of every LED is connected to the DI of the next one. At the end, first DI and last DOUT are wired to the center for connecting them with the other stages later.

Step 2: Concept of Embedding the LEDs

There is a click mechanism to hold the LEDs in place. Also there is a small overhang in the corners of the wiring channels to prevent the wires from popping out of the channels during printing. The wires, which are lead out of the print, are fixed in a comb structure to hold them in place. Therefore the wire diameter for this wires should be around 1mm.

Step 3: Prepare Print Files

3D data is provided as .3mf file, including the color change from transparent to green. Nevertheless, because every filament is slightly different. Please check the shrinkage of your material and do a test print (e.g. first 5 mm) to adapt the scaling if needed so that the LEDs are fitting in the click mechanism.

Step 4: Start Printing

Every print starts with transparent filament. Stages 1-3 have 1 color change, Stage 4 has two.

Step 5: Embedding the LEDs

PrusaSlicer was used to add a color change at 5 mm to embed the LEDs, change to green filament and continue the print. It’s very important to ensure that the LEDs are embedded properly so nothing overlaps the 5mm which would cause a problem for the next printing step. It is very usefull to fixate the wires in the center with some tape. Please check the video above, the procedure is shown several times, also for the topper LED. The longer the center cables are, the easier is the later assembling. But space is limited because of the 5mm height limit.

Step 6: Test It!

Just test it by connecting V+,GND and DIN and using e.g. an Arduino board and a simple Neopixel example code.

Step 7: Connecting the Stages

Stages are connected according to the shown wiring diagram. V+ and GND are connected from stage to stage. Please also check the video above, there is a time-lapse section from the full assembly process.

Step 8: Preparing Electronics and Battery

There are different ways to power the LEDs. Normally they are rated for 5V, but they also work with 3,7 battery voltage and 3.3V logic, if you are using only a few of them. The Trinket M0 from Adafruit can be directly powered from a single cell Li-Ion battery. V+ of the LEDs is connected to the Bat pin, GND to GND and DIN of the LEDS to Pin 4 of the Trinket. To avoid issues with LEDs, please add a 330 Ohm resistor between Pin 4 and the first LED and also a larger capacitor (around 1000uF) between V+ and GND like mentioned in the Adafruit Neopixel best practice guide.

Step 9: Final Assembly

Between the battery plus-pin and the Trinket Bat pin, the ON/OFF-Switch is inserted. The switch can be screwed to the base and the trinket is also inserted in the base. Battery fits into the tree if its width is smaller then 30mm. Please also check the video.

Step 10: Code

There are different options for programming the LEDs, just using Arduino IDE and Neopixel library or if CircuitPython is supported just use this like in this demonstration. Code is a slightly changed example from the Adafruit CircuitPython Neopixel example provided on their website. Just change the config to:

pixel_pin = board.D4

num_pixels = 25

ENJOY!

Home Decor Contest

Runner Up in the
Home Decor Contest

3 People Made This Project!

Recommendations

  • Rice & Grains Challenge

    Rice & Grains Challenge
  • Lamps Challenge

    Lamps Challenge
  • CNC and 3D Printing Contest

    CNC and 3D Printing Contest

15 Comments

0
RottenKotten
RottenKotten

11 months ago

Hi, i want to remix your work a little (i have ws2812 with pcb and they fix perfect, but no space for wires)
can i ask you to share CAD files?

0
dejones0315
dejones0315

Question 1 year ago on Introduction

I'm very new to the electronics portion of this project. The last thing I want to do is let the magic smoke out of the Trinket board. The power portion with the switch makes perfect sense, but i'm confused on where the Led wires attach to the trinket. I apologize if this sounds like a complete amateur level question but unfortunately that's what I am. Any help you can provide would be greatly appreciated.

0
maketvee
maketvee

Answer 1 year ago

Connect LED + to 3V pin, LED - to GND and LED IN to pin 4 (and change your code to output at that pin). If this doesn't work, you can connect LED + to the battery + instead to have a slightly higher voltage (LEDs are normally 5V).

0
dejones0315
dejones0315

Reply 1 year ago

Thank you for the quick response. LED + going to the battery was going to be my best guess. Still waiting on some pieces to arrive but I think i'll have a light array assembled for testing this evening. I'm looking forward to the end results, from what I've seen so far you've done a great job on this project. Thank you for sharing it

0
Lernin2MakeStuf
Lernin2MakeStuf

Question 2 years ago on Introduction

I checked the link for the Fusion files (.f3d), but couldn't find them. Where can I get the fusion files? Thanks in advance!

0
armybean
armybean

Question 2 years ago on Introduction

This is a gorgeous project. Which filament did you use? Looks like a bit glitter. I have been searching for this kind of filament.
Love it. Plan: Christmas 2020.

0
jxrgen
jxrgen

2 years ago

Wow, this is such a nice project. I guess that you are living in Berlin as the top of the tree resembles the Berlin TV tower :D
I don't know the outputs of the Trinket M0, but it is a good idea to connect a resistor at about 330 ohms in the wire from e.g. an Arduino and to the Din on the WS2812B and also a big capacitor over +5V/GND.
https://forum.arduino.cc/index.php?topic=554642.0

0
maketvee
maketvee

Reply 2 years ago

No, not Berlin ;-) You are right, I will add the resistor and cap to the instructions.

0
auto22car
auto22car

2 years ago

amazing, love it

0
h9392
h9392

2 years ago

WOW ! Fantastic design, electronics and 3-D printing ! And you answered one of my questions 'can I embed objects in a 3-D printed object ?' 'Yes !'

0
Penolopy Bulnick
Penolopy Bulnick

2 years ago

This is amazing! I just LOVE how you utilized the color change to embed the LEDs too!