Back to Portfolio

Project

Notiphones Haptic Response Module

Led the haptic response subsystem for smart headphones, integrating 500 Hz PWM motor control, acknowledgment input, status LEDs, power circuitry, and PCB layout around an ESP32-S3.

Jan 2025 - May 2025

Technologies

Embedded CESP32-S3PWMPCB DesignSchematic DesignKiCadBluetooth LEGPIOInterruptsLiPo BatteryHardware DesignOscilloscopeSystem Integration
KiCad PCB layout for the Notiphones prototype, showing the ESP32-S3, routed power and signal traces, response controls, motor connection, and antenna keepout
Routed Notiphones system PCB integrating the ESP32-S3, response controls, power circuitry, and motor interface. Select the image to view it at full size.

Project Files

Overview

Led the design and implementation of the Response Module for Notiphones, a Purdue senior-design project that helps headphone users remain aware of their surroundings. The system was designed to recognize a user's name and deliver a discreet haptic alert without interrupting audio playback.

I owned the subsystem schematic, component selection, embedded control logic, and integration of the vibration motor, acknowledgment button, and visual status indicators. The motor was driven by a 500 Hz PWM signal so its strength could be adjusted from the companion app while remaining noticeable and comfortable. A timed cutoff prevented indefinite operation, and either the physical acknowledgment button or an app command could stop the alert immediately.

I designed power, battery, and status indication behavior; created the response-subsystem schematic; contributed to the routed system PCB; and wrote embedded C control logic and interrupt handlers for the ESP32-S3. Testing used an oscilloscope and multimeter to verify PWM behavior, current draw, alert timing, button response, and safe vibration intensity.

During cross-subsystem integration, manual vibration requests, acknowledgment events, and vibration-strength updates traveled between the Flutter app and ESP32-S3 over BLE. Team measurements recorded 0.34-second manual vibration requests, 0.19-second acknowledgment messages, and 0.54-second strength adjustments.

The response hardware, app control, and BLE communication paths were operational in the final prototype. The personalized CNN-LSTM wake-word model could be trained and transferred, but it was not executed end-to-end on the ESP32-S3 because required TensorFlow Lite modules were still missing. The final system was therefore a functional haptic and communications prototype with remaining work in on-device ML deployment and fully integrated battery validation.

Project Context

Completed by Purdue ECE Senior Design Team 15, Notiphones paired an ESP32-S3, microphone, personalized wake-word model, Flutter app, and headphone-mounted response hardware. I led the Response Module and supported final PCB and cross-subsystem integration.

Key Features

  • 500 Hz PWM vibration control with app-adjustable intensity
  • Physical and app-based acknowledgment that immediately stops active alerts
  • Power, battery-level, and alert-state LED indication
  • Rechargeable 3.7 V LiPo power architecture
  • Custom schematic and routed PCB contribution in KiCad
  • ESP32-S3 embedded C control logic with GPIO and interrupt handling
  • BLE integration for remote triggering, acknowledgment, and strength control

Challenges

  • Balancing perceptible haptic feedback with comfort and power consumption
  • Debouncing acknowledgment input and coordinating timed alert state transitions
  • Routing a compact mixed-signal PCB around the ESP32-S3 antenna keepout
  • Integrating independently developed response, BLE, app, and ML subsystems
  • Completing on-device TensorFlow Lite support for the wake-word model
  • Validating battery performance in the fully integrated final assembly

Results

  • Demonstrated reliable motor activation, timed cutoff, and immediate acknowledgment stop
  • Verified stable 500 Hz PWM control and status-indicator behavior
  • Met sub-second integrated control-message targets: 0.34 s trigger, 0.19 s acknowledgment, and 0.54 s strength update
  • Completed and reviewed the system PCB layout for continued hardware development
  • Validated the response hardware, BLE control, and app interaction while documenting remaining ML and battery work