Lightbox
View CodeInteractive LED system with custom PCB and real-time feedback.

Overview
Constructed an interactive LED lightbox system powered by an Arduino Nano Every. The project involved designing a custom single-sided PCB to route power and signals to the LED array, and implementing a C++ firmware based on a finite state machine framework to control lighting patterns via PWM.
Key Challenges & Solutions
Single-Sided PCB Design Constraints
To reduce manufacturing complexity, I designed the PCB with only single-sided traces. This required careful component placement and routing strategies to avoid jumper wires while ensuring all off-board components (switches, potentiometers) had proper socket connections.
State Machine Architecture
Instead of blocking `delay()` calls, I implemented a finite state machine (FSM) to handle concurrent tasks. This allowed the 'heartbeat' LED to blink at 1Hz continuously while the main 'eye' and 'nose' LEDs responded independently to user inputs from the potentiometers.
Mechanical Integration
Designed a 3D-printed enclosure modeled after a Gameboy case with panel-mounted controls. I used heat-set threaded inserts for secure assembly and ensured all internal wiring was strain-relieved to prevent disconnection during handling.
Outcome
The final device is a robust, standalone unit that reliably runs complex lighting animations and responds instantly to user interaction.