1. Project Introduction

1.1 Summary

In this project, we designed a real-time sound localization system using a Raspberry Pi Pico and three microphones. Audio from each of the MEMS microphones was continuously sampled at ($50\,\mathrm{kHz}$) via the Pico’s DMA engine.

Each channel’s data is then streamed into a rolling buffer. When the energy in the buffer reaches a certain threshold, the software performs cross-correlations between the microphone pairs to estimate the time differences between the audio arrivals.

These estimates are averaged over time to reduce the impact of noise. Using the delay estimates, a heat map is drawn by comparing the expected delays from each location to the estimates calculated by our cross-correlation.

The entire processing chain-from sampling to buffering, correlation, and VGA drawing-executes on the Raspberry Pi Pico.

1.2 Motivation

Our motivation was a combination of passion for signal processing and demonstrating the capabilities of low-cost hardware in audio processing. The localization system has many applications, from robotics to art installations. In a world in which there is an increasing number of applications requiring many cheap distributed sensors, there is a need for the development of algorithms capable of running on cheap, low power, hardware.

Our project implements audio localization on system whose total BOM is under $20, with a localization accuracy comparable to much more expensive systems. The algorithms is run purely on the Pico, eliminating the need for a dedicated DSP chip. Combined with the Pico’s PIO VGA output, this results in an all-in-one package for sound localization.