Electronic – arduino – Periodic waking up from deep sleep

arduinoarmatmelgpsmbed

what are the main used ways of how to handle deep sleep of some microcontroller (atmega or a cortex m0/m0+) with waking up periodically?
Right now, I'm building a Sigfox GPS tracker that should send GPS position every ~10 minutes and this interval should be configurable.
I solved this problem in previous projects either by using external RTC IC (temperature compensated for great precision) or counting of 8sec intervals (let's see https://github.com/rocketscream/Low-Power). What are the other ways and their advantages?
My plan is to either stick to the Arduino ecosystem or switch to the STM32 world (maybe with a bit of help of mbed platform).
I really appreciate all your feedback.

Best Answer

Generally an RTC interrupt is the best way to go for a long period in deep sleep. If you can use the RTC built into the micro this will generally give you a simpler implementation but may not be the absolute lowest power possible or most accurate.

If you do go the mbed route then this library will probably be of use. However take care, some of the boards are not really well designed for lower power, while the processor will go into deep sleep on just about all of them some of the boards can't shut the rest of the circuits into low power modes and so the total system deep sleep power draw can be far higher that you'd hope for. Other boards are better able to cope with this and can get down to tiny power consumptions.