Issue with BLE Audio Streaming on nRF52840 DK with PCM5102 DAC via I2S

Hardware Setup:

  • nRF52840 DK: Serving as the BLE central device and I2S master.
  • PCM5102 DAC: Connected to the nRF52840 DK via I2S. The connections are:
    • LRCK (Pin 30 on nRF52840) to LRCK on PCM5102
    • BCK (Pin 31 on nRF52840) to BCK on PCM5102
    • DIN (Pin 29 on nRF52840) to DIN on PCM5102
  • Power Supply: Powered via USB.

Software Setup:

  • Development Environment: SEGGER Embedded Studio.
  • SDK Version: nRF5 SDK 15.3.0.
  • I2S Configuration: The nRF52840 is configured in Master mode, 16-bit sample width, left-aligned, with a sample rate matching the converted PCM audio from the app.

Issue Description: I am trying to implement BLE audio streaming on the nRF52840 DK, sending audio data from a Flutter app where the audio file is converted from MP3 to PCM format. The PCM conversion is done using the following command:

dart
Copy code
await _flutterFFmpeg.execute('-y -i $path -f s16le -acodec pcm_s16le -ar 16000 -ac 1 $pcmFilePath');

The configuration on the nRF52840 DK matches the sample rate and bit size used during the PCM conversion.

Problem: When I stream the audio over BLE to the nRF52840 and play it through the PCM5102 DAC, I hear a clear noise. However, the noise pattern resembles the structure of the audio being played, indicating that the data is being processed, but there is some issue causing the distortion.

  • Verification: I have verified that the PCM5102 DAC is working correctly by running a test code that generates a sine wave. The sine wave plays without any noise, indicating that the I2S configuration is correct.

What I Have Tried:

  1. Hardware Check: Verified all connections and ensured proper power supply.
  2. Sampling Rate and Bit Size Match: Ensured that the sample rate and bit size in the Flutter app's PCM conversion match those configured on the nRF52840 DK.
  3. I2S Configuration: Verified the I2S settings on the nRF52840 to ensure they align with the expected PCM format.
  4. Sine Wave Test: Confirmed that the PCM5102 DAC plays a generated sine wave without issues, indicating proper I2S setup.

Request for Guidance: I understand that the nRF5340 is recommended for BLE audio streaming, but I would like to achieve proper BLE audio streaming with the nRF52840 DK. My goal is not high-quality audio but functional BLE audio streaming without noise.

Could you please guide me on what might be causing this patterned noise and how I can resolve it? Any suggestions or modifications to my current setup would be greatly appreciated.

Thank you for your support.

Parents
  • Hi,

    Sorry for the delay.

    I would recommend looking into the Bluetooth configuration. 

    Make sure to enable high enough ATT MTU size, ideally it should be is large enough for audio packets so that it's not split over several packets. Also configure the Data Length Extension (DLE) to accommodate for the larger ATT MTU packets.

Reply
  • Hi,

    Sorry for the delay.

    I would recommend looking into the Bluetooth configuration. 

    Make sure to enable high enough ATT MTU size, ideally it should be is large enough for audio packets so that it's not split over several packets. Also configure the Data Length Extension (DLE) to accommodate for the larger ATT MTU packets.

Children
No Data
Related