No sound with Adafruit SPH0645LM4H

Hey there,

I’m new to the Jetson Nano and want to set up the I2S microphone from Adafruit (SPH0645LM4H), which was quite frustrating so far.

After setting up the Jetson with the commands below, the terminal says it is recording something, but whenever I’m trying to play the sample, there is no sound. When loading the file to Matlab I can see that there are just zeros in the file.

I found this thread where it says how to set up the microphone, but that didn’t work for me.

I used the following Pins on the 40 Pin header:
3V → 3,3V (Pin 1)
GND → GND (Pin 39)
BCLK → Pin 12 (I2S_4_SCLK)
DOUT → Pin 38 (I2S_4_SDIN)
LRCL → Pin 35 (I2S_4_LRCLK)

I configured the I2S Pins on the Jetson Nano, where I selected the microphone SPH0645LM4H.

After that I used the following commands in the terminal:

$sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg
Bank: 1 Reg: 0x70003144 Val: 0x00000044 → dap4_fs_pj4
Bank: 1 Reg: 0x70003148 Val: 0x00000054 → dap4_din_pj5
Bank: 1 Reg: 0x7000314c Val: 0x00000015 → dap4_dout_pj6
Bank: 1 Reg: 0x70003150 Val: 0x00000044 → dap4_sclk_pj7

Reset Mixer controls:
$alsactl init tegrasndt210ref

Map I2S4 to ADMAIF1
$ amixer -c tegrasndt210ref sget “ADMAIF1 Mux” amixer -c tegrasndt210ref sget “I2S4 Mux”

Make sure that the 'MVC1 Channels‘ is set to 0
$ amixer -c tegrasndt210ref sget ‘MVC1 Channels’

Record from the microphone
$ arecord -D hw:tegrasndt210ref,0 -r 48000 -f S32_LE -c 1 -d 10 test.wav

The „test.wav“ appears on the terminal but, as I wrote before, doesn’t include any data.
I already configured the microphone on a Raspberry Pi and it was working without any problems.
What could be the problem?

Thanks a lot in advance

Hello!

Sorry to hear that this is not working. Starting with L4T r32.3.1 we have included support for Adafruit (SPH0645LM4H) MEMS mic and to use all you should need to do is …

$ sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "Adafruit SPH0645LM4H"
$ sudo reboot
<following-reboot>
$ alsactl init tegrasndt210ref
$ arecord -D hw:tegrasndt210ref,0 -c 2 -r 48000 -f S32_LE -d 10 cap.wav

For more details on the jetson-io tool please see …

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fhw_setup_jetson_io.html%23

Regards,
Jon

Hello Jon,

thanks a lot for the quick response. I tried the commands you recommended, but those didn’t work.
I already had Jetpack version L4T 32.4.2, anyways I reflashed the image ran those commads another time and everything worked.
Thanks again.

Hello!

There were some problems with the jetson-io tool in the r32.3.1 release and the details with necessary workarounds are documented in the link referenced. However, with r32.4.2 everything should work fine and so yes best to use r32.4.2.

Jon