SAMD21 MINI BREAKOUT + Sleep mode - Help needed

I got SAMD21 MINI BREAKOUT I want to use sleep mode on.

I got an GPS connected to Serial1.

Also got GPS enable connected to pin 13(LED_BUILTIN).

I want the unit to read 100 strings from the GPS then go to sleep until an interrupt on pin 12 is detected.

I got it to sleep but not awaik again. It stops on turning pin 13(LED_BUILTIN) high and stops there.

Here is my code. Does anyone know how to fix it?

#include "ArduinoLowPower.h"


// Pin used to trigger a wakeup
const int pin12 = 12;
bool awaikstate = true;
int counter = 0;

void setup() {
  SerialUSB.begin(115200);
  Serial1.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  // Set pin 12 as INPUT_PULLUP to avoid spurious wakeup
  pinMode(pin12, INPUT_PULLUP);
  // Attach a wakeup interrupt on pin 12, calling repetitionsIncrease when the device is woken up
  LowPower.attachInterruptWakeup(pin12, awaik, CHANGE);
}

void loop() {

  if (awaikstate) {
    while(Serial1.available() > 0 ){
      String str = Serial1.readStringUntil('\n');
      SerialUSB.println(str);
      counter ++;
    }
  }


  if (counter == 100) {
    counter = 0;
    awaikstate = false;
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
    SerialUSB.end();
    Serial1.end();
    delay(200);
    LowPower.sleep();
  }

}

void awaik() {
  if (!awaikstate) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(200);
    SerialUSB.begin(115200);
    Serial1.begin(9600);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
    awaikstate = true;
  }
}

Hi Kimlorentz,

Unfortunately, SparkFun Tech Support cannot help debug custom code but other users here may have some pointers for you. I would recommend starting with a known-working example from the Low Power library like [this and then add the functionality you want with your GPS module. That might help you identify what the issue with your code is.](ArduinoLowPower/examples/ExternalWakeup/ExternalWakeup.ino at master · arduino-libraries/ArduinoLowPower · GitHub)

Got it working. :slight_smile: