ESP32-S3 N16R8 -> Flash esphome

Witam specjalistów :slight_smile:

Mam problem z zainstalowaniem ESP Home na płytce ESP32-S3 N16R8.

Próbowałem przez esptool, czy tez z HA ESPHome.

nawet jak chcę wrzucić gołą konfigurację to jest boot loop

Yaml

esphome:
  name: esp32-s3-n16r8
  friendly_name: ESP32 S3 N16R8
  platformio_options:
    board_build.flash_mode: dio

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

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "pmQh7bK6A5jSk97um2o8ps1dZTjHaZgdYJR8ang4S9I="

ota:
  - platform: esphome
    password: "375da47cc7def8f78c51ba10651c86f5"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-S3-N16R8 Fallback Hotspot"
    password: "nveuu9pqiePq"

captive_portal:
    

i po zainstalowaniu w logach pokazuję się:

[20:52:10]8�c"�1����bk�ۅt�ᢍ��Zg�ZESP-ROM:esp32s3-20210327
[20:52:10]Build:Mar 27 2021
[20:52:10]rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
[20:52:10]Saved PC:0x403743c0
[20:52:10]SPIWP:0xee
[20:52:10]mode:DIO, clock div:1
[20:52:10]load:0x3c0d0020,len:0x39b5c
[20:52:10]load:0x3fc97830,len:0x3fcc
[20:52:10]load:0x40374000,len:0x24c0
[20:52:10]load:0x42000020,len:0xc1c5c
[20:52:10]load:0x403764c0,len:0x11364
[20:52:10]SHA-256 comparison failed:
[20:52:10]Calculated: 998e757f1458913ddf0fe9bd35cf90515d24bb4db2988cb26770e5c048ff6a69
[20:52:10]Expected: 37f1ce50e03d55149db9b2a2661aee190a617d61967deaa17fd3bf8fc26c929e
[20:52:10]Attempting to boot anyway...
[20:52:10]entry 0x40376480
[20:52:11]ESP-ROM:esp32s3-20210327
[20:52:11]Build:Mar 27 2021
[20:52:11]rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
[20:52:11]Saved PC:0x4037ac66
[20:52:11]SPIWP:0xee
[20:52:11]mode:DIO, clock div:1
[20:52:11]load:0x3c0d0020,len:0x39b5c
[20:52:11]load:0x3fc97830,len:0x3fcc
[20:52:11]load:0x40374000,len:0x24c0
[20:52:11]load:0x42000020,len:0xc1c5c
[20:52:11]ESP-ROM:esp32s3-20210327
[20:52:11]Build:Mar 27 2021
[20:52:11]rst:0x10 (RTCWDT_RTC_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
[20:52:11]SPIWP:0xee
[20:52:11]mode:DIO, clock div:1
[20:52:11]load:0x3c0d0020,len:0x39b5c
[20:52:12]load:0x3fc97830,len:0x3fcc
[20:52:12]load:0x40374000,len:0x24c0
[20:52:12]load:0x42000020,len:0xc1c5c
[20:52:12]load:0x403764c0,len:0x11364
[20:52:12]SHA-256 comparison failed:
[20:52:12]Calculated: 998e757f1458913ddf0fe9bd35cf90515d24bb4db2988cb26770e5c048ff6a69
[20:52:12]Expected: 37f1ce50e03d55149db9b2a2661aee190a617d61967deaa17fd3bf8fc26c929e
[20:52:12]Attempting to boot anyway...
[20:52:12]entry 0x40376480
[20:52:13]ESP-ROM:esp32s3-20210327
[20:52:13]Build:Mar 27 2021
[20:52:13]rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)

Widzę że problem wskazuje na niepowodzenie weryfikacji sumy kontrolnej SHA-256 podczas uruchamiania ESP32 S3.

ale jak to naprawić ?
Mam dwie takie nowe płytki i na obu ten sam problem.

Dziekuję za podpowiedzi

@baumgarb spróbuj tak:

esp32: 
  board: esp32-s3-devkitc-1 
  variant: esp32s3 
  flash_size: 16MB 
  framework: 
    type: arduino

Jeszcze wyjdzie na to że poleciłem Ci złe płytki :face_with_hand_over_mouth:

niestety nadal to samo:

[22:58:12]ESP-ROM:esp32s3-20210327
[22:58:12]Build:Mar 27 2021
[22:58:12]rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
[22:58:12]SPIWP:0xee
[22:58:12]mode:DIO, clock div:1
[22:58:12]load:0x3c0a0020,len:0x220ec
[22:58:12]load:0x3fc94570,len:0x48bc
[22:58:12]load:0x40374000,len:0x9640
[22:58:12]load:0x42000020,len:0x99554
[22:58:12]load:0x4037d640,len:0x6f30
[22:58:12]load:0x50000000,len:0x10
[22:58:12]SHA-256 comparison failed:
[22:58:12]Calculated: 727641bd434eba7517aacfffe8a81c47c9cc8ef325474879cbe659d268ac8d29
[22:58:12]Expected: dc88259acfcaf795daee3ee0033fb91cc1e373f3ea49a18e7716d2367979df30
[22:58:12]Attempting to boot anyway...
[22:58:12]entry 0x40376fac
[22:58:12]ESP-ROM:esp32s3-20210327
[22:58:12]Build:Mar 27 2021
[22:58:12]rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
[22:58:12]Saved PC:0x4037924c
[22:58:12]SPIWP:0xee
[22:58:12]mode:DIO, clock div:1
[22:58:12]load:0x3c0a0020,len:0x220ec
[22:58:12]load:0x3fc94570,len:0x48bc
[22:58:12]load:0x40374000,len:0x9640
[22:58:12]load:0x42000020,len:0x99554
[22:58:12]load:0x4037d640,len:0x6f30
[22:58:12]load:0x50000000,len:0x10
[22:58:12]SHA-256 comparison failed:
[22:58:12]Calculated: 727641bd434eba7517aacfffe8a81c47c9cc8ef325474879cbe659d268ac8d29
[22:58:12]Expected: dc88259acfcaf795daee3ee0033fb91cc1e373f3ea49a18e7716d2367979df30
[22:58:12]Attempting to boot anyway...

Yaml

esphome:
  name: esp32-s3-n16r8
  friendly_name: ESP32 S3 N16R8
  platformio_options:
    board_build.flash_mode: dio

esp32: 
  board: esp32-s3-devkitc-1 
  variant: esp32s3 
  flash_size: 16MB 
  framework: 
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "pmQh7bK6A5jSk97um2o8ps1dZTjHaZgdYJR8ang4S9I="

ota:
  - platform: esphome
    password: "375da47cc7def8f78c51ba10651c86f5"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32-S3-N16R8 Fallback Hotspot"
    password: "nveuu9pqiePq"

captive_portal:
    

Mam nadzieje że nie bo płytka naprawde fajna. :slight_smile:

@baumgarb poczytaj Enable USB CDC to log "hello world" to ESP32-S3 dev board for ESPHome - ESPHome - Home Assistant Community

1 polubienie

Na dobry początek nie startuj z własnego YAMLa tylko wygeneruj sobie pusty firmware w ten sposób (preare for first use czy jakoś podobnie)
https://web.esphome.io/
wymagana przeglądarka z wsparciem web-serial - vivaldi, egde lub chrome, (bo w safari i firefoxie to na 100% nie zadziała!)

w kolejnym kroku sobie Adoptujesz gotowe urządzenie do Dashboardu (IDE) ESPHome

Przy zmianie ważnych sprzętowych właściwości należy flashować po kabelku (jeśli dodasz do konfiguracji rozmiar flasha, bo przez OTA nie jest możliwa zmiana układu partycji)

1 polubienie

Dzięki strzał w 10 !!!

wgranie core : https://web.esphome.io/, konfiguracja WIFI i jest :slight_smile:

Ale nadal nikt z nas nie wie jaka powinna być konfiguracja dla tej płytki.

Myślę, że problem leżał w innym miejscu

edit
w aktualnej wersji IDE ESPHome 2024.8.1 (edit - już nieaktualnej, ale 2024.8.3 nie zdążyłem przetestować) jest dość poważny błąd - nie działają dyrektywy nadpisujące ustawienia platformio przynajmniej przy frameworku arduino, więc konfiguracja płytki w całości jest brana z definicji board: a jeśli działają to jest to niemal nie do ogarnięcia z braku dobrej dokumentacji
(nie sprawdziłem dotąd tylko ręcznie podanej tablicy partycji, bo dokumentacja tych zaawansowanych ustawień jest bardziej skromna niż skąpa, więc trzeba kopać zarówno po zaawansowanej dokumentacji platformio jak i espressifa).

niestety w tym wypadku wiąże się to z wykorzystaniem tylko połowy flasha i brakiem obsługi PSRAM, bo firmware powstaje jak dla wariantu N8R0

platformio nie ma gotowej definicji dla tej płytki, więc bez dodatkowych dyrektyw nie przygotujemy firmware w całości wykorzystującego sprzęt (u mnie w eksperymentalnej konstrukcji jeszcze daleko do wykorzystania tych podstawowych zasobów, ale w przypadku ambitnego projektu może to być problem…)

Trochę pokopałem głębiej i wydaje się, że efuse nie są fabrycznie poustawiane w module ESP32-S3-WROOM-1 M0N16R8, więc może być słabo z dostępem do PSRAM
być może jestem w błędzie (bo czy Esressif by wypuścił na rynek moduły z niedostęnym PSRAM?), ale nie uzyskałem komunikacji z PSRAM, a błędy dotyczyły ustawień efuse (jakkolwiek być może PSRAM jest inny niż się spodziewałem - próbowałem z konfiguracją SPI-octal)

tak naprawdę producent tych płytek powinien przygotować konfigurację dla platformio, ale jeśli ktoś znajdzie konfigurację ESPHome, która wykorzysta wszystkie zasoby to chętnie ją zobaczę… (do tej pory na bazie tej płytki nie robiłem niczego ambitnego i wystarczały mi w zupełności i “z okładem” domyślne zasoby esp32-s3-devkitc-1 czyli 384kB RAM i 8MB flash)


edit2
trochę pokombinowałem i się jednak da, pewnie gdybym miał więcej czasu to i wyrzeźbiłbym wykorzystanie 16MB flasha (póki co moim zdaniem buduje się obraz dla 8MB, mimo, że debug prawidłowo widzi flash, ale póki mi miejsca nie braknie nie będę się martwił tymi brakami, jak na razie “na luzie” mieściłem się na płytkach z 4MB flasha)

kluczowe fragmenty dla uruchomienia PSRAM

substitutions:
  name: "esp32-s3-n16r8" # to nie jest ważne, ale
  friendly_name: "ESP32-S3-N16R8" # te podstawienia są wykorzystane dalej

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  platformio_options:
    build_flags: "-DBOARD_HAS_PSRAM"
    board_build.arduino.memory_type: qio_opi
    board_upload.maximum_ram_size: 524288

esp32:
  board: esp32-s3-devkitc-1
#  flash_size: 16MB  # zakomentowałem, bo moim zdaniem nie działa
  framework:
#    type: esp-idf # (ta konfiguracja nie działa z idf)
    type: arduino
#    version: recommended # nie działa (rekomendowana jest wersja poniżej 2.0.0)
    version: latest
[…]
psram:
  mode: octal
  speed: 80MHz

jeśli ktoś chce sobie podejrzeć co się da (aliasy już dorobione w poprzednim kawałku, bo wyciąłem to z działającego konfigu)

debug:
  update_interval: 5s

logger:
  level: debug

[…]

text_sensor:
  - platform: debug
    device:
      name: "Device Info"
    reset_reason:
      name: "Reset Reason"
  - platform: wifi_info
    ip_address:
      name: $friendly_name IP Address
    ssid:
      name: $friendly_name Connected SSID
    bssid:
      name: ${friendly_name} Connected BSSID
    mac_address:
      name: ${friendly_name} Mac Wifi Address
    scan_results:
      name: ${friendly_name} Latest Scan Results


binary_sensor:
  - platform: status
    name: ${friendly_name} Node Status
    id: system_status

sensor:
  - platform: debug
    free:
      name: "Heap Free"
    block:
      name: "Heap Max Block"
    loop_time:
      name: "Loop Time"
    psram:
      name: "Free PSRAM"
  - platform: internal_temperature
    name: ${friendly_name} Internal Temperature
    accuracy_decimals: 1

edit 3 - warto zajrzeć tam - wygląda na to, że ktoś już rozwiązał problemy do końca

1 polubienie

Dawno się nie odzywałem ale dam wam kilka aktualizacji :slight_smile:

Jak narazie wszystko działa całkiem spoko i po prawie mięsiącu tesów mogę śmiało powiedizeć że jestem wmiare zadowolony z tego rozwiązania. Cały czas pracuje nad Local LLM żeby nie używać tego z HA bo jest troche ubogie.

Napewno dam znać i opisze projekt łacznie z wydrukami 3D za jakiś czas.

@szopen SZACUN DLA CIEBIE, wiedza mega :slight_smile: