The microphone did not show up in the Input devices nor was I able to record audio with the arecord command.
Then I tried looking for I2S overlays via rsetup, but didn’t find anything. I tried looking at the device-tree using: dtc -I fs /sys/firmware/devicetree/base | grep i2s
According to the output i2s@fe40000 has status='okay' but i2s@fe410000, i2s@fe420000 and i2s@f430000 are all disabled. Do I need to enable them somehow? Any other suggestions?
I’m having a similar issue as the OP. Device doesn’t show up at all. The pinout that the OP listed are the correct pins according to the link you posted.
It enables i2s3-m0 and creates a sound card which uses it.
Do sudo armbian-add-overlay radxa-zero3-i2s3-experiments.dts and reboot and the sound card should appear and work. At least my UDA1334A and INMP441 work.
It is my first overlay and my first message here so hi everyone:)
Hello! I guess it was like this (can’t check, it works in a remote house):
(Radxa -> UDA1334A)
I2S3_LRCK_M0 (pin 35) -> WSEL (WS, pin 2 of the ic)
I2S3_SCLK_M0 (pin 12) -> BCLK (BCK, pin 1)
I2S3_SDO_M0 (pin 40) -> DIN (DATAI, pin 3)
Did not use master clock (SCLK) or any other digital inputs of UDA1334A.
To be clear, I used an Adafruit-like devboard from Aliexpress.
I connected my INMP 441 according to the scheme above. Added the dts file. How can I tell if the microphone is working? The recording is going on, but the wav file is silent.
It is pretty quiet (I’d prefer to call it good dynamic range:)), try to make loud sounds right into the mic or normalize the recorded file in an audio editor to check if it actually records someting. I have to boost levels to +20…24dB in post to hear quiet sounds.
Also, arecord makes weird audio files for PC playback if using 24-bit samples (seems it aligns samples to 24-bit, [1 byte, 2 byte, 3 byte], [1 byte…] and PC wants 32-bit aligning, like [0x00 byte, 1 byte, 2 byte, 3 byte], [0x00 byte…]), 16-bit works great. I got good 16-bit 16000Hz and 44100Hz records at least.
I still get an empty wav file. Even when I hit the table with the microphone. I connected an oscilloscope and sometimes I see a signal on the SCK pin when I turn on recording. The other pins are silent. I think there is something wrong with the dtbo file.
after installing the dbto file, I have this list of overlays
Thank you this works for me. However I have a lot of static noise from the microphone. The same hardware does not produce static noise on raspberry pi. Are you experiencing a similar issue and if so have you found a solution ?
I think you are using Debian not Armbian. The dtbo complied is not compatible with Debian I think.
Same problem here.
Have you managed to get the inmp441 microphone working anyway?
I think Radxa missed a trick that the onboard codec just isn’t implemented as would gladly swap 3 gpio to have those pins avail.
The Rock3c its implemented but sadly misses a resisitor on 1 channel so it floats when not in use but codec otherwise is great.