Hibernation sleep on Tracker T524Mkit is 1.5 mA instead of 130uA

It turns out, that when we use:

config.mode(SystemSleepMode::HIBERNATE).duration(first_wake * 1000);
System.sleep(config);

This type of sleep uses 1.5mA of energy instead of 130 uA. What might be the reason?

Are you based off the Tracker Edge firmware, or are you writing firmware from scratch?

What version of Device OS and Tracker Edge?

If you are writing from scratch, Device OS does not put all of the peripherals (like CAN and GNSS) into sleep mode; this is done by the Tracker Edge firmware so you’d need to do that as well.

Actually, now that I think about it, you can’t just call the Device OS sleep call like that if you are using Tracker Edge, because it won’t put the peripherals to sleep either. It’s best to stick to the normal Tracker Sleep system and augment it with Tracker Sleep API calls otherwise it will be difficult to get all of the peripherals to go into sleep mode.

1 Like

3.1.0 v16 (w Tracker Edge). Let me clarify, I cannot use:

config.mode(SystemSleepMode::HIBERNATE).duration(first_wake * 1000);
System.sleep(config);

specified in Particle HIBERNATE (SystemSleepMode) - sleep() [ Sleep ] ? Or custom sleep call from anywhere in the code for that matter?

Well, if you use the underlying Device OS sleep API on the Tracker, it won’t shut down all of the peripherals that are Tracker-specific such as the GNSS, IMU, CAN, and RTC, because those peripherals are managed by Tracker Edge, not Device OS.