Back to Portfolio

Project

Smart Mirror

Co-designed an ESP32-based smart mirror platform with voice interaction, presence sensing, addressable lighting, AI integration, and a custom mixed-signal PCB.

Mar 2026 - Jun 2026

Technologies

ESP32KiCadPCB DesignEmbedded SystemsWi-FiI²S AudioPIR SensorWS2812B LEDsClass-D AmplifierPower RegulationAI IntegrationUser Research
KiCad PCB layout for the Smart Mirror showing the ESP32, amplifier, microphone, PIR sensor, LED and debug headers, power regulation, and routed copper layers
Custom two-layer Smart Mirror PCB integrating the ESP32, audio, sensing, lighting, power, and programming interfaces. Select the image to view it at full size.
KiCad schematic for the Smart Mirror with ESP32 connections, I2S microphone and amplifier headers, PIR and LED interfaces, status LEDs, controls, and 3.3 volt regulator
System schematic covering power, ESP32 I/O, audio, sensing, lighting, status, and debug connections.

Overview

Co-developed an interactive smart mirror for Northwestern University's EE 327 Electronic System Design 2 course with Luke de Souza. The system was designed as a hands-free home information hub that places digital content behind a two-way mirror and combines voice interaction, presence-aware activation, connected data, lighting, and AI-generated responses.

After evaluating a Raspberry Pi architecture, we moved the design to an ESP32 because its built-in Wi-Fi met the system's cloud-connectivity needs without requiring on-device AI. We integrated a PIR motion sensor, microphone, speaker with a Class-D amplifier, WS2812B addressable LEDs, and a display interface, then designed a custom KiCad schematic and two-layer PCB to consolidate the electronics.

The board provides 5 V input and regulated 3.3 V power, ESP32 programming and debug access, I²S audio connections, PIR and LED headers, status indicators, reset and input controls, and decoupling around the major subsystems. During bring-up, we traced degraded speaker output to shared power and ground paths with the higher-current LEDs, highlighting the importance of power-domain planning and grounding in mixed-signal hardware.

At the documented integration milestone, the LED strip, PIR sensor, microphone, speaker, Wi-Fi, and AI path had been implemented, while display software, physical mounting, and user testing remained in progress.

Project Context

This two-person EE 327 project explored a practical, voice-first smart-home interface behind a two-way mirror. Our design process combined component selection, user interviews, embedded integration, PCB design, and iterative architecture changes.

Key Features

  • ESP32 central controller with Wi-Fi connectivity for cloud APIs and AI services
  • PIR-based presence sensing for automatic activation
  • I²S microphone and Class-D-amplified speaker interfaces for voice interaction
  • WS2812B addressable LED interface and three status indicators
  • Custom KiCad schematic and routed two-layer PCB with programming and debug headers
  • 5 V input, regulated 3.3 V rail, reset controls, and local decoupling
  • User interviews used to prioritize simple, glanceable information and motion-triggered operation

Challenges

  • Revising the original Raspberry Pi concept around an ESP32-based architecture
  • Adding a Class-D amplifier after the speaker required more drive than the initial design provided
  • Diagnosing power and ground coupling between noise-sensitive audio circuitry and high-current LEDs
  • Balancing display information density with an uncluttered mirror experience
  • Coordinating display software, PCB completion, and mechanical integration within the course schedule

Results

  • Implemented and integrated the LED, PIR, microphone, speaker, Wi-Fi, and AI subsystems
  • Completed a custom system schematic and routed PCB for the ESP32-based architecture
  • Identified mixed-signal power integrity as the source of speaker interference during bring-up
  • Collected user feedback that shaped motion activation, information hierarchy, and customization goals
  • Documented remaining display, mounting, and user-testing work without overstating prototype completion