ESP32 Library- I2S.h No such file or directory

I get an include error when trying to include the <I2S.h> header file.
fatal error: I2S.h: No such file or directory

Here's the verbose output:

FQBN: esp32:esp32:esp32s3
Using board 'esp32s3' from platform in folder: C:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1
Using core 'esp32' from platform in folder: C:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1

cmd /c if exist "D:\\john\\Documents\\Arduino\\VoiceRec\\partitions.csv" COPY /y "D:\\john\\Documents\\Arduino\\VoiceRec\\partitions.csv" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\partitions.csv"
cmd /c if not exist "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\partitions.csv" if exist "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.1\\variants\\esp32s3\\partitions.csv" COPY "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.1\\variants\\esp32s3\\partitions.csv" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\partitions.csv"
cmd /c if not exist "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\partitions.csv" COPY "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.1\\tools\\partitions\\default.csv" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\partitions.csv"
        1 file(s) copied.
cmd /c IF EXIST "D:\\john\\Documents\\Arduino\\VoiceRec\\bootloader.bin" ( COPY /y "D:\\john\\Documents\\Arduino\\VoiceRec\\bootloader.bin" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\VoiceRec.ino.bootloader.bin" ) ELSE ( IF EXIST "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.1\\variants\\esp32s3\\bootloader.bin" ( COPY "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.0.1\\variants\\esp32s3\\bootloader.bin" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\VoiceRec.ino.bootloader.bin" ) ELSE ( "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\4.6\\esptool.exe" --chip esp32s3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\VoiceRec.ino.bootloader.bin" "C:\\Users\\casli\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.1-442a798083\\esp32s3\\bin\\bootloader_qio_80m.elf" ) )
esptool.py v4.6
Creating esp32s3 image...
Merged 1 ELF section
Successfully created esp32s3 image.
cmd /c if exist "D:\\john\\Documents\\Arduino\\VoiceRec\\build_opt.h" COPY /y "D:\\john\\Documents\\Arduino\\VoiceRec\\build_opt.h" "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\build_opt.h"
cmd /c if not exist "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\build_opt.h" type nul > "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F\\build_opt.h"
cmd /c type nul > "C:\\Users\\casli\\AppData\\Local\\Temp\\arduino\\sketches\\FFBD4E96CE5A569128365D615741A10F/file_opts"
Detecting libraries used...
C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp-xs3\2302/bin/xtensa-esp32s3-elf-g++ -c @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/cpp_flags -w -Os -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="windows" -DARDUINO_FQBN="esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/defines -ID:\john\Documents\Arduino\VoiceRec -iprefix C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/include/ @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/includes -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/qio_qspi/include -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\cores\esp32 -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\variants\esp32s3 @C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F/build_opt.h @C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F/file_opts C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F\sketch\VoiceRec.ino.cpp -o nul
Alternatives for Voice_Security_inferencing.h: [Voice_Security_inferencing@1.0.2]
ResolveLibrary(Voice_Security_inferencing.h)
  -> candidates: [Voice_Security_inferencing@1.0.2]
C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp-xs3\2302/bin/xtensa-esp32s3-elf-g++ -c @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/cpp_flags -w -Os -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="windows" -DARDUINO_FQBN="esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/defines -ID:\john\Documents\Arduino\VoiceRec -iprefix C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/include/ @C:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/flags/includes -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.1-442a798083\esp32s3/qio_qspi/include -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\cores\esp32 -IC:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\variants\esp32s3 -Id:\john\Documents\Arduino\libraries\Voice_Security_inferencing\src @C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F/build_opt.h @C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F/file_opts C:\Users\casli\AppData\Local\Temp\arduino\sketches\FFBD4E96CE5A569128365D615741A10F\sketch\VoiceRec.ino.cpp -o nul
D:\john\Documents\Arduino\VoiceRec\VoiceRec.ino:8:10: fatal error: I2S.h: No such file or directory
    8 | #include <I2S.h>
      |          ^~~~~~~
compilation terminated.
Alternatives for I2S.h: []
ResolveLibrary(I2S.h)
  -> candidates: []
exit status 1

Compilation error: I2S.h: No such file or directory

Here are the details of the device and software:
Board: ESP32_S3 Dev Module
Board Library Version: esp32 by Espressif Systems v3.0.1
Arduino IDE Version: 2.3.2
Platform: Windows10, x86-64

How do I resolve this ?

Hmm. A simple test of including the ESP32's platform library I2S using the same board type succeeded for me.

#include <I2S.h>

void setup() {
}

void loop() {
}
cli compile -b esp32:esp32:esp32s3 --warnings all --output-dir ~/tmp --no-color (in directory: /home/me/Documents/sketchbook/Firebeetle32/test)
Sketch uses 241201 bytes (18%) of program storage space. Maximum is 1310720 bytes.
Global variables use 18312 bytes (5%) of dynamic memory, leaving 309368 bytes for local variables. Maximum is 327680 bytes.
Used library Version Path
I2S          1.0     /home/me/.arduino15/packages/esp32/hardware/esp32/2.0.14/libraries/I2S
Used platform Version Path
esp32:esp32   2.0.14  /home/me/.arduino15/packages/esp32/hardware/esp32/2.0.14
Compilation finished successfully.

Perhaps check in C:\Users\casli\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1\libraries for the I2S directory and that it contains the src directory with I2S.h in it?

I checked the esp32\3.0.1\libraries\ directory and it doesn't contain a directory named "I2S". It does however contain a directory named 'ESP_I2S', which contains ESP_I2S.h. But I'm not sure it's the same thing, is it?

I just downgraded to esp32 version 2.0.17. It has the I2S header file (but doesn't contain the E2S_I2C library, so it's fair to assume that this one replaces the I2C library).
Problem solved! Thanks for your help @van_der_decken !!

This is because Arduino IDE abandoned the legacy I2S API, now using the new APIs (i2s_std.h/i2s_pdm.h/i2s_tdm.h), so they decided to update the .h to ESP_I2S.h.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.