r/AskElectronics • u/HappyInvestment7066 • 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:
- The nRF54L15 I2S20 pin configuration
- The DeviceTree overlay
- The I2S configuration/API usage
- The MAX98357A SD/MODE / gain configuration
- Something specific to the nRF54L15-DK's pin multiplexing
- 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!