Skip to content

Repository files navigation

Embedded LED Controller & Enclosure Design

A robust, interrupt-driven embedded system built with the Arduino/Atmel AVR platform, featuring custom PCB design, 3D-printed mechanical housing, and comprehensive data validation.

System Overview

This project implements a multi-channel LED controller with real-time user interaction via physical controls. It was designed, prototyped, and tested as an integrated hardware-software solution, demonstrating core competencies in embedded systems engineering.

Key Features

  • Dynamic Control: Real-time adjustment of LED brightness (PWM) and blink frequency (5–10 Hz) via precision potentiometers.
  • Multitasking Architecture: Non-blocking state machine framework allowing simultaneous execution of "heartbeat" status and event-driven LED sequences.
  • Integrated Design: Custom PCB layout paired with a functional 3D-printed enclosure featuring panel-mounted controls.
  • Data-Driven Validation: Quantitative analysis of system performance using statistical methods.

Technical Implementation

Firmware Architecture

The firmware is built on an asynchronous, event-driven model to ensure responsiveness and timing accuracy.

  • State Machine: Manages IDLE, READ_VOLTAGE, and RUN_LED states to handle temporal sequences without blocking the main loop.
  • Interrupts: Utilizes hardware interrupts for the trigger button to ensure immediate system response regardless of the current processor load.
  • PWM Control: Implements Pulse Width Modulation for flicker-free brightness adjustment of the "eye" LEDs.
  • Timing Management: Uses millis() for non-blocking delays, allowing the "heartbeat" LED to maintain a steady 1 Hz frequency while other processes execute.

Hardware & PCB

The hardware stack focuses on reliability and modularity.

  • Microcontroller: Arduino Nano Every (MegaAVR architecture).
  • PCB Design: Single-sided board optimized for panel-mounted integration. All external components (switches, pots, LEDs) are connected via standard 1x2 and 1x15 headers.
  • Power Management: 9V battery source with integrated SPST toggle power switching.
Component Part Number Role
Arduino Nano Every ABX00033 Central Processing Unit
Push Button PS1024ALRED Sequence Trigger
Toggle Switch SW-T3-1A-A-A3-S1 Master Power
LED PM5RD Visual Indicators
10k Potentiometer PDB181-E420K-103B Analog Control

Mechanical Design

The system is housed in a custom-designed enclosure, modeled in CAD and 3D printed to include:

  • Secure Mounting: Dedicated internal standoffs for the PCB and battery.
  • Ergonomics: Panel-mounted potentiometers and switches for tactile user interaction.
  • File Access: CAD source files and 3D models are located in the cad/ directory.

Testing & Validation

System performance was verified through rigorous testing, documented in the technical report.

  • Linearity Analysis: Quantified the relationship between potentiometer rotation and output (brightness/frequency).
  • Timing Accuracy: Validated the 1 Hz heartbeat stability using a 95% confidence interval analysis.
  • Reliability: Confirmed state transition consistency and interrupt debounce performance.

Project Structure

├── cad/                # 3D models and CAD screenshots
├── circuit/            # KiCad PCB project files
├── src/                # Firmware source (C++)
├── testing/            # Jupyter notebook for statistical analysis and raw data
├── platformio.ini      # Build configuration
└── README.md           # This file

Developed as a demonstration of embedded systems integration.

About

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

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages