From 8c5ac7605a1332cd4786fe14b2dd592a289076ef Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 22 Feb 2022 14:59:46 +0100
Subject: [PATCH 01/25] Support extern Ethernet (#60)

see https://github.com/espressif/arduino-esp32/discussions/6318
---
 configs/defconfig.esp32 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32
index 605ef41d2..b5ea534fc 100644
--- a/configs/defconfig.esp32
+++ b/configs/defconfig.esp32
@@ -23,6 +23,8 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
 CONFIG_ESP32_ULP_COPROC_ENABLED=y
 CONFIG_ESP32_XTAL_FREQ_AUTO=y
+CONFIG_ETH_RMII_CLK_OUTPUT=y
+CONFIG_ETH_RMII_CLK_OUT_GPIO=17
 CONFIG_ETH_SPI_ETHERNET_DM9051=y
 CONFIG_ETH_SPI_ETHERNET_W5500=y
 CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024

From b8c68f68536a72f14acab7c2e34c07d3babdbb54 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Wed, 23 Feb 2022 21:23:10 +0100
Subject: [PATCH 02/25] Revert "Support extern Ethernet (#60)" (#61)

This reverts commit 8c5ac7605a1332cd4786fe14b2dd592a289076ef.
---
 configs/defconfig.esp32 | 2 --
 1 file changed, 2 deletions(-)

diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32
index b5ea534fc..605ef41d2 100644
--- a/configs/defconfig.esp32
+++ b/configs/defconfig.esp32
@@ -23,8 +23,6 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
 CONFIG_ESP32_ULP_COPROC_ENABLED=y
 CONFIG_ESP32_XTAL_FREQ_AUTO=y
-CONFIG_ETH_RMII_CLK_OUTPUT=y
-CONFIG_ETH_RMII_CLK_OUT_GPIO=17
 CONFIG_ETH_SPI_ETHERNET_DM9051=y
 CONFIG_ETH_SPI_ETHERNET_W5500=y
 CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024

From 3931f52d1169f30fbf21e3b30b31d17417b4afe6 Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 01:29:02 +0200
Subject: [PATCH 03/25] Fix missing BLE 4.2 from ESP32-S3

---
 build.sh                  | 13 +++++++------
 configs/defconfig.esp32s3 |  1 +
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/build.sh b/build.sh
index fccb8eec2..6bc2779ec 100755
--- a/build.sh
+++ b/build.sh
@@ -17,20 +17,20 @@ COPY_OUT=0
 DEPLOY_OUT=0
 
 function print_help() {
-    echo "Usage: build.sh [-s] [-A arduino_branch] [-I idf_branch] [-i idf_commit] [-a path] [-t <target>] [-b <build|menuconfig|idf_libs|copy_bootloader|mem_variant>] [config ...]"
+    echo "Usage: build.sh [-s] [-A arduino_branch] [-I idf_branch] [-i idf_commit] [-c path] [-t <target>] [-b <build|menuconfig|idf_libs|copy_bootloader|mem_variant>] [config ...]"
     echo "       -s     Skip installing/updating of ESP-IDF and all components"
     echo "       -A     Set which branch of arduino-esp32 to be used for compilation"
     echo "       -I     Set which branch of ESP-IDF to be used for compilation"
     echo "       -i     Set which commit of ESP-IDF to be used for compilation"
     echo "       -d     Deploy the build to github arduino-esp32"
-    echo "       -a     Set the arduino-esp32 folder to copy the result to. ex. '$HOME/Arduino/hardware/espressif/esp32'"
+    echo "       -c     Set the arduino-esp32 folder to copy the result to. ex. '$HOME/Arduino/hardware/espressif/esp32'"
     echo "       -t     Set the build target(chip). ex. 'esp32s3'"
     echo "       -b     Set the build type. ex. 'build' to build the project and prepare for uploading to a board"
     echo "       ...    Specify additional configs to be applied. ex. 'qio 80m' to compile for QIO Flash@80MHz. Requires -b"
     exit 1
 }
 
-while getopts ":A:I:i:a:t:b:sd" opt; do
+while getopts ":A:I:i:c:t:b:sd" opt; do
     case ${opt} in
         s )
             SKIP_ENV=1
@@ -38,7 +38,7 @@ while getopts ":A:I:i:a:t:b:sd" opt; do
         d )
             DEPLOY_OUT=1
             ;;
-        a )
+        c )
             export ESP32_ARDUINO="$OPTARG"
             COPY_OUT=1
             ;;
@@ -111,6 +111,7 @@ rm -rf build sdkconfig out
 
 echo $(git -C $AR_COMPS/arduino describe --all --long) > version.txt
 
+#targets_count=`jq -c '.targets[] | length' configs/builds.json`
 for target_json in `jq -c '.targets[]' configs/builds.json`; do
     target=$(echo "$target_json" | jq -c '.target' | tr -d '"')
 
@@ -136,7 +137,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
     for boot_conf in `echo "$target_json" | jq -c '.bootloaders[]'`; do
         bootloader_configs="$main_configs"
         for defconf in `echo "$boot_conf" | jq -c '.[]' | tr -d '"'`; do
-            bootloader_configs="$bootloader_configs;configs/defconfig.$defconf"
+            bootloader_configs="$bootloader_configs;configs/defconfig.$defconf";
         done
         echo "* Build BootLoader: $bootloader_configs"
         rm -rf build sdkconfig
@@ -148,7 +149,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
     for mem_conf in `echo "$target_json" | jq -c '.mem_variants[]'`; do
         mem_configs="$main_configs"
         for defconf in `echo "$mem_conf" | jq -c '.[]' | tr -d '"'`; do
-            mem_configs="$mem_configs;configs/defconfig.$defconf"
+            mem_configs="$mem_configs;configs/defconfig.$defconf";
         done
         echo "* Build Memory Variant: $mem_configs"
         rm -rf build sdkconfig
diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3
index 899713f7b..8de433aff 100644
--- a/configs/defconfig.esp32s3
+++ b/configs/defconfig.esp32s3
@@ -8,6 +8,7 @@ CONFIG_COMPILER_CXX_EXCEPTIONS=y
 CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
 CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 CONFIG_BT_ENABLED=y
+CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
 CONFIG_BLE_MESH=y
 # CONFIG_SPI_MASTER_ISR_IN_IRAM is not set
 # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set

From cd5d3b2e7dceac38ea2c81496ef1e2ebb7412857 Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 02:30:58 +0200
Subject: [PATCH 04/25] Allow selecting Arduino branch based on the current
 lib-builder branch

---
 tools/update-components.sh | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index 4a8edbd88..803bf2655 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -18,19 +18,26 @@ if [ ! -d "$AR_COMPS/arduino" ]; then
 fi
 
 if [ -z $AR_BRANCH ]; then
-	has_ar_branch=`git_branch_exists "$AR_COMPS/arduino" "idf-$IDF_BRANCH"`
-	if [ "$has_ar_branch" == "1" ]; then
-		export AR_BRANCH="idf-$IDF_BRANCH"
+	current_branch=`git branch --show-current`
+	if [[ "$current_branch" != "master" && `git_branch_exists "$AR_COMPS/arduino" "$current_branch"` == "1" ]]; then
+		export AR_BRANCH="$current_branch"
 	else
-		has_ar_branch=`git_branch_exists "$AR_COMPS/arduino" "$AR_PR_TARGET_BRANCH"`
+		has_ar_branch=`git_branch_exists "$AR_COMPS/arduino" "idf-$IDF_BRANCH"`
 		if [ "$has_ar_branch" == "1" ]; then
-			export AR_BRANCH="$AR_PR_TARGET_BRANCH"
+			export AR_BRANCH="idf-$IDF_BRANCH"
+		else
+			has_ar_branch=`git_branch_exists "$AR_COMPS/arduino" "$AR_PR_TARGET_BRANCH"`
+			if [ "$has_ar_branch" == "1" ]; then
+				export AR_BRANCH="$AR_PR_TARGET_BRANCH"
+			fi
 		fi
 	fi
 fi
 
 if [ "$AR_BRANCH" ]; then
-	git -C "$AR_COMPS/arduino" checkout "$AR_BRANCH"
+	git -C "$AR_COMPS/arduino" checkout "$AR_BRANCH" && \
+	git -C "$AR_COMPS/arduino" fetch && \
+	git -C "$AR_COMPS/arduino" pull --ff-only
 fi
 if [ $? -ne 0 ]; then exit 1; fi
 

From 0180326a0252b27018b0ae32e10c67a4adff53d9 Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 02:50:38 +0200
Subject: [PATCH 05/25] For CI builds get branch from env

---
 tools/update-components.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index 803bf2655..fe4beaf7a 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -18,7 +18,11 @@ if [ ! -d "$AR_COMPS/arduino" ]; then
 fi
 
 if [ -z $AR_BRANCH ]; then
-	current_branch=`git branch --show-current`
+	if [ -z $GITHUB_REF_NAME ]; then
+		current_branch="$GITHUB_REF_NAME"
+	else
+		current_branch=`git branch --show-current`
+	fi
 	if [[ "$current_branch" != "master" && `git_branch_exists "$AR_COMPS/arduino" "$current_branch"` == "1" ]]; then
 		export AR_BRANCH="$current_branch"
 	else

From 68646715247c21635bf2e6cadba9ed7f8baf36ae Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 02:55:21 +0200
Subject: [PATCH 06/25] dump env

---
 tools/update-components.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index fe4beaf7a..2b7f56c05 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -12,6 +12,8 @@ TINYUSB_REPO_URL="https://github.com/hathach/tinyusb.git"
 #
 # CLONE/UPDATE ARDUINO
 #
+env 
+exit 0
 
 if [ ! -d "$AR_COMPS/arduino" ]; then
 	git clone $AR_REPO_URL "$AR_COMPS/arduino"

From ef3302c8ba4f74d2bb7119f664ad6650258406de Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 02:57:54 +0200
Subject: [PATCH 07/25] Update update-components.sh

---
 tools/update-components.sh | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index 2b7f56c05..f8c9e26a1 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -12,16 +12,14 @@ TINYUSB_REPO_URL="https://github.com/hathach/tinyusb.git"
 #
 # CLONE/UPDATE ARDUINO
 #
-env 
-exit 0
 
 if [ ! -d "$AR_COMPS/arduino" ]; then
 	git clone $AR_REPO_URL "$AR_COMPS/arduino"
 fi
 
 if [ -z $AR_BRANCH ]; then
-	if [ -z $GITHUB_REF_NAME ]; then
-		current_branch="$GITHUB_REF_NAME"
+	if [ -z $GITHUB_HEAD_REF ]; then
+		current_branch="$GITHUB_HEAD_REF"
 	else
 		current_branch=`git branch --show-current`
 	fi

From b1fe3e0cac6cfdac14b6b42056032cd37ada9c74 Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 03:01:45 +0200
Subject: [PATCH 08/25] Update update-components.sh

---
 tools/update-components.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index f8c9e26a1..76dbec07d 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -19,10 +19,11 @@ fi
 
 if [ -z $AR_BRANCH ]; then
 	if [ -z $GITHUB_HEAD_REF ]; then
-		current_branch="$GITHUB_HEAD_REF"
-	else
 		current_branch=`git branch --show-current`
+	else
+		current_branch="$GITHUB_HEAD_REF"
 	fi
+	echo "Current Branch: $current_branch"
 	if [[ "$current_branch" != "master" && `git_branch_exists "$AR_COMPS/arduino" "$current_branch"` == "1" ]]; then
 		export AR_BRANCH="$current_branch"
 	else

From 78b3992572711a6dab31c4353aedc82d4071faaa Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 24 Feb 2022 12:28:16 +0200
Subject: [PATCH 09/25] Add support for CPP exceptions for C3

Fixes: https://github.com/espressif/arduino-esp32/issues/6187
---
 configs/defconfig.esp32c3 | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/configs/defconfig.esp32c3 b/configs/defconfig.esp32c3
index c15bbcb1d..aa3e0124d 100644
--- a/configs/defconfig.esp32c3
+++ b/configs/defconfig.esp32c3
@@ -2,6 +2,9 @@ CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
 CONFIG_ARDUINO_RUN_CORE0=y
 CONFIG_ARDUINO_EVENT_RUN_CORE0=y
 CONFIG_COMPILER_OPTIMIZATION_SIZE=y
+CONFIG_COMPILER_CXX_EXCEPTIONS=y
+CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
+CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 CONFIG_BT_ENABLED=y
 CONFIG_BT_BLE_BLUFI_ENABLE=y
 CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y

From 79f7b0e728c3a0a3582ce6e2d7124a15c459efe8 Mon Sep 17 00:00:00 2001
From: me-no-dev <hristo@espressif.com>
Date: Thu, 10 Mar 2022 05:22:51 +0200
Subject: [PATCH 10/25] Script improvements, rainmaker and esp-sr

---
 .gitignore                                    |  3 +-
 CMakeLists.txt                                |  4 +-
 build.sh                                      | 18 ++++++++
 configs/builds.json                           | 19 +++++----
 configs/defconfig.common                      |  1 +
 configs/defconfig.esp32                       |  3 +-
 configs/defconfig.esp32s2                     |  3 +-
 configs/defconfig.esp32s3                     |  5 ++-
 .../{defconfig.opi_flash => defconfig.opi}    |  0
 configs/defconfig.opi_ram                     |  4 +-
 configs/defconfig.qio_ram                     |  1 +
 tools/copy-libs.sh                            |  8 ++--
 tools/copy-mem-variant.sh                     |  7 +++-
 tools/update-components.sh                    | 42 +++++++++++++------
 14 files changed, 87 insertions(+), 31 deletions(-)
 rename configs/{defconfig.opi_flash => defconfig.opi} (100%)
 create mode 100644 configs/defconfig.qio_ram

diff --git a/.gitignore b/.gitignore
index 18043de7e..b74965aea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,8 @@
 .DS_Store
 .vscode
 components/arduino/
-components/esp-face/
+components/esp-dl/
+components/esp-sr/
 components/esp32-camera/
 components/esp_littlefs/
 components/esp-rainmaker/
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3928bf105..8edbe7205 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,9 +2,7 @@
 # CMakeLists in this exact order for cmake to work correctly
 cmake_minimum_required(VERSION 3.5)
 
-if(IDF_TARGET STREQUAL "esp32")
-    set(EXTRA_COMPONENT_DIRS ${CMAKE_SOURCE_DIR}/components/esp-rainmaker/components)
-endif()
+set(EXTRA_COMPONENT_DIRS ${CMAKE_SOURCE_DIR}/components/esp-rainmaker/components)
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(arduino-lib-builder)
diff --git a/build.sh b/build.sh
index 6bc2779ec..a66245a17 100755
--- a/build.sh
+++ b/build.sh
@@ -97,9 +97,22 @@ if [ "$BUILD_TYPE" != "all" ]; then
         print_help
     fi
     configs="configs/defconfig.common;configs/defconfig.$TARGET"
+    
+    # Target Features Configs
+    for target_json in `jq -c '.targets[]' configs/builds.json`; do
+        target=$(echo "$target_json" | jq -c '.target' | tr -d '"')
+        if [ "$TARGET" == "$target" ]; then
+            for defconf in `echo "$target_json" | jq -c '.features[]' | tr -d '"'`; do
+                configs="$configs;configs/defconfig.$defconf"
+            done
+        fi
+    done
+
+    # Configs From Arguments
     for conf in $CONFIGS; do
         configs="$configs;configs/defconfig.$conf"
     done
+
     echo "idf.py -DIDF_TARGET=\"$TARGET\" -DSDKCONFIG_DEFAULTS=\"$configs\" $BUILD_TYPE"
     rm -rf build sdkconfig
     idf.py -DIDF_TARGET="$TARGET" -DSDKCONFIG_DEFAULTS="$configs" $BUILD_TYPE
@@ -121,7 +134,12 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
     fi
 
     echo "* Target: $target"
+
+    # Build Main Configs List
     main_configs="configs/defconfig.common;configs/defconfig.$target"
+    for defconf in `echo "$target_json" | jq -c '.features[]' | tr -d '"'`; do
+        main_configs="$main_configs;configs/defconfig.$defconf"
+    done
 
     # Build IDF Libs
     idf_libs_configs="$main_configs"
diff --git a/configs/builds.json b/configs/builds.json
index 8d20b2b1e..6d5b3a868 100644
--- a/configs/builds.json
+++ b/configs/builds.json
@@ -34,20 +34,23 @@
 	"targets":[
 		{
 			"target": "esp32s3",
-			"idf_libs":["qio","80m"],
+			"features":[],
+			"idf_libs":["qio","80m","qio_ram"],
 			"bootloaders":[
-				["qio","120m"],
-				["qio","80m"],
-				["dio","80m"],
-				["opi_flash","opi_ram","80m"]
+				["qio","120m","qio_ram"],
+				["qio","80m","qio_ram"],
+				["dio","80m","qio_ram"],
+				["opi","80m","opi_ram"]
 			],
 			"mem_variants":[
-				["opi_ram","80m"],
-				["opi_flash","opi_ram","80m"]
+				["qio","80m","opi_ram"],
+				["opi","80m","opi_ram"],
+				["opi","80m","qio_ram"]
 			]
 		},
 		{
 			"target": "esp32s2",
+			"features":["qio_ram"],
 			"idf_libs":["qio","80m"],
 			"bootloaders":[
 				["qio","80m"],
@@ -63,6 +66,7 @@
 		},
 		{
 			"target": "esp32c3",
+			"features":[],
 			"idf_libs":["qio","80m"],
 			"bootloaders":[
 				["qio","80m"],
@@ -78,6 +82,7 @@
 		},
 		{
 			"target": "esp32",
+			"features":["qio_ram"],
 			"idf_libs":["dio","40m"],
 			"bootloaders":[
 				["qio","80m"],
diff --git a/configs/defconfig.common b/configs/defconfig.common
index 68135c3a8..67ee16fb1 100644
--- a/configs/defconfig.common
+++ b/configs/defconfig.common
@@ -1,2 +1,3 @@
 CONFIG_AUTOSTART_ARDUINO=y
 CONFIG_ARDUINO_UDP_RUN_CORE0=y
+# CONFIG_WS2812_LED_ENABLE is not set
\ No newline at end of file
diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32
index 605ef41d2..f1fc7e444 100644
--- a/configs/defconfig.esp32
+++ b/configs/defconfig.esp32
@@ -17,7 +17,6 @@ CONFIG_BT_STACK_NO_LOG=y
 CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y
 CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y
 CONFIG_ESP32_SPIRAM_SUPPORT=y
-# CONFIG_SPIRAM_BOOT_INIT is not set
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
@@ -72,3 +71,5 @@ CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
+# CONFIG_USE_WAKENET is not set
+# CONFIG_USE_MULTINET is not set
\ No newline at end of file
diff --git a/configs/defconfig.esp32s2 b/configs/defconfig.esp32s2
index 28ca6c4cc..8ebfb8559 100644
--- a/configs/defconfig.esp32s2
+++ b/configs/defconfig.esp32s2
@@ -14,7 +14,6 @@ CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
 CONFIG_ESP32S2_DEFAULT_CPU_FREQ_240=y
 CONFIG_ESP32S2_SPIRAM_SUPPORT=y
-# CONFIG_SPIRAM_BOOT_INIT is not set
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
@@ -74,3 +73,5 @@ CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
+# CONFIG_USE_WAKENET is not set
+# CONFIG_USE_MULTINET is not set
\ No newline at end of file
diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3
index 8de433aff..8a8042e75 100644
--- a/configs/defconfig.esp32s3
+++ b/configs/defconfig.esp32s3
@@ -14,7 +14,6 @@ CONFIG_BLE_MESH=y
 # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
 CONFIG_ESP32S3_SPIRAM_SUPPORT=y
-# CONFIG_SPIRAM_BOOT_INIT is not set
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
@@ -76,3 +75,7 @@ CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
+CONFIG_SR_WN_MODEL_WN8_QUANT=y
+CONFIG_SR_WN_WN8_HIESP=y
+CONFIG_SR_MN_ENGLISH=y
+CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y
\ No newline at end of file
diff --git a/configs/defconfig.opi_flash b/configs/defconfig.opi
similarity index 100%
rename from configs/defconfig.opi_flash
rename to configs/defconfig.opi
diff --git a/configs/defconfig.opi_ram b/configs/defconfig.opi_ram
index 8e157ad01..16e6a278c 100644
--- a/configs/defconfig.opi_ram
+++ b/configs/defconfig.opi_ram
@@ -1 +1,3 @@
-CONFIG_SPIRAM_MODE_OCT=y
\ No newline at end of file
+CONFIG_SPIRAM_MODE_OCT=y
+CONFIG_SPIRAM_IGNORE_NOTFOUND=y
+# CONFIG_SPIRAM_MEMTEST is not set
\ No newline at end of file
diff --git a/configs/defconfig.qio_ram b/configs/defconfig.qio_ram
new file mode 100644
index 000000000..902680b3a
--- /dev/null
+++ b/configs/defconfig.qio_ram
@@ -0,0 +1 @@
+# CONFIG_SPIRAM_BOOT_INIT is not set
\ No newline at end of file
diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh
index 8e19c23e6..0c06f4b2b 100755
--- a/tools/copy-libs.sh
+++ b/tools/copy-libs.sh
@@ -196,7 +196,7 @@ for item; do
 				add_next=0
 				is_script=0
 				is_dir=0
-			elif [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" ]]; then
+			elif [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:17}" != "-Wl,--start-group" && "${item:0:15}" != "-Wl,--end-group" ]]; then
 				LD_FLAGS+="$item "
 				PIO_LD_FLAGS+="$item "
 			fi
@@ -359,6 +359,7 @@ for item; do
 		done
 	fi
 done
+echo "        join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\", env.BoardConfig().get(\"build.arduino.memory_type\", \"$MEMCONF\"), \"include\")," >> "$AR_PLATFORMIO_PY"
 echo "        join(FRAMEWORK_DIR, \"cores\", env.BoardConfig().get(\"build.core\"))" >> "$AR_PLATFORMIO_PY"
 echo "    ]," >> "$AR_PLATFORMIO_PY"
 echo "" >> "$AR_PLATFORMIO_PY"
@@ -383,7 +384,7 @@ done
 echo "    LIBPATH=[" >> "$AR_PLATFORMIO_PY"
 echo "        join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\", \"lib\")," >> "$AR_PLATFORMIO_PY"
 echo "        join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\", \"ld\")," >> "$AR_PLATFORMIO_PY"
-echo "        join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\", \"$MEMCONF\")" >> "$AR_PLATFORMIO_PY"
+echo "        join(FRAMEWORK_DIR, \"tools\", \"sdk\", \"$IDF_TARGET\", env.BoardConfig().get(\"build.arduino.memory_type\", \"$MEMCONF\"))" >> "$AR_PLATFORMIO_PY"
 echo "    ]," >> "$AR_PLATFORMIO_PY"
 echo "" >> "$AR_PLATFORMIO_PY"
 
@@ -473,7 +474,8 @@ echo "#define CONFIG_ARDUINO_IDF_COMMIT \"$IDF_COMMIT\"" >> "$AR_SDK/include/con
 echo "#define CONFIG_ARDUINO_IDF_BRANCH \"$IDF_BRANCH\"" >> "$AR_SDK/include/config/sdkconfig.h"
 
 # Handle Mem Variants
-mkdir -p "$AR_SDK/$MEMCONF"
+mkdir -p "$AR_SDK/$MEMCONF/include"
+mv "$AR_SDK/include/config/sdkconfig.h" "$AR_SDK/$MEMCONF/include/sdkconfig.h"
 for mem_variant in `jq -c '.mem_variants_files[]' configs/builds.json`; do
 	file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"')
 	out=$(echo "$mem_variant" | jq -c '.out' | tr -d '"')
diff --git a/tools/copy-mem-variant.sh b/tools/copy-mem-variant.sh
index c7b4765e2..b9366ad75 100755
--- a/tools/copy-mem-variant.sh
+++ b/tools/copy-mem-variant.sh
@@ -21,9 +21,14 @@ source ./tools/config.sh
 
 echo "IDF_TARGET: $IDF_TARGET, MEMCONF: $MEMCONF"
 
+# Add IDF versions to sdkconfig
+echo "#define CONFIG_ARDUINO_IDF_COMMIT \"$IDF_COMMIT\"" >> "build/config/sdkconfig.h"
+echo "#define CONFIG_ARDUINO_IDF_BRANCH \"$IDF_BRANCH\"" >> "build/config/sdkconfig.h"
+
 # Handle Mem Variants
 rm -rf "$AR_SDK/$MEMCONF"
-mkdir -p "$AR_SDK/$MEMCONF"
+mkdir -p "$AR_SDK/$MEMCONF/include"
+mv "build/config/sdkconfig.h" "$AR_SDK/$MEMCONF/include/sdkconfig.h"
 for mem_variant in `jq -c '.mem_variants_files[]' configs/builds.json`; do
 	file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"')
 	src=$(echo "$mem_variant" | jq -c '.src' | tr -d '"')
diff --git a/tools/update-components.sh b/tools/update-components.sh
index 76dbec07d..1c3391980 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -3,7 +3,8 @@
 source ./tools/config.sh
 
 CAMERA_REPO_URL="https://github.com/espressif/esp32-camera.git"
-FACE_REPO_URL="https://github.com/espressif/esp-dl.git"
+DL_REPO_URL="https://github.com/espressif/esp-dl.git"
+SR_REPO_URL="https://github.com/espressif/esp-sr.git"
 RMAKER_REPO_URL="https://github.com/espressif/esp-rainmaker.git"
 DSP_REPO_URL="https://github.com/espressif/esp-dsp.git"
 LITTLEFS_REPO_URL="https://github.com/joltwallet/esp_littlefs.git"
@@ -63,14 +64,26 @@ fi
 if [ $? -ne 0 ]; then exit 1; fi
 
 #
-# CLONE/UPDATE ESP-FACE
+# CLONE/UPDATE ESP-DL
 #
 
-if [ ! -d "$AR_COMPS/esp-face" ]; then
-	git clone $FACE_REPO_URL "$AR_COMPS/esp-face"
+if [ ! -d "$AR_COMPS/esp-dl" ]; then
+	git clone $DL_REPO_URL "$AR_COMPS/esp-dl"
 else
-	git -C "$AR_COMPS/esp-face" fetch && \
-	git -C "$AR_COMPS/esp-face" pull --ff-only
+	git -C "$AR_COMPS/esp-dl" fetch && \
+	git -C "$AR_COMPS/esp-dl" pull --ff-only
+fi
+if [ $? -ne 0 ]; then exit 1; fi
+
+#
+# CLONE/UPDATE ESP-SR
+#
+
+if [ ! -d "$AR_COMPS/esp-sr" ]; then
+	git clone $SR_REPO_URL "$AR_COMPS/esp-sr"
+else
+	git -C "$AR_COMPS/esp-sr" fetch && \
+	git -C "$AR_COMPS/esp-sr" pull --ff-only
 fi
 if [ $? -ne 0 ]; then exit 1; fi
 
@@ -93,8 +106,13 @@ if [ $? -ne 0 ]; then exit 1; fi
 #
 
 if [ ! -d "$AR_COMPS/esp-rainmaker" ]; then
-    git clone $RMAKER_REPO_URL "$AR_COMPS/esp-rainmaker"
-    git -C "$AR_COMPS/esp-rainmaker" checkout f1b82c71c4536ab816d17df016d8afe106bd60e3
+    git clone $RMAKER_REPO_URL "$AR_COMPS/esp-rainmaker" && \
+    git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive
+    # git -C "$AR_COMPS/esp-rainmaker" checkout f1b82c71c4536ab816d17df016d8afe106bd60e3
+else
+	git -C "$AR_COMPS/esp-rainmaker" fetch && \
+	git -C "$AR_COMPS/esp-rainmaker" pull --ff-only && \
+    git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive
 fi
 if [ $? -ne 0 ]; then exit 1; fi
 
@@ -104,10 +122,10 @@ if [ $? -ne 0 ]; then exit 1; fi
 
 if [ ! -d "$AR_COMPS/esp-dsp" ]; then
 	git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp"
-	cml=`cat "$AR_COMPS/esp-dsp/CMakeLists.txt"`
-	echo "if(IDF_TARGET STREQUAL \"esp32\" OR IDF_TARGET STREQUAL \"esp32s2\" OR IDF_TARGET STREQUAL \"esp32s3\")" > "$AR_COMPS/esp-dsp/CMakeLists.txt"
-	echo "$cml" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
-	echo "endif()" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
+	# cml=`cat "$AR_COMPS/esp-dsp/CMakeLists.txt"`
+	# echo "if(IDF_TARGET STREQUAL \"esp32\" OR IDF_TARGET STREQUAL \"esp32s2\" OR IDF_TARGET STREQUAL \"esp32s3\")" > "$AR_COMPS/esp-dsp/CMakeLists.txt"
+	# echo "$cml" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
+	# echo "endif()" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
 else
 	git -C "$AR_COMPS/esp-dsp" fetch && \
 	git -C "$AR_COMPS/esp-dsp" pull --ff-only

From f35da665e9d16bc55c70a1cf7c122d29b8132ebf Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:11:35 +0100
Subject: [PATCH 11/25] Update push.yml

---
 .github/workflows/push.yml | 40 ++++++++++++++++++++++++++++----------
 1 file changed, 30 insertions(+), 10 deletions(-)

diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index 87b558cf0..b7ffcf5c9 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -1,24 +1,44 @@
-name: ESP32 Arduino Libs CI
+name: ESP32 Arduino new with face
 
 on:
-  push:
-    branches:
-    - master
-  pull_request:
+  workflow_dispatch:  # Manually start a workflow
+#  push:
+#    branches: master
+#    paths-ignore:
+#    - '.github/**' # Ignore changes towards the .github directory
 
 jobs:
-
   build-libs:
     name: Build Arduino Libs
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v1
+    - uses: actions/checkout@v2
+    - uses: actions/setup-python@v2
+      with:
+        python-version: '3.8.10'
+        architecture: 'x64' 
     - name: Install dependencies
       run: bash ./tools/prepare-ci.sh
     - name: Build Arduino Libs
       run: bash ./build.sh
-    - name: Upload archive
-      uses: actions/upload-artifact@v1
+    - name: Upload artifact
+      uses: actions/upload-artifact@v2
       with:
-        name: artifacts
+        name: esp32-arduino
         path: dist
+    - name: Download new builded framework
+      uses: actions/download-artifact@v2
+      with:
+        name: esp32-arduino
+        path: ./esp32-arduino
+    - name: Display files from folder esp32-arduino 
+      run: ls esp32-arduino/*
+    - name: Release
+      uses: softprops/action-gh-release@v1
+      #if: startsWith(github.ref, 'refs/tags/')
+      with:
+        tag_name: ${{ github.run_number }}
+        prerelease: true
+        files: esp32-arduino/framework*
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

From 95405b6f5147baea3ae78132d2a403ac8ea2ee46 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:11:51 +0100
Subject: [PATCH 12/25] Delete cron.yml

---
 .github/workflows/cron.yml | 39 --------------------------------------
 1 file changed, 39 deletions(-)
 delete mode 100644 .github/workflows/cron.yml

diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml
deleted file mode 100644
index 117ca8361..000000000
--- a/.github/workflows/cron.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: Cron Build
-
-on: 
-  schedule:
-#             ┌───────────── minute (0 - 59)
-#             │ ┌───────────── hour (0 - 23)
-#             │ │ ┌───────────── day of the month (1 - 31)
-#             │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
-#             │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
-#             │ │ │ │ │                                   
-#             │ │ │ │ │
-#             │ │ │ │ │
-#             * * * * *
-    - cron:  '0 */6 * * *'
-
-jobs:
-  run:
-    name: Build with IDF ${{ matrix.idf_branch }}
-    runs-on: ubuntu-latest
-    
-    strategy:
-      matrix:
-        idf_branch: [release/v4.4] #, release/v3.3]
-    steps:
-    - uses: actions/checkout@v1
-    - name: Install dependencies
-      run: bash ./tools/prepare-ci.sh
-    - name: Build
-      env:
-        GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }}
-        GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }}
-        GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }}
-        IDF_BRANCH: ${{ matrix.idf_branch }}
-      run: bash ./tools/cron.sh
-    - name: Upload archive
-      uses: actions/upload-artifact@v1
-      with:
-        name: artifacts
-        path: dist

From 535f6433792e582ed7c683e4243a87f2117de503 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:17:29 +0100
Subject: [PATCH 13/25] Update defconfig.esp32

---
 configs/defconfig.esp32 | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32
index f1fc7e444..b2fd5d3bb 100644
--- a/configs/defconfig.esp32
+++ b/configs/defconfig.esp32
@@ -1,8 +1,9 @@
 CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
+CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE=y
+CONFIG_DISABLE_HAL_LOCKS=y
 CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
-CONFIG_ARDUHAL_ESP_LOG=y
 CONFIG_COMPILER_OPTIMIZATION_SIZE=y
-CONFIG_COMPILER_CXX_EXCEPTIONS=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
 CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
 CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 CONFIG_BT_ENABLED=y
@@ -17,26 +18,25 @@ CONFIG_BT_STACK_NO_LOG=y
 CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y
 CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y
 CONFIG_ESP32_SPIRAM_SUPPORT=y
+CONFIG_SPIRAM_IGNORE_NOTFOUND=y
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
-CONFIG_ESP32_ULP_COPROC_ENABLED=y
 CONFIG_ESP32_XTAL_FREQ_AUTO=y
 CONFIG_ETH_SPI_ETHERNET_DM9051=y
 CONFIG_ETH_SPI_ETHERNET_W5500=y
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
 CONFIG_HTTPD_WS_SUPPORT=y
 CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
 CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
 CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
-CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
+CONFIG_ESP_INT_WDT_TIMEOUT_MS=1000
 CONFIG_ESP_TASK_WDT_PANIC=y
+CONFIG_ESP_TASK_WDT_TIMEOUT_S=10
 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set
 CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096
 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=8
 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
 CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
-# CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE is not set
 CONFIG_FATFS_CODEPAGE_850=y
 CONFIG_FATFS_LFN_STACK=y
 # CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set
@@ -46,11 +46,15 @@ CONFIG_FREERTOS_HZ=1000
 CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
 CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
 CONFIG_FREERTOS_FPU_IN_ISR=y
+CONFIG_HAL_ASSERTION_DISABLE=y
 CONFIG_HEAP_POISONING_LIGHT=y
-CONFIG_LOG_DEFAULT_LEVEL_ERROR=y
+CONFIG_LOG_DEFAULT_LEVEL_NONE=y
 # CONFIG_LOG_COLORS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="tasmota"
 CONFIG_LWIP_MAX_SOCKETS=16
-CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y
+CONFIG_LWIP_SO_RCVBUF=y
+CONFIG_LWIP_IP_FORWARD=y
+CONFIG_LWIP_IPV4_NAPT=y
 # CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
 CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y
 CONFIG_LWIP_DHCP_OPTIONS_LEN=128
@@ -59,17 +63,21 @@ CONFIG_LWIP_TCP_MSS=1436
 CONFIG_LWIP_TCP_RTO_TIME=3000
 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560
 CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y
-CONFIG_LWIP_SNTP_MAX_SERVERS=3
-CONFIG_LWIP_DHCP_GET_NTP_SRV=y
 # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set
 # CONFIG_MBEDTLS_HARDWARE_SHA is not set
 CONFIG_MBEDTLS_PSK_MODES=y
 CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
-CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
+CONFIG_NEWLIB_NANO_FORMAT=y
+# CONFIG_OPENSSL_ERROR_STACK is not set
 CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
 CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
+CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
+CONFIG_ULP_COPROC_ENABLED=y
 # CONFIG_USE_WAKENET is not set
-# CONFIG_USE_MULTINET is not set
\ No newline at end of file
+# CONFIG_USE_MULTINET is not set
+# CONFIG_VFS_SUPPORT_SELECT is not set
+# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
+# CONFIG_VFS_SUPPORT_TERMIOS is not set

From 0e396a9bffd3f040063ccc7330f949c9237af19f Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:22:24 +0100
Subject: [PATCH 14/25] Update defconfig.esp32s2

---
 configs/defconfig.esp32s2 | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/configs/defconfig.esp32s2 b/configs/defconfig.esp32s2
index 8ebfb8559..f73389d18 100644
--- a/configs/defconfig.esp32s2
+++ b/configs/defconfig.esp32s2
@@ -1,27 +1,24 @@
 CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
+CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE=y
+CONFIG_DISABLE_HAL_LOCKS=y
 CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
 CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
-CONFIG_ARDUINO_RUN_CORE0=y
-CONFIG_ARDUINO_EVENT_RUN_CORE0=y
-CONFIG_ARDUHAL_ESP_LOG=y
 CONFIG_TINYUSB_MSC_BUFSIZE=4096
 CONFIG_TINYUSB_DESC_DFU_RT_STRING="Espressif DFU Device"
 CONFIG_COMPILER_OPTIMIZATION_SIZE=y
-CONFIG_COMPILER_CXX_EXCEPTIONS=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
 CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
 CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 # CONFIG_SPI_MASTER_ISR_IN_IRAM is not set
 # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
 CONFIG_ESP32S2_DEFAULT_CPU_FREQ_240=y
 CONFIG_ESP32S2_SPIRAM_SUPPORT=y
+CONFIG_SPIRAM_IGNORE_NOTFOUND=y
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
 CONFIG_ESP32S2_KEEP_USB_ALIVE=y
-CONFIG_ETH_SPI_ETHERNET_DM9051=y
-CONFIG_ETH_SPI_ETHERNET_W5500=y
 CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH=y
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
 CONFIG_HTTPD_WS_SUPPORT=y
 CONFIG_ESP_HTTPS_SERVER_ENABLE=y
 CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
@@ -29,7 +26,7 @@ CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
 CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
 CONFIG_ESP_INT_WDT_TIMEOUT_MS=1000
 CONFIG_ESP_TASK_WDT_PANIC=y
-# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set
+CONFIG_ESP_TASK_WDT_TIMEOUT_S=10
 CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096
 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=8
 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=8
@@ -37,7 +34,6 @@ CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
 CONFIG_ESP32_WIFI_CSI_ENABLED=y
 # CONFIG_ESP32_WIFI_IRAM_OPT is not set
 # CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set
-# CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE is not set
 CONFIG_ESP_WIFI_FTM_ENABLE=y
 CONFIG_FATFS_CODEPAGE_850=y
 CONFIG_FATFS_LFN_STACK=y
@@ -47,11 +43,15 @@ CONFIG_FREERTOS_HZ=1000
 # CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION is not set
 CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
 CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
+CONFIG_HAL_ASSERTION_DISABLE=y
 CONFIG_HEAP_POISONING_LIGHT=y
-CONFIG_LOG_DEFAULT_LEVEL_ERROR=y
+CONFIG_LOG_DEFAULT_LEVEL_NONE=y
 # CONFIG_LOG_COLORS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="tasmota"
 CONFIG_LWIP_MAX_SOCKETS=16
-CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y
+CONFIG_LWIP_SO_RCVBUF=y
+CONFIG_LWIP_IP_FORWARD=y
+CONFIG_LWIP_IPV4_NAPT=y
 # CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
 CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y
 CONFIG_LWIP_DHCP_OPTIONS_LEN=128
@@ -60,18 +60,19 @@ CONFIG_LWIP_TCP_MSS=1436
 CONFIG_LWIP_TCP_RTO_TIME=3000
 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560
 CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y
-CONFIG_LWIP_SNTP_MAX_SERVERS=3
-CONFIG_LWIP_DHCP_GET_NTP_SRV=y
 # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set
-# CONFIG_MBEDTLS_HARDWARE_MPI is not set
-# CONFIG_MBEDTLS_HARDWARE_SHA is not set
+CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
 CONFIG_MBEDTLS_PSK_MODES=y
 CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
-CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
+CONFIG_NEWLIB_NANO_FORMAT=y
 CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
 CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
+CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
 # CONFIG_USE_WAKENET is not set
-# CONFIG_USE_MULTINET is not set
\ No newline at end of file
+# CONFIG_USE_MULTINET is not set
+# CONFIG_VFS_SUPPORT_SELECT is not set
+# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
+# CONFIG_VFS_SUPPORT_TERMIOS is not set

From c0a47869bde9cc47bd54dff9045af7cf788e015d Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:27:57 +0100
Subject: [PATCH 15/25] Update defconfig.esp32s3

---
 configs/defconfig.esp32s3 | 57 ++++++++++++++++++++++++++++-----------
 1 file changed, 42 insertions(+), 15 deletions(-)

diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3
index 8a8042e75..393022dde 100644
--- a/configs/defconfig.esp32s3
+++ b/configs/defconfig.esp32s3
@@ -1,27 +1,49 @@
 CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
+CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE=y
+CONFIG_DISABLE_HAL_LOCKS=y
 CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
 CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
-CONFIG_ARDUHAL_ESP_LOG=y
 CONFIG_TINYUSB_MSC_BUFSIZE=4096
 CONFIG_COMPILER_OPTIMIZATION_SIZE=y
-CONFIG_COMPILER_CXX_EXCEPTIONS=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
 CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
 CONFIG_COMPILER_WARN_WRITE_STRINGS=y
 CONFIG_BT_ENABLED=y
 CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
-CONFIG_BLE_MESH=y
 # CONFIG_SPI_MASTER_ISR_IN_IRAM is not set
 # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set
+CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE=y
+CONFIG_BLE_MESH_TRACE_LEVEL_NONE=y
+CONFIG_BLE_MESH_NET_BUF_TRACE_LEVEL_NONE=y
 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
 CONFIG_ESP32S3_SPIRAM_SUPPORT=y
+CONFIG_SPIRAM_SPEED_80M=y
+CONFIG_SPIRAM_IGNORE_NOTFOUND=y
 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
 CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0
 CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=576
-CONFIG_ETH_SPI_ETHERNET_DM9051=y
-CONFIG_ETH_SPI_ETHERNET_W5500=y
 CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH=y
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
 CONFIG_HTTPD_WS_SUPPORT=y
 CONFIG_ESP_HTTPS_SERVER_ENABLE=y
 CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO=y
@@ -31,6 +53,7 @@ CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
 CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
 CONFIG_ESP_INT_WDT_TIMEOUT_MS=1000
 CONFIG_ESP_TASK_WDT_PANIC=y
+CONFIG_ESP_TASK_WDT_TIMEOUT_S=10
 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set
 CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096
 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=8
@@ -39,7 +62,6 @@ CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
 CONFIG_ESP32_WIFI_CSI_ENABLED=y
 # CONFIG_ESP32_WIFI_IRAM_OPT is not set
 # CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set
-# CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE is not set
 CONFIG_ESP_WIFI_FTM_ENABLE=y
 CONFIG_FATFS_CODEPAGE_850=y
 CONFIG_FATFS_LFN_STACK=y
@@ -49,11 +71,15 @@ CONFIG_FREERTOS_HZ=1000
 # CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION is not set
 CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
 CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
+CONFIG_HAL_ASSERTION_DISABLE=y
 CONFIG_HEAP_POISONING_LIGHT=y
-CONFIG_LOG_DEFAULT_LEVEL_ERROR=y
+CONFIG_LOG_DEFAULT_LEVEL_NONE=y
 # CONFIG_LOG_COLORS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="tasmota"
 CONFIG_LWIP_MAX_SOCKETS=16
-CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y
+CONFIG_LWIP_SO_RCVBUF=y
+CONFIG_LWIP_IP_FORWARD=y
+CONFIG_LWIP_IPV4_NAPT=y
 # CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
 CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y
 CONFIG_LWIP_DHCP_OPTIONS_LEN=128
@@ -62,20 +88,21 @@ CONFIG_LWIP_TCP_MSS=1436
 CONFIG_LWIP_TCP_RTO_TIME=3000
 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560
 CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y
-CONFIG_LWIP_SNTP_MAX_SERVERS=3
-CONFIG_LWIP_DHCP_GET_NTP_SRV=y
 # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set
-# CONFIG_MBEDTLS_HARDWARE_MPI is not set
-# CONFIG_MBEDTLS_HARDWARE_SHA is not set
 CONFIG_MBEDTLS_PSK_MODES=y
 CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
-CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
+CONFIG_NEWLIB_NANO_FORMAT=y
+# CONFIG_OPENSSL_ERROR_STACK is not set
 CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
 CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048
+CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2
 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096
 CONFIG_SR_WN_MODEL_WN8_QUANT=y
 CONFIG_SR_WN_WN8_HIESP=y
 CONFIG_SR_MN_ENGLISH=y
-CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y
\ No newline at end of file
+CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y
+# CONFIG_VFS_SUPPORT_SELECT is not set
+# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
+# CONFIG_VFS_SUPPORT_TERMIOS is not set

From b5cea039e06b47f1eed5cd85683e67ba711da2a1 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:30:02 +0100
Subject: [PATCH 16/25] Update archive-build.sh

---
 tools/archive-build.sh | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/tools/archive-build.sh b/tools/archive-build.sh
index d6682ff97..05a02918c 100755
--- a/tools/archive-build.sh
+++ b/tools/archive-build.sh
@@ -6,11 +6,29 @@ IDF_BRANCH=$(git -C "$IDF_PATH" symbolic-ref --short HEAD)
 idf_version_string=${IDF_BRANCH//\//_}"-$IDF_COMMIT"
 archive_path="dist/arduino-esp32-libs-$idf_version_string.tar.gz"
 build_archive_path="dist/arduino-esp32-build-$idf_version_string.tar.gz"
+pio_archive_path="dist/framework-arduinoespressif32-$idf_version_string.tar.gz"
 
 mkdir -p dist && rm -rf "$archive_path" "$build_archive_path"
-if [ -d "out" ]; then
-	cd out && tar zcf "../$archive_path" * && cd ..
-fi
-if [ -d "build" ]; then
-	cd build && tar zcf "../$build_archive_path" * && cd ..
-fi
+
+cd out
+echo "Show files from folder out"
+ls
+echo "Show Arduino directory"
+ls ../components/arduino
+echo "Creating framework-arduinoespressif32"
+cp -rf ../components/arduino arduino-esp32
+rm -rf arduino-esp32/docs
+rm -rf arduino-esp32/package
+rm -rf arduino-esp32/tools/sdk
+rm -rf arduino-esp32/tools/esptool.py
+rm -rf arduino-esp32/tools/gen_esp32part.py
+rm -rf arduino-esp32/tools/platformio-build-*.py
+rm -rf arduino-esp32/platform.txt
+cp -f platform.txt arduino-esp32/
+cp -Rf tools/sdk arduino-esp32/tools/
+cp -f tools/esptool.py arduino-esp32/tools/
+cp -f tools/gen_esp32part.py arduino-esp32/tools/
+cp -f tools/platformio-build-*.py arduino-esp32/tools/
+cp ../core_version.h arduino-esp32/cores/esp32/core_version.h
+mv arduino-esp32/ framework-arduinoespressif32/
+tar --exclude=.* -zcf ../$pio_archive_path framework-arduinoespressif32/

From 9f1ea7b964bb0a1e10b117dcef582fb2388042a1 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:30:54 +0100
Subject: [PATCH 17/25] Update config.sh

---
 tools/config.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/config.sh b/tools/config.sh
index 2c4e626ad..7e73de854 100755
--- a/tools/config.sh
+++ b/tools/config.sh
@@ -3,7 +3,7 @@
 IDF_COMPS="$IDF_PATH/components"
 
 if [ -z $IDF_BRANCH ]; then
-	IDF_BRANCH="release/v4.4"
+	IDF_BRANCH="v4.4_dev"
 fi
 
 if [ -z $AR_PR_TARGET_BRANCH ]; then
@@ -24,11 +24,14 @@ fi
 IDF_TOOLCHAIN="xtensa-$IDF_TARGET-elf"
 
 # Owner of the target ESP32 Arduino repository
-AR_USER="espressif"
+AR_USER="tasmota"
 
 # The full name of the repository
 AR_REPO="$AR_USER/arduino-esp32"
 
+# Arduino branch to use
+AR_BRANCH="esp32-s3-support"
+
 AR_REPO_URL="https://github.com/$AR_REPO.git"
 if [ -n $GITHUB_TOKEN ]; then
 	AR_REPO_URL="https://$GITHUB_TOKEN@github.com/$AR_REPO.git"

From 4da897d99fb7d561dcb75c408145f3ea59db2e98 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 13:35:00 +0100
Subject: [PATCH 18/25] Update install-esp-idf.sh

---
 tools/install-esp-idf.sh | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh
index a0e58899f..bc332f454 100755
--- a/tools/install-esp-idf.sh
+++ b/tools/install-esp-idf.sh
@@ -11,20 +11,22 @@ fi
 # CLONE ESP-IDF
 #
 
-IDF_REPO_URL="https://github.com/espressif/esp-idf.git"
+IDF_REPO_URL="https://github.com/tasmota/esp-idf.git"
 if [ -z "$IDF_PATH" ]; then
 	echo "ESP-IDF is not installed! Installing local copy"
 	idf_was_installed="1"
 	if ! [ -d esp-idf ]; then
+                echo "git clone $IDF_REPO_URL -b $IDF_BRANCH"
 		git clone $IDF_REPO_URL -b $IDF_BRANCH
 	fi
 	export IDF_PATH="$AR_ROOT/esp-idf"
 fi
 
-if [ "$IDF_COMMIT" ]; then
-    git -C "$IDF_PATH" checkout "$IDF_COMMIT"
-    commit_predefined="1"
-fi
+# Next lines redirects ALWAYS to espressif git since this sha1 only exists there!!!
+#if [ "$IDF_COMMIT" ]; then
+#    git -C "$IDF_PATH" checkout "$IDF_COMMIT"
+#    commit_predefined="1"
+#fi
 
 export IDF_COMMIT=$(git -C "$IDF_PATH" rev-parse --short HEAD)
 export IDF_BRANCH=$(git -C "$IDF_PATH" symbolic-ref --short HEAD)

From 0bbde47cd86e269c01493b78beaef930765ff7ac Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 14:00:36 +0100
Subject: [PATCH 19/25] no rainmaker

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8edbe7205..8dcb88095 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@
 # CMakeLists in this exact order for cmake to work correctly
 cmake_minimum_required(VERSION 3.5)
 
-set(EXTRA_COMPONENT_DIRS ${CMAKE_SOURCE_DIR}/components/esp-rainmaker/components)
+#set(EXTRA_COMPONENT_DIRS ${CMAKE_SOURCE_DIR}/components/esp-rainmaker/components)
 
 include($ENV{IDF_PATH}/tools/cmake/project.cmake)
 project(arduino-lib-builder)

From a9450b50fc681413a7b02808e34d084e245490b5 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 14:04:19 +0100
Subject: [PATCH 20/25] remove rainmaker

---
 tools/update-components.sh | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index 1c3391980..e06ed5919 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -5,7 +5,6 @@ source ./tools/config.sh
 CAMERA_REPO_URL="https://github.com/espressif/esp32-camera.git"
 DL_REPO_URL="https://github.com/espressif/esp-dl.git"
 SR_REPO_URL="https://github.com/espressif/esp-sr.git"
-RMAKER_REPO_URL="https://github.com/espressif/esp-rainmaker.git"
 DSP_REPO_URL="https://github.com/espressif/esp-dsp.git"
 LITTLEFS_REPO_URL="https://github.com/joltwallet/esp_littlefs.git"
 TINYUSB_REPO_URL="https://github.com/hathach/tinyusb.git"
@@ -101,21 +100,6 @@ else
 fi
 if [ $? -ne 0 ]; then exit 1; fi
 
-#
-# CLONE/UPDATE ESP-RAINMAKER
-#
-
-if [ ! -d "$AR_COMPS/esp-rainmaker" ]; then
-    git clone $RMAKER_REPO_URL "$AR_COMPS/esp-rainmaker" && \
-    git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive
-    # git -C "$AR_COMPS/esp-rainmaker" checkout f1b82c71c4536ab816d17df016d8afe106bd60e3
-else
-	git -C "$AR_COMPS/esp-rainmaker" fetch && \
-	git -C "$AR_COMPS/esp-rainmaker" pull --ff-only && \
-    git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive
-fi
-if [ $? -ne 0 ]; then exit 1; fi
-
 #
 # CLONE/UPDATE ESP-DSP
 #

From de54dc2233ab80d7c4fc6f77ca444b3ad9a7c9ac Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 15:25:43 +0100
Subject: [PATCH 21/25] core 2.0.2.4

---
 core_version.h | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 core_version.h

diff --git a/core_version.h b/core_version.h
new file mode 100644
index 000000000..0ccdf58ba
--- /dev/null
+++ b/core_version.h
@@ -0,0 +1,4 @@
+#define ARDUINO_ESP32_GIT_VER 0xd45984b5
+#define ARDUINO_ESP32_GIT_DESC 2.0.2.4
+#define ARDUINO_ESP32_RELEASE_2_0_2_4
+#define ARDUINO_ESP32_RELEASE "2_0_2_4"

From 081da4d37dfd77d6fd2d6ffbc4924353770286fa Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 16:15:06 +0100
Subject: [PATCH 22/25] No dl, dsp and face

---
 tools/update-components.sh | 42 +++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index e06ed5919..344a772ee 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -66,25 +66,25 @@ if [ $? -ne 0 ]; then exit 1; fi
 # CLONE/UPDATE ESP-DL
 #
 
-if [ ! -d "$AR_COMPS/esp-dl" ]; then
-	git clone $DL_REPO_URL "$AR_COMPS/esp-dl"
-else
-	git -C "$AR_COMPS/esp-dl" fetch && \
-	git -C "$AR_COMPS/esp-dl" pull --ff-only
-fi
-if [ $? -ne 0 ]; then exit 1; fi
+#if [ ! -d "$AR_COMPS/esp-dl" ]; then
+#	git clone $DL_REPO_URL "$AR_COMPS/esp-dl"
+#else
+#	git -C "$AR_COMPS/esp-dl" fetch && \
+#	git -C "$AR_COMPS/esp-dl" pull --ff-only
+#fi
+#if [ $? -ne 0 ]; then exit 1; fi
 
 #
 # CLONE/UPDATE ESP-SR
 #
 
-if [ ! -d "$AR_COMPS/esp-sr" ]; then
-	git clone $SR_REPO_URL "$AR_COMPS/esp-sr"
-else
-	git -C "$AR_COMPS/esp-sr" fetch && \
-	git -C "$AR_COMPS/esp-sr" pull --ff-only
-fi
-if [ $? -ne 0 ]; then exit 1; fi
+#if [ ! -d "$AR_COMPS/esp-sr" ]; then
+#	git clone $SR_REPO_URL "$AR_COMPS/esp-sr"
+#else
+#	git -C "$AR_COMPS/esp-sr" fetch && \
+#	git -C "$AR_COMPS/esp-sr" pull --ff-only
+#fi
+#if [ $? -ne 0 ]; then exit 1; fi
 
 #
 # CLONE/UPDATE ESP-LITTLEFS
@@ -104,17 +104,17 @@ if [ $? -ne 0 ]; then exit 1; fi
 # CLONE/UPDATE ESP-DSP
 #
 
-if [ ! -d "$AR_COMPS/esp-dsp" ]; then
-	git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp"
+#if [ ! -d "$AR_COMPS/esp-dsp" ]; then
+#	git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp"
 	# cml=`cat "$AR_COMPS/esp-dsp/CMakeLists.txt"`
 	# echo "if(IDF_TARGET STREQUAL \"esp32\" OR IDF_TARGET STREQUAL \"esp32s2\" OR IDF_TARGET STREQUAL \"esp32s3\")" > "$AR_COMPS/esp-dsp/CMakeLists.txt"
 	# echo "$cml" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
 	# echo "endif()" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
-else
-	git -C "$AR_COMPS/esp-dsp" fetch && \
-	git -C "$AR_COMPS/esp-dsp" pull --ff-only
-fi
-if [ $? -ne 0 ]; then exit 1; fi
+#else
+#	git -C "$AR_COMPS/esp-dsp" fetch && \
+#	git -C "$AR_COMPS/esp-dsp" pull --ff-only
+#fi
+#if [ $? -ne 0 ]; then exit 1; fi
 
 #
 # CLONE/UPDATE TINYUSB

From 7f7aa0876daa06ccfa0c6b984b08e401bee3d059 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 16:53:49 +0100
Subject: [PATCH 23/25] Update defconfig.esp32c3

---
 configs/defconfig.esp32c3 | 48 +++++++++++++++++++++++++++++++--------
 1 file changed, 39 insertions(+), 9 deletions(-)

diff --git a/configs/defconfig.esp32c3 b/configs/defconfig.esp32c3
index aa3e0124d..0f369db19 100644
--- a/configs/defconfig.esp32c3
+++ b/configs/defconfig.esp32c3
@@ -1,18 +1,40 @@
 CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
-CONFIG_ARDUINO_RUN_CORE0=y
-CONFIG_ARDUINO_EVENT_RUN_CORE0=y
+CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE=y
+CONFIG_DISABLE_HAL_LOCKS=y
 CONFIG_COMPILER_OPTIMIZATION_SIZE=y
-CONFIG_COMPILER_CXX_EXCEPTIONS=y
-CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y
-CONFIG_COMPILER_WARN_WRITE_STRINGS=y
+CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
+CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y
 CONFIG_BT_ENABLED=y
+CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE=y
+CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE=y
 CONFIG_BT_BLE_BLUFI_ENABLE=y
 CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
+CONFIG_ESP32C3_REV_MIN_0=y
 CONFIG_ESP32C3_RTC_CLK_CAL_CYCLES=576
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
 CONFIG_HTTPD_WS_SUPPORT=y
 CONFIG_ESP_HTTPS_SERVER_ENABLE=y
 CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
+CONFIG_ESP_INT_WDT_TIMEOUT_MS=1000
+CONFIG_ESP_TASK_WDT_TIMEOUT_S=10
 # CONFIG_ESP32_WIFI_IRAM_OPT is not set
 # CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set
 CONFIG_ESP_WIFI_FTM_ENABLE=y
@@ -20,12 +42,20 @@ CONFIG_FATFS_LFN_HEAP=y
 CONFIG_FMB_TIMER_PORT_ENABLED=y
 CONFIG_FREERTOS_HZ=1000
 CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
-CONFIG_LOG_DEFAULT_LEVEL_ERROR=y
+CONFIG_HAL_ASSERTION_DISABLE=y
+CONFIG_LOG_DEFAULT_LEVEL_NONE=y
 # CONFIG_LOG_COLORS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="tasmota"
 CONFIG_LWIP_MAX_SOCKETS=16
+CONFIG_LWIP_SO_RCVBUF=y
+CONFIG_LWIP_IP_FORWARD=y
+CONFIG_LWIP_IPV4_NAPT=y
 CONFIG_LWIP_DHCP_OPTIONS_LEN=128
-CONFIG_LWIP_SNTP_MAX_SERVERS=3
-CONFIG_LWIP_DHCP_GET_NTP_SRV=y
 CONFIG_MBEDTLS_PSK_MODES=y
 CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
 CONFIG_MBEDTLS_CAMELLIA_C=y
+CONFIG_NEWLIB_NANO_FORMAT=y
+CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y
+# CONFIG_VFS_SUPPORT_SELECT is not set
+# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
+# CONFIG_VFS_SUPPORT_TERMIOS is not set

From 0c1ab8e367e0106e3abb7556b345f3f15ab45b66 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 17:02:55 +0100
Subject: [PATCH 24/25] DSP enable

---
 tools/update-components.sh | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/update-components.sh b/tools/update-components.sh
index 344a772ee..e7286ace3 100755
--- a/tools/update-components.sh
+++ b/tools/update-components.sh
@@ -104,17 +104,17 @@ if [ $? -ne 0 ]; then exit 1; fi
 # CLONE/UPDATE ESP-DSP
 #
 
-#if [ ! -d "$AR_COMPS/esp-dsp" ]; then
-#	git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp"
+if [ ! -d "$AR_COMPS/esp-dsp" ]; then
+	git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp"
 	# cml=`cat "$AR_COMPS/esp-dsp/CMakeLists.txt"`
 	# echo "if(IDF_TARGET STREQUAL \"esp32\" OR IDF_TARGET STREQUAL \"esp32s2\" OR IDF_TARGET STREQUAL \"esp32s3\")" > "$AR_COMPS/esp-dsp/CMakeLists.txt"
 	# echo "$cml" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
 	# echo "endif()" >> "$AR_COMPS/esp-dsp/CMakeLists.txt"
-#else
-#	git -C "$AR_COMPS/esp-dsp" fetch && \
-#	git -C "$AR_COMPS/esp-dsp" pull --ff-only
-#fi
-#if [ $? -ne 0 ]; then exit 1; fi
+else
+	git -C "$AR_COMPS/esp-dsp" fetch && \
+	git -C "$AR_COMPS/esp-dsp" pull --ff-only
+fi
+if [ $? -ne 0 ]; then exit 1; fi
 
 #
 # CLONE/UPDATE TINYUSB

From 97ab378dfc56a6320baa75bec80fe08525486746 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 10 Mar 2022 17:56:19 +0100
Subject: [PATCH 25/25] Update push.yml

---
 .github/workflows/push.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index b7ffcf5c9..0368f7308 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -1,4 +1,4 @@
-name: ESP32 Arduino new with face
+name: ESP32 Arduino builder
 
 on:
   workflow_dispatch:  # Manually start a workflow