Rainbow Sunset

Sedona Thomas
5 min readMay 6, 2022

A stained glass/electronics art project for Professor Mark Santolucito’s Creative Embedded Systems (COMS 3930) Course in Spring 2022

Documentation: https://github.com/sedona-thomas/Rainbow-Sunset

Stained Glass Sunset

Overview

For this project, our class was tasked with designing a creative project using any of the skills we have learned this semester and our ESP32s. Over spring break, I decided to learn how to make stained glass to gain comfort with soldering and power tools, so I began designing my project on top of a stained glass art piece.

How It Works

My final piece involves a rainbow sunset stained glass piece with the ground connection of each embedded light built into the solder of the stained glass. The lights behind each panel are independently controlled by the ESP32 and progressively light up to a maximum brightness determined by the current ambient light. The lights behind the sun in the center are colored relative to the current temperature and their speed is controlled by the current humidity. All in all, despite many problems, my piece exceeded my initial artistic vision for the project.

Soldered Stained Glass Sunset

Designing the Enclosure

I had many issues with a lack of forethought about the enclosure, so were I to repeat the project, I would change many things. Right now, the LEDs are soldered to the back of the piece, using the stained glass solder as a ground, but my design has many wires being fed behind the solder and secured with hot glue. In an improved version, I would have chosen to use frosted glass rather than transparent glass to hide the wires and better diffuse the light. I would also consider incorporating the wires into the design of the piece. For example, I could have used the wires to create intentional shadow patterns behind the piece to incorporate the wires as much as the LEDs into the artistic design.

In-Progress Back of the Stained Glass Sunset

I would also consider using a shadowbox enclosure rather than mounting the piece directly on the wall. In its current form, the lead solder is completely exposed, and while this is common practice for stained glass art, it poses the risk that people touch the piece without immediately washing their hands. A shadowbox would also better allow the light from the LEDs to be reflected back through the piece and reduce the random shadows from the LEDs. This would also help to improve the enclosure for the ESP32 and sensors rather than a simple cardboard box.

Designing the Code

In my previous projects, I created classes for each of the sensors used, and this project extended upon these classes by adding new sensor and light classes. While I had initially intended to design a single class that would handle the functionality of the entire piece, I learned that some of the necessary controls in the LEDs and Neopixels had many scoping issues and I had to focus my handler classes on the individual temporary elements and not the piece as a whole.

Issues

While initially connecting all of the pieces, I ran into the issue of my device repeatedly restarting and never making it to the loop. After researching the issue, I eventually realized I was making the device control too many parts. When I commented out some of the parts of my piece and ran each component separately, the full program ran properly. After continuing to debug and test, I found that switching the GPIO pins allowed me to control multiple lights at a time and I eventually found a setup that worked with all of the sensors and lights. I am not entirely sure what the issue was with the endless restarts, but in my research, it seemed to be due to significant power draw from ports that could not support it.

I ran into many issues with scoping. For example, when I tried making a class to process the DHT sensor, I ran the read method inside of the JSON method but realized that there was a scoping issue with updating the temperature and humidity. Once I called the read method outside of the class at runtime, it updated properly. I also had a similar issue with the Neopixel library requiring the Neopixel variable to be a global variable.

Additionally, I ended up with a variety of injuries from cutting myself on the glass while learning and burning myself with the soldering iron. I also broke a few pieces including a photoresistor which caused a small puff of smoke. However, all in all, despite being unsure if I would be able to implement my initial vision for the project, I was able to get all of the intended pieces plus an additional sensor working through trial and error.

Final Thoughts

When starting this project, I simply wanted to learn how to do stained glass art, but throughout the project, I realized that I had learned all of the tools necessary to become a superuser at the Columbia Makerspace and that stained glass was my final additional tool. Throughout the semester, the whole class has preferred Barnard’s Design Center for its welcoming attitude toward students who want to learn new skills, and the class has felt unwelcome or uncomfortable in the Columbia Makerspace. Despite a wide variety of tools and materials, the Columbia Makerspace is focused on providing a space focused on engineering students. Because of this, I decided to take what I had learned throughout the semester and apply to be a superuser at the Columbia Makerspace. While the Design Center and Makerspace have many overlapping tools, each has its own set of unique tools and materials that all students should feel comfortable using.

Fittingly for an art piece inspired by the rainbow pride flag, this project has enabled me to lead by example to help make the Columbia Makerspace a more welcoming place for my fellow women in STEM and LGBTQ+ students as well as other underrepresented students in these kinds of spaces.

Special Thanks to Professor Mark Santolucito and the staff at the Barnard Design Center and Columbia Makerspace for all of their help!!!

--

--

Sedona Thomas

Student at Columbia University studying Computer Science and Human Rights through Columbia’s 4–1 Program