LumiNAMA 2022
arduino christmas luminama lighting
LumiNAMA is a community driven initiative that aims to light up the downtown of North Adams, MA each holiday season. In late November, volunteers install lighting displays in the windows of businesses that have partnered with the community to spread light and holiday cheer in the winter months. The displays remain up until early January, and in between votes are cast by the community for best, brightest and most fun displays.
In 2022 I helped create and install a window display for the law offices of Campoli, Monteleone & Mozian on the corners of State & Main Street in North Adams. The idea behind our display was to create an image of North Adams, in miniature, set to a colorful display of lights representing all the holidays of the season.
To control the light show, I used an Arduino Mega. It’s breadth of I/O and relatively large storage capacity meant I wouldn’t have to worry about lack of pins and/or using libraries. The primary challenge of the project for me was knowing I would have limited to no access to the window display once installed. The hardware would need to function and the program would need to run error free for over a month.
I started by disassembling a few LED light strands and testing ways of controlling them with the Arduino. The store bought LED light strands (pictured immediately below) had control modules of their own hard wired in, enabling the buyer to switch between different lighting modes (flashing/fading/solid/chasing/etc). The modes were controlled with a momentary switch which I was able to control using an I/O pin from the Arduino and a MOSFET. By bringing the momentary switch to ground and keeping track of its state with an internal counter I could select specific modes to orchestrate the display. The lights seen below would eventually become the marquee lights in our miniature movie theatre.
The primary lighting of the display was done with cheap WS2811 RGB LED strands I found Amazon. It was important that the LEDs have drivers compatible with the Adafruit NeoPixel Library. I knew that with the library I would be able to create an elaborate display of lights with a manageable amount of code. The library is well documented, and has a large community around it too, which would make debugging easier. I ordered four of the strands and started to test different animations.
The four main buildings we constructed were made using a combination of recycled materials and store bought supplies, mainly foam board. Lots and lots of Amazon boxes. After a weekend of prototyping we combined the buildings, which were in construction, with the lighting elements. As buildings were finished, I retrofitted them with lights, testing and refining the lighting routines as we went.
As the buildings were finished, time was spent making sure we could assemble and disassemble them for transport to the window. I repeatedly tested to make sure the code could run for extended periods overnight and weekends, combing serial log output for possible crashes. Each new strand that was added meant more testing.
After working into the wee hours of the morning, on November 23rd we packed up the display and headed downtown for the final installation.
After a few hours, more testing, and a few final adjustments, our display was up and running.
The project was so fun to work on because it was both technical and creative. To the full credit of the creative director (not me 😂), we incorporated small but fun details about the town and each building into the display. The lighting, though following a predictable cycle from Christmas, to Hanukkah, to Kwanza and Pride ended on a dynamic scene of warm white light. Each cycle meant a new arrangement of windows would be lit until the next flurry of lights began, leaving no two runs alike.
The project was a blast to work on because it intersected so many interests, hobbies and things I enjoy like holidays, friends, community and volunteering. It was fun to drive by and see people looking at the display, and even better to know that I helped contribute to spreading a little holiday cheer.
The lighting display ran uninterrupted (aside from being off during the day) and error free until we disassembled it on January 3rd, a full 50 days! If you’re interested in the code powering the lights, and my usage of the Adafruit NeoPixel Library, you can see the source here.