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 jeśli działają to jest to niemal nie do ogarnięcia z braku dobrej dokumentacjiboard:
a
(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