Esp32-s3 n16r8

  1. I’m trying to setup esp32-s3-n16r8 (esp-idf 5.5.2, ESPHome version 2026.1.2) but whatever combination I used it never connects to the WiFi. Is there anyone who has managed to make it work?

Hello jolas,

Frequently Asked Questions - ESPHome - Smart Home Made Simple .
Are you using Windows or Linux, because I have no ideas with Mac.

  • Windows you likely need to load the driver for the serial chip you are trying to talk to. You MUST use edge or chrome, no other browsers will likely work.
  • If you are using Linux, does the user trying to flash it have permission for dialout? Also you have to use chrome.
    If you try to load something and it can’t talk to the chip, the pop-up (unless you have it blocked) tells you all this.

Hi Sir_Goodenough,

I’m using windows and trying to flash it through ESPHome (HAOS).

It’s either HAOS or it’s Windows. It’s not both.

Please share your config and debug logs.

If you are using https://web.esphome.io to do the first load it never connects to wifi for me either, but then again no devices do.

Just compile the first build in esphome builder as a manual download and load the bin in esphome web.

HAOS is running on a Raspberry pi4.
Home assistant interface is on a windows pc.

I always erase chip prior to flash it through [https://web.esphome.io] (esphome builder as a manual download and load the bin in esphome web).

I also tried board types: esp32-s3-devkitc1-n16r8, esp32dev using both framework types (idf, arduino) with no luck

ESPHome Device Builder version is 2026.1.2 and Home Assistant Core 2026.1.3.

Attached is a simplified yaml I used trying to solve the wifi connectivity problem.

esphome:
  name: tommy-s3-n16r8
  friendly_name: TOMMY S3 N16R8
  min_version: 2026.1.0

esp32:
  board: esp32-s3-devkitc-1
  variant: ESP32S3
  framework:
    type: esp-idf
    version: 5.5.2
    sdkconfig_options:
      CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM: "128"
      CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM: "128"
      CONFIG_ESP_WIFI_CSI_ENABLED: y
      CONFIG_ESP_WIFI_AMPDU_TX_ENABLED: n
      CONFIG_ESP_WIFI_AMPDU_RX_ENABLED: n
      CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE: n
      CONFIG_PM_ENABLE: n
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "30"

# N16R8 => 8MB PSRAM (βοηθάει πολύ στα crashes / memory pressure)
psram:
  mode: octal
  speed: 80MHz

logger:

api:

ota:
  - platform: esphome

wifi:
  power_save_mode: NONE
  # Αν είσαι σε mesh (Deco κλπ) βάλε BSSID (MAC του AP) αλλιώς άστο απλό ssid/pass
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Εναλλακτικά (για mesh / σταθερό CSI) χρησιμοποίησε το networks format:
  # networks:
  #   - ssid: !secret wifi_ssid
  #     password: !secret wifi_password
  #     bssid: "AA:BB:CC:DD:EE:FF"   # MAC του συγκεκριμένου AP (uppercase)

  ap:

captive_portal:

external_components:
  - source: github://tommy-sense/esphome
    components: [ sensor_tommy ]
    refresh: 5min

sensor_tommy:
  # Αν το mDNS discovery δεν βρίσκει το TOMMY instance, βάλε χειροκίνητα:
  # instance_ip: "192.168.1.50"
  # file_server_http_port: 8090
  # file_server_https_port: 8091

I wouldn’t be surprised if this would be another case of ESP32-C3 SuperMini getting very hot - #5 by slh, one on my esp32-s3 board needs it as well.

These values exist in secrets?
No typos?

Yes they exist in secrets.yaml

I tested it using output power 8.5db (like in my seeed_xiao-esp32s3) with no luck.
In matter of facts it did connect for a while and then dropped off. I’m going to try lowering the power more and see what’s going to be happen.

What does it say in the logs?

Didn’t manage to take logs

If you manage to upload, you also have logs…

Plug it into web esphome and get the logs, it will tell you why its not connecting.

1 Like

Thanks I didn’t know that.
Attached you’ll find the log.

[13:28:22][I][logger:121]: Log initialized
[13:28:22][C][safe_mode:118]: Unsuccessful boot attempts: 0
[13:28:22][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed
[13:28:22][I][app:087]: Running through setup()
[13:28:22][C][wifi:475]: Starting
[13:28:22][D][wifi:1960]: Loaded fast_connect settings
[13:28:22][I][wifi:525]: Starting fast_connect (saved) 'Deco_Spot'[redacted]
[13:28:38][I][wifi:899]: Connecting to 'Deco_Spot'[redacted] (2C:91:AB:D6:A2:D4)[redacted] (priority 0, atESP-ROM:esp32s3-20210327
[13:28:38]Build:Mar 27 2021
[13:28:38]rst:0x15 (USB_UART_CHIP_RESET),boot:0x8 (SPI_FAST_FLASH_BOOT)
[13:28:38]Saved PC:0x40378e5a
[13:28:38]SPIWP:0xee
[13:28:38]mode:DIO, clock div:1
[13:28:38]load:0x3fce2820,len:0x15c8
[13:28:38]load:0x403c8700,len:0xce4
[13:28:38]load:0x403cb700,len:0x2f98
[13:28:38]entry 0x403c8918
[13:28:38]I (24) boot: ESP-IDF 5.5.2 2nd stage bootloader
[13:28:38]I (24) boot: compile time Jan 28 2026 23:09:31
[13:28:38]I (25) boot: Multicore bootloader
[13:28:38]I (25) boot: chip revision: v0.2
[13:28:38]I (25) boot: efuse block revision: v1.3
[13:28:38]I (25) boot.esp32s3: Boot SPI Speed : 80MHz
[13:28:38]I (25) boot.esp32s3: SPI Mode       : DIO
[13:28:38]I (26) boot.esp32s3: SPI Flash Size : 4MB
[13:28:38]I (26) boot: Enabling RNG early entropy source...
[13:28:38]I (26) boot: Partition Table:
[13:28:38]I (26) boot: ## Label            Usage          Type ST Offset   Length
[13:28:38]I (27) boot:  0 otadata          OTA data         01 00 00009000 00002000
[13:28:38]I (27) boot:  1 phy_init         RF data          01 01 0000b000 00001000
[13:28:38]I (27) boot:  2 app0             OTA app          00 10 00010000 001c0000
[13:28:38]I (28) boot:  3 app1             OTA app          00 11 001d0000 001c0000
[13:28:38]I (28) boot:  4 nvs              WiFi data        01 02 00390000 0006d000
[13:28:38]I (29) boot: End of partition table
[13:28:38]I (29) esp_image: segment 0: paddr=00010020 vaddr=3c0c0020 size=25b4ch (154444) map
[13:28:38]I (57) esp_image: segment 1: paddr=00035b74 vaddr=3fc96700 size=051a4h ( 20900) load
[13:28:38]I (61) esp_image: segment 2: paddr=0003ad20 vaddr=40374000 size=052f8h ( 21240) load
[13:28:38]I (66) esp_image: segment 3: paddr=00040020 vaddr=42000020 size=b59c4h (743876) map
[13:28:38]I (198) esp_image: segment 4: paddr=000f59ec vaddr=403792f8 size=0d304h ( 54020) load
[13:28:38]I (210) esp_image: segment 5: paddr=00102cf8 vaddr=50000000 size=00020h (    32) load
[13:28:38]I (218) boot: Loaded app from partition at offset 0x10000
[13:28:38]I (218) boot: Disabling RNG early entropy source...
[13:28:39][I][logger:121]: Log initialized
[13:28:39][C][safe_mode:118]: Unsuccessful boot attempts: 1
[13:28:39][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed
[13:28:39][I][app:087]: Running through setup()
[13:28:39][C][wifi:475]: Starting
[13:28:39][D][wifi:1960]: Loaded fast_connect settings
[13:28:39][I][wifi:525]: Starting fast_connect (saved) 'Deco_Spot'[redacted]
[13:28:39][I][wifi:899]: Connecting to 'Deco_Spot'[redacted] (2C:91:AB:D6:A2:D4)[redacted] (priority 0, attempt 1/1 in phase INITIAL_CONNECT)...
[13:28:39][C][component:249]: Setup wifi took 75ms
[13:28:39][W][component:386]: api set Warning flag: unspecified
[13:28:39][I][app:134]: setup() finished successfully!
[13:28:39][W][component:395]: wifi set Warning flag: associating to network
[13:28:39][I][app:206]: ESPHome version 2026.1.2 compiled on 2026-01-29 11:27:04 +0200
[13:28:39][I][app:213]: ESP32 Chip: ESP32-S3 r0.2, 2 core(s)
[13:28:39][C][logger:316]: Logger:
[13:28:39][C][logger:316]:  Max Level: DEBUG
[13:28:39][C][logger:316]:  Initial Level: DEBUG
[13:28:39][C][logger:322]:   Log Baud Rate: 115200
[13:28:39][C][logger:322]:  Hardware UART: USB_SERIAL_JTAG
[13:28:39][C][logger:332]:   Task Log Buffer Size: 768 bytes
[13:28:39][C][psram:016]: PSRAM:
[13:28:39][C][psram:019]:   Available: YES
[13:28:39][C][psram:021]:   Size: 8192 KB
[13:28:39][C][sensor_tommy.component:030]: TOMMY:
[13:28:39][C][sensor_tommy.component:036]:   Using auto-discovery via mDNS
[13:28:39][C][captive_portal:128]: Captive Portal:
[13:28:39][C][wifi:1304]: WiFi:
[13:28:39][C][wifi:1304]:  Local MAC: DC:B4:D9:0B:4A:0C
[13:28:39][C][wifi:1304]:  Connected: NO
[13:28:39][C][esphome.ota:075]: Over-The-Air updates:
[13:28:39][C][esphome.ota:075]:  Address: tommy-s3-n16r8.local:3232
[13:28:39][C][esphome.ota:075]:  Version: 2
[13:28:39][C][safe_mode:021]: Safe Mode:
[13:28:39][C][safe_mode:021]:  Successful after: 60s
[13:28:39][C][safe_mode:021]:  Invoke after: 10 attempts
[13:28:39][C][safe_mode:021]:  Duration: 300s
[13:28:39][C][safe_mode:038]:   Bootloader rollback: support unknown
[13:28:39][C][web_server.ota:231]: Web Server OTA
[13:28:39][C][api:221]: Server:
[13:28:39][C][api:221]:  Address: tommy-s3-n16r8.local:6053
[13:28:39][C][api:221]:  Listen backlog: 4
[13:28:39][C][api:221]:  Max connections: 8
[13:28:39][C][api:233]:   Noise encryption: NO
[13:28:39][W][wifi_esp32:771]: Disconnected ssid='Deco_Spot' bssid=2C:91:AB:D6:A2:D4[redacted] reason='Authentication Failed'
[13:28:39][W][wifi:1397]: Connecting to network failed (callback)
[13:28:39][D][wifi:1563]: Retry phase: INITIAL_CONNECT → SCAN_CONNECTING
[13:28:39][D][wifi:1098]: Starting scan
[13:28:39][C][mdns:177]: mDNS:
[13:28:39][C][mdns:177]:  Hostname: tommy-s3-n16r8
[13:28:42][D][wifi:1227]: Found networks:
[13:28:42][I][wifi:1188]: - 'Deco_Spot' (2C:91:AB:D6:A2:D4) [redacted]▂▄▆█ Ch: 1 -64dB P:0
[13:28:42][D][wifi:1259]: - 2 non-matching (VERBOSE to show)
[13:28:42][I][wifi:899]: Connecting to 'Deco_Spot'[redacted] (2C:91:AB:D6:A2:D4)[redacted] (priority 0, attempt 1/2 in phase SCAN_CONNECTING)...
[13:29:04][I][wifi:1329]: Connected
[13:29:04][D][wifi:1346]: Disabling AP
[13:29:04][C][wifi:1037]:   IP Address: 192.168.168.150
[13:29:04][C][wifi:1048]:   SSID: 'Deco_Spot'[redacted]
[13:29:04][C][wifi:1048]:  BSSID: 2C:91:AB:D6:A2:D4[redacted]
[13:29:04][C][wifi:1048]:  Hostname: 'tommy-s3-n16r8'
[13:29:04][C][wifi:1048]:  Signal strength: -67 dB ▂▄▆█
[13:29:04][C][wifi:1048]:  Channel: 1
[13:29:04][C][wifi:1048]:  Subnet: 255.255.255.0
[13:29:04][C][wifi:1048]:  Gateway: 192.168.168.1
[13:29:04][C][wifi:1048]:  DNS1: 192.168.168.1
[13:29:04][C][wifi:1048]:  DNS2: 0.0.0.0
[13:29:04][W][component:426]: wifi cleared Warning flag
[13:29:21][D][esp-idf:000][mqtt_task]: E (46626) mqtt_client: mqtt_process_receive: mqtt_message_receive() returned -2
[13:29:21][D][esp-idf:000][mqtt_task]: E (46621) transport_base: tcp_read error, errno=Connection reset by peer
[13:29:21][D][esp-idf:000][mqtt_task]: E (46622) mqtt_client: esp_mqtt_handle_transport_read_error: transport_read() error: errno=104
[13:29:21][D][esp-idf:000][mqtt_task]: E (46623) MQTT3: MQTT event error
[13:29:21][D][esp-idf:000][mqtt_task]: E (46624) MQTT3: MQTT last error reported from esp-tls: 0x0
[13:29:21][D][esp-idf:000][mqtt_task]: E (46624) MQTT3: MQTT last error reported from tls stack: 0x0
[13:29:21][D][esp-idf:000][mqtt_task]: E (46625) MQTT3: MQTT last error captured as transport's socket errno: 0x3fcb4acc
[13:29:21][D][esp-idf:000][mqtt_task]: E (46625) MQTT3: Last errno string ()
[13:29:39][I][safe_mode:066]: Boot seems successful; resetting boot loop counter
[13:29:42][D][esp32.preferences:155]: Writing 1 items: 0 cached, 1 written, 0 failed

So you do have wifi connection.
MQTT is likely your problem…

I keep trying by changing power output levels.
But, MQTT is controlled by TOMMY setup and already I use other devices with TOMMY without problems?

I don’t know anything about Tommy.
But your log shows wifi is connected and you get MQTT errors…

Finally it worked…

substitutions:
  name: n16r8-test
  friendly_name: N16R8-TEST

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  min_version: 2026.1.0
  project:
    name: wifi.motion
    version: "1.2.0"

esp32:
  board: esp32-s3-devkitc-1
  variant: ESP32S3
  flash_size: 16MB
  framework:
    type: esp-idf
    version: 5.5.2
    sdkconfig_options:
      CONFIG_ESP32S3_SPIRAM_SUPPORT: "y"
      CONFIG_SPIRAM_MODE_OCT: "y"
      CONFIG_SPIRAM_SPEED_80M: "y"
      CONFIG_SPIRAM_BOOT_INIT: "y"
      CONFIG_ESPTOOLPY_FLASHMODE_OPI: "y"
      CONFIG_ESPTOOLPY_FLASHSIZE_16MB: "y"
      CONFIG_ESPTOOLPY_FLASHMODE: "opi"

# WiFi with fallback AP for provisioning
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: NONE
  fast_connect: false
  reboot_timeout: 5min

captive_portal:

# Improv provisioning via BLE
esp32_improv:
  authorizer: none

# Improv provisioning via USB
improv_serial:

# Logging
logger:
  level: DEBUG
  baud_rate: 115200

# Home Assistant API
api:

# OTA updates
ota:
  - platform: esphome

# =========================
# WiFi Signal Indicators
# =========================
sensor:
  - platform: wifi_signal
    name: "${friendly_name} WiFi Signal"
    id: wifi_rssi
    update_interval: 30s

  - platform: copy
    source_id: wifi_rssi
    name: "${friendly_name} WiFi Signal %"
    unit_of_measurement: "%"
    filters:
      - lambda: |-
          return min(max(2 * (x + 100.0), 0.0), 100.0);

  - platform: uptime
    name: "Uptime"

button:
  - platform: restart
    name: "${friendly_name} Reboot"

web_server: