Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Long Battery life #118

Open
DarkZeros opened this issue Dec 11, 2021 · 9 comments
Open

Long Battery life #118

DarkZeros opened this issue Dec 11, 2021 · 9 comments

Comments

@DarkZeros
Copy link
Contributor

Hi.
I have set myself as goal to lower the battery usage as much as possible (possibly to power watchy from a solar cell).

So far I have submited these 2 PRs.

If you have any other idea, let me know.

I have as further ideas:

  • Use voltage regulator circuit to use TPS63900 instead, and have a dropout of 80nA
  • Increase the ADC voltage divider resistors
@LeonMatthes
Copy link
Contributor

One of the best ways that I currently use to reduce battery life is to completely disable my Watchy (put it in deep sleep) between 1am and whenever I wake it up again.

If you wake up at around 8 am every morning, that's 7 hours of almost no battery drain.

That's what it looks like every morning:
watchy sleeping

Might be something that you also want to consider to achieve your goal.

@DarkZeros
Copy link
Contributor Author

DarkZeros commented Dec 18, 2021

Thanks for the idea!
So far my biggest concern is the base usage (power used while not updatng the display).
With the change to put the ESP32 in lightsleep I already recoverd most of the power usage.

The current state is (as measured):

  • Display refresh: Around 40uA (averaged per minute)
  • LDO: 40-60uA
  • Accelerometer: 100uA
  • Voltage divisor: 20uA
  • ESP sleep: ? (20uA?)
  • RTC sleep: 5uA?
    Should be: 130uA + 100uA accelerometer

I my current setup I disabled the accelerometer, and I get around: 160-600uA depending of the display I use.
After a long testing and researching. I found out the reason.
I will open a new issue to notify the devs: sqfmi/watchy-hardware#14

For my watchy I will try to solder a pullup resistor.
That way I can get the average power usage to 125uA (200mAh -> 66 days of battery)

Next steps are:

  • Reduce the voltage divisor (-20uA)
  • Use TPS63900 for power (-40uA)

With those I expect to reach (80uA -> 104 days of battery), and power it with solar.

@LeonMatthes
Copy link
Contributor

Wow, an on-time of >1 month was always my hope with watchy. Your efforts are great in that regard.
Do you only have v1 HW available or v2 also?

It would be very interesting to see if you could keep a BLE connection active with v2 in light sleep and see how much power that would draw.

I've tried optimizing my current setup as much as possible, but it still only lasts ~2-3 days with Watchy opening a BLE connection to my phone every minute.
That also unfortunately means I can not use your fix for light sleep during the display update, as that would kill the BLE connection :(

@DarkZeros
Copy link
Contributor Author

My approach was to lightsleep and set the wakeup to the BUSY pin. Assuming this was not interfering with anything else.

However, if you want to have a system that works for both continuous BLE and Display, maybe a better idea is to use the FreeRTOS automatic light sleep (RTOS is the underlying mechanism of Arduino tasks, most of the time only 1 task is used)
Here they explain how to set up RTOS to lightsleep automatically, and wake up when BLE needs to update.
espressif/esp-idf#947

Then, you will have to use RTOS HW ISR interrupt for the display, or completely disable the busy callback on the display.
With that approach you can get an average of 2.5mA usage with BLE, That should last around 4 days of battery.

You can also keep the display update code as-is, along as you can detect when BLE is on, and avoid the lightsleep.

@LeonMatthes
Copy link
Contributor

That would be my ideal setup, unfortunately the Watchy v1 hardware doesn't have the necessary external 32KHz oscillator needed for the BLE + light sleep combination.

Still waiting for someone to confirm they can get automatic light sleep w/ BLE working with such a low power draw on the new v2 hardware.
Would consider ordering a v2 board then...

@DarkZeros
Copy link
Contributor Author

Pushed 2 more commits on this same topic:
#177
#178

@Dop47355-82
Copy link

Is there a possibility of getting links and instructions on how to get the right solar cells and codes? I'm a complete NOOB, with absolutely zero experience in coding. Would be awesome to build my own energy-harvesting smartwatch.

@DarkZeros
Copy link
Contributor Author

Solar cell, any would do as long as the voltage is >4.2V.
The solar cell current output is so small that is not worth dealing with a converter or overcharge protector.
I am connecting the cell directly to the battery, AM-5815 -> https://panasonic.net/electricworks/amorton/lineup/

@Dop47355-82
Copy link

What case do you have? I ordered this one: https://shop.sqfmi.com/products/watchy-cnc-anodized-aluminum-case

Will it be possible to mount this cell on top of it, or did you just make one yourself?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants