Iot33 and BLE unable to load/install Board libraries

I have tried several days to use my Nano 33 IOT and Nano 33 Ble Arduinos without success. The problem is that when I use boards manager and try to install suggested library the download starts and then stops (around after 50%) and says CRC-problem.

I have tried all methods known to me to install the libraries (cleaning Arduino, disabling firewall etc), without success.

Is there a way to load and install libraries for Nano 33 Iot and ble without Board manager?

Hi @viipsusi

Yes there is. On my Windows PC (at least) the Arduino libraries are held in the directory:

C:\Users\Computer\Documents\Arduino\libraries

Just copy the library folder to this directory and your sketch should be able to access them.

Martin, the problem is about board manager, not library manager

@Juraj Oops, you're right, wrong manager.

Hi @viipsusi

I don't know if this will work, but you could try downloading the ArduinoCore-samd version 1.8.12 release as a tr.gz file on Github here:

...and move it to the directory (on my PC at least) located here:

C:\Users\Computer\AppData\Local\Arduino15\staging\packages

Then attempt to install the Arduino SAMD Boards (32-bit ARM Cortex-M0+) package using the Boards Manager as normal.

I'm unable to reproduce the CRC error, but I tried disconnecting my router and the Boards Manager was still able to install the Arduino SAMD Boards package off-line.

It will be missing this component:
https://github.com/arduino/ArduinoCore-API

You can see how it is added during the release creation here:
https://github.com/arduino/ArduinoCore-samd/blob/1.8.12/.github/workflows/release.yaml#L16-L37

Installing directly from GitHub is useful for beta testing non-release versions. For manual installation of release versions, you will probably find it more reliable and simple to download the release archives from the URLs listed in the package index:
https://downloads.arduino.cc/packages/package_index.json

You can see the entry for the arduino:samd@1.8.12 release:

{
  "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)",
  "architecture": "samd",
  "version": "1.8.12",
  "category": "Arduino",
  "help": {
    "online": "http://www.arduino.cc/en/Reference/HomePage"
  },
  "url": "http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.12.tar.bz2",
  "archiveFileName": "core-ArduinoCore-samd-1.8.12.tar.bz2",
  "checksum": "SHA-256:13c44be50367bb0460cd8ff24a43c3bff1b9e9b209c5ce25595a9d99d080a3a1",
  "size": "3100138",
  "boards": [
    { "name": "Arduino MKR WiFi 1010" },
    { "name": "Arduino Zero" },
    { "name": "Arduino MKR1000" },
    { "name": "Arduino MKRZERO" },
    { "name": "Arduino MKR FOX 1200" },
    { "name": "Arduino MKR WAN 1300" },
    { "name": "Arduino MKR WAN 1310" },
    { "name": "Arduino MKR GSM 1400" },
    { "name": "Arduino MKR NB 1500" },
    { "name": "Arduino MKR Vidor 4000" },
    { "name": "Arduino Nano 33 IoT" },
    { "name": "Arduino M0 Pro" },
    { "name": "Arduino M0" },
    { "name": "Arduino Tian" },
    { "name": "Adafruit Circuit Playground Express" }
  ],
  "toolsDependencies": [
    {
      "packager": "arduino",
      "name": "arm-none-eabi-gcc",
      "version": "7-2017q4"
    },
    {
      "packager": "arduino",
      "name": "bossac",
      "version": "1.7.0-arduino3"
    },
    {
      "packager": "arduino",
      "name": "openocd",
      "version": "0.10.0-arduino7"
    },
    {
      "packager": "arduino",
      "name": "CMSIS",
      "version": "4.5.0"
    },
    {
      "packager": "arduino",
      "name": "CMSIS-Atmel",
      "version": "1.2.0"
    },
    {
      "packager": "arduino",
      "name": "arduinoOTA",
      "version": "1.2.1"
    }
  ]
}

So the release archive is available for download here:
http://downloads.arduino.cc/cores/core-ArduinoCore-samd-1.8.12.tar.bz2"

But notice the platform has all these tools dependencies:

"toolsDependencies": [
  {
    "packager": "arduino",
    "name": "arm-none-eabi-gcc",
    "version": "7-2017q4"
  },
  {
    "packager": "arduino",
    "name": "bossac",
    "version": "1.7.0-arduino3"
  },
  {
    "packager": "arduino",
    "name": "openocd",
    "version": "0.10.0-arduino7"
  },
  {
    "packager": "arduino",
    "name": "CMSIS",
    "version": "4.5.0"
  },
  {
    "packager": "arduino",
    "name": "CMSIS-Atmel",
    "version": "1.2.0"
  },
  {
    "packager": "arduino",
    "name": "arduinoOTA",
    "version": "1.2.1"
  }
]

So installing the platform release archive on its own will not be sufficient unless you happen to have the necessary tools already installed on your system.

The tool archive download are also listed in the package index. For example, here is the entry for the arduino:arm-none-eabi-gcc@7-2017q4 dependency:

{
  "name": "arm-none-eabi-gcc",
  "version": "7-2017q4",
  "systems": [
    {
      "host": "arm-linux-gnueabihf",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2",
      "archiveFileName": "gcc-arm-none-eabi-7-2019-q4-major-linuxarm.tar.bz2",
      "checksum": "SHA-256:34180943d95f759c66444a40b032f7dd9159a562670fc334f049567de140c51b",
      "size": "96613739"
    },
    {
      "host": "aarch64-linux-gnu",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
      "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
      "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76",
      "size": "99558726"
    },
    {
      "host": "i686-mingw32",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip",
      "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip",
      "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382",
      "size": "131761924"
    },
    {
      "host": "x86_64-apple-darwin",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2",
      "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2",
      "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb",
      "size": "104550003"
    },
    {
      "host": "x86_64-pc-linux-gnu",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2",
      "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2",
      "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a",
      "size": "99857645"
    },
    {
      "host": "i686-pc-linux-gnu",
      "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2",
      "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2",
      "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3",
      "size": "97427309"
    }
  ]
}

But you can see this starts getting pretty complex. I find the Arduino Boards Manager and boards platform systems to be very interesting, but someone who only wants to get started on their project probably will not. For them, it is probably better to try to troubleshoot the Boards Manager installation problem before resigning themselves to doing a manual installation.

@in0 Thanks for the clarification.

Looks like I unsuspectingly wandered into a minefield of file dependencies.

I am on the school nerwork and and it seems that my app/local directory is in the cloud (onedrive). Can it be, that boards manager gets confused by that? I tried to disconnect the cloud and disable firewall as well as virus protection, but it did not help.

From your kind answers I get the feeling, that it is too complex to try to install without boards manager?