ESP Home and ESP32 S3 Box?

Hi Everyone :slight_smile:
I am wondering, if ANYONE has tried this small device with ESPHome?

It is called ESP32-S3- Box, and is developed by Espressif - and comes with a built in “Voice-Controll”
The Voicecontrol itself is limited to “Hi ESP”… but it seems to have a built in Microphone and I question myself, if it would be possible to use the device with ESPHome… ?

I think, that would be a cool Hardware to create satelites for the Assist ?“year of voice”? :wink:
Maybe - there are some ESP experts who have already tried to use this device, or maybe, this might be of interest for the NabuCasa Team to see, if it would be possible to integrate into ESPHome / HomeAssistant?

→ Use VoiceControl for HomeAssistant
→ Get Data from HomeAssistant and display it on the Screen

I would start to experiment with this - but at the moment, I’ve just started with some small esp projects, and therefore, I think I don’t have the experience to work with such a device at the moment :slight_smile:

7 Likes

Thanks, good tip. I have not seen this one before.

Have you seen this:
https://www.reddit.com/r/homeassistant/comments/11y9a88/esp32_speech_recognition_with_ha/

1 Like

Nice find!

Here’s the repo for that project:

1 Like

Ha thanks :slight_smile:
That’s what I’m looking for - especially after the may Release :slight_smile: yay!! Just need to find the time to dig into this

That project is not using ESPHome so not sure how compatible it will be with the features in the May Home Assistant release

Also have a look at GitHub - toverainc/willow: Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative (which is also not ESPHome).

I am pretty new to ESP (have been using esphome, so easy…)

I ordered a s3box too - and as esp-idf 5.0 supports s3 devices - why cant we use it in esphome? I guess it is the screen part? Im not even sure how the screen is connected (which pins). I cant wait to get it :slight_smile:

So, just received my ESP32-S3-Box…
Since my primary usage is (as of now) Bluetooth-Proxy (family acceptance factor for this box is better than for any ESP32 Dev-Board) … I am running a very basic ESPHome Config.

So far - working as expected:

esphome:
  name: esp32box
  friendly_name: ESP32Box

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

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: xxx

ota:
  password: xxx

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32Box Fallback Hotspot"
    password: xxx

bluetooth_proxy:
  active: true

button:
  - platform: restart
    name: "Restart Device"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: IP Address
    ssid:
      name: Connected SSID
    bssid:
      name: Connected BSSID
    mac_address:
      name: Mac Wifi Address
    scan_results:
      name: Latest Scan Results

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

# Example configuration entry
  - platform: internal_temperature
    name: "Internal Temperature"
    entity_category: "diagnostic"

captive_portal:

Next steps would be to enable the Display - and showing some Information provided by HomeAssistant…
Also, I need to see, if I need to change the ESP-Framework for example to ESP-IDF, as mentioned in the ESPHome Documentation:

ESP-IDF framework

This is an alternative base framework for ESP32 chips, and recommended for variants of the ESP32 like ESP32S2, ESP32S3, ESP32C3 and single-core ESP32 chips.

Example configuration entry

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
    version: recommended
    # Custom sdkconfig options
    sdkconfig_options:
      CONFIG_COMPILER_OPTIMIZATION_SIZE: y
    # Advanced tweaking options
    advanced:
      ignore_efuse_mac_crc: false

Any progress? My “Lite” just showed up over the weekend and i’m looking forward to getting in there and start experimenting with ESP-Home on it.

Not yet.
Haven’t the time to do more experimental Work on this…
Still Just working as simple Bluetooth proxy

I’ve made some progress on this after looking at the pinouts. The one thing that isn’t working yet is the display. I think I got the mic and speaker right but have not tested those yet.

esphome:
  name: box-kitchen
  friendly_name: box-kitchen

esp32:
  board: esp32s3box
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "encryption_key"

ota:
  password: "password"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Box-Kitchen Fallback Hotspot"
    password: "fallback"

captive_portal:

time:
  - platform: homeassistant
    id: homeassistant_time

spi:
  clk_pin: GPIO12
  mosi_pin: GPIO11
  miso_pin: GPIO13

i2s_audio:
  i2s_lrclk_pin: GPIO47
  i2s_bclk_pin: GPIO17

bluetooth_proxy:

voice_assistant:
  microphone: mic

button:
  - platform: restart
    name: "Restart Device"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: IP Address
    ssid:
      name: Connected SSID
    bssid:
      name: Connected BSSID
    mac_address:
      name: Mac Wifi Address
    scan_results:
      name: Latest Scan Results

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s

  - platform: wifi_signal
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

font:
  - id: my_font
    file: "gfonts://Roboto"
    size: 20

display:
  - platform: ili9xxx
    model: ili9342
    id: show
    cs_pin: GPIO5
    dc_pin: GPIO4
    reset_pin: GPIO48
    lambda: |-
      it.fill(Color::WHITE);
      it.strftime(0, 0, id(my_font), "%A, %m-%d-%Y %I:%M:%S %p", id(homeassistant_time).now());

microphone:
  - platform: i2s_audio
    id: mic
    adc_type: external
    i2s_din_pin: GPIO15
    pdm: false

speaker:
  - platform: i2s_audio
    id: audio
    dac_type: external
    i2s_dout_pin: GPIO16
    mode: mono
1 Like

I referred to this for the pinout btw: arduino-esp32/pins_arduino.h at 3ec5f4efa1de4342aaab742008dc630091e5e035 · espressif/arduino-esp32 · GitHub

Hi :slight_smile: Thanks for your reply :slight_smile:
Whenever I activate the code for the Display, all other sensors went unavailable…

I will also see if I can get this working somehow… + some additional options (mute switch), voice command-buttons (as described in ESPhome → Push to talk)

Another thing I would like to add is an option to switch off the PowerLED… :smiley: :wink:

Found something in the ESPHome FeatureRequest Tracker:

Any idea where i can order the box in europe, Belgium to be percise.

I tried on adafruit, but shipment is almost the price of the box itself…

I got mine from Amazon… Not cheap, but no shipping costs …

Care to share the link?

I can only find the lite version on amazon.de

I’ve checked… “Currently Not available”

But here’s the link:

1 Like

You can get it from https://eu.mouser.com/