An Open USB Microphone Array
Table of Contents
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.
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.
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.
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.
Below are the similar projects I have found so far.