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.

Soma’s Status Report for 9/26

This week, I focused on component selection and began work on a breakout board for the ADAU1372 audio codec. I researched the supporting components and interfaces required to connect the codec to our STM32 development platform and considered how the codec will support the microphone inputs and speaker outputs required by the ANC system. The breakout board will let us characterize the audio path and its latency before integrating the complete wearable.
I also contributed to our investigation of the ANC architecture and physical design. We reviewed research on digital feedforward ANC using the FxLMS algorithm and discussed how microphone and speaker placement will affect the real-time cancellation loop. We also considered how the electronics, battery, speakers, microphones, and heating components can be arranged in a comfortable sleep-mask/headband form factor.
Our progress is generally on schedule, but completing and ordering the breakout board and other components soon is important to avoid hardware delays. Over the next week, I plan to continue the ADAU1372 breakout design, finalize its supporting components, and prepare it for fabrication while contributing to the mechanical design of the prototype.

Josef’s Status Report for 9/26

This week, I focused on researching the firmware and real-time software architecture for implementing ANC directly on the STM32. I studied digital feedforward ANC implementations using FxLMS and investigated how we can structure the processing around DMA-driven audio transfers and an RTOS. One of our main technical challenges is that commercial ANC is often implemented using dedicated hardware or DSP functionality, whereas our goal is to implement the adaptive cancellation algorithm ourselves in software. I therefore focused on the timing, buffering, computation, and scheduling requirements needed to keep the feedback loop operating in real time.

I also investigated the memory requirements of the ANC algorithm. We initially considered whether an external memory chip could allow us to maintain much longer audio histories, but decided against this direction because the ANC workload is fundamentally streaming and additional memory-access latency could work against the low-latency requirements of the cancellation loop. Instead, our current plan is to maintain small DMA buffers and only the recent sample histories required by the adaptive filters. This also makes the RTOS and DMA architecture especially important, since audio must continuously move through the processing pipeline without missing deadlines.

My firmware work is currently on schedule, although the software implementation will be one of the major technical risks of the project. Over the next week, I plan to begin implementing the RTOS-based firmware framework, DMA audio buffering, and the initial processing pipeline so that we can benchmark CPU utilization and latency before implementing the complete FxLMS algorithm.

May’s Status Report for 9/26

This week, I focused on researching and selecting components for our active snore-cancellation system. I compared different options for the microphones, audio codec, speakers, processor, power system, and other supporting components while considering their latency, power consumption, physical size, and compatibility with the rest of the system. I also spent time considering the physical and mechanical design of the wearable, including how the microphones, speakers, battery, heating elements, and electronics can be positioned while keeping the mask comfortable for sleeping and especially for side-sleeping.

I also contributed to refining the overall system architecture as we learned more about the constraints of implementing ANC. In particular, our research reinforced that the placement of the reference microphone, error microphone, and speaker is closely tied to the effectiveness and latency of the cancellation loop. Our current design therefore treats the physical geometry and electrical design as interconnected problems rather than designing the enclosure only after the electronics are complete.

My work is currently on schedule, although we need to finalize and order several components soon so that hardware availability does not delay integration. Over the next week, I plan to finalize the remaining component selections, help place our initial orders, and continue refining the physical arrangement of the wearable around the selected components.

May’s Status Report for 9/19

This week, I focused on the CPU selection and the general computing requirements for the system. I finalized the STM32H742 as our main processor and selected a development board that we can use for early experimentation. I also looked into how the processor would interface with the audio codec, particularly using SAI and DMA to continuously move audio data with minimal CPU overhead. Since the ANC processing is relatively focused, I also investigated using a bare-metal architecture rather than an RTOS. Finally, I considered power consumption and processing requirements to make sure the CPU provides enough performance for real-time audio processing without unnecessarily increasing battery usage.

Soma’s Status Report for 9/19

This week, I focused on identifying the current market for similar products and analyzing the characteristics of snoring noise. From the frequency analysis, I found that snoring contains frequency components extending much higher than we initially expected, reaching up to around 18 kHz. This may require us to reconsider some of our original system parameters and bandwidth requirements. I also researched possible form factors and battery options for the device. In particular, I looked into the safety concerns associated with LiPo batteries, since battery placement and protection will be especially important for a wearable device that will be used close to the user.

Josef’s Status Report for 9/19

This week, I focused on the PCB fabrication side of the project. I created an initial estimate of the PCB manufacturing cost and started drafting the PCB designs. One of the main challenges was working with flexible PCBs, since I had not designed with them before. I had to spend additional time researching flex PCB constraints, materials, and layout considerations compared to standard rigid PCBs. Despite the learning curve, I was able to make progress toward a preliminary design and a more realistic estimate of the fabrication requirements and cost.

Team Status Report for 9/19

This week, we made progress on both the hardware design and the characterization of our target noise. We began working on the bill of materials (BOM), finalizing our CPU and development board selections while narrowing down candidates for the audio codec and speakers. With the major hardware components becoming more defined, we are preparing to begin PCB design soon.

We also analyzed the frequency spectrum of snoring to better understand the requirements for our active noise cancellation system. Our initial assumption was that most relevant snoring noise would be concentrated at relatively low frequencies. However, our analysis showed that snoring can contain frequency components extending up to approximately 18 kHz. This is significantly higher than we initially expected and may require us to increase some of the bandwidth and sampling-rate parameters in our original system design. Moving forward, we will use these findings to refine both the hardware specifications and signal-processing requirements of the system.