ESP32-S3 N16R8 -> Flash esphome

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