Overview

3D Printed Cauldron

In this project, we’re making a Bluetooth controlled light up cauldron. This 3d printed cauldron is designed to house Adafruit Circuit Playground Bluefruit.

Bluefruit NeoPixels

You can change the color of the LEDs with an iPhone using the Bluefruit App for iOS and Android. This uses the picker color from the Bluefruit LE connect app for iOS and Android. It’s free to download, and lets you change the color and brightness.

Circuit Playground Bluefruit

The Circuit Playground Bluefruit features the nRF52840 and it’s easy to use with Adafruit’s CircuitPython and Arduino.

Light Up Cauldron 

The bowl is 3d printed in PLA filament without any support material. The design features internal threads for screwing into the bottom half of the cauldron. All of the electronics are secured underneath the cauldron so it’s a nice little portable project. 

List of ingredients

Here's a list of things needed to build this project.

  • Dry Ice
  • 2oz Appetizer Cups (80mm/3in diameter)
  • Glow-in-the-dark Putty
  • Warm Water
  • Container with spout
  • Tongs
  • Superglue

Parts

Circuit Playground Bluefruit - ALPHA - Bluetooth Low Energy

PRODUCT ID: 4333
Circuit Playground Bluefruit is our third board in the Circuit Playground series, another step towards a perfect introduction to electronics and programming. We've...
$24.95
IN STOCK

Fully Reversible Pink/Purple USB A to micro B Cable - 1m long

PRODUCT ID: 4111
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also fully reversible! That's right, you will save seconds a day by...
$3.95
IN STOCK

Lithium Ion Polymer Battery - 3.7v 500mAh

PRODUCT ID: 1578
Lithium ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery...
OUT OF STOCK

Filament for 3D Printers in Various Colors and Types

PRODUCT ID: 2080
Having a 3D printer without filament is sort of like having a regular printer without paper or ink.  And while a lot of printers come with some filament there's a good chance...
OUT OF STOCK

Monoprice Inventor II 3D Printer with Touchscreen and WiFi

PRODUCT ID: 3897
The Monoprice Inventor II 3D Printer Touchscreen with WiFi is a perfect entry-level 3D printer with small footprint and reliable performance. It comes equipped with...
$650.00
IN STOCK

3D Printing

3D Parts

STL files for 3D printing are oriented to print "as-is" on FDM style machines. Original design source may be downloaded using the links below.

Slicing Parts

The bowl has a 1.5mm thick shell and it can be printed without any support material.

  • PLA filament 220c extruder
  • 0.2 layer height
  • 10% gyroid infill
  • 60mm/s print speed
  • 60c heated bed

Snap Fit Mount

The Circuit Playground PCB snap fits into the case. Insert the PCB at an angle to fit under the snap. Line up the stand offs with the mounting holes and press down to snap fit.

Top Cover

Use translucent filament for the top cover. The cover snap fits onto the bottom of the bowl and features a notch for passing a micro USB cable for power.

CAD Assembly

The components were modeled in the cad assembly. This animation shows where the electronics are mounted and how the parts fit together.

Container Size

Reference the inner dimensions of the bowl to gauge the size you'll needed for the water and dry ice. Use a water tight container like a plastic bottle or glass jar. We used a 2oz appetizer cup we found from a local party supply department store. 

Design Source Files

The project assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, SAT and more. Electronic components like Adafruit's board, displays, connectors and more can be downloaded from our Adafruit CAD parts GitHub Repo.

Glue Parts

You’ll need to glue some pieces to make the bottom half of the cauldron. You can use superglue to attach these two pieces together. 

Please be careful with superglue - it can instantly bond skin and should never, ever be near eyes. Best used with supervision.

Superglue

You’ll need to glue some pieces to make the bottom half of the cauldron. Use superglue to attach the PCB mount to the bottom half. 

Bottom Half

Use the mounting holes in the center to line up the parts. Firmly hold parts together while glue sets.

Design Source Files

The project assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, SAT and more. Electronic components like Adafruit's board, displays, connectors and more can be downloaded from our Adafruit CAD parts GitHub Repo.

Install CPB board

  • Orient the USB port with one of the notches.
  • Line up the mounting holes with the standoffs.
  • Insert the PCB at an angle to get underneath the snaps.
  • Firmly press down to snap fit the PCB into place. 

Install Top Cover

The Circuit Playground Bluefruit PCB snap fits into the mount. Tabs on the side keep the board in place without any screws.

USB Notch

The cover features a notch for passing a micro USB cable for power.

Install Bowl

The bowl screws onto the bottom half of the cauldron and is tightly fastened with a nice and seamless finish. 

 

USB Access

The micro USB port should be accessible through the hole on the back of the bowl. If the JST connector is visible instead, remove the Circuit Playground PCB and rotate it 180 degrees.

Plug-in Power

On the back of the bowl we have access to the micro USB port for power and programming.

There’s enough space at the bottom for a battery but you can also power the board over USB.

Software

Setup Circuit Playground Bluefruit with CircuitPython

We'll need to get our board setup so we can run CircuitPython code. Let's walk through these steps to get the latest version of CircuitPython onto your board. 

Setup Circuit Playground Bluefruit with CircuitPython

We'll need to get our board setup so we can run CircuitPython code. Let's walk through these steps to get the latest version of CircuitPython onto your board. 

Mu Python Editor

Mu is a simple Python editor that works with Adafruit CircuitPython hardware. It's written in Python and works on Windows, MacOS, Linux and Raspberry Pi. The serial console is built right in so you get immediate feedback from your board's serial output!

 Quick Start

  • Download the CircuitPython UF2 for Circuit Playground Express
  • Connect Circuit Playground Express to your computer over USB and press the Reset button
  • Drag-n-drop the CircuitPython UF2 onto the CPLAYBOOT drive - the drive will vanish and a new CIRCUITPY drive should appear.
  • Copy code and library files to the CIRCUITPY drive

Download Adafruit CircuitPython Library Bundle

In order to run the code, we'll need to download a library. The download linked below will contain all the libraries available for CircuitPython. To run the code for this project, we only need the Adafruit Circuit Playground and Adafruit Bluefruit Connect libraries. Unzip the library bundle and search for the library. Drag and drop it onto a folder named lib on the CIRCUITPY drive (create the folder if it is not already on the Circuit Playground Express).

Required Libraries 

  • adafruit_ble
  • adafruit_bluefruit_connect

Upload Code

Click on the download link below to grab the main code directly from GitHub. Rename the file to code.py and drop it onto the CIRCUITPY main (root) directory. The code will run properly when all of the files have been uploaded.

Use any text editor or favorite IDE to modify the code. We suggest using the Mu Python Editor. See below for more on Mu.

# CircuitPython NeoPixel Color Picker Example

import board
import neopixel
from adafruit_ble.uart_server import UARTServer
from adafruit_bluefruit_connect.packet import Packet
from adafruit_bluefruit_connect.color_packet import ColorPacket

uart_server = UARTServer()

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.1)

while True:
    # Advertise when not connected.
    uart_server.start_advertising()
    while not uart_server.connected:
        pass

    while uart_server.connected:
        packet = Packet.from_stream(uart_server)
        if isinstance(packet, ColorPacket):
            print(packet.color)
            pixels.fill(packet.color)

Foggy Slime

Glow Putty

We’ using this glow in the dark putty to create a slime that we can adorn along the rim of the cauldron.

This stuff has a thick clay like formulation so its not runny like regular slime which makes it less messy.

Add Putty

You can make it look like it’s dripping by adding little bits along the top and letting them droop over time, it almost looks like melted candle wax.

Never touch dry ice to your skin.

Dry Ice

When working with Dry Ice, you always need to be safe so handle this stuff with tongs. We got a pack of dry ice from our local grocery market.

Cups and Pouring Spouts

This appetizer cup holds about 2 ounces and fits nicely inside the bowl of our cauldron. Be sure to use hot water and container that has a pouring spout.

Dry Ice Fog

Here we’re using just a small amount of hot water. This lasts about a minute before the fog cuts out. So if you want to make the effect last longer, you’ll need to switch out with cold water. You'll want to be careful not to spill anything on your work surface.

Going Further

This could become much more sophisticated and control things like servos and motors to move things like the fog and slime. The onboard accelerometer, temp and light sensors could be used to change things like the colors of the LEDs or trigger sounds.

This guide was first published on Oct 06, 2019. It was last updated on Oct 06, 2019.