Problema libreria LOW POWER

Ho un problema con questo codice. Dopo 4 volte che la scheda si sveglia("Wake up") non va più in modalità sleep e si blocca tutto. Non riesco a capire perché proprio dopo 4 cicli.

#include <ArduinoLowPower.h>
#include <SigFox.h>
#include <Wire.h>
#include <Adafruit_INA219.h>
#include "BMP280.h"
#define P0 1013.25


Adafruit_INA219 ina219(0x40);
BMP280 bmp;

int debug = true;
int PinY = 1;
int PinG = 0;

float shuntvoltage = 0;
float busvoltage = 0;
float current_mA = 0;
float loadvoltage = 0;

char result;
double T,P;

void setup() {
  
  pinMode(PinY,OUTPUT);
  pinMode(PinG,OUTPUT);
  
  Serial.begin(9600);
  
  if (!SigFox.begin()) {
    //something is really wrong, try rebooting
    reboot();
  }
  
  SigFox.end();
  
  if (debug == true) {
    // Enable debug prints and LED indication if we are testing
    SigFox.debug();
  }
  
  uint32_t currentFrequency;
  ina219.begin();
  ina219.setCalibration_16V_400mA();
  Serial.println("Measuring voltage and current with INA219 ...");

  if(!bmp.begin()){
    Serial.println("BMP init failed!");
    while(1);
  }
  else {
    Serial.println("BMP init success!");
  }
  
  bmp.setOversampling(4);
  
  LowPower.attachInterruptWakeup(RTC_ALARM_WAKEUP, ledOn, CHANGE);
  
}

void loop() {

  current_mA = ina219.getCurrent_mA();
  result = bmp.startMeasurment();
  
  if(result!=0){
    delay(result);
    result = bmp.getTemperatureAndPressure(T,P);
  }
  else {
    Serial.println("Error.");
  }
  delay(100);
  
  SigFox.begin();
  delay(100);
  String to_be_sent = String(current_mA) + "mA " + String(T) + "C";
  SigFox.beginPacket();
  SigFox.print(to_be_sent);
  int ret = SigFox.endPacket();
  SigFox.end();
  
  if (debug == true) {
    if (ret == 0) {
      Serial1.println("Transmission ok");
      digitalWrite(PinY,LOW);
      digitalWrite(PinG,HIGH);
    } else {
      Serial1.println("No transmission");
      digitalWrite(PinY,HIGH);
      digitalWrite(PinG,LOW);
     }
  }
  delay(1000);
  LowPower.sleep(1800000);  //1 misura ogni mezz'ora
}

void reboot() {
  NVIC_SystemReset();
  while (1);
}

void ledOn() {
  digitalWrite(PinG,LOW);
  digitalWrite(PinY,LOW);
}

non ne ho idea.... ma il comando sigfox.begin() che viene ripetuto nel loop ci vuole?... Può dare problemi?

Nel codice di esempio della scheda viene messo. Non credo possa dare problemi.