Overview
In this project we’re 3D printing a Dragon Lamp!
This dragon was inspired by Game of Thrones and actually has the Night King riding on its back! It was designed by the 3Demon team and it's a very detailed model with a high polygon count.
It comes as a kit with different versions. The flame is hollow and designed to fit over a light bulb. The flame is printed in translucent filament to better diffuse the LEDs.
We’re using the Circuit Playground Express to light it up and with its on-board NeoPixel LEDs you can make it look like a real flame!
You can change the colors or program your own animations using CircuitPython. In this guide, we'll get started with tips on how to print without supports and example code for the Circuit Playground Express!
Page last edited March 08, 2024
Text editor powered by tinymce.
Circuit Diagram
USB Power
The Circuit Playground Express can stay connected via USB power from either a wall adapter or computer's hub. This allows the board to stay lit as long as you want (nightlight mode anyone?). The Dragon flame has a cutaway to accommodate for a USB cable. A LiPo battery is optional and can be tucked in between the Circuit Playground Express and the 3D printed flame.
Page last edited March 08, 2024
Text editor powered by tinymce.
Code
Programming
This guide shows how to install Circuit Python on the Circuit Playground Express. The example code provided below is by Phillip Burgess in the Jack-O-Lantern project.
Install CircuitPython
The Adafruit Circuit Playground Express ships with CircuitPython but lets go ahead and update it to the latest version. It's super easy with the circuitpython.org website, just click the link below to launch the page. There you can choose to install stable release or beta.
Quick Start
- Connect board to computer via a known good USB and double press the reset button.
- Download circuitpython UF2 and upload to the CIRCUITBOOT drive.
- Open CIRCUITPY drive and upload the required libraries (listed below) and code.py
Adafruit Circuit Python Libraries
Download the Circuit Python library bundle and unzip the folder. Create a new folder in the CIRCUITPY drive and name it "lib". The following libraries are required to run the code properly. Double check to ensure all of the files and folders are inside the lib folder on the CIRCUITPY drive.
- neopixel.mpy
Demo Code
In this project we utilized the Jack-O-Lantern Pumpkin code as is, but you can modify the color and brightness if you wish.
# SPDX-FileCopyrightText: 2018 Phillip Burgess for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""Jack-o'-Lantern flame example Adafruit Circuit Playground Express"""
import math
import board
import neopixel
try:
import urandom as random # for v1.0 API support
except ImportError:
import random
NUMPIX = 10 # Number of NeoPixels
PIXPIN = board.D8 # Pin where NeoPixels are connected
STRIP = neopixel.NeoPixel(PIXPIN, NUMPIX, brightness=1.0)
PREV = 128
def split(first, second, offset):
"""
Subdivide a brightness range, introducing a random offset in middle,
then call recursively with smaller offsets along the way.
@param1 first: Initial brightness value.
@param1 second: Ending brightness value.
@param1 offset: Midpoint offset range is +/- this amount max.
"""
if offset != 0:
mid = ((first + second + 1) / 2 + random.randint(-offset, offset))
offset = int(offset / 2)
split(first, mid, offset)
split(mid, second, offset)
else:
level = math.pow(first / 255.0, 2.7) * 255.0 + 0.5
STRIP.fill((int(level), int(level / 8), int(level / 48)))
STRIP.write()
while True: # Loop forever...
LVL = random.randint(64, 191)
split(PREV, LVL, 32)
PREV = LVL
More Projects!
Check out these projects below, they're all using Circuit Playground express.
Project Examples
Page last edited March 08, 2024
Text editor powered by tinymce.
3D Printing
3D Printed Parts
The parts in this kit are designed to be 3D printed with FDM based machines. STL files may need to be reoriented and cut to print without supports. The smaller version of the dragon can print as one piece with supports. Reference the suggested settings below.
Two dragon options are available to download. One is a free version of the dragon model. A second paid version includes multiple flames and sizes of the dragon and flames.
Settings
Use these settings as reference. Values listed were used in Ultimaker's CURA 3.X slicing software.
- 0.2mm Layer Height / 0.4mm nozzle
- 0.38mm Line Width (inner & outer widths)
- 70mm/s printing speed
- 20% infill
- Supports: No
- Brim: 7mm
Filament Colors
Here are the two filament colors used in this project. To diffuse the flames we used Translucent PLA. The rest of the dragon's body is printed in black glitter infused PLA, Vertigo Galaxy, by Fillamentum.com
Page last edited March 08, 2024
Text editor powered by tinymce.
Assemble
Third Helping Hands
We utilized helping hands to stabilize and align parts while the glue dries. These have ball joints so you can position things in whatever orientation you need. With the wing span at this scale, those helping hands really did help out on this one.
We glued the parts together with super glue using with a fine tip – this gives finer control for those smaller pieces. We'll also used 220 grit sandpaper the level sections were parts meet, this will help the parts adhere evenly.
We'll start by gluing the head to the body. Allow the parts to dry for at least 30 minutes and then continue gluing the tail to the body.
We printed the split version of each wing to eliminate the need for supports. We'll need glue each wing half together first, before gluing each completed wing to the body.
Add CPX
Finally on to the fire!
You can power the Circuit Playground over USB, so you can plug it into a wall adapter or USB hub. The flame has a little slit on the back for a USB cable.
The dragon's center of gravity works much like one those balancing bird sculptures. The mouth has a little opening and fits over the tip of the flame so you don’t have to glue it, and it is easy to take it off but you wouldn’t want it to fall off.
Wall Flame
The wall flame part attaches to a flat head screw that is firmly mounted on a flat wall. The slot at the base of the flame slide onto the screw with the tip of the flame facing up. To attach the dragon, we'll gently pass the flame tip into the dragon's mouth and slightly rotate until they can both balance. To illuminate the flame, we used UV NeoPixels near the wall. The translucent PLA is UV reactive!
Page last edited March 08, 2024
Text editor powered by tinymce.