-
Upgrade
10/09/2018 at 02:06 • 0 commentsAfter the initial battery replacement at six months the second set lasted only a month. When I tested them one was shorted so I figured I had a bum battery. But after the third set died in less than a month I realized something was wrong.
Connected to the bench supply & amp meter showed an idle current draw in excess of 3mA - magnitudes higher than it should be. There isn't much to go wrong but it actually took some time to figure out. I reloaded the code, removed the temp sensor and its Vdd decoupling capacitor - nada.
Measuring the current with a Vdd down to 1V showed a calculated impedance of 700Ω - well below what it should be. This also eliminated the LCD & MCU as possible culprits since the minimum operating Vdd is 1.8V. The only thing left was the MCU's decoupling capacitor and, sure enough, removing it fixed the problem.
This seemed like a really strange failure for a 100nF 805 package MLCC. Likely one of two things happened:
- I assembled with lead-free solder and perhaps a tin whisker shorted it
- As mentioned in a previous post the battery clips are junk and when dropped the batteries can come out - perhaps they damaged the cap's layers
I didn't inspect it that closely and finished the replacement. Instead I took the opportunity to improve the design, many to improve battery life:
- Left the temp sensor Vdd decoupling cap out to reduce on-time current draw (noise shouldn't be a concern in this design)
- Optimized code to minimize on-time of the temp sensor and unit select
- Reduced the settle time at the start of read cycle on-time
- Added code to display the version # when batteries are installed
- Added code to display 'Lb' when low battery voltage is detected
- Replaced the battery clips with a holder
- Added a strain relief hole on the PCB to secure the temp sensor cable
With all the mods done the idle current is 53uA and on-time current draw=302uA.
Here's a very crude 1st order (ignores all non-linear effects) calculation of battery life assuming 1Ah AAA batteries. There are two components to estimating battery life: IDLE and READ currents. Idle current is assumed constant regardless of operating state. Read current is the current draw when the processor is awake and inputs are active (temp & unit sense).
The READ current is first converted to a constant current figure that can be added to the Idle current. The sample interval is 8 seconds and the on-time of a Read is approximately 120mS. Therefore, the Read time as a percent of a sample interval is 120 / 8 = 0.015 (1.5%). The Read current of 302uA converted to a constant current over 8 seconds is 0.015 * 0.000302 ≈ 5uA.
Adding the converted Read current of 5uA to the Idle current gives a total constant current draw of 53uA + 5uA = 58uA.
A AAA battery with a 1Ah capacity will operate for approximately 1 / 0.000058 ≈ 17,241 hours or 17,241 / 24 ≈ 718 days or 718 / 365 ≈ 1.97 years. Probably a bit optimistic.
Below are a few pics of the physical mods. I've also posted the updated code. Note C1 is missing from the display side.
-
Run Time Update
08/17/2018 at 13:23 • 0 commentsI got just over six months of life before having to replace the batteries. It's possible I'll get more with a fresh set because the original ones were mixed (different brands) and when I checked them at removal one was open - so maybe a weak cell to start.
One mechanical problem: the battery clips are junk. They aren't spring steel and I found that over time the clips would relax and the unit would stop working. Also if it gets dropped the battery mass is enough to bend the clip contacts. I had to open the case a few times thru the 6-month period to correct this. If I build more I'll switch to a higher quality clip.
Other than that it works great and, comparing to my phone's weather widget, it's been accurate to +/- 1C.