Overview
Glowing Cosplay Props
3D print a glowing prop inspired by Sonic the Hedgehog.
Use CircuitPython and Circuit Playground Bluefruit to make a remote controlled NeoPixel Prop!
Inspired by the Chaos Emerald, this 3D printed Emerald snap fits together and houses the Adafruit Circuit Playground Bluefruit.
Bluetooth Controlled NeoPixels
With Circuit Playground Bluefruit you can use the mobile app for iOS or Android to change the color of the LEDs over Bluetooth.
The color picker lets you change the colors and brightness so you can easily adjust the look of the emerald.
Smol, Medium and JUMBO
We designed 3 different sizes so they can be made on a wide range of 3D printers.
The emeralds are 3D printed without any support material using translucent PLA filament.
Use natural clear or ivory white translucent PLA for the best looking LED diffusion.
Batteries
There's a few batteries to choose from. The batteries listed below were tested to fit properly inside the 3D printed mount for the Circuit Playground Bluefruit board. Also pick up of of the battery chargers listed below
Page last edited March 08, 2024
Text editor powered by tinymce.
CircuitPython on Circuit Playground Bluefruit
Install or Update CircuitPython
Follow this quick step-by-step to install or update CircuitPython on your Circuit Playground Bluefruit.
Click the link above and download the latest UF2 file
Download and save it to your Desktop (or wherever is handy)
Plug your Circuit Playground Bluefruit into your computer using a known-good data-capable USB cable.
A lot of people end up using charge-only USB cables and it is very frustrating! So make sure you have a USB cable you know is good for data sync.
Double-click the small Reset button in the middle of the CPB (indicated by the red arrow in the image). The ten NeoPixel LEDs will all turn red, and then will all turn green. If they turn all red and stay red, check the USB cable, try another USB port, etc. The little red LED next to the USB connector will pulse red - this is ok!
If double-clicking doesn't work the first time, try again. Sometimes it can take a few tries to get the rhythm right!
(If double-clicking doesn't do it, try a single-click!)
You will see a new disk drive appear called CPLAYBTBOOT.
Drag the adafruit_circuitpython_etc.uf2 file to CPLAYBTBOOT.
Page last edited March 08, 2024
Text editor powered by tinymce.
Playground Color Picker
You can use your Circuit Playground Bluefruit with the Adafruit Bluefruit LE Connect mobile app to control the NeoPixel RGB LEDs on the CPB!
Installing Project Code
To use with CircuitPython, you need to first install a few libraries, into the lib folder on your CIRCUITPY drive. Then you need to update code.py with the example script.
Thankfully, we can do this in one go. In the example below, click the Download Project Bundle button below to download the necessary libraries and the code.py file in a zip file. Extract the contents of the zip file, open the directory examples/ and then click on the directory that matches the version of CircuitPython you're using and copy the contents of that directory to your CIRCUITPY drive.
Your CIRCUITPY drive should now look similar to the following image:
# SPDX-FileCopyrightText: 2020 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
# CircuitPython NeoPixel Color Picker Example
import board
import neopixel
from adafruit_bluefruit_connect.color_packet import ColorPacket
from adafruit_bluefruit_connect.packet import Packet
from adafruit_ble import BLERadio
from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
from adafruit_ble.services.nordic import UARTService
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
ble.stop_advertising()
while ble.connected:
if uart_service.in_waiting:
packet = Packet.from_stream(uart_service)
if isinstance(packet, ColorPacket):
print(packet.color)
pixels.fill(packet.color)
Connect to your board through the Adafruit Bluefruit LE Connect mobile app. If you need assistance, check out this page on installing and using the app.
Once connected, from the device menu, tap on Controller, then Color Picker. Choose a color from the dial and tap Select (Android) or Send selected color (iOS). The LEDs will light up in the color you chose!
Page last edited March 08, 2024
Text editor powered by tinymce.
3D Printing
CAD Parts List
There's three sizes of the emerald, smol, medium and large. The medium and large emeralds require a separate bracket for attaching to the PCB mount. All three sizes use the PCB mount.
- PCB-mount
PLA Filament
Use translucent PLA filament for the emeralds. This material is an off-white, often called "natrual clear" or "ivory white". It's slightly opaque and has great diffusion for LEDs.
Slice Parts
STL files for 3D printing are oriented to print "as-is" on FDM style machines. Parts are designed to 3D print without any support material.
Slice with Brim
Use a brim when printing the top half of the emerald. It's rather thin and can get knocked off the bed while printing. A brim with a minimum of 6 lines should be suffice.
Slice Line Width
Set the extrusion line width to 0.4mm with a line count of 2 shells. The emeralds are 1.2mm thick. This will print only 3 parameters making the walls of the model nice and clean.
Large Emerald Set
Dimensions are ~ 210mm x 210mm x 130mm
- emerald-lg-top
- emerald-lg-bot
- emerald-lg-bracket
CAD Assembly
The CPB snap fits into the PCB mount. The PCB mount is secured to the emerald bracket using M2.5 screws and hex nuts. The emerald bracket is secured to the bottom half of the emerald using M3 screws. A small lipo battery is fitted in between the Circuit Playground and the PCB mount.
Design Source Files
The project assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, STL and more. Electronic components like Adafruit's board, displays, connectors and more can be downloaded from the Adafruit CAD parts GitHub Repo.
Page last edited March 08, 2024
Text editor powered by tinymce.
Assembly
Install Battery
Place the battery in between the built-in standoffs. The power cable should be positioned near one of the openings.
Install Circuit Playground
Place the CPB over the mount and line up the standoffs. Orient the power port with the battery cable. Fit the pegs into the pads on the PCB. Press down to snap the tabs over the edge of the PCB.
Secure Bracket to Mount
Place the bracket under the PCB mount and line up the four mounting holes.
Insert four M2.5 x 6mm screws into the holes. Use M2.5 hex nuts secure the bracket to the PCB mount.
Secure Bracket to Bottom
Place the bracket over the built-in standoffs in the bottom half of the emerald.
Use M3 x 6mm machine screws to secure the bracket to the bottom half of the emerald.
Connect Battery
Plug in the cable from the battery into the port on the Circuit Playground Bluefruit.
Snap Fit
Get the two halves ready to snap fit together. Line up the grabbers on the bottom half with the nubs on the top half. Press together to snap fit closed.
To open, slightly squeeze together bottom half and pull halves apart.
Recharging Battery over USB
Use the Adafruit Micro-Lipo Charger to recharge the battery when it gets low. Be sure to only use this charger with batteries purchased from Adafruit.
Page last edited March 08, 2024
Text editor powered by tinymce.