ESP32-S3-WROOM-1 board type for ESPHOME

your config won’t work as it is not yaml.

Thanks, format isn’t my issue, I have it in correct format in YAML file.
Here the formating just shows it W/O spaces.
The error is about “board: ESP32S3” value

esp32:
  board: ESP32S3
  framework:
    type: esp-idf

If you won’t post your code correctly, how do you expect to get help.

The error message contains the solution as described in the link you posted, so try:

esp32:
  board: ESP32DEV
  variant: ESP32S3
  framework:
    type: esp-idf

Thank you @jsuanet . With this flash is complete, but chip doesn’t want to boot.

simple code:

esphome:
  name: esp32-test2

esp32:
  board: esp32dev
  variant: esp32s3
  framework:
    type: esp-idf
    version: recommended

logger:

api:

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

result:

Leaving...
Hard resetting via RTS pin...
←[32mINFO Successfully uploaded program.←[0m
←[32mINFO Starting log output from COM9 with baud rate 115200←[0m
[13:27:08]ESP-ROM:esp32s3-20210327
[13:27:08]Build:Mar 27 2021
[13:27:08]rst:0x1 (POWERON),boot:0x9 (SPI_FAST_FLASH_BOOT)
[13:27:08]SPIWP:0xee
[13:27:08]mode:DIO, clock div:1
[13:27:08]load:0x3fcd0108,len:0x164c
[13:27:08]load:0x00737965,len:0x73756665
[13:27:08]Invalid image block, can't boot.

My suspission is that problem is with tool-esptoolpy 1.30100.210531 (3.1.0) used.

You could try to use the esphome-flasher tool to manually flash the firmware, see GitHub - esphome/esphome-flasher: Simple GUI tool to flash ESPs over USB.

Hi, I found out that for ESP32S3 I can use esp32-s3-devkitc-1 board but I’ve to change framework type from esp-idf to arduino also, there are issues with some devices such as SPI

To be more clear

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf
    platform_version: 4.4.0
  variant: esp32s3

works for me

The only way I can get your code to run is to use platform version: 5.0.0 and then it doesnt compile anyway.
Has anyone gotten this board running with esphome?

Hi, yes, I was able to use ESP32S3 and update the firmware using UBS. After a lot of tests I was able to compile using Arduino and esp-idf frameworks. Also, the platform-version must be the latest available. At a certain point I decided to purchase an ESP32-WROOM32-D and replace the ESP32-S3 because I was unable to do OTA programming. I have a copy of the original yaml file in another computer. Give me some time to expose the header here.

1 Like

As promised:

  board: esp32-s3-devkitc-1
  framework:
    type: arduino
    version: 2.0.3
    platform_version: 5.1.0
  variant: esp32s3
3 Likes

Thx! I use this config plus physical connection and succeed to install esphome!
ps mydevice is esp32-s2-wroom-1

When I use this board definition on my T-Camera ESP32-S3 with an WROOM-1 module the board get into a bootloop. There is a watchdog trigger it looks like. (see log below)
Is the PMU supported in this definition?
I have read somewhere that the power supply driver is not in in this board definition.

Is there any definition that does support the PMU?

ESP-ROM:esp32s3-20210327

Build:Mar 27 2021

rst:0xc (RTC_SW_CPU_RST),boot:0xa (SPI_FAST_FLASH_BOOT)

Saved PC:0x40377508

SPIWP:0xee

mode:DIO, clock div:1

load:0x3fcd0108,len:0x43c

load:0x403b6000,len:0xbd0

load:0x403ba000,len:0x29c8

entry 0x403b61d8

E (183) psram: PSRAM ID read error: 0x00ffffff

E (5217) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:

E (5217) task_wdt: - loopTask (CPU 1)

E (5217) task_wdt: Tasks currently running:

E (5217) task_wdt: CPU 0: IDLE

E (5217) task_wdt: CPU 1: IDLE

E (5217) task_wdt: Aborting.

Watching this. I have exactly the same issue.

Without the camera configuration, everything else works fine (the PIR sensor, the display, the button). With the camera config, it goes into bootloop.

Find below the configuration that is working for me. Only thing left is if I enable the logger and do not connect a terminal to the uart the board resets. disabling the logger as below avoids the reset.

esphome:
name: esp-lily-cam
platformio_options:
build_flags: “-DBOARD_HAS_PSRAM -UARDUINO_USB_CDC_ON_BOOT”
upload_speed: 921600
monitor_speed: 115200
friendly_name: “Lily Camera 1”
libraries:
- XPowersLib=https://github.com/lewisxhe/XPowersLib.git
- “Wire”
includes:
- AXP2101_component.h

custom_component:

  • lambda: |-
    auto axp2101 = new AXP2101Component();
    return {axp2101};
    components:
    • id: axp2101

esp32:
board: esp32s3box
framework:
type: arduino

wifi:
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.178.91
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.178.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0

networks:

  • ssid: !secret Wifiap1
    password: !secret Wifipw
  • ssid: !secret Wifiap2
    password: !secret Wifipw
  • ssid: !secret Wifiap3
    password: !secret Wifipw

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: “Esp Cam Fallback Hotspot”
password: “YyzRO7QXiUpO”

captive_portal:

external_components:

  • source: my_components
    components: [esp32_camera, decibel_meter, audio_source, i2s_audio_source, i2s_audio_sink, sound_generator]

- source: github://mrhatman/esphome@dev

components: [ audio_source, decibel_meter, i2s_audio_source, i2s_audio_sink, sound_generator ]

use all components from a local folder

- source:

type: local

path: my_components

Enable logging

#logger:

level: DEBUG

baud_rate: 115200

Enable Home Assistant API

api:

ota:

web_server:
#port: 80
version: 2

esp32_camera_web_server:

  • port: 8080
    mode: stream
  • port: 8081
    mode: snapshot

time:

  • platform: homeassistant
    id: esptime

font:

  • file: ‘fonts/slkscr.ttf’
    id: font1
    size: 8

  • file: ‘fonts/BebasNeue-Regular.ttf’
    id: font2
    size: 30

  • file: ‘fonts/Arial.ttf’
    id: font3
    size: 14

i2c:
sda: GPIO7
scl: GPIO6
frequency: 200kHz
scan: True

display:

  • platform: ssd1306_i2c
    model: “SSD1306 128x64”
    address: 0x3C
    rotation: 180
    external_vcc: False
    lambda: |-
    // Print “My Smart Home” in top center.
    it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, “My Smart Home”);

    // Print time in HH:MM format
    it.strftime(0, 30, id(font2), TextAlign::BASELINE_LEFT, “%H:%M”, id(esptime).now());

    // Print inside temperature (from homeassistant sensor)
    if (id(inside_temperature).has_state()) {
    it.printf(127, 10, id(font3), TextAlign::TOP_RIGHT , “%.1f°”, id(inside_temperature).state);
    }

    // Print outside temperature (from homeassistant sensor)
    if (id(outside_temperature).has_state()) {
    it.printf(127, 40, id(font3), TextAlign::BASELINE_RIGHT , “%.1f°”, id(outside_temperature).state);
    }

ESP32-CAM

esp32_camera:
name: LilyCam
external_clock:
pin: GPIO38
frequency: 20MHz
i2c_pins:
sda: GPIO5
scl: GPIO4
data_pins: [GPIO14, GPIO47, GPIO48, GPIO21, GPIO13, GPIO11, GPIO10, GPIO9]
vsync_pin: GPIO8
href_pin: GPIO18
pixel_clock_pin: GPIO12
vertical_flip: true
horizontal_mirror: true
resolution: 1024x768

audio_source:

  • platform: i2s_audio_source
    id: i2s_mic
    name: “Smaller room I2S Mic”
    i2s_lrclk_pin: GPIO40
    i2s_din_pin: GPIO41
    i2s_bclk_pin: GPIO40 #clock for output I2S
    bits_per_sample: 16
    audio_frequency: 16000
    mode: mono

binary_sensor:

  • platform: status
    name: “ESP LilyCam status”

  • platform: gpio
    pin: GPIO17
    name: “PIR Sensor”
    device_class: motion

sensor:

- platform: decibel_meter

sensitivity: -23

audio_source: i2s_mic

name: decibels

  • platform: wifi_signal
    name: “ESP LilyCam WiFi Signal Sensor”
    update_interval: 20s

  • platform: uptime
    name: “LilyCam Uptime”

  • platform: homeassistant
    id: inside_temperature
    entity_id: sensor.bme280_temperature
    internal: true

  • platform: homeassistant
    id: outside_temperature
    entity_id: sensor.temperature
    internal: true

text_sensor:

  • platform: version
    name: “ESPHome Version”
  • platform: wifi_info
    ip_address:
    name: IP Address
    ssid:
    name: Connected SSID
    bssid:
    name: Connected BSSID
    mac_address:
    name: Mac Address

switch:

  • platform: restart
    name: “CAM Restart”
1 Like

Cannot be compiled as Pin 40 is used in multiple places.

This is the definition for the Lilygo camera module. If you want to use it on different HW you will need to adapt the configuration

I am using t-camera-s3, i am unable to install to the device due to config error shown

If you want to use the microphone you should use the following definitions for the pin definitions:

i2s_lrclk_pin: 40
     allow_other_uses: true
i2s_bclk_pin: 40
     allow_other_uses: true
audio_source:

  - platform: i2s_audio_source
    id: i2s_mic
    name: "I2S Mic"
    i2s_lrclk_pin:
      number: GPIO40
      allow_other_uses: true
    i2s_din_pin: GPIO41
    i2s_bclk_pin:
      number: GPIO40
      allow_other_uses: true
    bits_per_sample: 16
    audio_frequency: 16000
    mode: mono

this is the valid syntax now, but I am receiving “[sensor:094]: ‘decibels’: Sending state -inf with 0 decimals of accuracy”

I have copied your components to my_components folder.

I will check if I can get my debug environment up and running again. I will keep you posted on any progress. Do not expect a direct answer since I 'am quit busy lately