Open grasp opened 1 month ago
here is google result of this issue
here is schema, seems reset and power down was fixed in camera side
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"
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.
https://www.youtube.com/watch?v=yzWiicnv-f8 , someone give the reason analysis and some conclusion.
good news OV2640 is OK , run well without hot,and image is quite good, so what happened inside ov5640?
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.
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:
生成文件名
else: print("Failed to capture image")