I2s microphone hardware setup

I am trying to connect the ICS-43434 mems digital microphone to a Jetson Nano. I have successfully connected this mic to both RPI4 and esp32 so I know the mic works and that I got the wiring OK. I know how to operate linux but a total NOOB on the jetson.

I have connected the microphone using the following pinout:
Pin1 = 3V
Pin12 = BCLK
Pin35 = LRCL
Pin38 = DOUT
Pin39 = GND

arecord -D hw:tegrasndt210ref,0 -r 48000 -f S16_LE -c 1 -d 10 test.wav
I get an empty test.wav file

I looked at this post that seem to have the same issue (solved) but couldn’t make out what steps to take to get to the same solution.
I tried running :
amixer -c tegrasndt210ref cset name=‘ADMAIF1 Mux’ I2S4

I have looked at this post that was supposed to solve this i2s GPIO configuration but couldn’t understand the solution - do I really need to re-build my kernel for this to work?
i2s is very basic stuff. I wonder how come there is no 1,2,3 step guide to make this work on an out-of-the-box jetson nano?

I’ll appreciate any help and direction you could give me…

Sorry for the late response, we will do the investigation and update soon.


There is a chapter in the Jetson documentation for audio on the 40-pin expansion header (although maybe not easy to find). Long story short, the pins on the 40-pin expansion header are configured as GPIO by default and therefore, the pinmux needs to be re-configured to use them as I2S. Per the section on the 40-pin header in the audio section, there is a tool provided to do this. Details on this tool can be from here.

Please try running the following commands and see if this helps …

$ sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s4
$ sudo reboot