I am creating a small third-party ESP32 board package which reuses the installed Espressif Arduino-ESP32 core instead of distributing a copy of the complete ESP32 core.
Environment:
- Visual Micro: 2026.708.2207
- Microsoft Visual Studio
- Arduino-ESP32: 3.3.11
- Windows
- Board package: WeGoWireless:esp32
- Board: WeGoWireless RdyTouch2.8
The board definition uses:
wegowireless_rdytouch_2_8.build.core=esp32:esp32
Visual Micro correctly locates the referenced Espressif core:
build.core.path=...\packages\esp32\hardware\esp32\3.3.11\cores\esp32
vm.base.platform.path=...\packages\esp32\hardware\esp32\3.3.11
However, runtime.platform.path remains:
runtime.platform.path=...\packages\WeGoWireless\hardware\esp32\0.1.1
I also tried:
runtime.use_core_platform_path_for_runtime_platform_path=true
Visual Micro shows this property as true in Show Build Properties, but runtime.platform.path remains pointed at the WeGoWireless package.
I tested this property in both:
1. The WeGoWireless platform.local.txt
2. The referenced Espressif 3.3.11 platform.local.txt
Visual Studio was restarted between tests.
This causes inherited ESP32 platform recipes such as:
tools.gen_esp32part.cmd="{runtime.platform.path}\tools\gen_esp32part.exe"
to look for the Espressif tools inside the small WeGoWireless board package and the build fails with:
The system cannot find the file specified
Error running platform build recipe 'recipe.objcopy.partitions.bin.pattern'.
Debug build failed for project 'Testing'
Other inherited ESP32 recipes also reference runtime.platform.path for files/tools such as boot_app0.bin, flasher.exe and espota.exe, so overriding individual recipes in the WeGoWireless package does not seem like the correct solution.
As a control test, I placed the exact same WeGoWireless RdyTouch2.8 board definition directly into the Espressif 3.3.11 boards.txt. It builds and runs correctly, and runtime.platform.path points to the Espressif 3.3.11 platform.
My understanding of the Arduino platform specification is that when using a core from another platform, setting:
runtime.use_core_platform_path_for_runtime_platform_path=true
should cause runtime.platform.path to resolve to the referenced core platform.
Is there a different property or package structure Visual Micro expects for a small board-only package using:
build.core=esp32:esp32
The goal is for the WeGoWireless package to contain only our board definitions, variants and custom partitions, while reusing the installed Espressif core, platform recipes and tools.
Package index:
https://raw.githubusercontent.com/WeGoWireless/WeGoWireless-ESP32-Boards/main/pa... I have attached the Show Build Properties output from the failing build.