Compilation for Arduino 33 BLE fails with any sketch

Hi,
After a while I opened up the Arduino IDE again (version 1.8.12) to change some things in a sketch I made previously. Now this sketch that worked before cannot be compiled anymore and so can't any other sketches I create, even the simplest one possible, with no imports and empty setup() and loop() functions. The error message also does not seem to have anything to do with my code. The error message is too long to post here in its entirety, so I pruned it a bit in the middle (denoted by "<...>"). The whole thing can be found in this pastebin. I googled the message but did not find anything. Could it be caused by some recent update?

Arduino: 1.8.12 (Windows 10), Board: "Arduino Nano 33 BLE"

In file included from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/DigitalIn.h:22:0,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/mbed.h:54,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/Arduino.h:32,

                 from sketch\<projectname>.ino.cpp:1:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/hal/gpio_api.h:58:29: error: 'gpio_t' does not name a type; did you mean 'gpio_set'?

 int gpio_is_connected(const gpio_t *obj);

                             ^~~~~~

                             gpio_set

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/hal/gpio_api.h:65:16: error: variable or field 'gpio_init' declared void

 void gpio_init(gpio_t *obj, PinName pin);

                ^~~~~~


<...>


C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/InterruptIn.h:172:16: error: field 'gpio_irq' has incomplete type 'gpio_irq_t {aka gpio_irq_s}'

     gpio_irq_t gpio_irq;

                ^~~~~~~~

In file included from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/InterruptIn.h:25:0,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/UARTSerial.h:27,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/mbed.h:74,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/Arduino.h:32,

                 from sketch\<projectname>.ino.cpp:1:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/hal/gpio_irq_api.h:42:16: note: forward declaration of 'gpio_irq_t {aka struct gpio_irq_s}'

 typedef struct gpio_irq_s gpio_irq_t;

                ^~~~~~~~~~

In file included from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/mbed.h:75:0,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/Arduino.h:32,

                 from sketch\<projectname>.ino.cpp:1:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/FlashIAP.h:163:13: error: field '_flash' has incomplete type 'flash_t {aka flash_s}'

     flash_t _flash;

             ^~~~~~

In file included from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/FlashIAP.h:27:0,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/mbed.h:75,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/Arduino.h:32,

                 from sketch\<projectname>.ino.cpp:1:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/hal/flash_api.h:30:16: note: forward declaration of 'flash_t {aka struct flash_s}'

 typedef struct flash_s flash_t;

                ^~~~~~~

In file included from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/mbed.h:75:0,

                 from C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/Arduino.h:32,

                 from sketch\<projectname>.ino.cpp:1:

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/FlashIAP.h: In constructor 'constexpr mbed::FlashIAP::FlashIAP()':

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/FlashIAP.h:69:5: error: member 'mbed::FlashIAP::_flash' must be initialized by mem-initializer in 'constexpr' constructor

     }

     ^

C:\Users\<username>\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.1.4\cores\arduino/mbed/drivers/FlashIAP.h:163:13: note: declared here

     flash_t _flash;

             ^~~~~~

exit status 1

Kind regards,
Alexander

It's possible something got corrupted in your installation of the Arduino nRF528x Boards (Mbed OS) boards platform used by the Nano 33 BLE. Updating to the latest version (you're using an outdated one) will give you a fresh installation and hopefully fix the issue:

  • Tools > Board > Boards Manager
  • Wait for the downloads to finish
  • From the list of available boards platforms, click "Arduino nRF528x Boards (Mbed OS)".
  • Click the "Update" button.
  • Wait for the update to finish.
  • Click the "Close" button
    .
    Now try compiling again.

Hi pert,
thank you very much, that did the trick!

You're welcome. I'm glad to hear it's working now. Enjoy!
Per