Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8082

Compute Module • Undetected MEMS IM69D

$
0
0
I am trying to connect my IM69D130 Shield2Go microphone module connected to a breadboard and my raspberry pi 4 model b, using the following tutorial: github.com/Infineon/i2s-microphone

I have tried modifying the config. txt and adding the dtparam=i2s=on lines of code, and commenting out the Enable audio line (loads snd_bcm2835) #dtparam=audio=on ; I have read in some forums about also putting the dtoverlay=dmic line but it doesn't detect it when I reboot the system.
I have also tried with the tutorial attached above following the same steps but I get errors when running i2smic.py . I understand that this script does the same as what I modify manually in the config.txt

When I run the arecord -l command it doesn't recognise any pickup device. The microphone module is well connected because when I do the command to read the pins it reads them correctly.

When I run the i2smic.py script I get the following:

This script downloads and installs
I2S microphone support.

RASPBERRY_PI_4B detected.

Auto load module at boot? [y/n] y

Installing...
Reading package lists...

Building dependency tree...
Reading state information...

git is already the newest version (1:2.30.2-1+deb11u4).
raspberrypi-kernel-headers is already the newest version (1:1.20230405-1).
The following package was automatically installed and is no longer required:
libfuse2
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 79 not upgraded.
fatal: destination path 'Raspberry-Pi-Installer-Scripts' already exists and is not an empty directory.
make -C /lib/modules/6.1.21-v8+/build M=/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module clean
make[1]: Entering directory '/usr/src/linux-headers-6.1.21-v8+'
make[1]: Leaving directory '/usr/src/linux-headers-6.1.21-v8+'
make -C /lib/modules/6.1.21-v8+/build M=/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.21-v8+'
CC [M] /home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.o
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:59:15: error: variable ‘default_card_info’ has initializer but incomplete type
59 | static struct simple_card_info default_card_info = {
| ^~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:60:4: error: ‘struct simple_card_info’ has no member named ‘card’
60 | .card = "snd_rpi_i2s_card", // -> snd_soc_card.name
| ^~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:60:11: warning: excess elements in struct initializer
60 | .card = "snd_rpi_i2s_card", // -> snd_soc_card.name
| ^~~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:60:11: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:61:4: error: ‘struct simple_card_info’ has no member named ‘name’
61 | .name = "simple-card_codec_link", // -> snd_soc_dai_link.name
| ^~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:61:11: warning: excess elements in struct initializer
61 | .name = "simple-card_codec_link", // -> snd_soc_dai_link.name
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:61:11: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:62:4: error: ‘struct simple_card_info’ has no member named ‘codec’
62 | .codec = "snd-soc-dummy", // "dmic-codec", // -> snd_soc_dai_link.codec_name
| ^~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:62:12: warning: excess elements in struct initializer
62 | .codec = "snd-soc-dummy", // "dmic-codec", // -> snd_soc_dai_link.codec_name
| ^~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:62:12: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:63:4: error: ‘struct simple_card_info’ has no member named ‘platform’
63 | .platform = "not-set.i2s",
| ^~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:63:15: warning: excess elements in struct initializer
63 | .platform = "not-set.i2s",
| ^~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:63:15: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:64:4: error: ‘struct simple_card_info’ has no member named ‘daifmt’
64 | .daifmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS,
| ^~~~~~
In file included from ./include/sound/soc-topology.h:15,
from ./include/sound/soc-dapm.h:15,
from ./include/sound/soc.h:417,
from ./include/sound/simple_card.h:12,
from /home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:23:
./include/uapi/sound/asoc.h:150:41: warning: excess elements in struct initializer
150 | #define SND_SOC_DAI_FORMAT_I2S 1 /* I2S mode */
| ^
./include/sound/soc-dai.h:27:29: note: in expansion of macro ‘SND_SOC_DAI_FORMAT_I2S’
27 | #define SND_SOC_DAIFMT_I2S SND_SOC_DAI_FORMAT_I2S
| ^~~~~~~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:64:13: note: in expansion of macro ‘SND_SOC_DAIFMT_I2S’
64 | .daifmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS,
| ^~~~~~~~~~~~~~~~~~
./include/uapi/sound/asoc.h:150:41: note: (near initialization for ‘default_card_info’)
150 | #define SND_SOC_DAI_FORMAT_I2S 1 /* I2S mode */
| ^
./include/sound/soc-dai.h:27:29: note: in expansion of macro ‘SND_SOC_DAI_FORMAT_I2S’
27 | #define SND_SOC_DAIFMT_I2S SND_SOC_DAI_FORMAT_I2S
| ^~~~~~~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:64:13: note: in expansion of macro ‘SND_SOC_DAIFMT_I2S’
64 | .daifmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS,
| ^~~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:65:4: error: ‘struct simple_card_info’ has no member named ‘cpu_dai’
65 | .cpu_dai = {
| ^~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:65:14: error: extra brace group at end of initializer
65 | .cpu_dai = {
| ^
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:65:14: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:65:14: warning: excess elements in struct initializer
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:65:14: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:69:4: error: ‘struct simple_card_info’ has no member named ‘codec_dai’
69 | .codec_dai = {
| ^~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:69:16: error: extra brace group at end of initializer
69 | .codec_dai = {
| ^
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:69:16: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:69:16: warning: excess elements in struct initializer
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:69:16: note: (near initialization for ‘default_card_info’)
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c: In function ‘i2s_mic_rpi_init’:
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:123:15: error: ‘default_card_info’ has an incomplete type ‘struct simple_card_info’
123 | card_info = default_card_info;
| ^~~~~~~~~~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:123:13: error: ‘card_info’ has an incomplete type ‘struct simple_card_info’
123 | card_info = default_card_info;
| ^
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:124:12: error: invalid use of undefined type ‘struct simple_card_info’
124 | card_info.platform = card_platform;
| ^
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:125:12: error: invalid use of undefined type ‘struct simple_card_info’
125 | card_info.cpu_dai.name = card_platform;
| ^
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c: At top level:
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:41:32: error: storage size of ‘card_info’ isn’t known
41 | static struct simple_card_info card_info;
| ^~~~~~~~~
/home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.c:59:32: error: storage size of ‘default_card_info’ isn’t known
59 | static struct simple_card_info default_card_info = {
| ^~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:250: /home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module/snd-i2smic-rpi.o] Error 1
make[1]: *** [Makefile:2012: /home/imibic2025/Raspberry-Pi-Installer-Scripts/i2s_mic_module] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.1.21-v8+'
make: *** [Makefile:35: all] Error 2
make: *** No rule to make target 'snd-i2smic-rpi.ko', needed by 'install'. Stop.
DONE.

Settings take effect on next boot.

Could someone give me some advice on how to solve the following errors, or how to make my raspberry detect the MEMS module? Thank you very much !

Statistics: Posted by pablo_camacho — Tue Mar 25, 2025 11:41 am



Viewing all articles
Browse latest Browse all 8082

Trending Articles