Microphone Array on MATRIX Voice

Usage
Driver installation
Follow the instructions below for allowing your MATRIX Voice to register as a microphone for your Raspberry Pi.curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.matrix.one/raspbian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/matrixlabs.list sudo apt-get update sudo apt-get upgrade
sudo reboot
sudo apt install matrixio-kernel-modules
sudo reboot
Check If Everything Works
Your Raspberry Pi should now treat your MATRIX Voice as a regular microphone. You can test this by using the following commands to record and play a 5 second long audio file on your Raspberry Pi.Be sure to have something connected to the Raspberry Pi's audio output.
arecord recording.wav -f S16_LE -r 16000 -d 5 aplay recording.wav
ALSA Configuration
The microphones can be grabbed using ALSA. Multiple libraries that support ALSA use these configurations to read microphone data with ALSA.
Device name - hw:2,0
Rates(Hz) - 8000 12000 16000 22050 24000 32000 44100 48000
Channels for each microphone - 1 2 3 4 5 6 7 8
Audio specs
Sample Rate: 8 to 96 kHz
Bit Depth: Signed 16 bit
Position [x,y] of each mic in the array (mm)
| Mic | X | Y | 
|---|---|---|
| M1 | 00.00 | 0.00 | 
| M2 | -38.13 | 3.58 | 
| M3 | -20.98 | 32.04 | 
| M4 | 11.97 | 36.38 | 
| M5 | 35.91 | 13.32 | 
| M6 | 32.81 | -19.77 | 
| M7 | 5.00 | -37.97 | 
| M8 | -26.57 | -27.58 | 
Connection to the FPGA
| Mic | FPGA pin | PDM_Data | 
|---|---|---|
| M1 | E6 | pdm_data<0> | 
| M2 | B8 | pdm_data<1> | 
| M3 | A8 | pdm_data<2> | 
| M4 | C7 | pdm_data<3> | 
| M5 | A7 | pdm_data<4> | 
| M6 | A6 | pdm_data<5> | 
| M7 | B6 | pdm_data<6> | 
| M8 | A5 | pdm_data<7> | 
| CLK | B5 | pdm_clk |