ESP32-S3 DevKitC-1 V1.0 camera (Freenove ESP32-S3 WROOM)

Hello

I’ve been trying to get the camera going for this board in esphome.
I figured out the pinout off the vendor’s site and I’m not getting any warning at build or flash but on bootup the camera component doesn’t start up correctly.
It works fine with basic Arduino sketches.

I’m hoping someone might have some insights for me.

esphome:
  name: esphome-web-447610
  friendly_name: esp32-s3

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:
  level: very_verbose

# Enable Home Assistant API
api:
  encryption:
    key: "(removed)"

ota:


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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Web-447610"
    password: "(removed)"

captive_portal:

# camera https://github.com/Freenove/Freenove_ESP32_S3_WROOM_Board
esp32_camera:
  name: esp32cam
  external_clock:
    pin: GPIO15
    frequency: 20MHz
  i2c_pins:
    sda: GPIO4
    scl: GPIO5
  data_pins: [GPIO11, GPIO9, GPIO8, GPIO10, GPIO12, GPIO18, GPIO17, GPIO16]
  vsync_pin: GPIO6
  href_pin: GPIO7
  pixel_clock_pin: GPIO13
  #reset_pin: GPIO15
  resolution: 640x480

Logs look like this:

INFO Reading configuration /config/esphome/esphome-web-447610.yaml...
INFO Starting log output from esphome-web-447610.local using esphome API
INFO Successfully connected to esphome-web-447610.local
[14:21:03][I][app:102]: ESPHome version 2023.3.2 compiled on Apr  7 2023, 14:01:29
[14:21:03][C][wifi:504]: WiFi:
[14:21:03][C][wifi:362]:   Local MAC: 34:85:18:44:76:10
[14:21:03][C][wifi:363]:   SSID: [redacted]
[14:21:03][C][wifi:364]:   IP Address: 192.168.0.110
[14:21:03][C][wifi:366]:   BSSID: [redacted]
[14:21:03][C][wifi:367]:   Hostname: 'esphome-web-447610'
[14:21:03][C][wifi:369]:   Signal strength: -34 dB ▂▄▆█
[14:21:03][V][wifi:371]:   Priority: -11.0
[14:21:03][C][wifi:373]:   Channel: 6
[14:21:03][C][wifi:374]:   Subnet: 255.255.255.0
[14:21:03][C][wifi:375]:   Gateway: 192.168.0.1
[14:21:03][C][wifi:376]:   DNS1: 192.168.0.150
[14:21:03][C][wifi:377]:   DNS2: 192.168.0.199
[14:21:03][C][logger:293]: Logger:
[14:21:03][C][logger:294]:   Level: VERY_VERBOSE
[14:21:03][C][logger:295]:   Log Baud Rate: 115200
[14:21:03][C][logger:296]:   Hardware UART: UART0
[14:21:03][C][esp32_camera:048]: ESP32 Camera:
[14:21:03][C][esp32_camera:049]:   Name: esp32cam
[14:21:03][C][esp32_camera:050]:   Internal: NO
[14:21:03][C][esp32_camera:052]:   Data Pins: D0:11 D1:9 D2:8 D3:10 D4:12 D5:18 D6:17 D7:16
[14:21:03][C][esp32_camera:053]:   VSYNC Pin: 6
[14:21:03][C][esp32_camera:054]:   HREF Pin: 7
[14:21:03][C][esp32_camera:055]:   Pixel Clock Pin: 13
[14:21:03][C][esp32_camera:056]:   External Clock: Pin:15 Frequency:20000000
[14:21:03][C][esp32_camera:060]:   I2C Pins: SDA:4 SCL:5
[14:21:03][C][esp32_camera:062]:   Reset Pin: -1
[14:21:03][C][esp32_camera:080]:   Resolution: 640x480 (VGA)
[14:21:03][E][esp32_camera:099]:   Setup Failed: ESP_FAIL
[14:21:03][C][psram:020]: PSRAM:
[14:21:03][C][psram:021]:   Available: NO
[14:21:03][C][captive_portal:088]: Captive Portal:
[14:21:03][C][mdns:108]: mDNS:
[14:21:03][C][mdns:109]:   Hostname: esphome-web-447610

Refer to thishttps://community.home-assistant.io/t/my-first-somewhat-crude-but-working-doorbell-based-on-the-new-esphome-camera/109298?u=cmsj

Hello @cmsj .
Thanks for the suggestion.
Are you suggesting I use the wrover board instead of wroom, because my board is a wroom version? Or are you suggesting I have the pinout wrong?

Hi, Did you manage to make i work?
I’ve tried the custom component for the ** AXP2101** but with no result ;/

I’ve set that aside for now. I’ll post if I get it working. Seems to be luck to the draw with espcams functionnality/compatibility

I had the same error until I added in the external components section below.

This worked for me:

esphome:
  name: esp32-camera
  friendly_name: esp32-camera

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "<snip>"

ota:
  password: "<snip>"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-Camera Fallback Hotspot"
    password: "<snip>"

captive_portal:

external_components:
  - source:
      type: git
      url: https://github.com/MichaKersloot/esphome_custom_components
    components: [ esp32_camera ]

esp32_camera:
  external_clock:
    pin: GPIO15
    frequency: 20MHz
  i2c_pins:
    sda: GPIO4
    scl: GPIO5
  data_pins: [GPIO11, GPIO9, GPIO8, GPIO10, GPIO12, GPIO18, GPIO17, GPIO16]
  vsync_pin: GPIO6
  href_pin: GPIO7
  pixel_clock_pin: GPIO13
  #power_down_pin: GPIO33
  # Image settings
  name: ESP32 Camera


esp32_camera_web_server:
  - port: 8080
    mode: stream

switch:
  - platform: restart
    name: "ESP32 Camera Restart"
sensor:
  - platform: uptime
    name: "ESP32 Camera Uptime Sensor"
    
  - platform: wifi_signal
    name: "ESP32 Camera WiFi Signal"
    update_interval: 60s
3 Likes

@quersane thx! You saved my day. I already thought my camera was broken. I took the longer path and flashed the Arduino tutorial with the camera web server onto the board to verify it is working and didn’t find any other help until I found your reply here :).

@quersane
Put a +1
Thanks!
Grey

For snorts and giggles GPIO48 is a ws2812 led

light:
  - platform: neopixelbus
    type: GRB
    variant: WS2812
    pin: GPIO48
    num_leds: 60
    name: "NeoPixel Light

"
Does not light up like the light on the “normal” esp32cam board for light/flash though :frowning:

Also if you want to control the “blink led”

  - platform: gpio
    pin: GPIO2
    name: "USB LED"