Cannot Install STM32 nor ESP32 boards to Arduino IDE 1.8.19

Firstly, thanks and **+**karma to developers for the continuing development and openness of Arduino. It is central to my MCU projects, and I appreciate it.

I am having trouble installing the STM32 MCU based boards, and the ESP32 by Expressif Systems boards, to my Arduino IDE 1.8.19. I have repeatedly tried the installation with consistent failed results. I have also tried on a second machine, with similar failed results. The inability to install these board types is fatal to my Arduino development activities. Please help me sort out the cause and solution to this problem.

My system is Windows 10, 64-bit, fully updated, with a recently new (virgin) installation of Arduino IDE 1.8.19, working well with Arduino (and clone) boards. My second system used to check for this problem is Windows 7, 64-bit, as updated as it gets, with a well used Arduino 1.8.19 IDE, and several aged, non-current STM32 board installations. My Java is v8.461, both 32-bit and 64-bit, on both machines. In both cases I have added the current STM32duino repository url to my Arduino IDE preferences https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json , so I have access to the available STM32 boards.

Both the STM32 and ESP32 board installations seem to proceed well, and the leave lots of health-looking files in \Windows\AppData\Local\Arduino15\staging, and ...\cache. But the downloads always end with java.lang.RuntimeException and nothing useful actually installed in the IDE.

Here is a copy of the STM32 download exception notification:

 Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-win32-x64.zip
java.lang.RuntimeException: java.lang.Exception: Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-win32-x64.zip
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:179)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-win32-x64.zip
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:145)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:79)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:56)
	at cc.arduino.contributions.packages.ContributionInstaller.install(ContributionInstaller.java:108)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:172)
	... 1 more
Caused by: java.lang.Exception: Incomplete download
	at cc.arduino.utils.network.FileDownloader.readStreamCopyTo(FileDownloader.java:266)
	at cc.arduino.utils.network.FileDownloader.openConnectionAndFillTheFile(FileDownloader.java:230)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:176)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:125)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:143)
	... 5 more

...and here is a copy of the similar ESP32 download exception notification:

 Error downloading https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip
java.lang.RuntimeException: java.lang.Exception: Error downloading https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:179)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Error downloading https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:145)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:79)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:56)
	at cc.arduino.contributions.packages.ContributionInstaller.install(ContributionInstaller.java:108)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:172)
	... 1 more
Caused by: java.lang.Exception: Incomplete download
	at cc.arduino.utils.network.FileDownloader.readStreamCopyTo(FileDownloader.java:266)
	at cc.arduino.utils.network.FileDownloader.openConnectionAndFillTheFile(FileDownloader.java:230)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:176)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:125)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:143)
	... 5 more

Since there are two machines, and two different board sources, giving similar errors, I suspect a problem with the common Arduino IDE. And, possibly there is a problem with the common user :slight_smile:

I can’t think of where to move next. So, any more info required, any ideas?

Thanks or considering this problem.

Steve

ā€œWarning

Since core release 2.8.0, only Arduino IDE 2 is supported.ā€

https://github.com/stm32duino/Arduino_Core_STM32?tab=readme-ov-file#nucleo-64-boards

This is the URL for the ESP32:

https://espressif.github.io/arduino-esp32/package_esp32_index.json

It changed a while back. If you still have this one then change it to the one above:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Hi speedyant! Thanks or your speed reply.

OK, from the link you sent I see that the current STM32duino v2.11.0 should not work with Arduino IDE v1.x.

I retried the STM32duino installation with v2.7.1, the last before v2.8.0. I got a similar result, a failure at the point of downloading the xPack…

So then I retried with v2.0.0, the oldest available through the Boards Manager. That also failed at the point of downloading the xPack… I have included that error notification below:

 Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v9.3.1-1.3/xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip
java.lang.RuntimeException: java.lang.Exception: Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v9.3.1-1.3/xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:179)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Error downloading https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v9.3.1-1.3/xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:145)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:79)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:56)
	at cc.arduino.contributions.packages.ContributionInstaller.install(ContributionInstaller.java:108)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:172)
	... 1 more
Caused by: java.lang.Exception: Incomplete download
	at cc.arduino.utils.network.FileDownloader.readStreamCopyTo(FileDownloader.java:266)
	at cc.arduino.utils.network.FileDownloader.openConnectionAndFillTheFile(FileDownloader.java:230)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:176)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:125)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:143)
	... 5 more

Aside from a change in the version of the xpack-arm-none-eabi-gcc-X.x.x-x.x-win32-x32.zip, I don’t see much difference in these cases. STM32duino v2.8.0 doesn’t seem to be the boundary of this problem. I am willing to use a somewhat older version, as most of the devices I actually program have lower versions than 2.8.0. Rolling back to an older version isn’t helping.

Also, although the error notification says the download was incomplete, there is a .zip file in the ..\Arduino15\staging\packages that looks to be in good shape. I don’’t have a reference to see if all files intended have been downloaded, but it certainly is readable.

And then there’s the ESP32 board installation which has failed, and surely has nothing obvious to do with the STM32duino installation. It is interesting that they both failed at the point of downloading compiler tools. Is that just a coincidence, or does it have to do with the evolution o Arduino IDE 2.x?

I have avoided using Arduino IDE 2.x due to its Win 10 requirement. I have done and still do most of my application development on ā€˜old’ machines, including Win 7 and Win VISTA. I’m not keen to move ā€˜over’, as long as there is hope to continue.

Can there be something different causing these troubles? Is Arduino IDE 1.x really ā€˜dead’ in practical terms?

Steve

Hi @stever2018.

Yes. The incompatibility of the recent versions of the platform with Arduino IDE 1.x only manifests itself after you have installed the platform (if you are interested, the incompatibility is explained and a fix provided here). So the problem you are experiencing now is completely unrelated.

As for the problem you are actually encountering, try this experiment: Click the following link:

https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v9.3.1-1.3/xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip

Your web browser will start a file download. Wait for the download process to complete. Was it successful, or did it fail?

Well there is the obvious anti-virus software / firewall that can obstruct the downloading of files.

I am fairly sure that there is more to be downloaded after some part of the installation at least for ESP32 files.

Not to my knowledge, i have just recently done a manual install of 2 versions of the ESP32 core and they run just fine on both IDE versions (i mainly use 1.8.19) but a manual install does not work in the same way as an install through the board manager.

It's alive and kickin' as far as i can tell. There is even a good chance that after the installation of the boards, they will work just fine in either IDE, but just the installation is problematic (for the stm32 boards that is)

Hi Bitseeker! Thanks or your reply.

I will try adding the URL you provided, to see if I get a better result for the ESP32 MCUs.

Just to be clear, I did not add a URL for ESP32, as the ESP32 by Expressif Systems boards were already built-in to the Arduino IDE 1.8.19. I guess they cam with a 'free ride' along with the Arduino ESP32 Boards. I have not actually programmed any ESP32 boards yet, but I have many boards and great ambitions to do so. I stumbled on this problem while collecting libraries and boards I anticipated needing or a new Arduino IDE installation. It seems a coincidence that both STM32 and ESP32 have had similar problems.

OK, after adding the current URL you provided, I now only see 'Arduino ESP32 Boards', and no longer see the entry for 'ESP32 by Expressif Systems'. This does not cover my intended target boards, as it seems to be limited to Arduino Nano with ESP32 wireless. The board versions available range from 2.0.10 to 2.0.18. I installed v2.0.18, and the installation completed satisfactorily. However, before adding this URL, I also had a satisfactory installation for the Arduino ESP32 Boards, so really, I'm none the wiser.

How can I install the ESP32 by Expressif Systems, or can I say 'all' ESP32 boards? I don't mean to burden you or anyone else in this forum, as I have not yet read the 'manual' on ESP32 programming in Arduino yet. However, I do see both the 'new' link and the 'old' link you referenced, and some others mentioned in various tutorials, as the way to get there.

Also, is this another case where I really have to upgrade to Arduino 2.x on Win 10 to operate? At Installing - - — Arduino ESP32 latest documentation there is a warning (see below code box). My Win 10 and Win 7 OS are 64-bit, but Arduino 1.8.19 installs under \Program Files (x86), and I assume it is 32-bit and may not be supported. Do I need to revert to ESP core v1.0.6, and if so, how do I get access to install it in Arduino IDE 1.8.19?

Warning

Arduino ESP32 core v2.x.x cannot be used on Windows 8.x x86 (32 bits), Windows 7 or earlier. The Windows 32 bits OS is no longer supported by this toolchain.

The Arduino ESP32 v1.0.6 still works on WIN32. You might want to install python 3.8.x because it is the latest release supported by Windows 7.

Steve

Hi ptillish! Thanks or your reply. Good idea - simple.

I started the download in my browser, using the link ou provided, and it Failed! I was surprised.

I don't have any more details. FYI, I have already disabled my anti-virus, and otherwise there is only Windows Defender (on Win 10).

What next?

PS - I do want to followup on your other link, but will park that or now as you say it will not address my current problem. Thanks for that too.

Steve

I don't see any reason to believe the problems you are experiencing are related to the IDE version.

Then the warning is irrelevant. You are inventing problems for yourself that don't exist. Focus on solving the problems you are experiencing.

The Arduino IDE application is 32-bit, but that is irrelevant. The warning you saw is about the helper tools that are used to compile and upload with ESP32 boards. Those tools are 64-bit, and so are not compatible with 32-bit Windows versions. It doesn't matter at all whether Arduino IDE is 32-bit or 64-bit.

1 Like

OK, so from this experiment we can see that your problem is not at all related to Arduino IDE.

I have also been having some problems like this lately, which occur when attempting to download some large files hosted on GitHub. However, I was not able to reproduce the fault with this specific file. Do you have enough space on your hard drive for the file?

GitHub isn't really intended to be a software distribution service, so the maintainers of these platforms are somewhat abusing the site by using it to distribute many terabytes of files. So it wouldn't surprise me to find that they started blocking some of these downloads. However, I don't think that is it because the download only fails after a significant quantity of data was downloaded, likely actually resulting in even more bandwidth usage as people repeat the download over and over again.

Hi ptillisch!

I turned off Windows Defender, and my anti-virus was already off.
I repeated the download. It failed again.
The download had completed about 129MB of 142MB total.
I am using FireFox 142.0.1, the latest and greatest.

I tried the download in MS Edge 139.0.3405.
It reached about 130MB of 142MB and died. There was a notification, 'couldn't download - network issue'.
I tried to Resume downloading, but it quit immediately.

I agree that this file should be downloadable in my browser before trying it again in Arduino IDE.

Can you download this file, or does it terminate at about the same point?

Steve

Hi Deva_Rishi!

Just to say thanks for your reply. I did take your comment about anti-virus and firewall interference to heart. I am also interested in your manual installation of the ESP32 board(s). But as you can probably see, I am having trouble manually downloading a critical file set for STM32, and I had similar results for ESP32, so I am in no position to do installation in any way yet. I am also encouraged by your enthusiasm or Arduino IDE 1.8.19.

Steve

Hi ptillisch!

Your comments about github resource limitations spurred me to have a closer look. There do indeed seem to be hard limits on file size, and possibly on the time taken to download.
For references:

It looks like there is a 'hard limit' of 100MB on file size. So the intended download I tested, at 142MB, is well above that; and actually receiving about 130MB is a generous overload.

I am not certain there is a time limit, but if there is one, I have a slow Internet service (max about 425kBps), so I might be hit. The github page suggests, "limits are set to ensure requests complete in a reasonable amount of time." I don't know if they use size alone, assuming a bandwidth, or actual connection time, but it is cause to worry.

I don't know if the desired package is available in smaller files. I don't know how to find out.

Github also has a large file size service. It would be up to the page owner to employ that, but for smallish-large files (<2GB), it would be free.
Reference: About Git Large File Storage - GitHub Docs

I welcome any ideas you may have to followup toward successful installation of the STM32 and ESP32 packages. But I will understand if you have to back away, with this being someone else's problem, i.e., not an Arduino IDE problem.

Thank you in any case for your time and insights.

Steve

Yes. It downloads just fine for me.

That only applies to files that are checked into the Git repository. That limit isn't relevant in this case because the files you are attempting to download are "release assets", which are separate from the Git repository:

https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release:~:text=to%20include%20binary%20files

This nebulous statement in the Acceptable Use Policy is what would apply to excessive bandwidth usage due to using release assets as a hosting service for widescale software distribution:

https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies#9-excessive-bandwidth-use

If we determine your bandwidth usage to be significantly excessive in relation to other users of similar features, we reserve the right to suspend your Account, throttle your file hosting, or otherwise limit your activity until you can reduce your bandwidth consumption. We also reserve the right—after providing advance notice—to delete repositories that we determine to be placing undue strain on our infrastructure.

When i did it recently (i needed 2 different core versions for the sake of development of a library) i looked up an older thread where i attempted and succeeded to do the same thing for esp8266 boards.

I did a google search before for manual installation of ESP32 boards before that, but found nothing.

For my own reference i kept these instructions to install both core version 2.0.11 & 3.3.0 (the latest at the time)

C:\Windows\system32>cd C:\Data\Arduino\Sketches

C:\Data\Arduino\Sketches>mkdir hardware
A subdirectory or file hardware already exists.

C:\Data\Arduino\Sketches>cd hardware

C:\Data\Arduino\Sketches\hardware>mkdir esp32com

C:\Data\Arduino\Sketches\hardware>cd esp32com

C:\Data\Arduino\Sketches\hardware\esp32com>git clone https://github.com/espressif/arduino-esp32.git esp32
Cloning into 'esp32'...
remote: Enumerating objects: 68419, done.
remote: Counting objects: 100% (76/76), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 68419 (delta 40), reused 36 (delta 24), pack-reused 68343 (from 2)
Receiving objects: 100% (68419/68419), 2.07 GiB | 29.89 MiB/s, done.
Resolving deltas: 100% (42921/42921), done.
Updating files: 100% (2014/2014), done.

C:\Data\Arduino\Sketches\hardware\esp32com>cd esp32

C:\Data\Arduino\Sketches\hardware\esp32com\esp32>git checkout 2.0.11
Updating files: 100% (11182/11182), done.
Note: switching to '2.0.11'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at ae9dae4a6 Update version to 2.0.11

C:\Data\Arduino\Sketches\hardware\esp32com\esp32>git submodule update --init

C:\Data\Arduino\Sketches\hardware\esp32com\esp32>cd tools

C:\Data\Arduino\Sketches\hardware\esp32com\esp32\tools>python3 get.py
Traceback (most recent call last):
  File "C:\Data\Arduino\Sketches\hardware\esp32com\esp32\tools\get.py", line 36, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

instead just use explorer and double click git.exe

C:\Data\Arduino\Sketches\hardware\esp32com\esp32\tools>


//--------------------------------------------------------------------------

C:\>cd C:\Data\Arduino\Sketches

C:\Data\Arduino\Sketches>cd hardware

C:\Data\Arduino\Sketches\hardware>mkdir esp32v3

C:\Data\Arduino\Sketches\hardware>cd esp32v3

C:\Data\Arduino\Sketches\hardware\esp32v3>git clone https://github.com/espressif/arduino-esp32.git esp32
Cloning into 'esp32'...
remote: Enumerating objects: 68419, done.
remote: Counting objects: 100% (76/76), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 68419 (delta 40), reused 36 (delta 24), pack-reused 68343 (from 2)
Receiving objects: 100% (68419/68419), 2.01 GiB | 30.07 MiB/s, done.
Resolving deltas: 100% (42799/42799), done.
Updating files: 100% (2014/2014), done.

C:\Data\Arduino\Sketches\hardware\esp32v3>cd esp32

C:\Data\Arduino\Sketches\hardware\esp32v3\esp32>git checkout 3.3.0
Note: switching to '3.3.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at dbaf6a322 Merge pull request #10884 from espressif/release/v3.3.x

C:\Data\Arduino\Sketches\hardware\esp32v3\esp32>git submodule update --init

C:\Data\Arduino\Sketches\hardware\esp32v3\esp32>cd tools

C:\Data\Arduino\Sketches\hardware\esp32v3\esp32\tools>git.exe
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch]
           [--no-optional-locks] [--no-advice] [--bare] [--git-dir=<path>]
           [--work-tree=<path>] [--namespace=<name>] [--config-env=<name>=<envvar>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   restore    Restore working tree files
   rm         Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect     Use binary search to find the commit that introduced a bug
   diff       Show changes between commits, commit and working tree, etc
   grep       Print lines matching a pattern
   log        Show commit logs
   show       Show various types of objects
   status     Show the working tree status

grow, mark and tweak your common history
   backfill   Download missing objects in a partial clone
   branch     List, create, or delete branches
   commit     Record changes to the repository
   merge      Join two or more development histories together
   rebase     Reapply commits on top of another base tip
   reset      Reset current HEAD to the specified state
   switch     Switch branches
   tag        Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch      Download objects and refs from another repository
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.

These commands i typed into the 'admin command prompt' and i had gitBash installed already.
Of course the folder structure for you device may be a tad different, but these manual install procedures are similar for any boards package.

That said, the only reason i do this is because i can not have 2 different version installed through the boards manager. On my devices i can always install from the boards manager whichever package i want anyway. I don't have your issue to begin with.

IDE 1.8 and Win10.
Why? (Don't tell me.)
Win10 is EOL in October.

End of support, so no more updates.

OK, I found the cause is a recent change to the expiration time GitHub sets for the token that is used to download a release asset. The expiration is now set for 5 minutes after the initiation of the download. This means that the download is intentionally failed if it takes longer than ~5 minutes (there is apparently some leeway on the enforcement of the expiration).

There is discussion about that here:

This means that whether or not a given release asset fails is dependent on the speed of your Internet connection. My Internet connection is fast enough to download the 142 MB xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip file in less than 5 minutes, so the file download succeeds for me. Conversely your Internet connection is just slightly too slow to download the file in time, so it fails for you.

Likewise, my fairly slow Internet connection makes the 574 MB silabs_arduino_core-3.0.0.zst platform archive file of the "Silicon Labs" boards platform's 3.0.0 release take >5 minutes, so this is why installation of that platform fails for me, even though many other people with faster Internet connections have been able to install it without any problem.

The workaround will be to manually download the file using a tool that supports resumption of downloads. The Google Chrome web browser ostensibly does, but I actually haven't had any success when I tried to use it to resume downloads of the file. When I click "Resume" on the failed download, it immediately fails again with a "Site wasn't available" error (if I do it via the menu of the "Downloads" icon on the browser toolbar), or "Failed - Unknown server error. Please try again, or contact the server administrator." (if I do it via Chrome's Downloads page). I believe this is due to the fact that GitHub redirects the initial download URL to a temporary URL that is authenticated with the JWT token, and Chrome isn't smart enough to resume this type of download.

I am able to resume the failed download when I perform the download using using curl.exe --continue-at - --location --remote-name.

I was also able to resume the download using wget --continue.

If you already have a download manager tool that supports resuming these downloads, you should use that to manually download the file. If you don't already have one, I will suggest you use curl as, unlike Wget, this is preinstalled in Windows. I'll provide instructions you can follow to do that:

  1. Right click the Windows "Start" button.
    A context menu will open.
  2. Select "Search" from the menu.
    The Windows "Start" menu will open with a search field selected.
  3. Type windows powershell ise in the search field.
  4. Select "Windows PowerShell ISE" from the search results.
    A "Windows PowerShell ISE" window will open.
  5. Type the following command in the Windows PowerShell ISE window:
    curl.exe --continue-at - --location --output-dir "$Env:LOCALAPPDATA\Arduino15\staging\packages" --remote-name https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v9.3.1-1.3/xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip
    
  6. Press the Enter key.
    The file download will now start.
  7. Monitor the progress of the file download. After approximately five minutes have passed, it will exit with a message something like, which indicates that the download was not successful:
    curl: (18) end of response with 35384341 bytes missing
    
  8. Repeat steps 5-7.
    The file download will now resume. Something that might be confusing is that the progress indicator only shows the progress during the current download attempt. The lack of a sign of the progress from the previous download attempt makes it seem like it started the download over from scratch rather than resuming. However, you will know it has indeed resumed because the command will print a message something like:
    ** Resuming transfer from byte position 111658240
    
  9. Hopefully after the second attempt, the upload will complete, as indicated by the lack of a "curl: (18) end of response with \_\_\_ bytes missing" message when the command exits. However if it still didn't complete, you can simply repeat steps 5-7 as many times as it takes for the file to download completely.

After that, try installing the "STM32 MCU based boards" platform via the Arduino IDE Boards Manager again, just as you did before. Hopefully this time it will be successful, as it will use the existing file you downloaded using curl instead of attempting to download it from the Internet. It may still need to download some additional files from the Internet, but they are all significantly smaller than the xpack-arm-none-eabi-gcc-9.3.1-1.3-win32-x32.zip file you had trouble with, so hopefully Boards Manager will be able to download those.


After that, you can repeat the same procedure for the "esp32" boards platform. You only need to change the URL in the command at step 5 to the URL of the download that failed:

curl.exe --continue-at - --location --output-dir "$Env:LOCALAPPDATA\Arduino15\staging\packages" --remote-name https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip

However, in this case there are actually multiple very large files that must be downloaded, so you will likely find that Boards Manager installation still fails even after you manually download that xtensa-esp-elf-14.2.0_20241119-i686-w64-mingw32.zip file, and you will also need to manually download the additional files that Boards Manager fails at. If you have any questions or problems with that, just let us know and we'll provide further assistance.


There is a feature request to add support to Arduino IDE for resuming file downloads here:

That would mitigate the problem as, even though the first attempt at the installation might still fail, it would finally succeed after subsequent attempts as the file was downloaded incrementally.

The Arduino developers are now tracking the problem of the failing platform installation here:

Even though the root cause of the failure is on GitHub's end, it is not clear whether they expected the change they made to have this type of effect, and whether they will ever take action to resolve the problems it caused. So it is worth investigating whether Arduino IDE can be made to manage to complete the downloads under these conditions.

If you have a GitHub account, you can subscribe to that thread to get notifications of any new developments related to this subject:


:red_exclamation_mark: Please only comment on the GitHub issue thread if you have new technical information that will assist with the resolution. General discussion and support requests are always welcome here on Arduino Forum.


actually this STM32 you are trying to use has some very neat features,if anyone is interested