Problem in Enabling I2C and I2S

Thanks @Mitchell,

with the provided overlay I could see the device in the “arecord -l”, but my recording was blank which is probably due to a problem with the microphone.
The main problem that I have, is that the b6 image that you sent earlier, always crashes. Since Friday, I have changed the OS more than 5 times. It loads the login page and then freezes. I have tested with 1 GB and 4 GB boards and they both have this problem. Is there a way to fix this? When I use b3 image, it is perfectly fine and working, but I couldn’t use your overlay, with b6 I could use it but after one or two reboot, or shutting down, it will crash. Can you help me with this? If there is a way to have the patch for b3 image, it is still perfect!

Thanks for your time!

I can’t reproduce your problem. The b6 version image runs fine locally. Can you provide more details about the crash?

Yes for sure.

I installed the OS using the Balena Etcher, on a 64 GB SD card. When I use a b3 image, everything is fine and I have used a b3 image for more than one month without any problem. But when I want to use a b6 image, like the one that you provided, it crashes after some hours or days. The crashing is done in two ways. The first way is that the green led remain constantly on, and nothing is loaded on the screen, and the second way(I have attached the image) which is more common and frequently happening is that the login page is loaded, but after some seconds, it freezes and I can’t move the mouse cursor or write anything with keyboard.

I have reinstalled the image many times, and there is no common rule to predict when this happens. I have tested with different scenarios, with 64 GB SD card or 32 GB SD card, with 1 GB board or 4 GB board, with updating the packages with sudo apt upgrade or without it, with connecting it to Internet or without it, in all the scenarios, it will start crashing at some point.

In this last case, it was working perfectly fine on Friday, I could enable I2S with your overlay, then I enabled the camera, it was working, and then I left the office to continue on Monday. Now it is crashing.

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.

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.

  1. Does Zero 3E board support high quality cameras such as RPI High Quality camera?

  2. Is it possible to do multiplexing on Zero 3E(or any other Radxa board)?

  3. 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

  1. You can check out the cameras supported by the ZERO-3E in this document
    https://docs.radxa.com/en/zero/zero3/accessories/camera

  2. Can be multiplexed on Zero 3E

  3. 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.

@radxa Any updates?

@ChenJaly please check this one.

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.

@ManuC, did you record a meaningful audio with the DTS in this post?

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.