Xiao esp32s3 sense camera sleep current

When I put the Xiao sense in deep sleep mode I still see 20ma of current and not the 3ma spec’d. Could you please provide some code that would work? I have tried my current code using the esp32 ai thinker camera, I am able to obtain a 6ma sleep current therefore I think something different must be done for the xiao sense.

3 Likes

Hi,
Any chance to know how do you achieve this deep sleep setting?
Thanks!

I have the same or similar question as I was not able to achieve low power after using the camera.
I searched the schematics for the XIAO ESP32S3 main and sense extension board. It looks for me that the OV2640 RESET and PWDN pins are not accessible via GPIOs, they seem to be fixed to VCC_3V3 unfortunately. This is also stated in the arduino-esp32.

I want to use a trigger e.g. PIR to enable the camera, take a photo and then enter low power deep sleep. But it seems that the sense board is consuming at least 50mA.

Does anyone know how to de-init the camera after having the camera use to achieve low power with the XIAO SENSE extension board?

may be the wifi handler using the extra power

I think it is not related to Wifi. I am using esphome and tried everything without the camera module setup (just Wifi), then I automatically have ~140µA when entering deep sleep (via esphome), but when the camera module is configured and connected it is ~90 mA in deep sleep. As it happens not automatically on entering deep sleep, I am looking for something I can do before it manually e.g. send an I2C message to the OV2640 or an internal API call.

Hi there,
Are you using the SD card?
If you have a PPK2 and can look at it under the sleep state or not, is the PSRAM in sleep also?
Seems very High for at rest. maybe reducing the Wire clk frequency could lower it too?
HTH
GL :slight_smile: PJ

I found that the current draw was consistently higher than the specified 3mA. Strangely, my existing code, which successfully achieved a 6mA sleep current on an ESP32 AI Thinker camera, didn’t yield similar results on the Xiao Sense. I’ve meticulously reviewed my code, delved into the documentation, and experimented with various pin configurations to no avail.

Hi there,
Can you post up the code , if it’s not proprietary we can have a look , the MCU power code NinJa :ninja: msfujino can chime in with always good suggestions. :wink: :+1:
HTH
GL :slight_smile: PJ

If I deep sleep a XIAO ESP32S3 Sense with the camera and SD card (but not initialised) in place the deep sleep current is circa 2.8mA. A bit high perhaps, but you can live with it.

However if you take a picture and save it to SD, the ‘deep sleep’ current is then 90mA, a little high.

The issue is discussed here;

But the ‘esp_camera_deinit();’ function makes no differance for me.

You might think that if the internals of the camera are in a state after reset\powerup that gives a 2.8mA not in use current it ought to be possible to reverse all the changes the camera init does to cut the idle current from 90mA back down to 2.8mA.

What am I missing, surely having the camera constantly consume 90mA if its only used ocaisionaly is not good for it ?

An el cheapo ESP32CAM, when used with a low IQ regulator such as the MCP1700 has a deep sleep current of 3.75mA, in a mode where you take a picture, save it to SD and then go into deep sleep.

The ESP32CAM does have a GPIO that turns of the regulators that supply power to the OV2640, but SEEED do not seem to have followed that design path.

To optimize power consumption on the Xiao ESP32-S3 with a Sense Camera during sleep, ensure proper configuration of the ESP32-S3 deep sleep mode and utilize low-power camera capture settings. By minimizing clock frequencies, disabling unnecessary peripherals, and leveraging sleep modes for both the ESP32-S3 and the camera module, you can achieve lower sleep currents for power-efficient operation.

No actual helpful or useful information there on how to actually get the camera into a 3mA deep sleep after its been used.

Hi there,
Lurking in on this one…
Seems odd, if it’s low when Uninitialized, is a reset not possible?
so there is no code you are saying to turn off the reg’s either?
I’m sure there is a work around but seems like allot of hoop jumping for a pretty straight forward op?
Power-On (selftest)
Take a Picture
Save to SD card
SLEEP! (lowest power of course)

OR
?
save something to Flash to indicate primary op was good, reset system and sleep?
HTH
GL :slight_smile: PJ

It seems not.

There are pins on the OV2640 that are RESET and PWRDWN, but none are connected to GPIOs on the XIAO ESP32S3, so nothing doing there.

The ESP32CAM does power down (and thus reset) the camera by turning off the voltage regulators.

The code for the camera is mostly hidden in a *.a file so there is little detail of the actual comms.

There are commands to apparently deint the camera, esp_camera_deinit(void) but all the info I can find on githubs etc say that that command does not work.

The accepted narrative appears to be that once initialised the camera cannot be de-initialised by software, in that the camera library code provides no workin mechanism to do so.

Sure ?

If its easy then where is the published code ?

One of the reasons I am interested in the ESP32S3 and camera is that it has potential security and wildlife monitoring type applications with image transfers over long distances via LoRa. The software for that is written and done.

The ESP32CAM does work, low sleep cureent, but has so few IO pins that you really cannot easily add other sensors or GPS etc, so not that useful really.

1 Like

Its possible the reason why the ESP32CAM turns of the regulators for the OV2640 via a GPIO and MOSFET is that they could not find a way to do it in software ?

Post reported, its Spam.

1 Like