-
Notifications
You must be signed in to change notification settings - Fork 49
Description
PROBLEM DESCRIPTION
Installation of toolchain fails with message
idf_tools.py installation failed
Subsequently compilers are not found
Compiling .pio/build/cheap_yellow/lib0f1/SPI/SPI.cpp.o
sh: xtensa-esp32-elf-g++: command not found
TO REPRODUCE
Exact reproduction unknown, might need a previous version of pioarduino installed which has triggered the tool installation or not. Occurred for a user with platformio.ini
[env:cheap_yellow]
; has Arduino-ESP32 3.2.1
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.21/platform-espressif32.zip
board = esp32dev
framework = arduino
EXPECTED BEHAVIOUR
Tools are installed normally.
SCREENSHOTS
-/-
ADDITIONAL CONTEXT
As observed in https://community.platformio.org/t/bb-spi-lcd-missing-esp-psram-h/
The TL install tool points to
platform-espressif32/platform.json
Lines 97 to 102 in 9bf8b3f
"tl-install": { | |
"type": "tool", | |
"optional": false, | |
"owner": "pioarduino", | |
"version": "https://github.com/pioarduino/esp_install/releases/download/v5.0.0/esp_install-v5.0.0.zip" | |
}, |
However that package's tools.json
is an empty file

Subsequently running the code
platform-espressif32/platform.py
Lines 162 to 172 in 9bf8b3f
def _run_idf_tools_install(self, tools_json_path: str, idf_tools_path: str) -> bool: | |
"""Execute idf_tools.py install command with timeout and error handling.""" | |
cmd = [ | |
python_exe, | |
idf_tools_path, | |
"--quiet", | |
"--non-interactive", | |
"--tools-json", | |
tools_json_path, | |
"install" | |
] |
fails with
C:\Users\Max\temp\psramtest>"C:\Users\Max\.platformio\penv\Scripts\python.exe" C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py --quiet --non-interactive --tools-json C:\Users\Max\.platformio\packages\tl-install\tools\tools.json install
Traceback (most recent call last):
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 2809, in <module>
main(sys.argv[1:])
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 2801, in main
action_func(args)
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 1983, in action_install
targets = add_and_check_targets(idf_env_obj, args.targets)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 1470, in add_and_check_targets
targets = parse_targets_arg(targets_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 1451, in parse_targets_arg
targets_from_tools_json = get_all_targets_from_tools_json()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 1495, in get_all_targets_from_tools_json
tools_info = load_tools_info()
^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\packages\tl-install\tools\idf_tools.py", line 1322, in load_tools_info
tools_info = json.load(f)
^^^^^^^^^^^^
File "C:\Users\Max\.platformio\python3\Lib\json\__init__.py", line 293, in load
return loads(fp.read(),
^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\python3\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\python3\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Max\.platformio\python3\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
(Please, remember to close the issue when the problem has been addressed)