- 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.
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:
