Sodaq NB-IoT Shield with Crowdino M0-SD Low power modes


I am new with the arduino and SODAQ scene and I’m trying to get my equipment to work with togheter with as low power consumption as possible to see how long I would be able to push its battery lifetime. I have allready done the PSM and eDRX in the modem but i would also like to get the whole board down in power consumption. Also if you guys know how to push down the crowduinos power consumption that would be nice too.

I know this question is kinda broad but a finished code is not what I’m looking for more a “you should look in this direction” would suffice.


You need to turn off or put to sleep every component of the board.
The Crowduino has the SAMD21 onboard.
Here is a simple sketch to put this microcontroller into sleep, note: this code it not written for the crowduino.

You can also have a look into the UniversalTracker what also has sleep functions.

The code also has builtin that the USB will disconnect. You will not be able to reprogram the board when the usb is disconnected in software. You should make the delay in the setup() long enough.

Hope this helps you with getting the board into sleep.

Kind regards,

Thank you for a fast reply, I will look into these things and return if I need any further help!

Best regards,

Alright I looked up the code you suggested and I think I found most of the functions I was looking for… Now what I just dont understand lets say I put the Crowduino in sleep mode with the __WFI/__WFE function without disabling the USB, would i still be able to communicate with the modem? Also where would I find the functions to turn off the components on the NB-IoT shield… Sorry if I’m asking stupid questions… I’m a newly graduated electrical engineer and just started my education on a new company with this card…

The NB-IoT modules should just be turned on.
The module will automaticly go to sleep.The module going into sleep and waking up costs less power then when you would turn off the module completely and need to reconnect to the network. The module will wake up from time to time to keep the connection open.

Hmm, I’m not sure I understand what you mean… So if I would put the MCU in lets say standby mode it would automatically wake up for a short period of time whenever lets say a temperature value needed to be sent and then go to sleep again?

Again thank you for your patience and help