Introduction: Christmas Ornament That 3D Prints Christmas Ornaments

About: I'm a content creator. I make open source projects and videos for said projects. My goal is to create free and open knowledge for everyone.

Every year I try to one up myself on how crazy of a Christmas ornament I can create. Last year it was a Christmas ornament that could play 90s christmas commercials. This year I had a crazy idea, what if I could build a Christmas ornament that could 3D print smaller Christmas ornaments. I had two weeks to design, print, build, and get it working! It actually prints! Amazing. The ornament is open source, and here is the process to building one. This is a highly customized piece, and explaining may be difficult, but it should get you started if you want to try and build your own. Its not simple!

Step 1: Watch the Video!

In the video I explain how the whole system works, show you some prints, and show you how to build it.

Step 2: Parts and Tools

You're going to need a 3D printer for this (funny because you're building a 3D printer), and also some knowledge in soldering surface mount components and electronics.

Parts:

  • Adafruit Feather M0 Datalogger (Adafruit)
  • 240 x 240 1.5" LCD (Adafruit)
  • Motor Driver TN (Adafruit)
  • Linear Stepper Motor removed from a DVD Drive (I don't remember the specific brand for mine)
  • Custom UV LED Board with LCD Connection - GitHub or PCBWay
  • BOM for PCB - FindChips
  • A ton of jumpers. - depending on your needs.
  • Plastic Threading Screws - M3.63 - M1.91
  • SD Card
  • 3D Printer Resin
  • Small Piece of Aluminum
  • Clear Paper Separators
  • Button connected to headers

Tools:

  • 3D Printer
  • Soldering Iron
  • Screwdrivers
  • Arduino IDE
  • Drill

Step 3: 3D Print the Files

Grab all of the files from Thingiverse, and start printing. This will take awhile, and there are some options here.

To get started, you need to print:

  • Ornament Ball Bottom
  • Ornament Ball Top
  • LCD Mount
  • CD Mount
  • Print Arm
  • Resin Cup Lower
  • Resin Cup Upper
  • Bed Support

The "CD Mount" will likely need to be customized to fit whatever DVD stepper motor you're using. You would have to be very lucky to find the exact one I am using(I can't even find a manufacturer part number!)

Step 4: Assemble the UV PCB

This board will mount under the LCD screen, on the "LCD Mount" 3D print facing up.

Step 5: Remove Backlight From LCD

These are super fragile, so good luck! Carefully peel the backlight away from the LCD, you'll see it coming off. I usually just snip the LED connection on the panel. The LCD should now have a mirror back.

Step 6: Solder Wires to the Stepper Motor.

Whatever stepper motor you're using(need to be bi-polar), you need to have some way to connect it to the motor driver, so I had to solder small wires to the 4 pins of the stepper motor. I used two different colours to show each coil inside.

Step 7: Wire Up Everything and Test!

If you go through the Arduino code, everything is defined where you need to connect each wire.

4 Motor Driver Wires, 2 UV LED Switches(on the UV LED Board), SPI Connection for the LCD. They are all labeled on the PCB.

You will also need to connect a button to ground and Pin 6 on the Arduino.

Also read about the motor driver on Adafruit to know how to get it working: https://learn.adafruit.com/adafruit-tb6612-h-bridge-dc-stepper-motor-driver-breakout

Step 8: Assemble the Resin Cup

Take the "lower resin cup" and "upper resin cup" prints, and cut out a piece of the paper separator, slide the two 3D prints with the separator is forced between them, this is where the resin will be held.

Step 9: Assemble the Christmas Ornament

Now that you have it working, start piecing everything together. Now this was designed very quickly, so you may want to change things to suit your own version.

I left the support material on the bottom of the lower Christmas ornament ball, that way it would still sit flat on the table. Start by adding the LCD Mount to the lower ball and managing the wires appropriately, they will go under the CD Mount. Screw it down.Screw down the CD Mount making sure the wires don't get in the way of the Motor.

You're going to have a fun time fitting everything. I ran out of time otherwise I would have made a custom PCB for the back, thats what happens when you only give yourself 2 weeks!

Step 10: Add the Images to the SD Card and Upload to Arduino

This is a bit of a process, best learned from the Youtube video I posted. Basically I use the Program NanoDLP to slice the Christmas Ornament STL files into PNG images, then I convert the PNG images to 24-bit BMP.

Place each individual print in a separate folder on the SD Card. In order to select each individual print you will have to change the name of the print in the Arduino Code.

Step 11: Aluminum on Print Arm

In order to get the prints to start I had to glue a piece of aluminum on the bottom of the the print support. I used super glue to just stick it on, its still working well.

Drilling holes in the bottom helps the resin flow in and out as it raises and lowers, which reduces the force required on the motor.

Step 12: Start a Print

In order to start a print you need to add a small amount of resin to the resin cup(so it won't overflow when its lowered), lower the print arm into the resin, and press the button, the arm will force itself lower, then raise up a little.

The method of positioning the arm is rather crude, since there are no limit switchs, it just lowers the arm until the motor stops, then it raises the arm slightly. The first layer will run the UV for 2 minutes, then the consecutive layers will all print for 1 minute. Each time a print finishes the arm attemps to raise up 100 steps, then lower back down until it hits the bottom layer.

Step 13: It Actually Works.

I will be honest. I'm writing this on Christmas eve, and I didn't think it was actually going to work. I was still going to publish a video, but the fact it can actually print things?! Amazing!

Step 14: Prints on the Tree!

Step 15: Support These Projects!

This project is completely open source. That means you can take all of the resources I have provided, and build your own, no cost necessary!

If you would like to support me and my efforts, consider subscribing to my YouTube:

http://bit.ly/SeanYTSub

and if you can spare it and think I have earned it, consider becoming a Patron on Patreon. They directly support these project and I can't thank them enough!

https://www.patreon.com/seanhodgins