espressif / esp32-camera

Apache License 2.0
1.85k stars 632 forks source link

ESP32 camera module get very hot - high temperature #670

Open grasp opened 1 month ago

grasp commented 1 month ago

ESP32 S3 with camera OV5640

//WROVER-KIT PIN Map

define CAM_PIN_PWDN -1 //power down is not used

define CAM_PIN_RESET -1 //software reset will be performed

define CAM_PIN_XCLK 15

define CAM_PIN_SIOD 4 // SDA

define CAM_PIN_SIOC 5 // SCL

here is pin layout

define CAM_PIN_D7 16

define CAM_PIN_D6 17

define CAM_PIN_D5 18

define CAM_PIN_D4 12

define CAM_PIN_D3 10

define CAM_PIN_D2 8

define CAM_PIN_D1 9

define CAM_PIN_D0 11

define CAM_PIN_VSYNC 6

define CAM_PIN_HREF 7

define CAM_PIN_PCLK 13

define XCLK_FREQ_10MHz 10000000

define XCLK_FREQ_20MHz 20000000

microPython driver from https://github.com/lemariva/micropython-camera-driver/tree/master with esp32_camera compiled

how to reproduce

camera module ,it will get very hot quickly

workaround - hard reset the board

push reset button in board , then camera module get cool soon(but this is not the case in another board)

please note: call machine.softreset() did not help , only hard button reset on dev board.

issue point:

does any impovement with deinit() to let camera recover to original

code is here

import camera import os

print("init start")

初始化摄像头

camera.init(0, d0=11, d1=9, d2=8, d3=10, d4=12, d5=18, d6=17, d7=16, format=camera.JPEG, framesize=camera.FRAME_FHD, xclk_freq=camera.XCLK_10MHz, href=7, vsync=6, reset=-1,sioc=5, siod=4, xclk=15, pclk=13, fb_location=camera.PSRAM) print("initDone")

拍照

buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture() buf = camera.capture()

关闭摄像头

try: camera.deinit() camera.deinit() camera.deinit() except Exception as e: print(f"An unexpected error occurred: {e}")

检查是否有足够的空间保存文件

if buf is not None:

生成文件名

filename = "image.jpg"

# 保存文件
with open(filename, "wb") as f:
    f.write(buf)

print(f"Image saved to {filename}")

else: print("Failed to capture image")

grasp commented 1 month ago

here is google result of this issue image

grasp commented 1 month ago

here is schema, seems reset and power down was fixed in camera side image

grasp commented 1 month ago

change from esp32 S3 module to normal ESP32 wrover module ,both 16M Flash ,8M Sram, which has camera reset pin connected with esp32 io2, still not work , camera module is still hot even I soft pull down io2 to low level as 100 ms, which force reset cameral module

there are no sensor capture , already deinit ,but still get hot from finger.

I will change to ov2640 camera to see the difference the day after tommorrow

seems only power down total board to get cameral be "cool"

grasp commented 1 month ago

https://www.youtube.com/watch?v=Ti9fzIedlc4, quite similar with me, I buyed a heatsink to see any improvement or production availibility for camera application.

grasp commented 1 month ago

https://www.youtube.com/watch?v=yzWiicnv-f8 , someone give the reason analysis and some conclusion.

grasp commented 1 month ago

good news OV2640 is OK , run well without hot,and image is quite good, so what happened inside ov5640?

grasp commented 1 month ago

image

ref link: http://xzcq.website/welcome/default/index/s014-tf-esp32-cam

who solved hot issue on ov5460, seems has different hadware design on power pin.