Nano 33 IoT keeps resetting with BLE on Arduino IoT Cloud

Hello,

I have a brand new Arduino Nano 33 IoT and I'm seeing an odd behavior with running BLE code on Arduino IoT Cloud. I'm setting the Nano 33 IoT as the central device, and a Nano 33 BLE Sense Rev2 as the peripheral device.

When I run the below sketch on the cloud, the built in LED will turn on, stay on for a bit, then turn off, and repeat. I've tried this while powering the Nano both via USB and with a 9V battery, the behavior was the same. When powered via USB, I keep hearing the device connected/disconnected sound from Windows when the LED goes on and off. With the BLE lines commented out, I don't get this behavior and counter is successfully published to the cloud dashboard.

I've found that it is the BLE.begin() that's causing the issue. Also that this doesn't occur on my Arduino Nano ESP32. Any idea what could be causing this? Thanks

#include "thingProperties.h"
#include <ArduinoBLE.h>

// BLE information
const char* deviceName = "MyDevice";
const char* deviceServiceUUID                    = "MyUUID1";
const char* deviceCharacteristicUUID_Temperature = "MyUUID2";
const char* deviceCharacteristicUUID_Humidity    = "MyUUID3";
//

// BLE Peripherals
BLEDevice peripheral;
//

unsigned long previousMillis = 0;

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();

  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);

  BLE.begin(); // causes Nano to keep resetting
  BLE.scanForUuid(deviceServiceUUID);
  
  digitalWrite(LED_BUILTIN, HIGH);
  counter = 0;
}

void loop() {
  ArduinoCloud.update();
  // Your code here   
  
  counter = counter + 1;
}