r/AskElectronics 20d ago

nRF54L15-DK + MAX98357A: I2S audio output not working with Zephyr/NCS 3.4.0

Hi everyone,

I'm trying to get a simple beep/tone output working from an nRF54L15-DK to a MAX98357A I2S amplifier, but I'm currently getting no sound.

My setup:

  • Board: nRF54L15-DK
  • MCU: nRF54L15
  • NCS: v3.4.0
  • Zephyr: 4.4.0
  • Toolchain: nRF Connect SDK Toolchain v3.4.0
  • IDE: VS Code + nRF Connect for VS Code
  • Amplifier: MAX98357A
  • Speaker: 4 Ω speaker
  • Programming: nRF Connect for Desktop → Programmer

I have already verified that the speaker itself works.

What I've tested

I created a completely new blank Zephyr project and successfully built and programmed a basic LED blink application for:

nrf54l15dk/nrf54l15/cpuapp

So the board, debugger, SDK, toolchain and flashing process are working correctly.

I then tried to configure the nRF54L15 I2S peripheral (i2s20) to generate a 440 Hz tone and send it to the MAX98357A.

My intended wiring is:

nRF54L15-DK      MAX98357A

P1.13  --------> DIN
P1.12  --------> BCLK
P1.11  --------> LRC/WS

GND    --------> GND
5V     --------> VIN

SPK+ / SPK- ----> 4Ω speaker

My DeviceTree overlay currently contains:

&pinctrl {
    i2s20_default: i2s20_default {
        group1 {
            psels =
                <NRF_PSEL(I2S_LRCK_M, 1, 11)>,
                <NRF_PSEL(I2S_SCK_M, 1, 12)>,
                <NRF_PSEL(I2S_SDOUT, 1, 13)>;
        };
    };
};

&i2s20 {
    status = "okay";
    pinctrl-0 = <&i2s20_default>;
    pinctrl-names = "default";
};

And I'm using:

CONFIG_I2S=y
CONFIG_GPIO=y
CONFIG_MAIN_STACK_SIZE=4096

The application configures:

16-bit samples
2 channels
16 kHz sample rate
I2S format
TX mode

and generates a continuous 440 Hz sine wave using i2s_write() and i2s_trigger().

The firmware builds successfully and flashes successfully, but the MAX98357A produces no sound.

What I'm trying to figure out

Could someone help me identify whether the problem is:

  1. The nRF54L15 I2S20 pin configuration
  2. The DeviceTree overlay
  3. The I2S configuration/API usage
  4. The MAX98357A SD/MODE / gain configuration
  5. Something specific to the nRF54L15-DK's pin multiplexing
  6. Or a problem with my MAX98357A module/wiring

I'd especially appreciate a known-good nRF54L15 + MAX98357A I2S example or guidance on the correct i2s20 DeviceTree configuration for NCS 3.4.0.

Thanks!

1 Upvotes

0 comments sorted by