Before logging an issue, please update to the latest release of Visual Micro from the Downloads Page.

When Logging a Support Issue in the Forum, please ensure you have also:-

  • Enabled vMicro > Compiler > Show Build Properties
  • Re-Compile your program with these settings enabled
 
Save the new Output to a Text File and....
  • Click the Reply button and attach as .txt file OR
  • Click here to Email us with the file attached, and a link to your post
Support requests without the output above may be impossible to answer, so please help us to help you
 
Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform (Read 250 times)
wegowireless
Newbies
*
Offline


Posts: 4
Joined: Sep 23rd, 2026
Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Sep 24th, 2026 at 1:33pm
Print Post  
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.
  

Please Register or Login to the Forum to see File Attachments
Back to top
 
IP Logged
 
Tim@Visual Micro
Administrator
*****
Offline


Posts: 12240
Location: United Kingdom
Joined: Apr 10th, 2010
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #1 - Sep 28th, 2026 at 3:41am
Print Post  
after reviewing this the property you mentioned is not required. Gpt says this "The package author must fix the menu declarations, tool/platform path strategy, and partition location" and it also fails in the arduino ide although it's objecting to missing menu which visual micro is more tolerant of. 

Suggest review the platform.txt with an ai
  
Back to top
IP Logged
 
wegowireless
Newbies
*
Offline


Posts: 4
Joined: Sep 23rd, 2026
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #2 - Sep 28th, 2026 at 8:02pm
Print Post  
Thanks. I fixed the missing global menu declarations in our boards.txt, so that issue is resolved.

I also tested adding a platform.txt to the WeGoWireless package. The remaining issue still appears to be cross-package runtime.platform.path handling.

My understanding is that if the cross-package core reference is handled as specified, the WeGoWireless package should not require its own platform.txt; it should inherit the referenced Espressif platform's platform.txt. Is that also how Visual Micro expects this configuration to work?

Our board uses:

build.core=esp32:esp32

Espressif 3.3.11 has this in platform.local.txt:

runtime.use_core_platform_path_for_runtime_platform_path=true

Visual Micro correctly resolves the external core:

build.core.path       -> ...\esp32\hardware\esp32\3.3.11\cores\esp32
vm.base.platform.path -> ...\esp32\hardware\esp32\3.3.11

but runtime.platform.path remains:

...\WeGoWireless\hardware\esp32\0.1.1

I tested overriding individual Espressif recipes to use vm.base.platform.path, and the build then successfully completed. The same path issue subsequently appears during upload. For example Visual Micro currently generates:

...\WeGoWireless\hardware\esp32\0.1.1\tools\flasher.exe

and:

...\WeGoWireless\hardware\esp32\0.1.1\tools\partitions\boot_app0.bin

whereas both files are part of the referenced Espressif 3.3.11 platform.

The Arduino platform specification appears to say that when runtime.use_core_platform_path_for_runtime_platform_path=true, runtime.platform.path should use the referenced core platform path.

Is there a different property or package structure Visual Micro expects for this cross-package-core case, or should Visual Micro be switching runtime.platform.path to the referenced Espressif platform?
« Last Edit: Sep 28th, 2026 at 8:08pm by wegowireless »  

Please Register or Login to the Forum to see File Attachments
Back to top
 
IP Logged
 
wegowireless
Newbies
*
Offline


Posts: 4
Joined: Sep 23rd, 2026
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #3 - Sep 29th, 2026 at 11:50am
Print Post  
Update: I tested the clean WeGoWireless package in the current Arduino IDE after removing the experimental WeGoWireless platform.txt. It compiles successfully:

Sketch uses 285839 bytes (6%) of program storage space. Maximum is 4128768 bytes.
Global variables use 21924 bytes (6%) of dynamic memory, leaving 305756 bytes for local variables. Maximum is 327680 bytes.

So the package successfully inherits the Espressif platform/core in Arduino IDE without having its own platform.txt. The remaining runtime.platform.path issue appears specific to the Visual Micro build.

Visual Micro build error: # recipe.objcopy.partitions.bin.pattern
"C:\Users\Geary en_esp32part.exe" -q " rtitions.bin"
     Process: "C:\Users\Geary en_esp32part.exe" -q " rtitions.bin"
The system cannot find the file specified
Error running platform build recipe 'recipe.objcopy.partitions.bin.pattern'.
Debug build failed for project 'Testing'
« Last Edit: Sep 29th, 2026 at 11:56am by wegowireless »  
Back to top
 
IP Logged
 
Tim@Visual Micro
Administrator
*****
Offline


Posts: 12240
Location: United Kingdom
Joined: Apr 10th, 2010
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #4 - Sep 29th, 2026 at 10:43pm
Print Post  
The latest (.09) has been updated here. It supports  runtime.use_core_platform_path_for_runtime_platform_path

I didn't find the property in the esp32 platform.txt but added it for a test.

https://www.visualmicro.com/forums/YaBB.pl?board=VS_ARDUINO_EXT_RELEASES

If you have any other issues please update the package you have created because the published one has other errors that prevent a solid build and deploy test
  
Back to top
IP Logged
 
wegowireless
Newbies
*
Offline


Posts: 4
Joined: Sep 23rd, 2026
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #5 - Sep 30th, 2026 at 5:17pm
Print Post  
Thanks Tim. I installed 26.0708.09 and retested the standalone board package.

The new support for runtime.use_core_platform_path_for_runtime_platform_path=true fixed the issue. Visual Micro is now correctly using the referenced Espressif ESP32 platform for the build tools, and the test project compiled and uploaded successfully.

For reference, the WeGoWireless package uses:

build.core=esp32:esp32

and its platform.local.txt contains:

runtime.use_core_platform_path_for_runtime_platform_path=true

I also corrected the missing global menu declarations you pointed out in the package.

Thanks for adding support for this property and for the quick update.
  
Back to top
 
IP Logged
 
Tim@Visual Micro
Administrator
*****
Offline


Posts: 12240
Location: United Kingdom
Joined: Apr 10th, 2010
Re: Cross-package ESP32 core: runtime.platform.path not switching to referenced core platform
Reply #6 - Oct 1st, 2026 at 4:09am
Print Post  
Great. Thanks for the clear and useful report. 

The line between Arduino IDE and CLI seems to be almost non-existent. We are designing some AI routines to keep an eye on Arduino compatibility and ensure our sources are kept up to date.
  
Back to top
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint