Overview
YouTube Video: https://www.youtube.com/watch?v=57s-rnjlolg
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
Page last edited March 08, 2024
Text editor powered by tinymce.
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.
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.
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.
Page last edited March 08, 2024
Text editor powered by tinymce.
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.
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 Bluefruit
- Connect Circuit Playground Bluefruit to your computer over USB and press the Reset button
- Open INFO_UF2.TXT, if the bootloader version is less than 0.6.1 then update the bootloader per this guide page.
- 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
- neopixel.mpy
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.
# SPDX-FileCopyrightText: 2019 Dan Halbert for Adafruit Industries
#
# SPDX-License-Identifier: MIT
# CircuitPython NeoPixel Color Picker Example
import board
import neopixel
from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService
from adafruit_bluefruit_connect.packet import Packet
from adafruit_bluefruit_connect.color_packet import ColorPacket
ble = BLERadio()
uart_service = UARTService()
advertisement = ProvideServicesAdvertisement(uart_service)
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.1)
while True:
# Advertise when not connected.
ble.start_advertising(advertisement)
while not ble.connected:
pass
while ble.connected:
packet = Packet.from_stream(uart_service)
if isinstance(packet, ColorPacket):
print(packet.color)
pixels.fill(packet.color)
Page last edited March 08, 2024
Text editor powered by tinymce.
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.
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.
Page last edited March 08, 2024
Text editor powered by tinymce.