An Open USB Microphone Array

Table of Contents

BeagleMic

BeagleMic is a design for a microphone array with open firmware and open hardware. It utilizes a single PocketBeagle computer to fetch data from up to 16 PDM microphones, perform simple processing, and output PCM data via USB to a host computer.

BeagleMic can present itself as a standard USB Audio Class 2 card. Hence standard tools can be used on the host side. I have successfully used alsa-utils, Audacity and ODAS.

This is a hobby project that started with me wondering “What can I do with those PRUs. PDM processing looked like an interesting challenge. It was quite a journey - learning KiCAD, going through two radically different PCB designs, heavily optimizing assembly source, reflow soldering BGAs at home, writing a Linux kernel sound driver. And of course lots and lots of fun time.

BeagleMic and Audacity

Beaglebone AI

The BeagleMic PCB supports and was validated for usage with a Beaglebone AI computer. With EVE engines and C66 DSPs on board, it opens the possibility for interesting processing on the device itself.

Unfortunately I could not get the C66 cores to load firmware compiled with GCC. TI provides only examples with their proprietary toolchain, which is of no interest for me.

FPGA

PCB was designed for but has not yet been validated with iCE40HX8K-EVB.

Lack of USB makes this difficult to play with the microphone array. But it could be a good fit for feeding an SBC of choice with multichannel data via TDM.

Similar Projects

Below are the similar projects I have found so far.