Timer Camera X power consumption
-
I'm trying to reduce power consumption when Timer Camera X is attached to an USB / Groove interface.
Running the wakeup example from Timer-CAM library in Arduino IDE, device uses about 18 mA in deep sleep mode.
Also I performed another tests without using battery library (and even without battery connected to device) and minimum consumption in deep sleep from 5V (USB / Groove, same value) I reached is those 18 mA.
I'm a bit confused, as ESP32 deep sleep consumption is less than 1 mA, something in device is using a lot of energy. I think that it could be USB - TTL converter, but I'm not sure.
Is there any way to reduce consumption? I'd like to power Timer Camera X from a dc boost (3.7V -> 5V) connected to a 18650 battery and a solar panel.
Thanks. -
Hello @rtrias
I don't have a Timer Camera X so my conclusions might be incorrect.
Reading though the schematics and the Timer-CAM Arduino example it occurs to me that the Timer Camera X only will shutdown completely when running from battery. In that state it can be woken up again by the RTC timer (or power switch or USB).
If USB is attached it cannot fully shutdown, but goes into ESP32 deep sleep. You are correct that ESP deep sleep power consumption is below 1 mA. However M5Stack devices have been notoriously bad in conserving power while ESP is in either deep sleep or light sleep due to all the additional voltage regulators etc. and I am afraid Timer Camera X is no exception.
Thanks
Felix -
Thank you for your reply Mr @felmue ,
This weekend I made some tests with an ESP32-Cam (The AI Thinker model) that doesn't have USB - ttl converter and I compared results with Timer Camera X
I attached the OV3660 from Timer Camera X to AI Thinker (Devices have same socket, but connected to different pins, I only needed to modify pin defines).
I saw that with AI Thinker device, if I put PWDN_GPIO_NUM to 1 (GPIO32 in AI Thinker), OV3660 is powered down. Connected to 5V, AI Thinker device only uses 2.7 mA in deep sleep (4.7 mA in light sleep).
I cannot reach the deep sleep power consumption probably due voltage regulators and another electronics in device, but is a far better number that the 18 mA from Timer Camera X.
If I put PWDN_GPIO_NUM to 0, power cosumption jumps to 22-24 mA.
Those 22-24 mA are similar values that I got with Timer Camera X, I thing that the real "culprit" of power consumption is OV3660, not USB-TTL.
Unfortunately according with schematics, in Timer Camera X I cannot change PWDN_GPIO_NUM as it's not connected to any pin in ESP32 (PWDN pin is connected to GND through a 10K resistor).
I tried to put RESET_GPIO_NUM (GPIO 15 in Timer Camera X) to 0 to disable OV3660, but power consumption is the same.
Probably I'll use AI Thinker instead of Timer Camera X to save power, I'd prefer to use Timer Camera X as it has a plastic case and pcb seems to haver better quality but it needs 7 times more power to work.
Thanks. -
Hi @rtrias ,
In fact, you can control the battery power supply through GPIO33, and rely on BM8563 RTC to wake up the device, which will save more battery life.
-
Hi @iamliubo ,
Thanks for you reply.
I omitted it in my first post to avoid adding noise to question: the idea is to use Timer Camera X as a peripheral of another device (currently, this main device is an ESP32 WROVER with a LTE Modem, but it could be anything with a serial port and an internet connection , e.g: a raspberry, a PC...)
Main device every 60 minutes (could be another value or could be on demand, not necessarily at fixed intervals) sends different weather values to a server taken from different sensors : pressure, temperature, humidity...also it sends a picture taken from Timer Camera X. Main device gets this photo from Timer Camera X through groove interface and resends it to a server using its internet connection.
Is main device who decides when values and photos must be sent.
Timer Camera X is in light sleep mode, weaks up when receives data from main device through groove interface, takes the photo, sends it to main device and goes again to light sleep
All the system is powered by a two 18650 liion batterys and a solar panel. This battery system feeds main device, also Timer Camera X through groove interface.
I looked schematics and I understand that as Timer Camera X is powered from groove interface, it cannot poweroff itself (correct me if I'm wrong).
Additionally, as it acts as a peripheral of another device, neither cannot rely on BM8563 alarms as it doesn't know when it will be asked for a photo.
Thanks. -
@rtrias I'm having the same problem. I'm using the USB port to power the Timer Camera and cannot determine how to turn off the camera (or even the lens). The lens gets extremely HOT and I'm afraid of a fire hazard.
I'm using USB Power, Deep Sleep w/ GPIO Awakening
? How do I shut-down the lens module ?Tried to put the Timer Camera into Deep Sleep. The lens still gets very HOT.
-
Hi @tchalabi,
About lenses temperature, probably you have camera in "streaming" mode (continously sending images, despite nobody is reading them).
Are it always very hot, or only when you're using it? Try to put a dummy firmware in m5stack that doesn't use camera (for example: blink example from Arduino IDE) and plug off / plug on Timer Camera X, to se it camera is still hot.
About shut down lenses, I checked schematics: Timer Camera X doesn't have PWDN_GPIO_NUM camera pin connected to any pin in ESP32 side, so is not possible to shut down it usign this pin. In other ESP32 models (for example ESP32-Cam from AI Thinker) this pin is connected to an ESP32 pin, and you can use it to turn off lenses.
If you plan to operate Timer Camera X from internal battery, you can try @iamliubo advice, as it seems that using BM8563 you can turn off all system (camera, esp32, all except BM8563, saving a lot of battery).
The problem with this method is that you're constricted to take photos at certain intervals, but you can not rely on external interruptions, maybe it's compatible with your planned use for Timer Camera X -
Here's how i shut down the OV3660 lens....
// Put Camera Module into Standby Mode sensor_t * s = esp_camera_sensor_get(); s->set_reg(s,0x3008,0xff,0x01);//banksel --- ? Is this needed for ov3660? Is there only 1 bank delay(100); s->set_reg(s,0x3008,0xff,0x80);//reset (we do this to clear the sensor registries, it seems to get more consistent images this way) delay(100); s->set_reg(s,0x3008,0xff,0x40); //stand by (sensor, register, mask, value) delay(100);
I reboot the camera to turn the lens back on.. .but there are registry setting that can be invoked to restart the camera module. see Omnivision OV3360 spec for registry settings.