Lowest Teensy 3.6 power consumption using snooze library?

Status
Not open for further replies.
Update:

During my first couple hours with the Teensy 3.6 I stumbled across Duff's Snooze library (Thanks Duff).

While using Version 6 of the Snooze library, USB unplugged, powered by 5VDC:

Compiled with the CPU speed @ 180 MHz in the Arduino IDE Tools Menu = Around 25mA (Aprox. I didn't write it down... I just knew it was too high)
Compiled with the CPU speed @ 24 MHz in the Arduino IDE Tools Menu = Around 100uA
Compiled with the CPU speed @ 96 MHz in the Arduino IDE Tools Menu = Around 100uA

:D

This is without even diving into the code and the Kinetis Low Power modes! SLEEP_MODE is set at LLS, the little reading that I have done on the Kinetis suggests that I can down much lower... but even if I can't, I'm very excited to get my hands dirty with the 3.6!

Admin - If this is all obvious information and documented somewhere else, feel free to delete the post.
 
Update:

During my first couple hours with the Teensy 3.6 I stumbled across Duff's Snooze library (Thanks Duff).

While using Version 6 of the Snooze library, USB unplugged, powered by 5VDC:

Compiled with the CPU speed @ 180 MHz in the Arduino IDE Tools Menu = Around 25mA (Aprox. I didn't write it down... I just knew it was too high)
Compiled with the CPU speed @ 24 MHz in the Arduino IDE Tools Menu = Around 100uA
Compiled with the CPU speed @ 96 MHz in the Arduino IDE Tools Menu = Around 100uA

:D

This is without even diving into the code and the Kinetis Low Power modes! SLEEP_MODE is set at LLS, the little reading that I have done on the Kinetis suggests that I can down much lower... but even if I can't, I'm very excited to get my hands dirty with the 3.6!

Admin - If this is all obvious information and documented somewhere else, feel free to delete the post.

These seem high but I haven't done any formal tests to see what they are. I hope in the coming month I can get my office back into order so I can get all my equipment out! Moving 4 times in 3 years really takes it out of you.
 
These seem high but I haven't done any formal tests to see what they are. I hope in the coming month I can get my office back into order so I can get all my equipment out! Moving 4 times in 3 years really takes it out of you.

Yeah, I recently bought a house after moving at least once a year for 10 years. It was a great feeling to setup my gear knowing it was going to stay that way for a long time.

Good luck with everything!

I'm not able to spend a ton of time working with the Teensy 3.6, I've literally spent a few hours with it so far, but I plan on diving into your library and reading the Kinetis documentation.

I will keep more detailed notes, and share them here.

Thanks again for you low-power contributions!

Very happy to have found the Teensy community.
 
I thought I would revisit this post and let anyone that might read it that I am able to hibernate at around 60 microamps while powering the Teensy 3.6 with 3.3 volts.
 
I also measured about 55 uA. First I tought this 55 uA is the quiescent current of the voltage regulator. But when I power the teensy directy through an 3.3V pin I still have around 45 uA. Any ideas why the power consumption is still so high?
 
I personally think that 40 to 60 uA is pretty good. I'm no expert, but if I was to guess why it is higher than you expect, I would it has to do with the various convienient ways you can wake it up.

I finally have some time this week to compare the kinetis documentation to Duff's code to see if I can understand what's going on. If you chase down the hibernate function you can find an enumerator of sleep types. He currently passes it LLS, there are lower level sleep modes you can pass the function, but I can't verify that the snooze code handles them. The lower you go, I assume the less things there are to wake it up, and more things you need to reconfigure after waking up.
 
I also measured about 55 uA. First I tought this 55 uA is the quiescent current of the voltage regulator. But when I power the teensy directy through an 3.3V pin I still have around 45 uA. Any ideas why the power consumption is still so high?
There could be something external to the k66 chip that is consuming power on the Teensy, maybe?

I finally have some time this week to compare the kinetis documentation to Duff's code to see if I can understand what's going on. If you chase down the hibernate function you can find an enumerator of sleep types. He currently passes it LLS, there are lower level sleep modes you can pass the function, but I can't verify that the snooze code handles them. The lower you go, I assume the less things there are to wake it up, and more things you need to reconfigure after waking up.
Yes, the default is LLS but you can pass "Snooze.hibernate(config, VLLS1-3)" also but the VLLSx's will wake with a reset. See https://github.com/duff2013/Snooze/blob/master/SnoozeBlock.h#L69, don't use anything above "LLS" as parameter though, they won't work since they are not proper configs for sleeping and also "VLLS0" is not implemented either.
 
Thanks Duff, do you have a Bitcoin or Ethereum address?

You should stick one in your profile. I really appreciate your work on the snooze library
and active participation in this forum. I mine cryptocoins and I'd love to throw you some thank you coinage when you go out of your way to help, and I'm sure others would too.

Just a thought... I wish all the badasses in the forum would do this. You all deserve more than street cred.
 
What do you mean? I my case nothing external is connected to the board.
I mean some component on the Teensy 3.6 itself could be leaking current, I'm looking at the onboard sd card socket to see if one the pins has some leakage current.
 
FWIW, the mbed k64f (think T3.5) has a jumper (J20) where you can splice in meter and measure just the power to the MCU. Here are some low-power numbers (@120MHz) from https://developer.mbed.org/forum/platform-38-FRDM-K64F-community/topic/17184/

Code:
         MCU    / FRDM
(RUN)   35.5mA  / 115mA
(WAIT)  23.2mA  / 100mA
(STOP)   524uA  /  79mA
(VLPR)  1660uA  /  80mA
(VLPW)  1250uA  /  79mA
(VLPS)   110uA  /  79mA
(LLS)      6uA  /  79mA
(VLLS0)    2uA  /  79mA
(VLLS1)    2uA  /  79mA
(VLLS2)    4uA  /  79mA
(VLLS3)    6uA  /  79mA

@duff it would be nice if your snooze github page had a table of power numbers for the T3* based on your experiments.
 
Last edited:
I took a quick look at the schematic and here are some things that looked like it could be using some power at all times.

https://www.pjrc.com/teensy/schematic.html

-MKL02z32vfg4 chip is tied to 3.3 VDC, I'm not sure which sleep mode that thing typically lives at, but I assume it uses a few uA.
-There are a few resistors capacitors and inductors hooked up to 3.3vdc, I assume those use some power.

Not sure if those are the culprits, but they are external to the K66, and contributing to the sleep currents.
 
I mean some component on the Teensy 3.6 itself could be leaking current, I'm looking at the onboard sd card socket to see if one the pins has some leakage current.

Teensy 3.2 has the same currents. So I sd card socket should not be source.
 
I took a quick look at the schematic and here are some things that looked like it could be using some power at all times.

https://www.pjrc.com/teensy/schematic.html

-MKL02z32vfg4 chip is tied to 3.3 VDC, I'm not sure which sleep mode that thing typically lives at, but I assume it uses a few uA.
-There are a few resistors capacitors and inductors hooked up to 3.3vdc, I assume those use some power.

Not sure if those are the culprits, but they are external to the K66, and contributing to the sleep currents.

MKL02z32vfg4 is also on the teensy LC board. But the consuption is much lower.
 
FWIW, the mbed k64f (think T3.5) has a jumper (J20) where you can splice in meter and measure just the power to the MCU. Here are some low-power numbers (@120MHz) from https://developer.mbed.org/forum/platform-38-FRDM-K64F-community/topic/17184/

Code:
MCU / FRDM
(RUN) 35.5mA / 115mA
(WAIT)    23.2mA    /    100mA
(STOP)    524uA    /    79mA
(VLPR)    1660uA    /    80mA
(VLPW)    1250uA    /    79mA
(VLPS)110uA    /    79mA
(LLS)    6uA    /    79mA
(VLLS0)    2uA    /    79mA
(VLLS1)    2uA    /    79mA
(VLLS2)    4uA    /    79mA
(VLLS3)    6uA    /    79mA

@duff it would be nice if your snooze github page had a table of power numbers for the T3* based on your experiments.
Yes, I need to work on that plus much more documentation on all the different low power modes you can do.
 
So I have been doing some extensive low power testing on the Teensy 3.6 and cannot find anymore power savings. In my tests the Teensy 3.6 hibernates at about 85uA with nothing attached. The LP38691 Low Dropout voltage regulator "Iq" contributes around 55uA at normal temps so thats part of the what we are seeing. I see that the USB Host has a TPD3S014 Current Limit Switch that could cause some leakage but nothing I did seemed to matter, when I enabled it about 100uA more of current showed up. The only change I could add to Snooze is putting it into LLS2 sleep mode instead of LLS3 which will power off some of the RAM but not sure what that will break. LLS2 saved about 5uA.
 
What currents do you measure on T3.2? it has same LDO and same bootloader chip as T3.6. Earlier thread
https://forum.pjrc.com/threads/28700-Duff-s-Snooze-Library-Setup-Questions
reported 46ua in hibernate on T3.2
Thats right I'm not sure what is consuming the extra current, the bootloader pins are the same so the only thing I can see from the schematic is the current limit switch for USB host mode might be an issue but everything I tried had no effect or made it worse (enabling it).
 
So I have been doing some extensive low power testing on the Teensy 3.6 and cannot find anymore power savings. In my tests the Teensy 3.6 hibernates at about 85uA with nothing attached. The LP38691 Low Dropout voltage regulator "Iq" contributes around 55uA at normal temps so thats part of the what we are seeing. I see that the USB Host has a TPD3S014 Current Limit Switch that could cause some leakage but nothing I did seemed to matter, when I enabled it about 100uA more of current showed up. The only change I could add to Snooze is putting it into LLS2 sleep mode instead of LLS3 which will power off some of the RAM but not sure what that will break. LLS2 saved about 5uA.

Could you please try VLLS0? That should save another 9uA. ( as written in the Manual: https://www.pjrc.com/teensy/K66P144M180SF5V2.pdf).
 
Status
Not open for further replies.
Back
Top