I’m new to the ESP32-S3 Box 3. I successfully installed the firmware from wake-word-voice-assistant/esp32-s3-box-3.yaml. With this firmware, wake word and voice work. Reciting the wake word wakes the device. Asking the device to activate an entity works (Turns on/off the requested switch or light).
Yesterday morning I updated esphome to version 2024.5.0. Since then, a few warnings and errors occur when the ESP32-S3 Box 3 first starts. The warnings and errors read;
[10:46:21][W][component:237]: Component voice_assistant took a long time for an operation (218 ms).
[10:46:21][W][component:238]: Components should block for at most 30 ms.
[10:46:21][D][esp32_ble:255]: Disabling BLE...
[10:46:21][D][esp-idf:000][BTU_TASK]: W (12643) BT_APPL: bta_dm_disable BTA_DISABLE_DELAY set to 200 ms
[10:46:21][W][component:237]: Component esp32_ble took a long time for an operation (212 ms).
[10:46:21][W][component:238]: Components should block for at most 30 ms.
[10:46:21][D][micro_wake_word:115]: Starting Microphone
[10:46:21][D][micro_wake_word:177]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[10:46:21][D][esp-idf:000][read_task]: I (12863) I2S: DMA Malloc info, datalen=blocksize=512, dma_buf_count=8
[10:46:21][D][esp-idf:000][read_task]: I (12872) I2S: I2S0, MCLK output by GPIO2
[10:46:21][D][esp-idf:000][read_task]: I (12880) AUDIO_PIPELINE: link el->rb, el:0x3d05c484, tag:i2s, rb:0x3d05c898
[10:46:21][D][esp-idf:000][read_task]: I (12887) AUDIO_PIPELINE: link el->rb, el:0x3d05c5f8, tag:filter, rb:0x3d05e8d8
[10:46:21][D][esp-idf:000][read_task]: I (12894) AUDIO_ELEMENT: [i2s-0x3d05c484] Element task created
[10:46:21][D][esp-idf:000][read_task]: I (12902) AUDIO_THREAD: The filter task allocate stack on external memory
[10:46:21][D][esp-idf:000][read_task]: E (12908) AUDIO_THREAD: Not found right xTaskCreateRestrictedPinnedToCore.
Please enter IDF-PATH with "cd $IDF_PATH" and apply the IDF patch with "git apply $ADF_PATH/idf_patches/idf_4.4._freertos.patch" first
[10:46:21][D][esp-idf:000][read_task]: E (12917) AUDIO_THREAD: Error creating RestrictedPinnedToCore filter
[10:46:21][D][esp-idf:000][read_task]: E (12924) AUDIO_ELEMENT: [filter] audio_thread_create failed
[10:46:21][D][esp-idf:000][read_task]: I (12931) AUDIO_ELEMENT: [raw-0x3d05c728] Element task created
[10:46:21][D][esp-idf:000][read_task]: I (12940) AUDIO_PIPELINE: Func:audio_pipeline_run, Line:359, MEM Total:16465159 Bytes, Inter:79372 Bytes, Dram:79372 Bytes
[10:46:21][D][esp-idf:000][i2s]: I (12946) AUDIO_ELEMENT: [i2s] AEL_MSG_CMD_RESUME,state:1
[10:46:21][D][esp-idf:000][read_task]: W (12951) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_RESUME
[10:46:21][D][esp-idf:000][read_task]: E (12958) AUDIO_PIPELINE: audio_pipeline_resume failed
[10:46:21][W][micro_wake_word:157]: Wake word is already running
[10:46:23][D][esp-idf:000][read_task]: W (14965) AUDIO_ELEMENT: [i2s-0x3d05c484] Element task destroy timeout[2000]
[10:46:23][D][esp-idf:000][read_task]: W (14971) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_TERMINATE
Code;
substitutions:
name: esp32-s3-box-3
friendly_name: ESP32 S3 Box 3
loading_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/loading_320_240.png
idle_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/idle_320_240.png
listening_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/listening_320_240.png
thinking_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/thinking_320_240.png
replying_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/replying_320_240.png
error_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/error_320_240.png
loading_illustration_background_color: "000000"
idle_illustration_background_color: "000000"
listening_illustration_background_color: "FFFFFF"
thinking_illustration_background_color: "FFFFFF"
replying_illustration_background_color: "FFFFFF"
error_illustration_background_color: "000000"
voice_assist_idle_phase_id: "1"
voice_assist_listening_phase_id: "2"
voice_assist_thinking_phase_id: "3"
voice_assist_replying_phase_id: "4"
voice_assist_not_ready_phase_id: "10"
voice_assist_error_phase_id: "11"
voice_assist_muted_phase_id: "12"
# These unqiue characters have been extracted from every test file of every language available on https://github.com/home-assistant/intents (14 March 2024)
allowed_characters: " !#%'()+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWYZ[]_abcdefghijklmnopqrstuvwxyz{|}°²³µ¿ÁÂÄÅÉÖÚßàáâãäåæçèéêëìíîðñòóôõöøùúûüýþāăąćčďĐđēėęěğĮįıļľŁłńňőřśšťũūůűųźŻżŽžơưșțΆΈΌΐΑΒΓΔΕΖΗΘΚΜΝΠΡΣΤΥΦάέήίαβγδεζηθικλμνξοπρςστυφχψωϊόύώАБВГДЕЖЗИКЛМНОПРСТУХЦЧШЪЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёђєіїјљњћאבגדהוזחטיכלםמןנסעפץצקרשת،ءآأإئابةتجحخدذرزسشصضطظعغفقكلمنهوىيٹپچڈکگںھہیےংকচতধনফবযরলশষস়ািু্చయలిెొ్ംഅആഇഈഉഎഓകഗങചജഞടഡണതദധനപഫബഭമയരറലളവശസഹാിീുൂെേൈ്ൺൻർൽൾაბგდევზთილმნოპრსტუფქყშჩცძჭხạảấầẩậắặẹẽếềểệỉịọỏốồổỗộớờởợụủứừửữựỳ—、一上不个中为主乾了些亮人任低佔何作供依侧係個側偵充光入全关冇冷几切到制前動區卧厅厨及口另右吊后吗启吸呀咗哪唔問啟嗎嘅嘛器圍在场執場外多大始安定客室家密寵对將小少左已帘常幫幾库度庫廊廚廳开式後恆感態成我戲戶户房所扇手打执把拔换掉控插摄整斯新明是景暗更最會有未本模機檯櫃欄次正氏水沒没洗活派温測源溫漏潮激濕灯為無煙照熱燈燥物狀玄现現瓦用發的盞目着睡私空窗立笛管節簾籬紅線红罐置聚聲脚腦腳臥色节著行衣解設調請謝警设调走路車车运連遊運過道邊部都量鎖锁門閂閉開關门闭除隱離電震霧面音頂題顏颜風风食餅餵가간감갔강개거게겨결경고공과관그금급기길깥꺼껐꼽나난내네놀누는능니다닫담대더데도동됐되된됨둡드든등디때떤뜨라래러렇렌려로료른를리림링마많명몇모무문물뭐바밝방배변보부불블빨뽑사산상색서설성세센션소쇼수스습시신실싱아안않알았애야어얼업없었에여연열옆오온완외왼요운움워원위으은을음의이인일임입있작잠장재전절정제져조족종주줄중줘지직진짐쪽차창천최추출충치침커컴켜켰쿠크키탁탄태탬터텔통트튼티파팬퍼폰표퓨플핑한함해했행혀현화활후휴힘,?"
micro_wake_word_model: okay_nabu
esphome:
name: ${name}
friendly_name: ${friendly_name}
name_add_mac_suffix: false
platformio_options:
board_build.flash_mode: dio
project:
name: esphome.voice-assistant
version: "2.0"
min_version: 2023.11.5
on_boot:
priority: 600
then:
- script.execute: draw_display
- delay: 30s
- if:
condition:
lambda: return id(init_in_progress);
then:
- lambda: id(init_in_progress) = false;
- script.execute: draw_display
esp32:
board: esp32s3box
flash_size: 16MB
framework:
type: esp-idf
sdkconfig_options:
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
CONFIG_AUDIO_BOARD_CUSTOM: "y"
CONFIG_ESP32_S3_BOX_3_BOARD: "y"
components:
- name: esp32_s3_box_3_board
source: github://jesserockz/esp32-s3-box-3-board@main
refresh: 0s
psram:
mode: octal
speed: 80MHz
external_components:
- source: github://pr#5230
components: esp_adf
refresh: 0s
api:
encryption:
key: ChwtaeieUCD3cc5YcYE7WQhsptx7PeiLOPjG3+BBCTE=
on_client_connected:
- script.execute: draw_display
on_client_disconnected:
- script.execute: draw_display
ota:
logger:
hardware_uart: USB_SERIAL_JTAG
dashboard_import:
package_import_url: github://esphome/firmware/wake-word-voice-assistant/esp32-s3-box-3.yaml@main
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.86.208
gateway: 192.168.86.1
subnet: 255.255.255.0
ap:
on_connect:
- script.execute: draw_display
- delay: 5s # Gives time for improv results to be transmitted
- ble.disable:
on_disconnect:
- script.execute: draw_display
- ble.enable:
improv_serial:
esp32_improv:
authorizer: none
button:
- platform: factory_reset
id: factory_reset_btn
name: Factory reset
i2c:
- id: bus_a
sda: GPIO08
scl: GPIO18
scan: true
- sda: GPIO41
scl: GPIO40
id: bus_b
sensor:
- platform: aht10
i2c_id: bus_b
variant: AHT20
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 60s
binary_sensor:
- platform: gpio
pin:
number: GPIO1
inverted: true
name: "Mute"
disabled_by_default: true
entity_category: diagnostic
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: true
name: Top Left Button
disabled_by_default: true
entity_category: diagnostic
on_multi_click:
- timing:
- ON for at least 10s
then:
- button.press: factory_reset_btn
output:
- platform: ledc
pin: GPIO47
id: backlight_output
light:
- platform: monochromatic
id: led
name: LCD Backlight
entity_category: config
output: backlight_output
restore_mode: RESTORE_DEFAULT_ON
default_transition_length: 250ms
esp_adf:
board: esp32s3box3
microphone:
- platform: esp_adf
id: box_mic
speaker:
- platform: esp_adf
id: box_speaker
micro_wake_word:
model: ${micro_wake_word_model}
on_wake_word_detected:
- voice_assistant.start:
wake_word: !lambda return wake_word;
voice_assistant:
id: va
microphone: box_mic
speaker: box_speaker
use_wake_word: true
noise_suppression_level: 2
auto_gain: 31dBFS
volume_multiplier: 2.0
vad_threshold: 3
on_listening:
- lambda: id(voice_assistant_phase) = ${voice_assist_listening_phase_id};
- text_sensor.template.publish:
id: text_request
state: "..."
- text_sensor.template.publish:
id: text_response
state: "..."
- script.execute: draw_display
on_stt_vad_end:
- lambda: id(voice_assistant_phase) = ${voice_assist_thinking_phase_id};
- script.execute: draw_display
on_stt_end:
- text_sensor.template.publish:
id: text_request
state: !lambda return x;
- script.execute: draw_display
on_tts_start:
- text_sensor.template.publish:
id: text_response
state: !lambda return x;
on_tts_stream_start:
- lambda: id(voice_assistant_phase) = ${voice_assist_replying_phase_id};
- script.execute: draw_display
on_tts_stream_end:
- lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
- script.execute: draw_display
on_end:
- if:
condition:
and:
- switch.is_off: mute
- lambda: return id(wake_word_engine_location).state == "On device";
then:
- wait_until:
not:
voice_assistant.is_running:
- micro_wake_word.start:
on_error:
- if:
condition:
lambda: return !id(init_in_progress);
then:
- lambda: id(voice_assistant_phase) = ${voice_assist_error_phase_id};
- script.execute: draw_display
- delay: 1s
- if:
condition:
switch.is_off: mute
then:
- lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
else:
- lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
- script.execute: draw_display
on_client_connected:
- if:
condition:
switch.is_off: mute
then:
- wait_until:
not: ble.enabled
- if:
condition:
lambda: return id(wake_word_engine_location).state == "In Home Assistant";
then:
- lambda: id(va).set_use_wake_word(true);
- voice_assistant.start_continuous:
- if:
condition:
lambda: return id(wake_word_engine_location).state == "On device";
then:
- micro_wake_word.start
- lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
else:
- lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
- lambda: id(init_in_progress) = false;
- script.execute: draw_display
on_client_disconnected:
- if:
condition:
lambda: return id(wake_word_engine_location).state == "In Home Assistant";
then:
- lambda: id(va).set_use_wake_word(false);
- voice_assistant.stop:
- if:
condition:
lambda: return id(wake_word_engine_location).state == "On device";
then:
- micro_wake_word.stop
- lambda: id(voice_assistant_phase) = ${voice_assist_not_ready_phase_id};
- script.execute: draw_display
script:
- id: draw_display
then:
- if:
condition:
lambda: return !id(init_in_progress);
then:
- if:
condition:
wifi.connected:
then:
- if:
condition:
api.connected:
then:
- lambda: |
switch(id(voice_assistant_phase)) {
case ${voice_assist_listening_phase_id}:
id(s3_box_lcd).show_page(listening_page);
id(s3_box_lcd).update();
break;
case ${voice_assist_thinking_phase_id}:
id(s3_box_lcd).show_page(thinking_page);
id(s3_box_lcd).update();
break;
case ${voice_assist_replying_phase_id}:
id(s3_box_lcd).show_page(replying_page);
id(s3_box_lcd).update();
break;
case ${voice_assist_error_phase_id}:
id(s3_box_lcd).show_page(error_page);
id(s3_box_lcd).update();
break;
case ${voice_assist_muted_phase_id}:
id(s3_box_lcd).show_page(muted_page);
id(s3_box_lcd).update();
break;
case ${voice_assist_not_ready_phase_id}:
id(s3_box_lcd).show_page(no_ha_page);
id(s3_box_lcd).update();
break;
default:
id(s3_box_lcd).show_page(idle_page);
id(s3_box_lcd).update();
}
else:
- display.page.show: no_ha_page
- component.update: s3_box_lcd
else:
- display.page.show: no_wifi_page
- component.update: s3_box_lcd
else:
- display.page.show: initializing_page
- component.update: s3_box_lcd
switch:
- platform: template
name: Display conversation
id: display_conversation
optimistic: true
restore_mode: RESTORE_DEFAULT_ON
entity_category: config
- platform: template
name: Mute
id: mute
optimistic: true
restore_mode: RESTORE_DEFAULT_OFF
entity_category: config
on_turn_off:
- if:
condition:
lambda: return !id(init_in_progress);
then:
- lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
- if:
condition:
not:
- voice_assistant.is_running
then:
- if:
condition:
lambda: return id(wake_word_engine_location).state == "In Home Assistant";
then:
- lambda: id(va).set_use_wake_word(true);
- voice_assistant.start_continuous
- if:
condition:
lambda: return id(wake_word_engine_location).state == "On device";
then:
- micro_wake_word.start
- script.execute: draw_display
on_turn_on:
- if:
condition:
lambda: return !id(init_in_progress);
then:
- lambda: id(va).set_use_wake_word(false);
- voice_assistant.stop
- micro_wake_word.stop
- lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
- script.execute: draw_display
select:
- platform: template
entity_category: config
name: Wake word engine location
id: wake_word_engine_location
optimistic: true
restore_value: true
options:
- In Home Assistant
- On device
initial_option: On device
on_value:
- wait_until:
lambda: return id(voice_assistant_phase) == ${voice_assist_muted_phase_id} || id(voice_assistant_phase) == ${voice_assist_idle_phase_id};
- if:
condition:
lambda: return x == "In Home Assistant";
then:
- micro_wake_word.stop
- delay: 500ms
- if:
condition:
switch.is_off: mute
then:
- lambda: id(va).set_use_wake_word(true);
- voice_assistant.start_continuous:
- if:
condition:
lambda: return x == "On device";
then:
- lambda: id(va).set_use_wake_word(false);
- voice_assistant.stop
- delay: 500ms
- micro_wake_word.start
globals:
- id: init_in_progress
type: bool
restore_value: false
initial_value: "true"
- id: voice_assistant_phase
type: int
restore_value: false
initial_value: ${voice_assist_not_ready_phase_id}
image:
- file: ${error_illustration_file}
id: casita_error
resize: 320x240
type: RGB24
use_transparency: true
- file: ${idle_illustration_file}
id: casita_idle
resize: 320x240
type: RGB24
use_transparency: true
- file: ${listening_illustration_file}
id: casita_listening
resize: 320x240
type: RGB24
use_transparency: true
- file: ${thinking_illustration_file}
id: casita_thinking
resize: 320x240
type: RGB24
use_transparency: true
- file: ${replying_illustration_file}
id: casita_replying
resize: 320x240
type: RGB24
use_transparency: true
- file: ${loading_illustration_file}
id: casita_initializing
resize: 320x240
type: RGB24
use_transparency: true
- file: https://github.com/esphome/firmware/raw/main/voice-assistant/error_box_illustrations/error-no-wifi.png
id: error_no_wifi
resize: 320x240
type: RGB24
use_transparency: true
- file: https://github.com/esphome/firmware/raw/main/voice-assistant/error_box_illustrations/error-no-ha.png
id: error_no_ha
resize: 320x240
type: RGB24
use_transparency: true
font:
- file:
type: gfonts
family: Figtree
weight: 300
italic: true
glyphs: ${allowed_characters}
id: font_request
size: 15
- file:
type: gfonts
family: Figtree
weight: 300
glyphs: ${allowed_characters}
id: font_response
size: 15
text_sensor:
- id: text_request
platform: template
on_value:
lambda: |-
if(id(text_request).state.length()>32) {
std::string name = id(text_request).state.c_str();
std::string truncated = esphome::str_truncate(name.c_str(),31);
id(text_request).state = (truncated+"...").c_str();
}
- id: text_response
platform: template
on_value:
lambda: |-
if(id(text_response).state.length()>32) {
std::string name = id(text_response).state.c_str();
std::string truncated = esphome::str_truncate(name.c_str(),31);
id(text_response).state = (truncated+"...").c_str();
}
color:
- id: idle_color
hex: ${idle_illustration_background_color}
- id: listening_color
hex: ${listening_illustration_background_color}
- id: thinking_color
hex: ${thinking_illustration_background_color}
- id: replying_color
hex: ${replying_illustration_background_color}
- id: loading_color
hex: ${loading_illustration_background_color}
- id: error_color
hex: ${error_illustration_background_color}
spi:
clk_pin: 7
mosi_pin: 6
display:
- platform: ili9xxx
id: s3_box_lcd
model: S3BOX
data_rate: 40MHz
cs_pin: 5
dc_pin: 4
reset_pin:
number: 48
inverted: true
update_interval: never
pages:
- id: idle_page
lambda: |-
it.fill(id(idle_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_idle), ImageAlign::CENTER);
- id: listening_page
lambda: |-
it.fill(id(listening_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_listening), ImageAlign::CENTER);
- id: thinking_page
lambda: |-
it.fill(id(thinking_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_thinking), ImageAlign::CENTER);
if (id(display_conversation).state) {
it.filled_rectangle(20 , 20 , 280 , 30 , Color::WHITE );
it.rectangle(20 , 20 , 280 , 30 , Color::BLACK );
it.printf(30, 25, id(font_request), Color::BLACK, "%s", id(text_request).state.c_str());
}
- id: replying_page
lambda: |-
it.fill(id(replying_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_replying), ImageAlign::CENTER);
if (id(display_conversation).state) {
it.filled_rectangle(20 , 20 , 280 , 30 , Color::WHITE );
it.rectangle(20 , 20 , 280 , 30 , Color::BLACK );
it.filled_rectangle(20 , 190 , 280 , 30 , Color::WHITE );
it.rectangle(20 , 190 , 280 , 30 , Color::BLACK );
it.printf(30, 25, id(font_request), Color::BLACK, "%s", id(text_request).state.c_str());
it.printf(30, 195, id(font_response), Color::BLACK, "%s", id(text_response).state.c_str());
}
- id: error_page
lambda: |-
it.fill(id(error_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_error), ImageAlign::CENTER);
- id: no_ha_page
lambda: |-
it.image((it.get_width() / 2), (it.get_height() / 2), id(error_no_ha), ImageAlign::CENTER);
- id: no_wifi_page
lambda: |-
it.image((it.get_width() / 2), (it.get_height() / 2), id(error_no_wifi), ImageAlign::CENTER);
- id: initializing_page
lambda: |-
it.fill(id(loading_color));
it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_initializing), ImageAlign::CENTER);
- id: muted_page
lambda: |-
it.fill(Color::BLACK);
A partial log following compile and start up follows;
Microsoft Windows [Version 10.0.22631.3593]
(c) Microsoft Corporation. All rights reserved.
C:\Users\rcbla>cd C:\Users\rcbla\OneDrive\Home_Assistant\ESP32\ESP32_S3_Box_3\
C:\Users\rcbla\OneDrive\Home_Assistant\ESP32\ESP32_S3_Box_3>esphome run ESP32_S3_Box_3_V05152024.01.yaml
INFO ESPHome 2024.5.0
INFO Reading configuration ESP32_S3_Box_3_V05152024.01.yaml...
INFO Updating https://github.com/esphome/esphome.git@pull/5230/head
WARNING GPIO0 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Updating https://github.com/jesserockz/esp32-s3-box-3-board.git@main
INFO Updating https://github.com/espressif/[email protected]
INFO Updating submodules (components/esp-sr, components/esp-adf-libs) for https://github.com/espressif/[email protected]
INFO Updating https://github.com/espressif/[email protected]
INFO Updating https://github.com/espressif/esp-tflite-micro@None
INFO Compiling app...
Processing esp32-s3-box-3 (board: esp32s3box; framework: espidf; platform: platformio/[email protected])
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32s3box.html
PLATFORM: Espressif 32 (5.4.0) > Espressif ESP32-S3-Box
HARDWARE: ESP32S3 240MHz, 320KB RAM, 16MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-espidf @ 3.40407.0 (4.4.7)
- tool-cmake @ 3.16.4
- tool-esptoolpy @ 1.40400.0 (4.4.0)
- tool-idf @ 1.0.1
- tool-mconf @ 1.4060000.20190628 (406.0.0)
- tool-ninja @ 1.9.0
- toolchain-esp32ulp @ 2.35.0-20220830
- toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
- toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 3 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Improv @ 1.2.3
|-- noise-c @ 0.1.4
Building in release mode
Retrieving maximum program size .pioenvs\esp32-s3-box-3\firmware.elf
Checking size .pioenvs\esp32-s3-box-3\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 18.5% (used 60764 bytes from 327680 bytes)
Flash: [===== ] 48.6% (used 3951113 bytes from 8126464 bytes)
====================================================== [SUCCESS] Took 57.02 seconds ======================================================
INFO Successfully compiled program.
INFO Connecting to 192.168.86.208
INFO Uploading .esphome\build\esp32-s3-box-3\.pioenvs\esp32-s3-box-3\firmware.bin (3951472 bytes)
Uploading: [============================================================] 100% Done...
INFO Upload took 13.14 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.86.208 using esphome API
INFO Successfully connected to esp32-s3-box-3 @ 192.168.86.208 in 7.072s
INFO Successful handshake with esp32-s3-box-3 @ 192.168.86.208 in 0.854s
[10:46:18][I][app:100]: ESPHome version 2024.5.0 compiled on May 15 2024, 17:16:43
[10:46:18][I][app:102]: Project esphome.voice-assistant version 2.0
[10:46:18][C][wifi:580]: WiFi:
[10:46:18][C][wifi:408]: Local MAC: 3C:84:27:05:AE:0C
[10:46:18][C][wifi:413]: SSID: 'SuperDoodle'
[10:46:18][C][wifi:416]: IP Address: 192.168.86.208
[10:46:18][C][wifi:420]: BSSID: B0:E4:D5:5A:57:E1
[10:46:18][C][wifi:421]: Hostname: 'esp32-s3-box-3'
[10:46:18][C][wifi:423]: Signal strength: -43 dB ▂▄▆█
[10:46:18][C][wifi:427]: Channel: 11
[10:46:18][C][wifi:428]: Subnet: 255.255.255.0
[10:46:18][C][wifi:429]: Gateway: 192.168.86.1
[10:46:18][C][wifi:430]: DNS1: 0.0.0.0
[10:46:18][C][wifi:431]: DNS2: 0.0.0.0
[10:46:18][C][logger:185]: Logger:
[10:46:18][C][logger:186]: Level: DEBUG
[10:46:18][C][logger:188]: Log Baud Rate: 115200
[10:46:18][C][i2c.idf:075]: I2C Bus:
[10:46:18][C][i2c.idf:076]: SDA Pin: GPIO41
[10:46:18][C][i2c.idf:077]: SCL Pin: GPIO40
[10:46:18][C][i2c.idf:078]: Frequency: 50000 Hz
[10:46:18][C][i2c.idf:084]: Recovery: bus successfully recovered
[10:46:18][I][i2c.idf:094]: Results from i2c bus scan:
[10:46:18][I][i2c.idf:100]: Found i2c device at address 0x28
[10:46:18][I][i2c.idf:100]: Found i2c device at address 0x38
[10:46:18][C][spi:068]: SPI bus:
[10:46:18][C][spi:069]: CLK Pin: GPIO7
[10:46:18][C][spi:070]: SDI Pin:
[10:46:18][C][spi:071]: SDO Pin: GPIO6
[10:46:18][C][spi:076]: Using HW SPI: SPI2_HOST
[10:46:18][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Mute'
[10:46:18][C][gpio.binary_sensor:016]: Pin: GPIO1
[10:46:18][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Top Left Button'
[10:46:18][C][gpio.binary_sensor:016]: Pin: GPIO0
[10:46:18][C][ledc.output:173]: LEDC Output:
[10:46:18][C][ledc.output:174]: Pin GPIO47
[10:46:18][C][ledc.output:175]: LEDC Channel: 0
[10:46:18][C][ledc.output:176]: PWM Frequency: 1000.0 Hz
[10:46:18][C][ledc.output:177]: Phase angle: 0.0°
[10:46:18][C][ledc.output:178]: Bit depth: 14
[10:46:18][C][template.select:065]: Template Select 'Wake word engine location'
[10:46:18][C][template.select:066]: Update Interval: 60.0s
[10:46:18][C][template.select:069]: Optimistic: YES
[10:46:18][C][template.select:070]: Initial Option: On device
[10:46:18][C][template.select:071]: Restore Value: YES
[10:46:18][C][template.text_sensor:020]: Template Sensor 'text_request'
[10:46:18][C][template.text_sensor:020]: Template Sensor 'text_response'
[10:46:18][C][ili9xxx:075]: ili9xxx
[10:46:18][C][ili9xxx:075]: Rotations: 0 °
[10:46:18][C][ili9xxx:075]: Dimensions: 320px x 240px
[10:46:18][C][ili9xxx:076]: Width Offset: 0
[10:46:18][C][ili9xxx:077]: Height Offset: 0
[10:46:18][C][ili9xxx:083]: Color mode: 16bit
[10:46:18][C][ili9xxx:092]: Data rate: 40MHz
[10:46:18][C][ili9xxx:094]: Reset Pin: GPIO48
[10:46:18][C][ili9xxx:095]: CS Pin: GPIO5
[10:46:18][C][ili9xxx:096]: DC Pin: GPIO4
[10:46:18][C][ili9xxx:098]: Color order: BGR
[10:46:18][C][ili9xxx:099]: Swap_xy: NO
[10:46:18][C][ili9xxx:100]: Mirror_x: YES
[10:46:18][C][ili9xxx:101]: Mirror_y: YES
[10:46:18][C][ili9xxx:106]: Update Interval: never
[10:46:19][C][light:103]: Light 'LCD Backlight'
[10:46:19][C][light:105]: Default Transition Length: 0.2s
[10:46:19][C][light:106]: Gamma Correct: 2.80
[10:46:19][C][template.switch:068]: Template Switch 'Display conversation'
[10:46:19][C][template.switch:091]: Restore Mode: restore defaults to ON
[10:46:19][C][template.switch:057]: Optimistic: YES
[10:46:19][C][template.switch:068]: Template Switch 'Mute'
[10:46:19][C][template.switch:091]: Restore Mode: restore defaults to OFF
[10:46:19][C][template.switch:057]: Optimistic: YES
[10:46:19][C][psram:020]: PSRAM:
[10:46:19][C][psram:021]: Available: YES
[10:46:19][C][psram:024]: Size: 16383 KB
[10:46:19][C][factory_reset.button:011]: Factory Reset Button 'Factory reset'
[10:46:19][C][factory_reset.button:011]: Icon: 'mdi:restart-alert'
[10:46:19][C][aht10:160]: AHT10:
[10:46:19][C][aht10:161]: Address: 0x38
[10:46:19][C][aht10:165]: Temperature 'Temperature'
[10:46:19][C][aht10:165]: Device Class: 'temperature'
[10:46:19][C][aht10:165]: State Class: 'measurement'
[10:46:19][C][aht10:165]: Unit of Measurement: '°C'
[10:46:19][C][aht10:165]: Accuracy Decimals: 2
[10:46:19][C][aht10:166]: Humidity 'Humidity'
[10:46:19][C][aht10:166]: Device Class: 'humidity'
[10:46:19][C][aht10:166]: State Class: 'measurement'
[10:46:19][C][aht10:166]: Unit of Measurement: '%'
[10:46:19][C][esp32_ble:374]: ESP32 BLE:
[10:46:19][C][esp32_ble:376]: MAC address: 3C:84:27:05:AE:0E
[10:46:19][C][esp32_ble:377]: IO Capability: none
[10:46:19][C][esp32_ble_server:200]: ESP32 BLE Server:
[10:46:19][C][esp32_improv.component:261]: ESP32 Improv:
[10:46:19][C][esp32_improv.component:266]: Status Indicator: 'NO'
[10:46:19][C][mdns:115]: mDNS:
[10:46:19][C][mdns:116]: Hostname: esp32-s3-box-3
[10:46:19][C][ota:096]: Over-The-Air Updates:
[10:46:19][C][ota:097]: Address: 192.168.86.208:3232
[10:46:19][C][ota:103]: OTA version: 2.
[10:46:19][C][api:139]: API Server:
[10:46:19][C][api:140]: Address: 192.168.86.208:6053
[10:46:19][C][api:142]: Using noise encryption: YES
[10:46:19][C][improv_serial:032]: Improv Serial:
[10:46:19][C][micro_wake_word:057]: microWakeWord:
[10:46:19][C][micro_wake_word:058]: Wake Word: okay nabu
[10:46:19][C][micro_wake_word:059]: Probability cutoff: 0.500
[10:46:19][C][micro_wake_word:060]: Sliding window size: 10
[10:46:20][D][micro_wake_word:177]: State changed from IDLE to START_MICROPHONE