Debugging I2S microphone input issue

This forum is for topics specific to the Raspberry Pi and Arch Linux ARM

Debugging I2S microphone input issue

Postby RobMeades » Mon Jan 29, 2018 4:40 pm

I am trying, and failing, to connect an I2S microphone (Invensense ICS43432) to my Raspberry Pi (B+) and would like to ask for advice on how to go about debugging such an audio recording problem.

I have adapted the instructions for Raspbian to do this under Arch (v4.9.78). I have built and loaded the ics43432.c module [unedited] from Linux source 4.9.78 (no errors at boot in dmesg aside from kernel taint) then configured a sound card using DTC. The lsmod output seems correct:

Code: Select all
snd_soc_bcm2835_i2s     6745  2
snd_soc_simple_card     5509  0
snd_soc_simple_card_utils     4423  1 snd_soc_simple_card
bcm2835_gpiomem         3515  0
bcm2835_rng             2679  0
rng_core                7676  1 bcm2835_rng
uio_pdrv_genirq         3456  0
uio                     9072  1 uio_pdrv_genirq
fixed                   2921  0
sch_fq_codel            9358  2
snd_bcm2835            21570  0
snd_soc_ics43432        2050  1
snd_soc_core          157891  4 snd_soc_ics43432,snd_soc_simple_card_utils,snd_soc_bcm2835_i2s,snd_soc_simple_card
snd_compress            9500  1 snd_soc_core
snd_pcm_dmaengine       4847  1 snd_soc_core
snd_pcm                87826  4 snd_pcm_dmaengine,snd_soc_bcm2835_i2s,snd_bcm2835,snd_soc_core
snd_timer              21638  1 snd_pcm
snd                    60574  5 snd_compress,snd_timer,snd_bcm2835,snd_soc_core,snd_pcm
ip_tables              12235  0
x_tables               17324  1 ip_tables
ipv6                  387315  48

arecord -l shows that a mems microphone "soundcard" is present and I have boosted the volume on that input by 30 dB using alsamixer. The full blow-by-blow account of the entire setup process can be found here but, in theory at least, it should all be working.

Using a logic analyser I have verified that the I2S interface is running and that my microphone is returning valid looking left-channel data on pin 38 of the Raspberry Pi header.

However, all my attempts to record from the microphone produce a file where all data bytes are zero, so something is plainly not right. Can anyone suggest how I go about debugging where my nice valid-looking audio input data is going?
Posts: 19
Joined: Sat May 17, 2014 3:35 pm

Return to Raspberry Pi

Who is online

Users browsing this forum: No registered users and 1 guest