Back to Projects

Lightbox

View Code

Interactive LED system with custom PCB and real-time feedback.

Arduino Nano EveryPCB DesignC++PWM3D Printing
Lightbox PCB

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.