ESPhome ESP32-WROVER-E camera failed - SOLVED

Hello, I received a camera module of the type:
ESP32-WROVER-E with attached camera header.
But I have a problem here, and not only with this board, but also with the classic esp32cam. It keeps saying camera error:

[20:25:04][E][sccb.c:115] SCCB_Write(): SCCB_Write Failed addr:0x30, reg:0x3e, data:0x00, ret:263
[20:25:04][E][sccb.c:115] SCCB_Write(): SCCB_Write Failed addr:0x30, reg:0xff, data:0x00, ret:263
[20:25:04][E][sccb.c:115] SCCB_Write(): SCCB_Write Failed addr:0x30, reg:0x05, data:0x01, ret:263
[20:25:04][E][camera.c:1344] camera_init(): Failed to set frame size
[20:25:04][E][camera.c:1406] esp_camera_init(): Camera init failed with error 0x20002
[20:25:04][E][esp32_camera:024]: esp_camera_init failed: ERROR
[20:25:04][E][component:113]: Component esp32_camera was marked as failed.
.........
[20:25:08][C][logger:295]:   Log Baud Rate: 115200
[20:25:08][C][logger:296]:   Hardware UART: UART0
[20:25:08][C][esp32_camera:048]: ESP32 Camera:
[20:25:08][C][esp32_camera:049]:   Name: My Camera
[20:25:08][C][esp32_camera:050]:   Internal: NO
[20:25:08][C][esp32_camera:052]:   Data Pins: D0:4 D1:5 D2:18 D3:19 D4:36 D5:39 D6:34 D7:35
[20:25:08][C][esp32_camera:053]:   VSYNC Pin: 25
[20:25:08][C][esp32_camera:054]:   HREF Pin: 23
[20:25:08][C][esp32_camera:055]:   Pixel Clock Pin: 22
[20:25:08][C][esp32_camera:056]:   External Clock: Pin:21 Frequency:10000000
[20:25:08][C][esp32_camera:057]:   I2C Pins: SDA:26 SCL:27
[20:25:08][C][esp32_camera:058]:   Reset Pin: -1
[20:25:08][C][esp32_camera:076]:   Resolution: 640x480 (VGA)
[20:25:08][E][esp32_camera:095]:   Setup Failed: ERROR
[20:25:08][C][psram:020]: PSRAM:
[20:25:08][C][psram:021]:   Available: YES

I tried 7 camera modules

YAML:

#-------------------------------------------
# SUBTITUTIONS
# basic definitions and description of the device
#-------------------------------------------
substitutions:
  device_name: dev_board32
  friendly_name: dev_board32
  created_by: StudioTiiM 2022 
  device_description: "development board esp32"
 
#-------------------------------------------
# Define pins

#-------------------------------------------

#-------------------------------------------
# ESP MAIN SETTINGS
#-------------------------------------------
esphome:
  name: dev-board32

esp32:
  board: esp-wrover-kit
#  framework:
#    type: arduino

logger:

api:
ota:
  password: !secret ota_pass

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "$friendly_name Hotspot"
    password: !secret api_pass

captive_portal:

sensor:
  
binary_sensor:

# Example configuration entry
esp32_camera:
  external_clock:
    pin: GPIO21
    frequency: 10MHz
  i2c_pins:
    sda: GPIO26
    scl: GPIO27
  data_pins: [GPIO4, GPIO5, GPIO18, GPIO19, GPIO36, GPIO39, GPIO34, GPIO35]
  vsync_pin: GPIO25
  href_pin: GPIO23
  pixel_clock_pin: GPIO22

  resolution: VGA
  jpeg_quality: 15
  idle_framerate: 0.01fps
  name: My Camera

Some ideas.
I’m thinking about what I’m doing wrong because one out of three boards with installed cameras works for me.

Possible problems:

  • Bad board (uploaded firmware works without problems, only camera initialization does not work)?
  • Bad camera modules?
  • Error in the code?
  • Bad power supply (USB 2.1A)?
  • Badly soldered header for the camera (is it possible to test it somehow)?
1 Like

The below works for me - you have to change your board to esp32cam - confusing I know but the wrover kit is a different massive board and I guess all camera’s fall under esp32cam although the board pinouts are different?! Then you tell the wrover camera pin like you do have.

  name: wrover-cam

esp32:
  board: esp32cam
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "your-own-here"

ota:
  password: "your-own-here"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Wrover-Cam Fallback Hotspot"
    password: "your-own-here"

captive_portal:

esp32_camera:
  external_clock:
    pin: GPIO21
    frequency: 20MHz
  i2c_pins:
    sda: GPIO26
    scl: GPIO27
  data_pins: [GPIO4, GPIO5, GPIO18, GPIO19, GPIO36, GPIO39, GPIO34, GPIO35]
  vsync_pin: GPIO25
  href_pin: GPIO23
  pixel_clock_pin: GPIO22

  # Image settings
  name: Wrover Camera    
  max_framerate: 15 fps
  idle_framerate: 1.0 fps
  resolution: 800x600
  horizontal_mirror: false
  vertical_flip: false

No solution

LOG:

[09:55:42][I][logger:258]: Log initialized
[09:55:42][C][ota:469]: There have been 0 suspected unsuccessful boot attempts.
[09:55:42][D][esp32.preferences:113]: Saving 1 preferences to flash...
[09:55:42][D][esp32.preferences:142]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[09:55:42][I][app:029]: Running through setup()...
[09:55:42][D][esp-idf:000]: E (526) sccb: SCCB_Write Failed addr:0x30, reg:0x3e, data:0x00, ret:263
[09:55:42]
[09:55:42][D][esp-idf:000]: E (527) camera: Camera probe failed with error 0xff(ERROR)
[09:55:42]
[09:55:42][E][esp32_camera:024]: esp_camera_init failed: ERROR
[09:55:42][E][component:113]: Component esp32_camera was marked as failed.

It is also addressed on github. It looks like I have to wait for an update?

https://github.com/esphome/issues/issues/3908

I had the same problem.
OV2640 requires a core voltage of 1.2V and an analog voltage of 2.8V.
The ESP32 CAM board should have two SMD linear voltage regulators soldered on it.
On my ESP32-WROVER board I found that these SMD regulators are swapped, so they provides wrong voltages to the camera module. When the register 0x3E is written, I suppose the camera starts drawing more current and it crashes as the supplied analog voltage is 1.2V instead of 2.8V as required.
So, you need to identify these SMD regulators, unsolder them and reverse their position on the board.

2 Likes

Do you mean these two smd regulators?
65BX - XC6206P122MR 1.2V
54FK - XC6206P282MR 2.8V

is there an easy way or are they soldered the other way around?

EDIT1:
I tried it with a multimeter. It really looks like LDOs are the other way around. They need to be replaced.

According to ESP32-CAM scheme

EDIT2:
SOLVED!!!
Hold me.

It works after replacing the LDO regulators.
We’ll let you figure this out, that the LDO is installed incorrectly from the factory
obrázok

2 Likes

Did u get a chance to figure out how to make the camera supplied originally (the one with “OV2640” written on the flex pcb) work ?
It seems like the I2C lines are wrong since it can’t even detect something on the bus …

OMG!

Thank you SOOOO much!

Was sceptical -


and have only fairly basic soldering skills. Glued thin toothpicks on - and swapped them.
:nerd_face: :+1:

5 Likes

You need to swap the 2 power regulators (65BX and 54FK) which got soldered in the wrong way around! See pic - cheap copy at top, original at bottom :-
ESP32-WROVER-DEV-Fixup_sml|471x500

2 Likes

I’ve just ported CircuitPython to these boards. Add support for ESP32-WROVER-DEV boards with Camera by gitcnd · Pull Request #9233 · adafruit/circuitpython · GitHub

You can try it right now from here if you like: CircuitPython 9.1.0-beta.1-23 installer for ESP32CAM and ESP-32-WROVER-DEV-CAM (see the above URL for sample code to save photos to the device and use the SD card etc)

See the PR and/or pull/9231 for sample code to take photos etc:

Cannot believe it, i have the very same problem: apparently voltage regulators are switched