ESP32-CAM_Interval
ESP32-CAM_Interval copied to clipboard
Power consumption - modification to disconnect 3.3V of CAM1
I stubbled upon your section about how to reduce power consumption of ESP32-CAM and found it helpful. Your result was unfortunately too far for my needs. I was aiming for <500uA in sleep mode thus using camera PWDN wasn't a option.
This can be done only as you describing in 'Properly switching the camera power' of power_consumption.md - but your investigation wasn't in line of what I found. What I found was that the 3.3V routing is less than ideal since the power flows through CAM1 connector to Q2 (CAM_PWR) thus disconnecting line around R14 is not the solution and on top of that there is via between CAM1 and Q2 and this is feeding RST circuit on the other side. Disconnecting 3.3V line before via breaks ESP32 module - it will stay in reset forever - if cut as suggest around R14 then Q2 loses power on source and thus CAM1 stays powered and everything what Q2 switches will be unpowered.
This is how I was able to disconnect 3.3V properly:
-
We need to cut 3.3V before CAM1 connector, on the side where camera usual sits, this disconnects 3.3V to CAM1 (and it's passives), Q2 source and RST circuit, the cut needs to be made on tiny part of track right before connector (since 3.3V immediately drops to other side), it can be done but it's fiddly, there is just enough of track to make cut without the need of taking CAM1 connector off.
-
We need to isolated power before via drops the the other side (RST circriut) and connect this section directly to 3.3V, thus this makes RST circuit work again and also powers the source of Q2 - so Q2 can power other things.
-
Now we have 3.3V of CAM1 (and it's passives) floating, since we cut before CAM1 connector and cut on the other side before the via for RST - now we can connect this point to drain of Q2 and this finally makes CAM1 (and it's passives) powered only via Q2 - this is how it is supposed to be originally.
Of course AMS1117 also needs to be removed, this is huge power hog.
With these modifications I reached my goal and I got ~340uA of sleep current compared to >1200uA with CAM1 being switched only partially.
Step 1
Step 2 & 3
Working example (there are other repaired cuts, ignore those), the top cut is hard to see, I was cutting as close to CAM1 connector as possible until continuity was gone
This should be the solution for 'Properly switching the camera power' of your power_consumption.md.
I also tried to mess with PSRAM but I couldn't find a way how to initialize PSRAM runtime, this could save another ~130uA but I just don't know how to do it on the firmware side. There is also question where the rest goes. 340uA minus 130-150uA for PSRAM still leaves good chunk of current - 190-210uA, ESP32 itself should draw this much so where is goes? Flash? Other circuits inside ESP module? I didn't go further since I already met my goal but it would be nice at least to know how PSRAM can be initialized later during runtime.
I see you are not using this project anymore but it would be nice to have this information in one place since this is the only thing I found when searching about how to reduce ESP32-CAM sleep current. Should I prepare this as pull-request for doc/power_consumption.md?