Chat Mask main image

Chat Mask

Fall 2025
C++ / ArduinoTeensy 4.0KiCADEmbedded Signal Processing
GitHub LogoView Github RepositoryReport Logo LogoView Report

Problem

The Wild Dolphin Project uses a wearable computer (CHAT) to emit and detect computer-generated sounds meant to mimic dolphin whistles. In practice, dolphins respond with transposed, distorted, or click-based imitations that automated systems fail to recognize. Researchers must manually review spectrograms after a dive, making real-time interaction impossible. CHAT Mask solves this by giving divers a live spectrogram directly inside their dive mask.

System Overview

CHAT Mask is a head-mounted underwater display integrated into a SCUBAPRO Galileo HUD. It records underwater audio, processes it on-device, and displays a scrolling waterfall spectrogram in near-real time so researchers can visually identify dolphin vocalizations while swimming.

Hardware Architecture

  • Analog NEMS microphone mounted inside the Galileo housing for waterproof audio capture
  • Teensy 4.0 microcontroller for high-speed DSP and FFT computation
  • TinyScreen 96×64 RGB OLED display driven over high-speed SPI
  • Internal Li-ion battery with charging via Galileo’s USB interface
  • Rotary knob and button from Galileo reverse-engineered for user input

Signal Processing Pipeline

Audio is captured, normalized, and passed through a high-pass filter to remove ocean noise. The cleaned signal is transformed using a 256-point FFT to maintain real-time performance, log-scaled for contrast, and downsampled to match the low-resolution OLED display.

Real-Time Rendering

  • FFT bins mapped to colors and displayed as a scrolling waterfall spectrogram
  • Ring buffer shifts previous columns instead of recomputing FFTs to improve performance
  • Log-scaled intensity improves visibility of faint dolphin whistles
  • Display shows ~1.75 seconds of audio at a time at 96×64 resolution

Why 256-Point FFT

Although 1024-point FFTs provide higher frequency resolution, FFT runtime scales as O(N log N). A 256-point FFT was chosen because it runs about five times faster, enabling smooth real-time visualization without dropped frames on the embedded processor.

Engineering Achievements

  • Live spectrogram running on embedded hardware with no dropped frames
  • Fully soldered prototype with microphone, display, and Teensy integrated
  • CAD models created for the Galileo interior to enable future waterproof assembly
  • Reverse-engineered Galileo pinouts for display and knob input
Chat Mask image 1Chat Mask image 2Chat Mask image 3