WellDone / MoMo-Firmware

Embedded PIC Firmware and hardware designs for the WellDone Mobile Monitor (MoMo).
welldone.org
Other
8 stars 6 forks source link

Momo Power Consumption #112

Open timburke opened 10 years ago

timburke commented 10 years ago

This issue tracks the characterization of the current MoMo unit's power consumption. The power consumption is measured across a 33 ohm resistor with an oscilloscope. The test setup is using the standard firmware that turns on the flow sensor for 0.5 seconds.

Acquired Data: No current average voltage measurement: -4.8 mV Sleep current average voltage: -4.29 mV Measurement current average voltage: 117 mV

Given a 33 ohm nominal resistor, we convert the measured voltage drop to current draw as I = V/R: Sleep Current: 16 uA Measurement Current: 3.7 mA

Given a measurement interval in seconds (T), we can get the average current consumption as

I_avg = (0.5 * Im + (T-0.5)*Is)/T

where Im is the measurement current and Is is the sleep current. The following table lists the average currents and daily total charge draw for sampling intervals of 1, 5, 10 and 20 seconds.

Interval Average Current Daily Total Charge
1 sec 1.9 mA 45 mAh
5 sec 390 uA 9.2 mAh
10 sec 200 uA 4.8 mAh
20 sec 110 uA 2.6 mAh

It's not possible to easily acquire power consumption values for GSM transmissions so we'll have to go from the SIM900 datasheet. It lists an idle current of 22 mA and a transmit current of around 100-250 mA. Assuming a 2 minute maximum on time per transmission that means that we have something like say 100 mA draw during those two minutes. This means we use 100 * 2/60 = 3 mAh of charge per transmission in the worst case. The table below sumarizes the total daily charge for various reporting intervals:

Interval Daily Total Charge
1 hour 72 mAh
1 day 3 mAh

The battery has a capacity of 1150 mAh and probably about 70% of that is usable before the battery voltage drops too low to send a text message so we have 800 mAh to use. The following table summarizes how many days we expect the battery to last with no solar input:

Configuration Daily Total Charge Lifetime
1 sec sample, 1 hr reports 117 mAh 6 days
10 sec sample, 1 day reports 7.8 mAh 103 days
timburke commented 10 years ago

@amcgee Here are the characterization values for power consumption on my test momo. How many days did the first ones last and was the battery fully charged initially (what was the first voltage report)? That should tell us if the solar panel was working or not.

timburke commented 10 years ago

Based on the data it looks like we should go with daily reports and a 10 second sampling interval. The issue could be that with the current implementation it will keep the flow module powered on whenever flow is present, leading to higher current draws than above since it's taking ~1.8 mA continually. I would recommend no counting discrete use events but just sampling flow for a half second every 10 seconds and storing that information. The reports can then report the average flow rate during each bucket and you can multiply that by the bucket duration to get the total amount of water that flowed.

This way we can control the total power consumption because currently it will be very high when there is continual water usage even if we change to 1 sample every 10 sec since it will just continually sample because the water is continually flowing.

amcgee commented 10 years ago

Great, thanks! I think it's important to have these characterizations.

Is it worth considering reducing the sampling time for the pulse sensors? The rated minimum for the turbine meters we're using is 2 lpm for 3/4" pipes, which is very significantly lower than the flow rates we see in practice. These turbines output roughly 300 pulses per liter, so half a second will capture a minimum of 300 pulses at the low end of rated flow, 300 * 60lpm = 18,000 at the upper bound. Tuning the sampling time down to .1 seconds, for instance, would have a 5x power efficiency improvement and still be able determine approximate flow rates relatively well ( the pulse count range becomes 60-3600 for a .1 second interval ). The larger 1" turbine are rated for 65 pulses per liter but a 3-100 lpm flow rate range, giving a 19.5-650 pulse count range for the .1 second interval.

If we keep the same sampling interval (10 seconds) but reduce the duration 5x to .1s, we are probably close to a full year in battery life. We lose some granularity in flow rate detection and some accuracy in total volume estimation, but it could be worth it.

I agree that for the current use case, at least, we should drop the continuous flow measurement feature. For applications without power constraints (solar-powered pumps, for instance), we can have a mode that measures total volume rather than intermittent flow rates.

timburke commented 9 years ago

Using the new current meter and a nice 6.5 digit benchtop voltmeter that I got for cheap from an auction, I can now refine these numbers. The current hardware version uses 15 uA of current in sleep mode just due to the controller board (total draw from the battery including everything on the board). The board does sleep correctly >99% of the time.

timburke commented 9 years ago

I have now tested the complete momo unit including multisensor with turbine, gsm module and controller. The sleep power consumption is: 30 uA

When taking a measurement, the power consumption is 4.6 mA, dominated by the turbine. Currently, the device takes a reading for 0.1 seconds every 4 seconds so the average power consumption is:

(4*30 + 0.1*4600)/4.1 = 141 uA

Given a 1200 mAh battery and assuming we can use say 1000 mAh of that, we get 7,092 hours of use from a charge without taking into account reporting. 7,092 hours is 395 days. I have one unit running the sampling firmware currently and logging its battery voltage so that we can see how this corresponds with reality.