Seeeduino XIAO Deep Sleep and Sleepwalk

Hi, I’m new to Seeeduino XIAO and cannot work out how best to get it into a deep sleep. I am particularly interested in wakeup on GPIO. Is there a guide on different sleep modes and optimising them for this board? Thanks, Mike

I’m sorry, we haven’t done any research on this. But we have provided datasheet, I hope it can help you.

Thanks. I’ll head off and trawl through the [very large] datasheet.

May just use an alternative until I can get the low power mode working - strange because it’s a pretty critical component of any battery-powered device.

Thanks,

Mike

There is an example for the board in Arduino - WakeUpOnExternalInterrupt. I don’t know what sleep mode it uses though.

Anyone made progress on this ?

I’m still struggling with it.

Seeeduino xiao is fully compatible with Arduino Zero. So you can use all Arduino Zero libraries. Specifically xiao is based on SAMD21, therefore supports only two sleep modes - idle and standby.
You can use standard Arduino attachInterrupt function to attach an interrupt vector to external pin. An interrupt on external pin will bring xiao out of standby mode.


To go into standby mode you can use RTCZero library (standbyMode() function).

Few words about power consumption - please note that power led consumes about 1 mA and is it is always on even if xiao is in standby mode.
Here are some numbers from my little project (xiao + BME680 + 433MHz transceiver)
Active state (BME680 measuring + 433MHz communication): 14-15 mA.
Standby mode: 1.2 mA
After power led removal.
Active state: 13-14 mA
Standby mode: 0.013 mA (13 uA)

Great - thanks! I’ll give it a try.

Isn’t there supposed to be a deep sleep mode too?

Do I have to use an external interrupt to get out of stand-by? I have been trying to use the RTC alarm but it is not getting out of the standby mode. Here are two different references which I have tried but they don’t work.

https://gist.github.com/dzonesasaki/dbccc2981e9169d7edd548ad1e3f3e3fp-rtc-alarm