Team Status Report for 9/26

Team Status Report for 9/26

This week, our team focused on component selection, physical design, ANC research, and planning the firmware architecture for the system. We continued evaluating microphones, speakers, the audio codec, processor, battery, and supporting components based on latency, power consumption, physical size, cost, and compatibility with the overall system. We also began work on the ADAU1372 audio codec breakout and spent significant time considering how the microphones, speakers, electronics, battery, and heating components could physically fit into a comfortable sleep mask and headband.

A major focus this week was understanding how we will implement active noise cancellation in software. We researched digital feedforward ANC systems using the FxLMS algorithm, including an existing implementation that performs the adaptive processing on an STM32. That implementation uses DMA to acquire audio while the processor performs the adaptive computation, demonstrating that an STM32-based software implementation is feasible. We also learned that latency and physical geometry are particularly important. In a feedforward ANC system, the propagation time between the reference microphone and error microphone must provide enough time for the system to generate the cancellation signal.

From discussions during our project meetings, we identified software ANC as one of the main technical challenges and focuses of our project. ANC is often performed using dedicated hardware or specialized DSP systems, while our goal is to perform the adaptive processing ourselves on an STM32. This requires us to manage the audio transfers, filtering, coefficient updates, and real-time deadlines in software. We therefore began planning a firmware architecture that uses DMA for continuous audio transfers and an RTOS to coordinate the high-priority audio processing with slower system functionality. Our current design separates a fast audio processing loop from slower thermal, battery, and system control tasks.

We also spent time investigating whether memory would limit the length or quality of the adaptive filtering we can perform. We considered adding an external memory chip to support longer audio histories. After further research, we decided against this approach because ANC is primarily a streaming workload and does not require storing long sections of raw audio. Our current plan is to store small DMA buffers, filter coefficients, and the recent sample histories needed by the adaptive filters in the STM32’s internal SRAM. The expected working memory is much smaller than storing raw audio continuously, which would require roughly 768 kB per second for four channels of 48 kHz audio stored as 32-bit words. Avoiding external memory also helps us avoid introducing additional memory access delay into a system where low latency is important for cancellation quality.

Physical and mechanical design was another major area of discussion this week. We considered the locations of the reference microphones, error microphones, speakers, electronics, battery, and heating elements. These decisions affect both comfort and ANC performance. Our current concept uses outside-facing reference microphones to measure incoming snoring, error microphones near the ears to measure the remaining sound, and thin speakers near each ear to generate the cancellation signal.  We also considered how the mask and headband can remain comfortable during normal sleep and side-sleeping while keeping the acoustic components in sufficiently consistent positions.

The largest risk to the project is achieving useful ANC performance while performing the adaptive processing in software. CPU utilization, end-to-end audio latency, filter length, convergence behavior, and the physical acoustic paths can all affect cancellation quality. To manage this risk, we plan to first demonstrate ANC for a single ear on a bench setup before expanding to two ears and integrating the system into the wearable. We will first test the basic audio path and a simpler filter, then implement FxLMS and measure latency, attenuation, convergence, and CPU utilization. This approach lets us determine whether our processing platform is sufficient before adding the remaining complexity of the full wearable.

Our overall system requirements have not changed significantly this week, but our implementation strategy has become more concrete. We decided against adding external memory and are instead planning around a streaming architecture using internal SRAM, DMA, and real-time software. We also now consider software ANC implementation to be one of the primary technical contributions and risks of the project. We are currently generally on schedule, although ordering the remaining components soon is important to prevent hardware availability from delaying integration. During the next week, we plan to finalize and order components, continue the physical design, make progress on the ADAU1372 breakout, and begin implementing and benchmarking the real-time audio firmware.

Part A was written by May, Part B was written by Soma, and Part C was written by Josef.

Part A: Public Health, Safety, and Welfare (May)

Our product is intended to reduce disruptive snoring noise experienced by someone sharing a sleeping space with a person who snores. Reducing nighttime noise may improve the user’s sleeping environment and support both physiological and psychological well-being. Because the device will be worn near the user’s head for extended periods, safety is also an important design consideration. We need to ensure that the speakers cannot produce unsafe sound levels, the battery and electronics do not create electrical or thermal hazards, and the heating element cannot reach unsafe temperatures. The physical design must also remain comfortable and avoid pressure points or components that could create a hazard during sleep. We are therefore considering audio limits, battery protection, temperature monitoring, thermal cutoff mechanisms, and physical comfort as part of the design.

Part B: Social Factors (Soma)

Snoring can affect both the person who snores and other people who share the same sleeping environment. Persistent nighttime noise can disturb a partner’s sleep and may create tension when available solutions require the person who snores to wear a device or change their sleeping behavior. Our system instead gives the person affected by the noise greater control over their own sleeping environment. Users also have different sleeping positions, head shapes, comfort preferences, and sleeping arrangements, so the physical design must accommodate reasonable variation between users. These considerations have contributed to our focus on creating a compact and comfortable wearable that does not substantially interfere with either person’s normal sleeping routine.

Part C: Economic Factors (Josef)

Economic considerations have affected several of our technical decisions. Our system requires multiple microphones, speakers, an audio codec, a processor capable of real-time signal processing, power electronics, a battery, and mechanical components, so component cost must be considered alongside performance. For example, the official ADAU1372 evaluation hardware would consume a large portion of our approximately $600 project budget, which motivated our decision to pursue a simpler custom breakout for prototyping. We also decided against adding an external memory chip when our research indicated that the required filtering and buffering should fit within the STM32’s internal memory. Avoiding unnecessary hardware reduces both cost and system complexity. For a future production version, greater hardware integration and purchasing components in larger quantities could further reduce the per-unit cost.