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.
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.
- 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.
The firmware is built on an asynchronous, event-driven model to ensure responsiveness and timing accuracy.
- State Machine: Manages
IDLE,READ_VOLTAGE, andRUN_LEDstates 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.
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 |
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.
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.
├── 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.