diff --git a/Sming/Arch/Esp32/Components/esp32/component.mk b/Sming/Arch/Esp32/Components/esp32/component.mk
index 9eaa8fb14b..80a45453de 100644
--- a/Sming/Arch/Esp32/Components/esp32/component.mk
+++ b/Sming/Arch/Esp32/Components/esp32/component.mk
@@ -14,9 +14,21 @@ ifeq ($(CREATE_EVENT_TASK),1)
 COMPONENT_CPPFLAGS += -DCREATE_EVENT_TASK
 endif
 
-GLOBAL_CFLAGS += -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ
-
-IDF_VERSION_4 := $(filter v4%,$(IDF_VERSION))
+ifneq (,$(filter v4.%,$(IDF_VERSION)))
+IDF_VERSION_4x := 1
+ifneq (,$(filter v4.3%,$(IDF_VERSION)))
+IDF_VERSION_43 := 1
+else ifneq (,$(filter v4.4%,$(IDF_VERSION)))
+IDF_VERSION_44 := 1
+endif
+else ifneq (,$(filter v5.%,$(IDF_VERSION)))
+IDF_VERSION_5x := 1
+endif
+ifneq (,$(filter v5.0%,$(IDF_VERSION)))
+IDF_VERSION_50 := 1
+else ifneq (,$(filter v5.2%,$(IDF_VERSION)))
+IDF_VERSION_52 := 1
+endif
 
 ifneq (,$(filter esp32s3-v4.3%,$(ESP_VARIANT)-$(IDF_VER)))
 $(error esp32s3 requires ESP IDF v4.4 or later)
@@ -54,6 +66,12 @@ endif
 ESP32_COMPONENT_PATH := $(COMPONENT_PATH)
 SDK_DEFAULT_PATH := $(ESP32_COMPONENT_PATH)/sdk
 
+ifdef IDF_VERSION_52
+GLOBAL_CFLAGS += \
+	-DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ \
+	-DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE
+endif
+
 LIBDIRS += \
 	$(SDK_COMPONENT_LIBDIR) \
 	$(SDK_BUILD_BASE)/esp-idf/mbedtls/mbedtls/library \
@@ -67,16 +85,10 @@ LIBDIRS += \
 SDK_INCDIRS := \
 	app_update/include \
 	bootloader_support/include \
-	bootloader_support/include_bootloader \
-	driver/$(ESP_VARIANT)/include \
 	driver/include \
-	driver/gpio/include \
-	driver/ledc/include \
-	driver/spi/include \
 	esp_pm/include \
 	esp_rom/include/$(ESP_VARIANT) \
 	esp_rom/include \
-	$(ESP_VARIANT)/include \
 	esp_ringbuf/include \
 	esp_timer/include \
 	soc/include \
@@ -87,10 +99,6 @@ SDK_INCDIRS := \
 	nvs_flash/include \
 	esp_event/include \
 	lwip/lwip/src/include \
-	lwip/port/esp32/include \
-	lwip/port/include \
-	lwip/port/freertos/include \
-	lwip/port/esp32xx/include \
 	newlib/platform_include \
 	spi_flash/include \
 	wpa_supplicant/include \
@@ -98,20 +106,37 @@ SDK_INCDIRS := \
 	esp_hw_support/include \
 	esp_hw_support/include/soc \
 	hal/include \
-	hal/platform_port/include \
 	hal/$(ESP_VARIANT)/include \
 	esp_system/include \
 	esp_common/include \
 	esp_netif/include \
 	esp_eth/include \
 	esp_wifi/include \
+	lwip/include/apps/sntp
+
+ifdef IDF_VERSION_4x
+SDK_INCDIRS += \
+	$(ESP_VARIANT)/include
+endif
+
+ifdef IDF_VERSION_43
+SDK_INCDIRS += \
 	esp_wifi/esp32/include \
-	lwip/include/apps/sntp \
-	wpa_supplicant/include/esp_supplicant \
-	esp_bootloader_format/include
+	wpa_supplicant/include/esp_supplicant
+else
+SDK_INCDIRS += \
+	hal/platform_port/include
+endif
 
-ifdef IDF_VERSION_4
+ifndef IDF_VERSION_52
 SDK_INCDIRS += \
+	driver/$(ESP_VARIANT)/include \
+	lwip/port/esp32/include
+endif
+
+ifdef IDF_VERSION_4x
+SDK_INCDIRS += \
+	bootloader_support/include_bootloader \
 	esp_adc_cal/include \
 	esp_ipc/include \
 	freertos/include \
@@ -121,19 +146,27 @@ FREERTOS_PORTABLE := freertos/port
 else
 SDK_INCDIRS += \
 	esp_adc/include \
-	esp_adc/$(ESP_VARIANT)/include \
 	esp_app_format/include \
 	esp_partition/include \
 	freertos/FreeRTOS-Kernel/include \
 	freertos/esp_additions/include \
 	freertos/esp_additions/include/freertos \
-	freertos/config/include \
-	freertos/config/include/freertos \
 	driver/deprecated
 FREERTOS_PORTABLE := freertos/FreeRTOS-Kernel/portable
+ifeq (v5.2,$(IDF_VERSION))
+SDK_INCDIRS += \
+	driver/gpio/include \
+	driver/ledc/include \
+	driver/spi/include \
+	lwip/port/include \
+	lwip/port/freertos/include \
+	lwip/port/esp32xx/include \
+	esp_bootloader_format/include \
+	esp_adc/$(ESP_VARIANT)/include \
+	freertos/config/include \
+	freertos/config/include/freertos
+endif
 endif
-
-
 
 ifeq ($(ENABLE_BLUETOOTH),1)
 ifeq (esp32s3-v5.2,$(ESP_VARIANT)-$(IDF_VERSION))
@@ -163,9 +196,12 @@ SDK_INCDIRS += \
 	bt/host/nimble/nimble/nimble/host/util/include           \
 	bt/host/nimble/nimble/nimble/host/store/ram/include      \
 	bt/host/nimble/nimble/nimble/host/store/config/include   \
-	bt/host/nimble/nimble/nimble/transport/include           \
 	bt/host/nimble/esp-hci/include                           \
 	bt/host/nimble/port/include
+ifdef IDF_VERSION_52
+SDK_INCDIRS += \
+	bt/host/nimble/nimble/nimble/transport/include
+endif
 endif
 
 ifdef IDF_TARGET_ARCH_RISCV
@@ -180,11 +216,14 @@ SDK_INCDIRS += \
 	xtensa/include \
 	xtensa/$(ESP_VARIANT)/include \
 	$(FREERTOS_PORTABLE)/xtensa/include \
-	$(FREERTOS_PORTABLE)/xtensa/include/freertos \
+	$(FREERTOS_PORTABLE)/xtensa/include/freertos
+ifdef IDF_VERSION_52
+SDK_INCDIRS += \
 	freertos/config/xtensa \
 	freertos/config/xtensa/include \
 	xtensa/deprecated_include
 endif
+endif
 
 	 
 COMPONENT_INCDIRS += \
@@ -218,13 +257,13 @@ SDK_COMPONENTS := \
 	soc \
 	spi_flash
 
-ifneq (,$(filter v4.3%,$(IDF_VERSION)))
+ifdef IDF_VERSION_43
 SDK_COMPONENTS += $(ESP_VARIANT)
 else
 SDK_COMPONENTS += esp_phy
 endif
 
-ifdef IDF_VERSION_4
+ifdef IDF_VERSION_4x
 SDK_COMPONENTS += \
 	esp_ipc \
 	esp_adc_cal
@@ -364,7 +403,7 @@ EXTRA_LDFLAGS := \
 	$(call Undef,$(SDK_UNDEF_SYMBOLS)) \
 	$(call Wrap,$(SDK_WRAP_SYMBOLS))
 
-ifneq (,$(filter v4.3%,$(IDF_VERSION)))
+ifdef IDF_VERSION_43
 EXTRA_LDFLAGS += \
 	-T $(ESP_VARIANT)_out.ld \
 	$(call LinkerScript,project)
@@ -475,3 +514,8 @@ sdk-help: ##Get SDK build options
 .PHONY: sdk
 sdk: ##Pass options to IDF builder, e.g. `make sdk -- --help` or `make sdk menuconfig` 
 	$(Q) $(SDK_BUILD) $(filter-out sdk,$(MAKECMDGOALS))
+
+
+.PHONY: check-incdirs
+check-incdirs: ##Check IDF include paths and report any not found in this SDK version
+	$(Q) $(foreach d,$(SDK_INCDIRS),$(if $(wildcard $(SDK_COMPONENTS_PATH)/$d),,$(info $d)))