Author Topic: Ultra low power listening mode for battery nodes  (Read 185171 times)

joelucid

  • Hero Member
  • *****
  • Posts: 868
Re: Ultra low power listening mode for battery nodes
« Reply #75 on: August 13, 2015, 04:13:47 PM »
Quote
current module lifetime of only 3 month in ListenMode

There must be something else going on - this is not due to ListenMode if correctly implemented. I'm using listen mode on all my battery nodes and there is no significant impact on battery life.

For example I've been running a DHT22 based thermometer using 2x lithium aaa for at least a month. During that time vcc has dropped from 3.63V to 3.62V. 

TomWS

  • Hero Member
  • *****
  • Posts: 1930
Re: Ultra low power listening mode for battery nodes
« Reply #76 on: August 13, 2015, 04:19:07 PM »
This is an interesting question since if the pulsed load hurts it would make sense to put a resistor in front of the load. This might make sense anyway since it would cause the system to restart if it gets stuck in receive etc instead of damaging the battery. I'm currently running a test to verify this.


Sorry for the late feedback...
As already stated, I use 2xAA batteries. I further need to reduce the power consumption due to a current module lifetime of only 3 month in ListenMode with a few infrared transmissions.
You are right that I do not need the cap for limiting the power surge/voltage drop like it is on a coin cell battery.
I am thinking about your cap solution with an additional series resistor to reduce the current peaks. I think current peaks(Listen 4µA -> RX 25mA) reduces the lifetime of a AA battery, doesn´t it?
The cited quote is actually joelucid's, not mine, but, in any case, AA can handle much larger current surges than 25mA (probably in the order of hundreds of mA) keeping in mind that they are probably not as 'elastic' as coin cells WRT to using mAH precisely because the chemistry is 'consumed' quickly due to the AA's low ESR.  It also depends on whether you're using Lithium or Alkaline AAs.

Capacitors will help supply pulsed power, but, unless they are very large value caps, there is probably negligible effect on AA battery life (plus or minus) if caps in the order of 10-200uF are used in this application.  The secret to this ultra-low-power listen mode implementation was Joe's realization that, in listen mode, he could set the duty cycle to an very low value using very high data rate (making the RX time very low, and the idle time 1000 10,000 times longer).  That, and the fact, which I totally missed, that Idle Mode in the radio consumes 25% less power than Idle with WDT in the 328P.

You also won't need the power sequencing switches since the AAs can provide enough power at startup to get around the initial high current required by the uninitialized radio while the coin battery can't possibly supply this amount of short term power.

Tom
UPDATE: corrected duty cycle...
« Last Edit: August 13, 2015, 06:55:08 PM by TomWS »

ulli

  • Jr. Member
  • **
  • Posts: 87
Re: Ultra low power listening mode for battery nodes
« Reply #77 on: August 13, 2015, 04:31:46 PM »
Thanks for the quick response.
I use Alkaline AAs and I attached my circuit maybe there is a design issue?

joelucid

  • Hero Member
  • *****
  • Posts: 868
Re: Ultra low power listening mode for battery nodes
« Reply #78 on: August 13, 2015, 05:02:06 PM »
Thanks for the quick response.
I use Alkaline AAs and I attached my circuit maybe there is a design issue?

Ulli,

I would recommend grabbing a simple ampere-meter and measuring your idle currents. If you measure anything more than 10uA while sleeping there's something seriously wrong.

AA batteries should have at least around 2000mAh capacity. If you use them up in 90 days you're drawing 2000mAh in 90 * 24h or an average of 930uA. That's way too high. Either you're not sleeping your 328p correctly or the ULN2003V12DR has unreasonable idle currents.

TomWS

  • Hero Member
  • *****
  • Posts: 1930
Re: Ultra low power listening mode for battery nodes
« Reply #79 on: August 13, 2015, 06:50:30 PM »
Thanks for the quick response.
I use Alkaline AAs and I attached my circuit maybe there is a design issue?
Ulli, I would add to Joe's comments with:
1. are you sure ALL inputs to the ULN2003 are pulled to ground when Idle?
2. Have you set the fuses to run on internal clock at 8MHz?
3. Is A0 programmed to be a Digital Input (not Output)?
4. How often and what duty cycle is the IR LED pulsed?

Tom



TomWS

  • Hero Member
  • *****
  • Posts: 1930
Re: Ultra low power listening mode for battery nodes
« Reply #80 on: August 14, 2015, 09:38:23 AM »
For example I've been running a DHT22 based thermometer using 2x lithium aaa for at least a month. During that time vcc has dropped from 3.63V to 3.62V.
@Ulli, I've gathered Battery data for a Mote I deployed in April.  This Mote measures the water level in a man-made stream I have, uses two AAA Lithium batteries and, even running with WDT sleep (not Listen Mode) cycles, the voltage actually started lower (3.473 when deployed) and has worked its way up as high as 3.641, to 3.527 at 6:48 this morning (130 days later).  The initial voltage was low due to start up configuration loading as I fiddled with it and most of the variation over time has been probably due to temperature variations as opposed to any real drain on the batteries. 

This Mote uses RFM69HW and, since I had to change over to a different, more distant, Gateway about a month ago, this Mote has to transmit at full power to reach it reliably for the last month.

Net: Reinforcing what Joe had to say, I'd say you've got something wrong in your setup.

Tom

ulli

  • Jr. Member
  • **
  • Posts: 87
Re: Ultra low power listening mode for battery nodes
« Reply #81 on: August 14, 2015, 01:26:40 PM »
Thanks for the quick response.
I use Alkaline AAs and I attached my circuit maybe there is a design issue?
Ulli, I would add to Joe's comments with:
1. are you sure ALL inputs to the ULN2003 are pulled to ground when Idle?
2. Have you set the fuses to run on internal clock at 8MHz?
3. Is A0 programmed to be a Digital Input (not Output)?
4. How often and what duty cycle is the IR LED pulsed?

Tom

I checked your comments above.
1. No changes in power consumption after setting all inputs to Low with:
Code: [Select]
pinMode(A3, OUTPUT);
digitalWrite(A3, LOW);
2. Yes i set the fuses to
Code: [Select]
low_fuses=0xE2
high_fuses=0xDA
extended_fuses=0x07
(The 16MHz quarz and Caps are soldered, but not used
3. No changes in Power consuption after setting A0 after RFM69 reset to input
Code: [Select]
pinMode(RFM69_ResetPin, INPUT);
4. The frequency is 38khz. I calculated one packet is taking 25ms. ~ 5 transmissions a day
   --> I expect no relevance over lifetime

I measured the power consumption with a multimeter in idle mode. To get more stable  results I set the following register
Code: [Select]
/* 0x0E */ { REG_LISTEN2, 0xFF },
/* 0x0F */ { REG_LISTEN3, 0x01 },

-> in idle mode I need 28µA (with WDT enabled)
-> in idle mode I need 24µA (without WDT enabled)
« Last Edit: August 14, 2015, 01:42:20 PM by ulli »

TomWS

  • Hero Member
  • *****
  • Posts: 1930
Re: Ultra low power listening mode for battery nodes
« Reply #82 on: August 14, 2015, 03:36:41 PM »
-> in idle mode I need 28µA (with WDT enabled)
-> in idle mode I need 24µA (without WDT enabled)
The 4uA delta makes sense with and without WDT.  The real question is, where is the 24uA being consumed?   But even this doesn't add up to the poor battery life you've gotten.  One more question:  When you send to the gateway, do you send with retry and, if so, how many tries?  I've totally stopped sending with retry on the coin cell Mote (although I do request an Ack - I need this to be able to get the received RSSI back from the Gateway).

Tom

joelucid

  • Hero Member
  • *****
  • Posts: 868
Re: Ultra low power listening mode for battery nodes
« Reply #83 on: August 16, 2015, 03:17:19 PM »
Quote
On a somewhat related note, I have had my TTH Mote stop responding to wake up bursts on two occasions in the last week.  I normally generate the wake up burst every ten minutes from my gateway but I can also generate a wake up burst from my Snooper.  I tried this as well, but this also did not wake up the mote.  I'll have to put a scope on it to see if its still going through listening cycles when it's not responding, but wondering if you've seen this at all.

I've only run motes in listen mode without WDT for testing. My current "Production" setup is still listen mode + WDT. Sometimes I can't manually reach listening motes - but it's always been motes that are hard to reach anyway. But I don't nearly have the same sample set as you with regular 10 minute listen wakeups. 

TomWS

  • Hero Member
  • *****
  • Posts: 1930
Re: Ultra low power listening mode for battery nodes
« Reply #84 on: August 17, 2015, 08:00:40 AM »
I've only run motes in listen mode without WDT for testing. My current "Production" setup is still listen mode + WDT. Sometimes I can't manually reach listening motes - but it's always been motes that are hard to reach anyway. But I don't nearly have the same sample set as you with regular 10 minute listen wakeups.
Ah, ok.  Some of the code I saw in a recent file of yours makes sense now - basically a counting loop with WDT sleep.  So if a wake up burst hasn't happened within the counting window, you treat it as a 'wake up' anyway, yes?

I think I'll rework my Mote to add this counter and also change my BOD bits to 1.8V BOD, rather than disabled.  This way, if the voltage falls below 1.8V during transmit, it has a chance of recovering...  I'll happily exchange 20uA (for the BOD circuit) for this safety factor while awake.  With my version 2 circuit I can keep the radio completely powered off if I find that the voltage is too low on startup to risk a transmission.  I can then go into an extended recovery period until there seems to be enough power to, at least, report the low battery condition...

Tom

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Ultra low power listening mode for battery nodes
« Reply #85 on: September 04, 2015, 01:24:32 PM »
@felix, the key to making the low duty cycle work is the continuous transmission. I know the spec mentions something about a 1% duty cycle limitation but I've never seen this as a problem so I wonder if they are mentioning a regulatory constraint. Even with wireless boot and particularly if I need to downgrade to 19200 baud I have the gateway send for up to 30s at full power and it's never been a problem. During testing I've had nodes transmit at full power for minutes without ill effect.

Joe

Since bad news doesn't get better with time, I may as well just say it: I'm quite sure there is going to be a regulatory constraint on duty cycle, no matter where you live, and it would be because you're jamming the channel if operating in continuous mode for an extended period of time.  This realization first dawned on me a couple years ago when I was range testing a bit-bang OOK that I built out of very primitive $1 parts.  The datarate was very low, and so to speed up the testing for lost packets, I decided to send them one after another with only a perfunctory break in-between.  As it happens, my wife later reported that she couldn't open the garage door to park her car.  She had concluded the opener must be broken, so she parked outside.  Ooops!

As an alternative, for the RFM69, I was planning to use an accurate clock to try to send the packets only around the time when the radio might be ready to receive them, but I haven't yet thought through any of the details on how to make that work.  Perhaps the receiver node uses the packet's time of arrival to sync more precisely when it falls asleep, so that drift over time doesn't cause a failure.  It's a slightly tougher problem to solve, but now that you've got the simpler case working, you may want to consider it or some other method.  Or not.  It's really up to you whether you want to be compliant or not.  For instance, if you're using it only in a deep cave, then it obviously wouldn't matter.
« Last Edit: September 04, 2015, 01:45:01 PM by WhiteHare »

joelucid

  • Hero Member
  • *****
  • Posts: 868
Re: Ultra low power listening mode for battery nodes
« Reply #86 on: September 04, 2015, 05:15:19 PM »
Quote
Since bad news doesn't get better with time, I may as well just say it: I'm quite sure there is going to be a regulatory constraint on duty cycle, no matter where you live, and it would be because you're jamming the channel if operating in continuous mode for an extended period of time

I use 433 MHz in Germany which AFAIK does not have a duty cycle limitation. The 915 MHz band in the US also does not have a duty cycle constraint. Even there was one if you burst 3s every 5 minutes you'd be at 1%.

If listen mode weren't cheaper than the WDT I'd be more interested to look at alternatives.

Joe

joelucid

  • Hero Member
  • *****
  • Posts: 868
Re: Ultra low power listening mode for battery nodes
« Reply #87 on: September 05, 2015, 12:26:30 PM »
Quote
As an alternative, for the RFM69, I was planning to use an accurate clock to try to send the packets only around the time when the radio might be ready to receive them

I've looked at a couple of HW options for this today. Maybe the most promising is this (http://abracon.com/Precisiontiming/AB08X5-RTC.PDF). If Tino had one of these on board and each node had an assigned second period each minute during which it should listen average battery would come down significantly below 1uA. Which would truly give you a decade even on cr2032.

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Ultra low power listening mode for battery nodes
« Reply #88 on: September 05, 2015, 02:34:42 PM »
Quote
As an alternative, for the RFM69, I was planning to use an accurate clock to try to send the packets only around the time when the radio might be ready to receive them

I've looked at a couple of HW options for this today. Maybe the most promising is this (http://abracon.com/Precisiontiming/AB08X5-RTC.PDF). If Tino had one of these on board and each node had an assigned second period each minute during which it should listen average battery would come down significantly below 1uA. Which would truly give you a decade even on cr2032.

Those might be nice if you were thinking of putting a clock on each sensor node, given how low their current drain is.  If you have the capability to go that direction, which is sounds like you do, then it becomes a much simpler ballgame.

At least in the past, it seemed like the most accurate clocks were the ones that used TXO's. However, I don't suppose you would need that level of accuracy if you were putting RTC's on each node.
« Last Edit: September 05, 2015, 04:12:49 PM by WhiteHare »

WhiteHare

  • Hero Member
  • *****
  • Posts: 1300
  • Country: us
Re: Ultra low power listening mode for battery nodes
« Reply #89 on: September 05, 2015, 04:33:24 PM »
Quote
As an alternative, for the RFM69, I was planning to use an accurate clock to try to send the packets only around the time when the radio might be ready to receive them

I've looked at a couple of HW options for this today. Maybe the most promising is this (http://abracon.com/Precisiontiming/AB08X5-RTC.PDF). If Tino had one of these on board and each node had an assigned second period each minute during which it should listen average battery would come down significantly below 1uA. Which would truly give you a decade even on cr2032.

I stand corrected then.  That would make sense out of a product like http://www.silabs.com/Support%20Documents/TechnicalDocs/Si4463-61-60-C.pdf, which relies on a 1 second long repetitive preamble sent to a low power wakeup receiver (which itself wakes up very briefly once a second to sample the airwaves so as to determine whether or not the pre-amble is there, and then wakes up the entire receiver if it is).

I once looked up the FCC rules for 433Mhz (Part 15, Section 15.231) , and with a few exceptions it was highly restrictive as to both transmit power and duty cycle.  Apparently 902Mhz-928Mhz is governed by Part 15, Section 15.249, but I haven't yet delved into that.
« Last Edit: September 06, 2015, 12:18:17 AM by WhiteHare »