Saturday, November 25, 2023

Exhibit: Star Spectra 2.0

Star Spectra 2.0 with Designer Stephanie Delancey and myself

Quick note: Opinions expressed on my blog are my own and do not necessarily reflect the Pacific Science Center.

I've been in the Exhibits department with Pacific Science Center for over a year (come visit!!), and finally finished my first redesign of an older exhibit.

If I remember the schematics correctly, Star Spectra was designed in the late 80s or early 90s. It was designed to teach guests that cold stars are red, and hot stars are white. Because this was before the advent of  blue LEDs, they left out the fact that blue stars were the hottest of them all. It was built using incandescent light bulbs. Here's a shot of it:

Original Star Spectra

It had seen better days, and the circuitry was eating incandescent light bulbs like popcorn. I was ecstatic to be asked to work with our design manager, Stephanie Delancey, and create the new version! This would be my first time working with an Arduino to make something. I've done other things in Circuit Python, but Arduino is more responsive and takes up less memory. So, I got to learn Arduino from scratch. I'm very happy to have the support to do things like that on the job.

The First challenge was to find a way to make a gradation that went from red, orange, yellow, white, and blue, while skipping green. There is a TON of code for rainbows online. And why not? Rainbows are awesome and they look pretty on just about anything, and they show off what RGB LEDs can do! But green stars don't really exist, so it couldn't be part of our exhibit. Coming from an art design background, the easiest way for me to solve the problem was to start by making the gradient in Affinity Photo and then observing what was going on in the gradient by using the eyedropper. I then turned that image into a graph for each color. Here's the result:

Art Major Does Math! (typo on right, should say 1024)

After that, I was able to figure out several ways to make this gradient in Arduino. I first did it with a series of if statements, but then a FX professional friend in the game showed me another way that used a lot less lines of code.


Afterwards, I experimented with illuminating spheres. I was able to find some opaque Christmas tree ornaments that lit up really well from an Adafruit ringlight. Results:


Cheap Ornaments cut in half. Lego characters for scale.

But ultimately, Stephanie wanted to go in another direction. She was hoping to have a flatter display. So, I tested the same LEDs with Lighting White from Tap Plastics. I used a PVC pipe to prevent light leak, and the results were really good!

Scissors and Hersey's Kiss wrapper for scale


With this knowledge and Stephanie's design notes, I built a protoype in TinkerCad. It's free, I know how to use it, and we had limited time to get this done. With it, I was able to overcome most design errors. (If I was to redesign it, it would still add certain reinforcements to the box so it doesn't sag when I open it up for maintenance)



From this, my coworker Alexa Lewis started building the box, and I started working on the code and circuitry. Arduino is a lot more strict than Python! But, thanks to help from a coworker, friends, the internet, and yes, even ChatGPT for two sections (I had to correct its mistakes, but it told me why it wrote things a certain way which was super helpful!), I was able to to get the code done. I got to borrow an empty office while coding, and was very happy to find my very own mini ducky in there! Good Omen:

Inspirational Ducky. Great for debugging!! Arduino Uno for scale

Afterwards, I moved onto wiring everything up. I had some practice soldering together guitar parts, but this was a lot more delicate! I was REALLY happy to find a single power supply that output 5 VDC for the LEDs and 12 VDC for the Ardunio Uno. Total win!

I was nearly done, but still had to make the control knob. I was planning on using a guitar knob, but I knew that it would wear out or break quickly. I was mentioning this to a friend at their going away party, and their friend offered to donate a rotary encoder from a decommissioned CNC router!! This thing is built like a tank. It took a little more code, but it was SO worth it! It feels great and is very sturdy:

Donated Rotary Encoder


Encoder in its new housing with a Molex connector

And with that, and a bunch of more work building onto the removable board, and we were done!

Almost... Turned out that the graphic's words were dark (see top image), and needed backlit. With very little time left, I went to a local craft store and bought LED fairy lights. They plugged right in:

All the things. Glove, stapler & gaffer tape roll for scale

Back side of board. Power supply is on this side to protect LEDs from heat

I was honored to be asked to build this and am looking forward to making more exhibits soon!