packages: jarvis-satellite-led: !include jarvis-satellite-led.yaml jarvis-satellite-voice: !include jarvis-satellite-voice.yaml jarvis-satellite-audio: !include jarvis-satellite-audio.yaml jarvis-satellite-ui: !include jarvis-satellite-ui.yaml substitutions: # Flash & PSRAM flash_size: "8MB" psram_mode: "quad" psram_speed: "80MHz" # CPU Frequency cpu_frequency: "240MHz" # I2S Microphone pins i2s_in_lrclk_pin: GPIO6 i2s_in_bclk_pin: GPIO7 mic_din_pin: GPIO4 # I2S Speaker pins i2s_out_lrclk_pin: GPIO45 i2s_out_bclk_pin: GPIO46 speaker_dout_pin: GPIO8 # LED bar led_pin: GPIO16 led_num_leds: "8" # Microphone sensitivity (tuned for INMP441) mic_noise_suppression_level: "2" mic_auto_gain: "10dBFS" mic_volume_multiplier: "4.0" # Button pins btn_vol_up_pin: GPIO1 btn_vol_down_pin: GPIO2 btn_mute_pin: GPIO3 btn_wake_pin: GPIO10 # Change this to true in case you have a hidden SSID at home. hidden_ssid: "true" globals: - id: volume_level type: float restore_value: true initial_value: '0.8' esphome: platformio_options: board_build.flash_mode: dio on_boot: - priority: -100 then: - lambda: id(spk).set_volume(id(volume_level)); esp32: board: esp32-s3-devkitc-1 variant: esp32s3 cpu_frequency: ${cpu_frequency} flash_size: ${flash_size} framework: type: esp-idf version: recommended sdkconfig_options: CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y" CONFIG_ESP32S3_DATA_CACHE_64KB: "y" CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y" CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB: "y" # Moves instructions and read only data from flash into PSRAM on boot. # Both enabled allows instructions to execute while a flash operation is in progress without needing to be placed in IRAM. # Considerably speeds up mWW at the cost of using more PSRAM. CONFIG_SPIRAM_RODATA: "y" CONFIG_SPIRAM_FETCH_INSTRUCTIONS: "y" CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST: "y" CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY: "y" CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC: "y" CONFIG_MBEDTLS_SSL_PROTO_TLS1_3: "y" wifi: id: wifi_id fast_connect: ${hidden_ssid} network: enable_ipv6: true http_request: web_server: port: 80 psram: mode: ${psram_mode} speed: ${psram_speed} captive_portal: api: encryption: key: !secret api_encryption_key on_client_connected: - delay: 50ms - if: condition: not: lambda: 'return id(mww).is_running();' then: - micro_wake_word.start: on_client_disconnected: - micro_wake_word.stop: - voice_assistant.stop: logger: level: DEBUG logs: micro_wake_word: DEBUG voice_assistant: DEBUG ota: - platform: esphome password: !secret ota_password