These LED light boxes were developed as an experiment in product design and development. I have designed two variants. One works with 3x AA batteries, the other uses a 5v 2A plug-in power supply. The objective was to design a product from start to finish in a way that could be manufactured at home on a small scale, and sold in craft and art venues.
The design started with a Teensy 3.2 prototype with minimal components. I experimented with software algorithms for moving the lights in Processing and simple line graphs. Once I had refined the display algorithms enough that they looked convincing, I moved the circuit to an Arduino Pro Mini to keep costs low. This required a bit more optimization because my algorithms were using floating point math, which is very slow on the Arduino. Both designs ultimately used an Atmega 328 microcontroller for Arduino compatibility. In parallel, I designed a simple laminated enclosure to be laser and CNC cut using tools in my garage.
Customers requested a battery-powered model that could hang on a wall without an exposed power cord. This presented a few challenges to battery life and user interface. I settled on a single button solution, with a PAM2401 boost converter and latching soft power-on circuit. The soft power-on circuit needed to work at as low of voltages as possible to maximize battery life. Two key elements of this circuit were diodes with a sufficiently low forward voltage, and using an ADC input rather than digital IO pin on the Atmega to detect power button presses with battery voltages as low as 1.5v.
The software needed to be responsive to button presses, detect medium and long presses, and power up/down, so internally it relies on a state machine and time-based animation without delays. The battery powered models feature selectable on time of 15, 30, 45, and 60 minutes after a single press of 2 seconds or more. A press of 4 seconds or more allows the user to select and lock the color of the aurora. A press of 6 seconds or more shuts the unit down.
Once the software was roughed out, power supply and button circuitry was tested on a breadboard, I designed a PCB using Eagle and placed an order with Osh Park. I assembled these boards by hand and soldered them with an inexpensive hot air rework station. 4 of the 6 boards powered up and programmed successfully. The 2 non-working boards needed some rework to fix bridges or incorrectly placed components.