Can't get ESP CAM working

I have an ESP 32-CAM that I can’t seem to get working.

With a basic flash from ESPHome it comes online and and I can get to the device status page. (all the code below with the “esp32_camera” component commented out)

When I flash it with the “esp32_camera” component, it seems to connect for a bit but the connection goes dead. (log below the code) Have to flash it with the basic code with it connected to my laptop via serial to bring it back to life.

I’ve tried all the configurations shown on the Cam Component page but none of them work.

The only identifying thing on the board shows “ESP32-S” (image at bottom)

Any ideas how to get this thing up and running?

substitutions:
  name: esphome-web-c8a1d0
  friendly_name: Printer Watch

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: '1.0'

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption: 
    key: !secret haapi_key

ota:
  password: !secret ota_password

# Allow provisioning Wi-Fi via serial
improv_serial:

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

  manual_ip:
    static_ip: 10.0.0.131
    gateway: 10.0.0.1
    subnet: 255.255.255.0
    dns1: 75.75.75.75
    dns2: 75.75.76.76
  
  fast_connect: off

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "printer watch fallback"
    password: !secret haapi_password

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

dashboard_import:
  package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
  import_full_config: true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:

switch:
  - platform: restart
    name: "Printer Watch Restart"

sensor:
- platform: wifi_signal
  name: "Printer Watch Signal Strength"
  update_interval: 60s
  
text_sensor:
- platform: wifi_info
  ip_address:
    name: Printer Watch IP Address
  ssid:
    name: Printer Watch Connected SSID
  bssid:
    name: Printer Watch Connected BSSID
  mac_address:
    name: Printer Watch Mac Wifi Address

time:
  - platform: homeassistant
    id: esptime

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

  # Image settings
  name: "Printer Watch"
INFO Upload took 28.44 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 10.0.0.131 using esphome API
WARNING Can't connect to ESPHome API for esphome-web-c8a1d0 @ 10.0.0.131: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='10.0.0.131', port=6053))]: [Errno 111] Connect call failed ('10.0.0.131', 6053) (SocketAPIError)
INFO Trying to connect to esphome-web-c8a1d0 @ 10.0.0.131 in the background
INFO Successfully connected to esphome-web-c8a1d0 @ 10.0.0.131 in 6.458s
WARNING esphome-web-c8a1d0 @ 10.0.0.131: Connection error occurred: esphome-web-c8a1d0 @ 10.0.0.131: Connection lost

image

You really need to find the datasheet or schematic to check the wiring.

All the schematics I can find match with the configurations on the Cam Components page and an email to the seller requesting the info has gone unanswered.

Maybe I just scrap this one if someone can point me to one that will actually work with ESPHome.

Do you mean this page? ESP32 Camera Component — ESPHome

There are at least 13 configurations listed there.

Yes. And I tried all 13. With most of them, the Log never shows it connecting at all.

Take out the Bluetooth stuff and the web server, they are both very resource intensive.

Finally got back to this.

Taking out the Bluetooth and Web server seems to have done the trick using the following Camera config.

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

  # Image settings
  name: "Printer Watch"

Thanks