This repository contains project documentation and source for the CHAT Mask, a head-worn spectrogram display system for researchers of The Wild Dolphin Project.
The project work represented here was completed by Group 8 of the Fall 2025 CS4605 course, "Mobile and Ubiquitous Computing," at Georgia Tech. The project was mentored by Professor Thad Starner, Charles Ramey, and Dawson Pent.
Engineering documentation
- Wiring schematic (
./schematic.pdf) - Arduino software project (
./DolphinMask) - Integration CAD (Onshape)
- you may have to clone the document to have edit access
Project documentation
The project is motivated by lessons learned during deployment of the original CHAT system. In particular, it was difficult for the system to detect temporal- and frequency-shifted imitations of synthetic whistles, or click-train imitations, as discussed in the team's "Imitation of Computer-Generated Sounds by Wild Atlantic Spotted Dolphins (Stenella frontalis)" paper. Researchers are able to visually classify these dolphin communications from spectrograms in post-mortem review of the data. Enabling this classification near-real-time in-water, necessary to close the communication feedback loop, is the driving goal of the CHAT Mask.
More background is available in ./documentation-resources/project-deliverables/, which contains the reports for the coursework portion of this project.
The CHAT Mask design uses the Galileo HUD Hands-Free Computer from Scubapro as a starting point for hardware. This dive computer addresses several design constraints as a proven underwater headworn display, including that of waterproof-ness, mounting/comfort, and luminescence.
The first iteration of the CHAT Mask is intended to be a prototype, and features off-the-shelf parts instead of a custom PCB.
We keep the housing, optics, and input (combination button/rotary encoder) components from the Galileo. We replace the main circuit board of the Galileo, which contains compute, display, and charging hardware in a nicely-modular fashion.
The Galileo uses a FFC ribbon cable to connect its computer to the battery, button/encoder, and the external USB interface. This pinout has been reversed and documented on the wiring schematic. There are 4 pins for the USB interface, 2 for the battery, 2 for the switch, and 2 for the rotary encoder (likely EC11 rotary encoder w/ switch).
See ./documentation-resources/galileo-images/ for teardown images.
The TinyScreen OLED TinyShield display was chosen because it features the same display as the Galileo hardware, the UG-9664HDDAG01. The Proto Terminal Blocks TinyShield is chosen to breakout pins, only because it was already available in the lab.
The Teensy 4.0 microcontroller is chosen for its small form-factor but high compute power, deemed necessary for real-time spectrogram computation and future detection/segmentation.
The Adafruit LiIon/LiPoly Backpack is chosen as the charging circuit for its compact form-factor.
The microphone requires the most prototyping. The design takes inspiration from the HydroMoth from Open Acoustic Devices, used for recording by The Wild Dolphin Project, and features an internally-mounted microphone with the intent of picking up audio transmitted through the housing of the Galileo. A major goal of the first prototype of the CHAT Mask is to determine whether audio captured in this manner will be acceptable.
The prototype uses a microphone breakout board from Sparkfun, whose gainstage is specifically marked with a frequency response range with an upper limit of 19.7KHz (probably insufficient for dolphin vocalizations). As such, a custom microphone board may be necessary.
The internally mounted design greatly simplifies the hardware work necessary to power and communicate with an externally mounted microphone in a waterproof manner. The original CHAT system uses SQ25 hydrophones, and boards from the UMIK-2 product for phantom power and ADC.
A wiring schematic for these components is available at ./schematic.pdf.
The KiCad project source for this schematic is at ./kicad-schematic.
Initial measurements show that these measurements can be fitted inside the Galileo with no modification to its housing. See this Onshape document to see the progress on integrating and mounting these components.
The Arduino project for this library, used to flash the prototype's Teensy, is available at ./DolphinMask/.
Design documentation is available at ./software docs.pdf.
Prototype: put everything into the Galileo!
- CAD: develop integration & mounting (3d printed?) for components
- prepare components for integration
- Teensy 4.0's button will have to be removed to keep the component low-profile
- Proto Terminal Blocks TinyShield will need to be trimmed, or the Proto Board TinyShield may be used if ordered with both connectors and the Male connector is desoldered
- the LiIon/LiPoly backpack's JST connector will have to be desoldered
- mount and solder everything together!
Software:
- tune gains, adjust spectrogram display colors
- receive input from the Galileo input components
- support seeking back in time by buffering past audio
- future features
- "power off" mode
- whistle detection & automatic segmentation/saving
- export saved audios via USB