I2S Audio Output on Jetson Nano Production Module (Custom Carrier Board) (original) (raw)
December 3, 2025, 6:48pm 1
I’m having trouble getting I2S out of the Jetson Nano Module, and am looking for some guidance.
I have a custom carrier board I’ve made for the Jetson Nano module, which routes the I2S pins (I2S4) directly to an DAC/Amplifier on the board, which is connected to a speaker. If I use a devkit module (SD card version) and put the stock ubuntu image on it, I can get it to play sounds through this board without any issues. I set this up using the jetson-io.py script, and then use alsa player to send sound.
However, I need to get this same functionality working on the production module (emmc version), but the jetson-io.py script doesn’t work on the production modules. For this board, I’m building the kernel (using the guide provided here) which works fine, but I have not been able to get I2S audio working after a ton of time spent on it.
I’ve gone through many different forum posts about I2S for the jetson nano, but none of them seem to actually have a resolution on how to get it working, and there is no comprehensive guide that actually works. For example, there are these posts which weren’t much help here:
This post is almost exactly what I’m trying to do, but following the instructions there I wasn’t able to get it working.
Also, there’s a guide here which I have followed meticulously but it still did not work.
There is also a guide from Nvidia which involves using the “Jetson Nano Developer Kit Pinmux spreadsheet” with instructions to to generate a pinmux configuration that can be build and flashed to a module. I followed it most of the way through but unfortunately this guide has some issue and when following it, the build ultimately fails. I’ve attached that guide here.
Jetson_Nano_Developer_Kit_40-Pin_Expansion_Header_Configuration.pdf (137.5 KB)
In addition to trying all of the above guides and steps I’ve also tried:
- Using the device tree file from the working (dev) module on the prod module and copying to the target module, then updating /boot/extlinux/extlinux.conf to use that device tree
- I can get the imported device tree loaded, but still no I2S output
- Manually decompiling, editing according to other I2S forum posts, and recompiling the device tree
I’ve been trying to get this working for weeks, so any help here would be greatly appreciated!
Hi gary32,
Need some information
- Which release package are you using r32 ?
- Provide “sudo grep dap4 /sys/kernel/debug/tegra_pinctrl_reg” on working and non working setup. Ensure that they are alligned. hoping that you have connected the proper gnd and power supply to the DAC
Thanks!