Thanks. I thought that might be the case. I’ve decided to have a power save mode on the device to extend 12v battery life as long as possible when it starts getting low. Lipo will be emergency backup only.
I’ll look into PMIC settings, would be nice to only recharge the lipo when the 12v source is getting charged.
If your application is outdoor or close enough why dont you consider a solar powered tender for your 12 volt source …the drain of a Boron isn’t that much unless your regulating circuit could be the culprit for the drain on your 12 volt …just thoughts.
Six months at least on about 50 ah battery without going below 12v. Boron LTE wake every 15 minutes to publish heartbeat and alert if certain conditions are met.
At this point I’m trying to get a lot more energy efficient. I’m draining a 1.2 ah test battery in about 12 hours (solar panel brings it back up during the day) publishing every 15 minutes and sleeping in between: On wakeup turn cell chip on, connect to cloud(s), publish, disconnect from cloud, turn cell chip off, then System.sleep(sleepWakePin, CHANGE, 900).
Things I still need to try:
Reduce publishes to absolute minimum #
Try sleep_mode_deep (lose ability to store variables for unknown gains)
Instrument actual consumption and check against specs / community observations (any help here would be nice in terms of simplest way to sample consumption over time)
Try keeping cellular connection up instead of connecting and disconnecting (system mode semi-automatic (cell connection but no cloud) and sleep with SLEEP_NETWORK_STANDBY). Unlikely to show gains with LTE, but what the heck.
What else?
Edit: Changed 1.2 ah battery drain in 24 hours to 12. Solar panel brings it back up, and it drains over night (under 12v).
Edit2: Changed 50mah to 50ah. Big difference
Solar is ideal case, and I have one set up, but I want to build for least ideal case to also work.
Your point about the regulator is well taken. I’m not sure how efficient it is, I’ll check the specs again. I have 12v->5 regulator and then the built in one on the Boron, too.
It’s technically sleeping based on the charge led blinking furiously and it coming back up after the specified time…but maybe I need to let it go to sleep more gracefully. I saw some posts between you and BlueCheese on this: Low power sleep on Boron LTE
@RobotChicken, I went through a similar project where I was using Borons and I could only use battery w/o solar. Maybe there is some helpful info in this post for you Boron - High Cellular Usage.
@Backpacker87, very helpful. I skimmed through most of that thread and realized that I don’t necessarily have to use the Particle Cloud either. I’m sending my variables to a different cloud service anyway. Also, I’ll have to tackle data consumption issues soon enough, so this is a step in the right direction for both power and data savings. I’m already manually controlling the connection, might as well just not call Particle.connect() except for very special occasions.
I have not been able to try it yet, but collectively the group came up with the idea of having a button on the 3rd party cloud (I like Ubidots) like a “OTA” button which when sending data to the 3rd party cloud it checks the status of this button. If it is clicked, then the boron will do a Particle cloud connect. In theory, this could allow you to have your cake and eat it
Quick Calc's
I assume your test battery is a 12V SLA, rated at 1,200 mAh.
1,200 mAh over 12 hours = 100mA load
100 mA @ 12V = 1,200 mW average.
We know that your Boron LTE isn't doing that without a lot of help externally, especially if it's sleeping.
Awake, a Boron LTE averages ~ 75 - 100 mW, depending on cloud activity.
So, what does your entire circuit/system look like ?
I assume you are measuring the 12V battery with a Voltage Divider, what value resistors ?
Something is wasting a lot of energy......and it's probably not the Boron.
You might want to simplify your setup for a quick test.
Just use the 12V panel and 12V SLA directly with the Boron LTE (no 5V regulator), no voltage divider, etc. You don't even need to Sleep the Boron for the test.
You should notice a significant improvement verses your previous results.
Not necessarily. You can use OTA updates (of your user firmware and DeviceOS) without Particle Cloud. I posted a working example here: OTA over HTTP working example!
I was thinking a physical button that would pull it out of sleep, connect, and keep awake until an OTA could be performed. But an app-based OTA enable button such as you suggest, @Backpacker87, would be even better. Or maybe both…
Wow, that does put it in perspective. To refine the numbers a little, it goes from about 12.7 - 11.4 volts in ~ 17 hours, or 12.7-12.0 in about 12 hours. Depends on sun into evening / early morning, etc.
Hooked up I have an OLED (not displaying anything atm), as well as an ina219 (w/ 0.1 ohm, 1% sense resistor) to monitor the battery. Should probably take the OLED off first and test. I do have an e-Ink display I've been meaning to play with...
I could hook up another Boron and load it with the same code powering from 12v battery as you suggest and let it discharge over night. Be easier than pulling the current install apart.
I think you're right. I measured 22 ma draw with a multimeter in Tinker (Cloud connected), in System.sleep(D1, RISING, long seconds), and in System.sleep(SLEEP_MODE_DEEP). When communicating with cloud (ping / signal / OTA) it went to 50 ma briefly. What's odd is that according to the chart below my measurements are an order of magnitude off. 20ma vs 200ma, 500ma vs 50ma.
Would be nice to have an updated Boron power spec, says TBD for sleep currents: