OK, I will continue to try to reproduce the problem you provided.
It seems to me that you can try to add the radxa-zero3-enable-i2s3-m0.dtbo file in the same way on the b3 image.
Problem in Enabling I2C and I2S
Hi again @Mitchell,
I think I have found the problem. I think the problem of crashing the OS is due to the overlay that you sent for me. Because both on Friday with b6, and today with b3, after enabling and doing the procedure that you told me, it crashed. So I think the problem is related to the overlays, since I had a non-crashing b3 for over a month, and now it is crashed.
Have you turned on the I2C3-M0 overlay at the same time?
Yes, with active I2C3-M0 overlay the OS is crashing. Yesterday, I reinstalled OS on a Zero3E board and I didn’t activate I2C3-M0 overlay and still it is working properly.
Sorry, I forgot to tell you this, the patches for I2C3 and inmp441 audio cannot be enabled at the same time. You can try to connect Bosch BME688 through i2c4-M0. The corresponding pin of i2c4-m0 is as shown below:
Thanks! I will note this when I want to connect the both peripherals at the same time. I have also some other questions and doubts that I have faced in recent days.
-
Does Zero 3E board support high quality cameras such as RPI High Quality camera?
-
Is it possible to do multiplexing on Zero 3E(or any other Radxa board)?
-
When I tried to install OS on EMMC, I followed the instructions but I got a “Prepare IDB Fail” error. Does Zero 3E have on-board EMMC? If yes, where can I find suitable loader and Image for EMMC OS installation? I tried some files but I will always get stopped at the above-mentioned error.
Thanks!
Hi Mahyarshall
-
You can check out the cameras supported by the ZERO-3E in this document
https://docs.radxa.com/en/zero/zero3/accessories/camera -
Can be multiplexed on Zero 3E
-
ZERO-3E is without eMMC
@Mitchell, Thanks for the answer. Since multiplexing needs a physical interface, can we use Arducam multiplexer, or do you suggest another csi multiplexer (I don’t know if there is an official one from Radxa or not).
@Mitchell, Also I have a problem with the microphone. The recording is blank, although it is being detected by the “arecord -l” command. Can you check the overlay if it is fine or not? Because I bought a brand new INMP441 microphone and soldered its pins, and still the recording is completely blank, either by “arecord” or by using “sounddevice” library in Python. If you can check it and let me know, I would be grateful.
As a note this does not work for me as well. The microphone seems to be recognised
radxa@radxa-zero3:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: inmp441 [inmp441], device 0: fe430000.i2s-rk_codec_digital fe478000.codec-digital-0 [fe430000.i2s-rk_codec_digital fe478000.codec-digital-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
However when trying to capture there is no sound recorded. Additionaly the vumeter displayed at the bottom of this command does not show any input.
arecord -D plughw:0 -c1 -r 48000 -f S32_LE -t wav -V mono -v file.wav
Trying with a stereo recording leads to the same issue
arecord -D plughw:0 -c2 -r 48000 -f S32_LE -t wav -V stereo -v file_stereo.wav
This DTS provided in this post works but with a lot of static noise in the backgound.
The same microphone on a RaspberryPI has no noise so it’s not a microphone hardware issue.
Could you share the DTS used to produce the DTBO above ?
The static noise was likely a wiring issue. I have now an amplifier connected as well and did some rewiring as a result. No more static sound.
Yes, works perfectly and so does the MAX98357 with that same DTS.
View the datasheet only supports the highest S24_LE
and 64
of mclk-fs
, which may help you get a better experience
I’ve changed the DTS and the capture with these new parameters, I couldn’t any meaningful differences. But in any case it is working fine for me.
hello Mitchell,
I use the dtbo you provided, connected inmp441, it’s can be recogonized. But the .wav file is empty full of static noise. What did I make wrong?
zero3W
Debian bullseye
hi Manuc,
is your system Armbian or Debian bullseye? I compiled the DTS provided and try to copy to /boot/dtbo, it’s not compatible.
mine is
NAME=“Debian GNU/Linux”
VERSION_ID=“11”
VERSION=“11 (bullseye)”
ID=debian
/dts-v1/;
/plugin/;
/ {
metadata {
title = “Enable INMP441 I2S Microphone on Zero 3E”;
compatible = “radxa,zero3”;
category = “audio”;
description = “Enable INMP441 I2S microphone on I2S3-M0.”;
};
fragment@0 {
target = <&i2s3_2ch>;
__overlay__ {
rockchip,clk-trcm = <1>;
pinctrl-names = "default";
pinctrl-0 = <&i2s3m0_sclk
&i2s3m0_lrck
&i2s3m0_sdi
&i2s3m0_sdo>;
status = "okay";
};
};
fragment@1 {
target-path = "/";
__overlay__ {
sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "test";
simple-audio-card,format="i2s";
simple-audio-card,bitclock-master = <&cpu_dai>;
simple-audio-card,frame-master = <&cpu_dai>;
simple-audio-card,mclk-fs = <256>;
cpu_dai: simple-audio-card,cpu {
sound-dai = <&i2s3_2ch>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&i2s3_out>;
};
};
i2s3_out: i2s3-out {
#sound-dai-cells = <0>;
compatible = "rockchip,dummy-codec";
status = "okay";
};
};
};
};
이 dts 코드로 소리 입력 되는거 확인했습니다. dtbo 로 변환해서 사용해보세요
ex ) dtc -@ -I dts -O dtb -o inmp441.dtbo bb.dts
미첼~ 감사드립니다.