MKRWAN1300 high current in sleep mode


(Sslupsky) #22

@aschroeder, Here are the instructions to do the mods and a photo.

Regarding the VDD_TCXO modification, in my opinion the best method is Option 2 that involves using a laser if you have access to one. With Option 1, there isn’t much space between the via and the Murata module to solder a wire to the trace after you drill the via.

tcxo and usb repair v3.pdf (1.4 MB)


(LoRaTracker) #23

Good job for publishing the details, but for me this is a first, using a laser to rework a board.

I have a green laser which is great for pointing out stars in the sky, will that do ?


(Sslupsky) #24

Hi @LoRaTracker LOL! Off the top of my mind I do not think the star pointer will work well. I had access to an Oxford laser with a 20um spot size. They are used for laser micro machining, micro drilling, etc.


(Andreas Schroeder) #25

Hey @sslupsky!

Thank you for the detailed information - great job. Unfortunately i think we have to wait for the next version from Arduino. Tinkering with an oxford laser is beyond our possibilities :frowning: .


(Amedee) #26

I don’t have the the hardware nor the skills to modify the PCB, so I pursued the TPL5110 route.

There is obviously some overhead, but at least the sleep current is under 50 nA…

Running (I attached a small display for debugging):
ULPArduino-001

Sleeping:
ULPArduino-002


Arduino MKR WAN 1300
(LoRaTracker) #27

Difficult to tell from the pictures, but are you feeding the Adafruiit TPL5110 thingie with 2 x AA LifePo4 in series as the power supply ?


(Amedee) #28

Pictures are misleading, I was out of battery holder so I add to hack a bit for testing :roll_eyes:

I actually use a single 700mA LiFePo4 – one of the 2 batteries in the picture is a ‘dummy cell’ used as placeholder (which can be used when you want to replace 2 ‘dry’ cells by a LiFe)

This is BTW another stupid annoyance of this device: it has an 1/3 voltage divider, so the maximum you can measure is 3v using the 1v reference. So by the time your LiFe reaches 3v, it is almost empty…


(Loic74) #29

Hello Amedee
Sorry if the question is silly but how do you achieve such low current with the TPL5110? I looked at the specs and it says 20uA in Sleep mode. Am I missing something?

[edit]
here it says 20uA: https://www.adafruit.com/product/3435
and here it says 35nA: https://www.digikey.com/en/product-highlight/a/adafruit/tpl5110-low-power-timer-breakout

So I guess there must be a typo on the Adafruit website


(Amedee) #30

Right, the Adafruit data don’t make too much sense…
It can vary a bit, but you should stay way below 1µA


(Loic74) #31

Thank you Amedee

I am a newby and I appreciate your help.

It sounds like the TPL5110 approach is an easy fix for nodes which are not low-power by design and only need to wake up at regular intervals. I have two questions if you may:

1/ from an energy efficiency point of view does it always make more sense (when possible) to completely switch off the device like above or can the overhead of a cold start be worse than a deep-sleep in some cases? Maybe this question very much depends on what’s in the Setup() function.

2/ in one of my applications I wish to wake the node through an external interrupt. I see that on the Adafruit TPL5110 board there is a button to manually wake the device. In your opinion could this be hacked and used as an external trigger?

Thank you


(Amedee) #32

Re. 1: it really depends how long you need to setup()… If you want to drive e.g. particle sensors which typically needs to warm up, the problem won’t be the sleep time but the overall power usage when awake. The few mA in sleep won’t weight a lot against the awake power. Also do you want to be awake once a day or every minute? that will make a big difference as well.
I typically use a very basic spreadsheet where I enter my awake/sleep power usage and duty cycle to get an idea on the theoretical lifetime…
But most sensors don’t require a long setup time.

Re. 2: absolutely it is not a hack it is a feature of the TPL5110, when you pull M_DRV to VDD it will wake-up your device.

I think I already posted it, but I don’t see it immediately, I have published a proof of concept implementation which can help you to start. I have nodes running now for months on a 700mAh LiFePO4 battery.

Now, in my opinion this is only worth if you already have MKR nodes. If you don’t already have these consider something else which is designed with low-power in mind.


(Loic74) #33

Thanks a bunch.

I have been playing with various boards such as the AirBoard+mDot, the MKR WAN 1300 (where is rev 2.0…?) and the Adafruit Feather 32u4 lately but most of them don’t achieve low enough current in sleep mode to enable non-rechargeable-battery-powered nodes with long life-time applications.

I just discovered your blog as well as the MiniLora project which I might look at closer. Lots of really interesting reading ahead :))

One thing I am also interested in is how to handle sensors which require too much current to be powered through a regular digital IO pin. In such case it seems a mosfet is the way to go to switch them ON/OFF.

All this to say you might see me around every now and then with questions… :slight_smile: and hopefully answers to newbees when I am savvy on the topic