diff --git a/arch/esp32/base.ini b/arch/esp32/base.ini
index 5224fbfd4..9c99a02b7 100644
--- a/arch/esp32/base.ini
+++ b/arch/esp32/base.ini
@@ -1,14 +1,7 @@
; Common settings for ESP targes, mixin with extends = esp32_base
-[esp32_base]
+[esp32_abstract]
extends = arduino_base
-custom_esp32_kind = esp32
-platform = https://github.com/platformio/platform-espressif32.git
-platform_packages =
- platformio/framework-arduinoespressif32@https://github.com/espressif/arduino-esp32/releases/download/3.0.4/esp32-3.0.4.zip
- platformio/framework-arduinoespressif32-libs@https://github.com/mskvortsov/meshtastic-esp32-arduino-libs/releases/download/20240819/esp32-arduino-libs.zip
- espressif/toolchain-riscv32-esp@12.2.0
- espressif/toolchain-xtensa-esp32s3@12.2.0
- espressif/toolchain-xtensa-esp32@12.2.0
+platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13/platform-espressif32.zip
build_src_filter =
${arduino_base.build_src_filter} - - - - -
diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini
new file mode 100644
index 000000000..9ac788f36
--- /dev/null
+++ b/arch/esp32/esp32.ini
@@ -0,0 +1,6 @@
+[esp32_base]
+extends = esp32_abstract
+custom_esp32_kind = esp32
+
+platform_packages =
+ platformio/framework-arduinoespressif32-libs@https://github.com/mskvortsov/meshtastic-esp32-arduino-libs/releases/download/20250327/esp32-arduino-libs.zip
diff --git a/arch/esp32/esp32c3.ini b/arch/esp32/esp32c3.ini
index 2ba3036d0..f6e83ff00 100644
--- a/arch/esp32/esp32c3.ini
+++ b/arch/esp32/esp32c3.ini
@@ -1,5 +1,5 @@
[esp32c3_base]
-extends = esp32_base
+extends = esp32_abstract
custom_esp32_kind = esp32c3
monitor_speed = 115200
diff --git a/arch/esp32/esp32c6.ini b/arch/esp32/esp32c6.ini
index d0425812f..02a768046 100644
--- a/arch/esp32/esp32c6.ini
+++ b/arch/esp32/esp32c6.ini
@@ -1,5 +1,7 @@
[esp32c6_base]
-extends = esp32_base
+extends = esp32_abstract
+custom_esp32_kind = esp32c6
+; TODO Switch to pioarduino
platform = https://github.com/Jason2866/platform-espressif32.git#22faa566df8c789000f8136cd8d0aca49617af55
build_flags =
${arduino_base.build_flags}
@@ -29,7 +31,7 @@ lib_deps =
rweather/Crypto@^0.4.0
build_src_filter =
- ${esp32_base.build_src_filter} -
+ ${esp32_abstract.build_src_filter} -
monitor_speed = 460800
monitor_filters = esp32_c3_exception_decoder
diff --git a/arch/esp32/esp32s2.ini b/arch/esp32/esp32s2.ini
index 40fdc461a..a5149423b 100644
--- a/arch/esp32/esp32s2.ini
+++ b/arch/esp32/esp32s2.ini
@@ -1,19 +1,19 @@
[esp32s2_base]
-extends = esp32_base
+extends = esp32_abstract
custom_esp32_kind = esp32s2
build_src_filter =
- ${esp32_base.build_src_filter} - - -
+ ${esp32_abstract.build_src_filter} - - -
monitor_speed = 115200
build_flags =
- ${esp32_base.build_flags}
+ ${esp32_abstract.build_flags}
-DHAS_BLUETOOTH=0
-DMESHTASTIC_EXCLUDE_PAXCOUNTER
-DMESHTASTIC_EXCLUDE_BLUETOOTH
lib_ignore =
- ${esp32_base.lib_ignore}
+ ${esp32_abstract.lib_ignore}
NimBLE-Arduino
libpax
\ No newline at end of file
diff --git a/arch/esp32/esp32s3.ini b/arch/esp32/esp32s3.ini
index ede5f22fa..48a92c54d 100644
--- a/arch/esp32/esp32s3.ini
+++ b/arch/esp32/esp32s3.ini
@@ -1,10 +1,10 @@
[esp32s3_base]
-extends = esp32_base
+extends = esp32_abstract
custom_esp32_kind = esp32s3
monitor_speed = 115200
# Work around BLE initialization failure
build_flags =
- ${esp32_base.build_flags}
+ ${esp32_abstract.build_flags}
-DCONFIG_BT_NIMBLE_PINNED_TO_CORE=1