diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini
index 8990053eb..ffeaaf4cb 100644
--- a/arch/esp32/esp32.ini
+++ b/arch/esp32/esp32.ini
@@ -4,7 +4,7 @@ extends = arduino_base
custom_esp32_kind = esp32
platform =
# renovate: datasource=custom.pio depName=platformio/espressif32 packageName=platformio/platform/espressif32
- platformio/espressif32@6.11.0
+ platformio/espressif32@6.12.0
build_src_filter =
${arduino_base.build_src_filter} - - - - -
diff --git a/bin/platformio-custom.py b/bin/platformio-custom.py
index fc1b4bc2e..2ed86e96b 100644
--- a/bin/platformio-custom.py
+++ b/bin/platformio-custom.py
@@ -63,6 +63,12 @@ def esp32_create_combined_bin(source, target, env):
if platform.name == "espressif32":
sys.path.append(join(platform.get_package_dir("tool-esptoolpy")))
+ # IntelHex workaround, remove after fixed upstream
+ # https://github.com/platformio/platform-espressif32/issues/1632
+ try:
+ import intelhex
+ except ImportError:
+ env.Execute("$PYTHONEXE -m pip install intelhex")
import esptool
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_combined_bin)