Paying a tone with the ESPMUSE LUXE

Hi, I’m trying to figure out how to play a tone with the ESPMUSE LUXE.
Taking inspiration from the factory tests, I have created this minimal working example… but the speaker makes no sound at all:

#include <driver/i2s.h>
#include "Arduino.h"

#define BLOCK_SIZE 128

void setup()
{ // Start Serial communication
    Serial.begin(115200);

    delay(3000);
    Serial.println("Hello World!");
    // Configure I2S peripheral
    const i2s_config_t i2s_config = {
        .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_TX), // Receive, transfer
        .sample_rate = 44100,
        .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
        .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
        .communication_format = I2S_COMM_FORMAT_I2S,
        .intr_alloc_flags = ESP_INTR_FLAG_LEVEL2,
        .dma_buf_count = 4,
        .dma_buf_len = BLOCK_SIZE};

    i2s_pin_config_t pin_config = {
        .bck_io_num = 5,    // BCKL
        .ws_io_num = 25,    // LRCL
        .data_out_num = 26, // DOUT
        .data_in_num = 35   // DIN
    };

    i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
    i2s_set_pin(I2S_NUM_0, &pin_config);
}

void loop()
{
    // Generate a simple sine wave
    const int sample_count = 44100 * 2; // Number of audio samples (approximately 2 seconds)
    const float frequency = 440.0;      // Frequency of the sine wave (Hz)
    const float amplitude = 0.8;        // Amplitude of the sine wave (0.0 to 1.0)
    const float volume = 15;            // Volume factor (adjust as needed)

    const float increment = frequency / 44100.0 * 2.0 * 3.14159;
    float angle = 0.0;

    int16_t samples[BLOCK_SIZE];

    for (int i = 0; i < sample_count; i += BLOCK_SIZE)
    {
        for (int j = 0; j < BLOCK_SIZE; j++)
        {
            float value = sin(angle);
            int16_t sample = static_cast<int16_t>(value * amplitude * INT16_MAX * volume);
            samples[j] = sample;

            angle += increment;
        }

        // Play the generated samples
        size_t bytes_written = 0;
        esp_err_t err = i2s_write(I2S_NUM_0, samples, BLOCK_SIZE * sizeof(int16_t), &bytes_written, portMAX_DELAY);

        if (err != ESP_OK)
        {
            Serial.printf("I2S write error: %d\n", err);
        }
        else
        {
            Serial.printf("Bytes written: %d\n", bytes_written);
        }
    }

    Serial.println("Sine wave playback complete");

    delay(9000);
}

Are the i2s config values wrong?

Any help would be appreciated!

Hi!

On the LUXE you have a ES8388 codec Involved so there are I2C commands to start playing, set the volume and so

check

right, thanks I overlooked that I should actually use I2C!

I tried to run the code proposed here instead but also without any luck.

#include "FS.h"
#include "SD.h"
#include "SPI.h"
#include <SDCard.h>
#include "Audio.h"

// Digital I/O used
#define I2S_DOUT 25
#define I2S_BCLK 27
#define I2S_LRC 26

#define SD_CS 13
#define SPI_MOSI 15
#define SPI_MISO 2
#define SPI_SCK 14

Audio audio;

void listDir(fs::FS &fs, const char *dirname, uint8_t levels)
{
  Serial.printf("Listing directory: %s\n", dirname);

  File root = fs.open(dirname);
  if (!root)
  {
    Serial.println("Failed to open directory");
    return;
  }
  if (!root.isDirectory())
  {
    Serial.println("Not a directory");
    return;
  }

  File file = root.openNextFile();
  while (file)
  {
    if (file.isDirectory())
    {
      Serial.print("  DIR : ");
      Serial.println(file.name());
      if (levels)
      {
        listDir(fs, file.name(), levels - 1);
      }
    }
    else
    {
      Serial.print("  FILE: ");
      Serial.print(file.name());
      Serial.print("  SIZE: ");
      Serial.println(file.size());
    }
    file = root.openNextFile();
  }
}

void setup()
{
  Serial.begin(115200);

  // Initialize SD card
  SPIClass spi = SPIClass(VSPI);

  spi.begin(SPI_SCK, SPI_MISO, SPI_MOSI, SD_CS);

  if (!SD.begin(SD_CS, spi))
  {
    Serial.println("Error: SD card initialization failed.");
    return;
  }

  delay(2000);

  uint8_t cardType = SD.cardType();

  if (cardType == CARD_NONE)
  {
    Serial.println("No SD card attached");
    return;
  }

  Serial.print("SD Card Type: ");
  if (cardType == CARD_MMC)
  {
    Serial.println("MMC");
  }
  else if (cardType == CARD_SD)
  {
    Serial.println("SDSC");
  }
  else if (cardType == CARD_SDHC)
  {
    Serial.println("SDHC");
  }
  else
  {
    Serial.println("UNKNOWN");
  }

  uint64_t cardSize = SD.cardSize() / (1024 * 1024);
  Serial.printf("SD Card Size: %lluMB\n", cardSize);

  listDir(SD, "/", 0);
  Serial.printf("Total space: %lluMB\n", SD.totalBytes() / (1024 * 1024));
  Serial.printf("Used space: %lluMB\n", SD.usedBytes() / (1024 * 1024));

  delay(1000);

  audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
  audio.setVolume(21); // 0...21

  audio.connecttoSD("/320k_test.mp3");

  delay(2000);
}

void loop()
{
  Serial.println("Playing sample 1");
  audio.loop();

}

After the 3 time stepping into audio.loop() it fails with Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.:

Full output:

rst:0xc (SW_CPU_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
[    10][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
SD Card Type: SDHC
SD Card Size: 30436MB
Listing directory: /
  FILE: test.txt  SIZE: 0
  FILE: life.wav  SIZE: 169086
  FILE: foo.txt  SIZE: 13
  FILE: 320k_test.mp3  SIZE: 9610227
Total space: 30424MB
Used space: 9MB
Connect to SD file /320k_test.mp3
[ 13420][V][ssl_client.cpp:324] stop_ssl_socket(): Cleaning SSL connection.
info        Reading file: 320k_test.mp3
1
info        ID3 version=3
ID3 framesSize=4342
info        ID3 framesSize=4342
info        ID3 normal frames
id3data     Title: No Cover Song [Abseed Remix]
id3data     Year: 2010
id3data     Comment: engVocals by : Deep SpiritMusic by : MTBD & Dj PaPa Br��n (Abseed)Copyright: Abcd 2010Official Release : Abcd lease : Abcd 
id3data     BeatsPerMinute: 143
id3data     Comment: sveE-Mail : Abseed_music@hotmail.coo
id3data     Album: 
id3data     Publisher: Magnus L�nberg, Johannes Bruun
id3data     Artist: Deep Spirit
Playing sample 1
[ 15534][I][Audio.cpp:692] loop(): bcw = 1600
[ 15534][I][Audio.cpp:693] loop(): m_inBuffwindex = 0
[ 15534][I][Audio.cpp:694] loop(): m_inBuffsize = 1600
[ 15538][I][Audio.cpp:695] loop(): m_inbuffrindex = 0
[ 15542][I][Audio.cpp:696] loop(): m_inBuff = 1073524221
[ 15547][I][Audio.cpp:700] loop(): res = 1600
info        stream ready
info        stream ready
info        syncword found at pos 0
info        SampleRate=44100
info        Channels=2
info        BitsPerSample=16
info        Bitrate=320000
Playing sample 1
[ 15614][I][Audio.cpp:692] loop(): bcw = 1044
[ 15614][I][Audio.cpp:693] loop(): m_inBuffwindex = 556
[ 15614][I][Audio.cpp:694] loop(): m_inBuffsize = 1600
[ 15618][I][Audio.cpp:695] loop(): m_inbuffrindex = 1044
[ 15623][I][Audio.cpp:696] loop(): m_inBuff = 1073524221
[ 15628][I][Audio.cpp:700] loop(): res = 1044
info        stream ready
Playing sample 1
[ 15654][I][Audio.cpp:692] loop(): bcw = 1045
[ 15654][I][Audio.cpp:693] loop(): m_inBuffwindex = 555
[ 15654][I][Audio.cpp:694] loop(): m_inBuffsize = 1600
[ 15658][I][Audio.cpp:695] loop(): m_inbuffrindex = 1045
[ 15663][I][Audio.cpp:696] loop(): m_inBuff = 1073524221
[ 15668][I][Audio.cpp:700] loop(): res = 1045
info        stream ready
Playing sample 1
[ 15693][I][Audio.cpp:692] loop(): bcw = 1045
[ 15693][I][Audio.cpp:693] loop(): m_inBuffwindex = 555
[ 15693][I][Audio.cpp:694] loop(): m_inBuffsize = 1600
[ 15697][I][Audio.cpp:695] loop(): m_inbuffrindex = 1045
[ 15702][I][Audio.cpp:696] loop(): m_inBuff = 1073524221
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400e1a8f  PS      : 0x00060c30  A0      : 0x800dbc6a  A1      : 0x3ffb2530  
A2      : 0x800e2658  A3      : 0x000000ff  A4      : 0x00003d5b  A5      : 0x0000f9c0  
A6      : 0x3ffd4600  A7      : 0x3ffcadfd  A8      : 0x800e2658  A9      : 0x00000000  
A10     : 0x3beb0000  A11     : 0xf9c00000  A12     : 0x3ffd4600  A13     : 0x00060c23  
A14     : 0x00060c20  A15     : 0x00000001  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x800e2658  LBEG    : 0x40084475  LEND    : 0x4008447d  LCOUNT  : 0x00000027  


Backtrace:0x400e1a8c:0x3ffb25300x400dbc67:0x3ffb2550 0x400dbf81:0x3ffb2570 0x400dc025:0x3ffb2590 0x400dc431:0x3ffb25c0 0x400dc45e:0x3ffb25e0 0x40100296:0x3ffb2600 0x40100c3e:0x3ffb2620 0x40101be6:0x3ffb2640 0x40103a0f:0x3ffb2680 0x400ed6aa:0x3ffb26b0 0x40086f6d:0x3ffb26d0 0x40086eb1:0x3ffb26f0 0x4012520e:0x3ffb2710 0x401252a1:0x3ffb2750 0x4012424f:0x3ffb2770 0x400db8c3:0x3ffb2790 0x400d75f2:0x3ffb27b0 0x400db34b:0x3ffb2800 0x400e2655:0x3ffb2820 

Is there anything I’m doing wrong? The issue seems to be too much data loaded into memory?

pls show me your compiling options in Arduino

hi, sorry for my late reply.

I tried to re-upload the 320k_test.mp3 file and re-run the code. This time it is running but no sound is played.

I can see that here, ret is always zero.

this is the code:

#include <Audio.h>
#include <IotWebConf.h>
#include <IotWebConfCompatibility.h>
#include <NeoPixelAnimator.h>
#include <NeoPixelBrightnessBus.h>
#include <NeoPixelBus.h>
#include <NeoPixelSegmentBus.h>
#include <hal_i2c.h>
#include <hal_i2s.h>
#include <tinyScreen128x64.h>
#include <wm8978.h>

#include "Arduino.h"
#include "WiFi.h"
#include "Audio.h"
#include "SD.h"
#include "FS.h"

// Digital I/O used
#define I2S_DOUT 25
#define I2S_BCLK 27
#define I2S_LRC 26

#define SD_CS 13
#define SPI_MOSI 15
#define SPI_MISO 2
#define SPI_SCK 14

Audio audio;

const char *ssid = "";
const char *password = "";

void setup()
{
  SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
  Serial.begin(115200);
  delay(1000);
  SD.begin(SD_CS);

  // list all files on SD
  File root = SD.open("/");
  File file = root.openNextFile();
  while (file)
  {
    Serial.print("FILE: ");
    Serial.println(file.name());
    file = root.openNextFile();
  }

  // wifi
  WiFi.mode(WIFI_STA); // Optional
  WiFi.begin(ssid, password);
  Serial.println("\nConnecting");

  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(100);
  }

  Serial.println("\nConnected to the WiFi network");
  Serial.print("Local ESP32 IP: ");
  Serial.println(WiFi.localIP());

  audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
  audio.setVolume(21); // 0...21

  audio.connecttoSD("/320k_test.mp3");
  // audio.connecttoSD("/live.wav");
  // audio.connecttohost("www.wdr.de/wdrlive/media/einslive.m3u");
  // audio.connecttohost("dg-ais-eco-http-fra-eco-cdn.cast.addradio.de/hellwegradio/west/mp3/high");
  // audio.connecttohost("fischkopp.stream.laut.fm/fischkopp");
  // audio.connecttospeech("Wenn die Hunde schlafen, kann der Wolf gut Schafe stehlen.", "de");
  // audio.connecttospeech("bonjour à tous", "fr");
}

void loop()
{
  audio.loop();
}

// optional
void audio_info(const char *info)
{
  Serial.print("info        ");
  Serial.println(info);
}
void audio_id3data(const char *info)
{ // id3 metadata
  Serial.print("id3data     ");
  Serial.println(info);
}
void audio_eof_mp3(const char *info)
{ // end of file
  Serial.print("eof_mp3     ");
  Serial.println(info);
}
void audio_showstation(const char *info)
{
  Serial.print("station     ");
  Serial.println(info);
}
void audio_showstreaminfo(const char *info)
{
  Serial.print("streaminfo  ");
  Serial.println(info);
}
void audio_showstreamtitle(const char *info)
{
  Serial.print("streamtitle ");
  Serial.println(info);
}
void audio_bitrate(const char *info)
{
  Serial.print("bitrate     ");
  Serial.println(info);
}
void audio_commercial(const char *info)
{ // duration in sec
  Serial.print("commercial  ");
  Serial.println(info);
}
void audio_icyurl(const char *info)
{ // homepage
  Serial.print("icyurl      ");
  Serial.println(info);
}
void audio_lasthost(const char *info)
{ // stream URL played
  Serial.print("lasthost    ");
  Serial.println(info);
}
void audio_eof_speech(const char *info)
{
  Serial.print("eof_speech  ");
  Serial.println(info);
}

is this expected to work?

this is the start of the verbose compilation output:

/usr/share/arduino/arduino-builder -dump-prefs -logger=machine -hardware /usr/share/arduino/hardware -hardware /home/myuser/.arduino15/packages -tools /home/myuser/.arduino15/packages -libraries /home/myuser/Arduino/libraries -fqbn=esp32:esp32:esp32wrover:PartitionScheme=huge_app,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=none -vid-pid=10C4_EA60 -ide-version=10819 -build-path /tmp/arduino_build_246726 -warnings=none -build-cache /tmp/arduino_cache_80296 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=/home/myuser/.arduino15/packages/esp32/tools/esptool_py/3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=/home/myuser/.arduino15/packages/esp32/tools/esptool_py/3.0.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.mkspiffs.path=/home/myuser/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=/home/myuser/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -verbose /home/myuser/Arduino/I2Saudio/I2Saudio.ino
/usr/share/arduino/arduino-builder -compile -logger=machine -hardware /usr/share/arduino/hardware -hardware /home/myuser/.arduino15/packages -tools /home/myuser/.arduino15/packages -libraries /home/myuser/Arduino/libraries -fqbn=esp32:esp32:esp32wrover:PartitionScheme=huge_app,FlashMode=qio,FlashFreq=80,UploadSpeed=921600,DebugLevel=none -vid-pid=10C4_EA60 -ide-version=10819 -build-path /tmp/arduino_build_246726 -warnings=none -build-cache /tmp/arduino_cache_80296 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool_py.path=/home/myuser/.arduino15/packages/esp32/tools/esptool_py/3.0.0 -prefs=runtime.tools.esptool_py-3.0.0.path=/home/myuser/.arduino15/packages/esp32/tools/esptool_py/3.0.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc.path=/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.xtensa-esp32-elf-gcc-1.22.0-97-gc752ad5-5.2.0.path=/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0 -prefs=runtime.tools.mkspiffs.path=/home/myuser/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -prefs=runtime.tools.mkspiffs-0.2.3.path=/home/myuser/.arduino15/packages/esp32/tools/mkspiffs/0.2.3 -verbose /home/myuser/Arduino/I2Saudio/I2Saudio.ino
Using board 'esp32wrover' from platform in folder: /home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5
Using core 'esp32' from platform in folder: /home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5
bash -c "[ ! -f /home/myuser/Arduino/I2Saudio/partitions.csv ] || cp -f /home/myuser/Arduino/I2Saudio/partitions.csv /tmp/arduino_build_246726/partitions.csv"
bash -c "[ -f /tmp/arduino_build_246726/partitions.csv ] || cp /home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/partitions/huge_app.csv /tmp/arduino_build_246726/partitions.csv"
Detecting libraries used...
/
ResolveLibrary(Update.h)
  -> candidates: [Update@1.0]
/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/config -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_trace -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_update -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/asio -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bootloader_support -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bt -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/coap -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/console -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/driver -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/efuse -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-tls -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32 -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_adc_cal -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_event -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_client -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_server -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_ota -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_server -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_ringbuf -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_websocket_client -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/espcoredump -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ethernet -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/expat -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fatfs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freemodbus -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freertos -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/heap -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/idf_test -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/jsmn -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/json -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/libsodium -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/log -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/lwip -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mbedtls -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mdns -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/micro-ecc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mqtt -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/newlib -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nghttp -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nimble -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nvs_flash -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/openssl -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protobuf-c -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protocomm -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/pthread -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/sdmmc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/smartconfig_ack -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/soc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spi_flash -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spiffs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcp_transport -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcpip_adapter -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ulp -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/unity -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/vfs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wear_levelling -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wifi_provisioning -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wpa_supplicant -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/xtensa-debug-module -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32-camera -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fb_gfx -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10819 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/cores/esp32 -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/variants/esp32 -I/home/myuser/Arduino/libraries/muse_lib/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SPI/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SD/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFiClientSecure/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFi/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WebServer/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/Update/src /tmp/arduino_build_246726/sketch/I2Saudio.ino.cpp -o /dev/null -DARDUINO_LIB_DISCOVERY_PHASE
Alternatives for DNSServer.h: [DNSServer@1.1.0]
ResolveLibrary(DNSServer.h)
  -> candidates: [DNSServer@1.1.0]
/home/myuser/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/xtensa-esp32-elf-g++ -DESP_PLATFORM "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DHAVE_CONFIG_H -DGCC_NOT_5_2_0=0 -DWITH_POSIX -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/config -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_trace -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/app_update -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/asio -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bootloader_support -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/bt -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/coap -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/console -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/driver -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/efuse -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-tls -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32 -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_adc_cal -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_event -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_client -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_http_server -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_ota -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_https_server -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_ringbuf -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp_websocket_client -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/espcoredump -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ethernet -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/expat -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fatfs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freemodbus -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/freertos -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/heap -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/idf_test -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/jsmn -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/json -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/libsodium -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/log -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/lwip -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mbedtls -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mdns -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/micro-ecc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/mqtt -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/newlib -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nghttp -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nimble -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/nvs_flash -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/openssl -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protobuf-c -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/protocomm -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/pthread -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/sdmmc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/smartconfig_ack -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/soc -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spi_flash -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/spiffs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcp_transport -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/tcpip_adapter -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/ulp -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/unity -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/vfs -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wear_levelling -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wifi_provisioning -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/wpa_supplicant -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/xtensa-debug-module -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp32-camera -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/esp-face -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/include/fb_gfx -std=gnu++11 -Os -g3 -Wpointer-arith -fexceptions -fstack-protector -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -mlongcalls -nostdlib -w -Wno-error=maybe-uninitialized -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-missing-field-initializers -Wno-sign-compare -fno-rtti -c -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10819 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"esp32\"" -DESP32 -DCORE_DEBUG_LEVEL=0 -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/cores/esp32 -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/variants/esp32 -I/home/myuser/Arduino/libraries/muse_lib/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SPI/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/SD/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFiClientSecure/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WiFi/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/WebServer/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/Update/src -I/home/myuser/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/DNSServer/src /tmp/arduino_build_246726/sketch/I2Saudio.ino.cpp -o /dev/null -DARDUINO_LIB_DISCOVERY_PHASE
Using cached library dependencies for file: /home/myuser/Arduino/libraries/muse_lib/src/Audio.cpp
Using cached library dependencies for file: /home/myuser/Arduino/libraries/muse_lib/src/IotWebConf.cpp