Similarly to question I2s on jetson nano produciton I am also trying to get audio from the i2s interface on the Auvidea JN30B carrier board.
Beforehand I have done the following:
Install the software on the JN30B according to the documentation of auvidea
This all went fine and after accepting the license agreement in the first boot I had a working device
/opt/nvidia/jetson-io/jetson-io.py only showed the CSI connector as this production unit does not seem to have a 40 pin header
I have then tried to follow the instructions described in this original question.
Download the pinmux spreadsheat linked in the original question and follow the instructions documented here on the jetson archives on the nvidia website (I am not allowed to put more than 1 link in my post)
I changed the I2S0_DIN, I2S0_DOUT, I2S0_FS, I2S0_SCLK to I2S4B_SDATA_IN, I2S4B_SDATA_OUT, I2S4B_LRCK, I2S4B_SCLK and generated the .dtsi files
I downloaded the latest firmware from auvidea website, for the JN30B which at the time was version 5.0
Extracted the files on the Jetson Nano and inside the kernel_src I added <prefix>-pinmux.dtsi to <src>/hardware/nvidia/platform/t210/<code>/kernel-dts/<code>-platforms/tegra210-<code>-pinmux-p3448-<sku_ver>.dtsi as documented
I then build the dtb using
cd <src_path>/kernel/kernel-4.9/
make ARCH=arm64 tegra_defconfig
make ARCH=arm64 dtbs
and finally copied the arch/arm64/boot/dts/tegra210-p3448-<sku>-<carrier>-0000.dtb to a ubuntu 18 machine (required by auvidea) that I use for flashing <path-to-L4T-release>/kernel/dtb/ where the path is defined as `/home/<YOUR_USERNAME>/nvidia/nvidia_sdk/JetPack_<Jetpack_version>Linux<Jetson_
module>/Linux_for_Tegra`
Flash the jetson nano using sudo ./flash jetson-nano-emmc mmcblk0p1
However after booting I do not seem to get audio using arecord test.wav. It generates a wave file but with only zeros
I’m not quite sure where I made the mistake, so let’s say if I wanted to verify if I did all the steps correctly up until the midway mark. How would I verify that the dtb that is currently loaded on the jetson nano is correct?
I have been able to build the dtb and flash it to the jetson nano production unit and see that it is loaded by the system because the build time is displayed in the journal as the time that I build this module.
So now, how do I verify that the I2s is configured correctly?
Hi ling.hong1
Apologies for delayed response, Let me try to help you to resolve the issue.
Before we get into debugging, I would need few information as requested below.
I understand, you have changed the 40 pin header I2S0_* pinmux config, to validate if the configuration applied properly after the dtb flash with the changes, please dump the below command and attach the output
The record command “arecord test.wav” is incomplete info. Can you try below commands for the usecase execution to make sure we are not missing any mixer control configs.
Which 40 pin header are you referring to? I thought that only the development boards had a 40 pin header, but not this Auvidea JN30B carrier board unit?
The problem is that when I run jetson-io.py there is no 40 pin header option, the only option I see is for the CSI connector. I believe this production unit from Auvidea the JN30B does not have a 40 pin header?
I have tried to update the pinmux according to this documentation already but I guess that did not go correctly or I made a mistake somewhere along the line. Also the documentation links to this page Jetson Download Center | NVIDIA Developer for obtain the pinmux but this page has no results.
What I’ve tried is download the pinmux from the original question and modify the I2S0pins, but I’m guessing I did not do this correctly. This forum prevents me from attaching the xls sheet that I used. Could you please provide a correct pinmux so I can compare the one that I have with yours so that I can verify if my pinmux sheet is correct?
Hi ling.hong1,
Please the update the below nodes inside pinmux@700008d4 { } in the board pinmux dts file , build and flash to verify. Make sure you applied this config in right board pinmux dts file by referring the flash log for checking the dtb file name.