ESP32 S3 Box3

ok, you can ignore the warning about “GPIO is a strapping PIN” right now, that’s not related to your issues.

The Other logs seem also to be OK.
Now, You probably need to restart your HomeAssistant… at least, that was required for me after first uploading the Firmware

Yes, I needed to do that too.

Wow, this works great. Initially I bought this esp to experiment with Willow, a project designed to use voice to control things (i.e. HA). However I already use esphome, so to integrate this was no problem at all.

@DieterKoblenz Another confirmation that this works. Great! Do you also experience responses starting a little late sometimes?

For me the updated yaml is finally working.
Now I see the reason why it was not working for so long before.
I had “Google TTS” set in the VA settings and expected it will work. NO!
The pipeline (WakeWord + Whisper) started to work just AFTER I desperately added Piper to Wyoming. Without Piper nothing worked, not even WakeWord.
It’s hard to identify the problem in the VA pipeline.
I lost much time trying to get microphone in M5Stack AtomU working with the same VA setup…

Nope, wake word not working. What is a Default VA? “Home Assistant” or “Home Assistant Cloud”. As I only have my VA local, I don’t have a cloud account.

Default VA only means that this VA is used per default. Otherwise you need to change this in the Box-3 configuration.

Set Home Assistant as “Preferred” and selected it in: Settings > Devices & Services >> ESPHome >>> BOX-3 Configuration. Thanks.

Please help!

After I installed latest fw the box bricked. In web.esphome.io I get this from the log:

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x3 (DOWNLOAD(USB/UART0))
Saved PC:0x40041a76
waiting for download

The flashing process went without error but somehow fast (erasing 2-3s, flashing maybe 4s). I remember from previous flashing the box it took much more time as 4s.

If I flash it with old esphome-flasher.exe (both buttons pressed when pluging in cable and then releasing RST button, selecting serial port and I choose binary file and the hit Flash ESP button. I get this error:

Using 'COM16' as serial port.
Connecting...
Detecting chip type...
Unexpected error: ESP Chip Auto-Detection failed: Unexpected UART datecode value 0x03700000. Failed to autodetect chip type.

EDIT:
after 3rd try on espressif Launchpad I managed to flash it. In unsuccesful try - after 13% of flashing, it stopped as it is finished. And in console log there was a message - an error in something like boot partition 0 is not detected…strange.
I managed to flash it with original fw from espressif on The ESP Launchpad.
I’ll try from here to flash with VA.

EDIT2:
After flashing with ESPHome with VA binary I get this from console:

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x40378c72
SPIWP:0xee
mode:DIO, clock div:1
load:0x3c120020,len:0x150ef4
Invalid image block, can't boot.
ets_main.c 329

EDIT3:
After a number of unsuccessful flashes, I finaly flash went through completely including boot partition.
Now box works with esphome VA :sweat_smile:

Didn’t notice it in the beginning, but after some more testing there is indeed sometimes a delay. Haven’t pinpointed a specific scenario or cause of it.

After a number of unsuccessful flashes, I finaly flash went through completely including boot partition.
Now box works with esphome VA :sweat_smile:

Congrats! Could you please share what code.yaml you flashed on your box-3 to make it work in VA?

edit: still can’t activate the VA wake word on my box-3.

I used “official” yaml. First I was struggling with flashing via Ready-Made Projects — ESPHome and then adopted it in ESPHome in HA and then updated it via esphome OTA.

@m4v3r1ck did you configure wake word?

Yes, I have configured my own wake word “Local TTS STT” that works flawless with the M5Stack Atom Echo devices. I see that you’re also using the Home Assistant Cloud for STT and TTS.

Will get myself the 1 month free Home Assistant Cloud and test my setup with that and set it up as “Preferred” VA. Thanks for now y’all.

Could you possibly give some more details on what you did? Steps would be super helpful and I’d be really appreciative if you did that. Did you get it working with the ready-made projects then add it in esphome then update it in esphome with the provided yaml or did you just drop the ready-made projects thing all together and just set it all up in esp home?? Just a bit confused about the process.

The configuration via esphome dashboard (copy pasting yaml from github) actualy bricked my box - see log above. And the steps I vaguely described were about unbricking esp box. Because the device was in reboot loop it was hard to just flash it. To unbrick the box I used Espressif Launchpad - after a few tries the stock fw (demo file) brought box back to life. After that I used ESPHome Ready made projects to flash it with fw from webserial. After a coulpe of tries (mainly difficulties with improv serial or improv bluetooth) I managed to connect it with HA and ESPHome dashboard. I had to try a few times with adopting the device in esphome dashboard and then after it was adpoted I could update it because the update notfication (that blue line under device box) appeard. After an update (latest version) the box started working but the response sound is still hard to hear but better that the first versions which broke the voice.

I hope this could be for any help.

1 Like

Yes, that is very helpful! I appreciate you spelling it out for me. So when I get mine, I should just use the ready made projects one right away I guess?

Tried using the box-3 via Home Assistant Cloud, yet still no action nor any reaction returned.

What tiny little tweak - code check - did I miss at each sequence flashing it and to get the box-3 up-and-running for VA. What should the last couple of code-lines be, when pulling a log from the box-3 after a HA restart while box-3 is turned off?

[20:55:24][C][api:142]:   Using noise encryption: YES
[20:55:24][C][improv_serial:032]: Improv Serial:
[20:56:27][I][ota:117]: Boot seems successful, resetting boot loop counter.
[20:56:27][D][esp32.preferences:114]: Saving 1 preferences to flash...
[20:56:27][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed

Try using the ESPHome Interface directly :slight_smile:
In theory, the ESPHome should identify your device when you delete your current configuration…

ESPHome auto-discovers the Box-3
grafik

You can now Adopt the device:
grafik

After adopting it, a Dialog with the Encryption Key should appear which allows you to install the device:
grafik

Installation… this will take some time…

Personally, I had to install the device several times in the past, because I had a ‘custom’ Firmware running - and also copied the SourceCode from Git directly.
This caused issues with the DNS resolution in my network, and so on…

Also, try to delete already existing build files - that might help:

The configuration in your device yaml should be pretty straight forward:

substitutions:
  name: esp32-s3-box-3-va-5acd3c
  friendly_name: ESP32 S3 Box 3 Voice Assist
packages:
  esphome.voice-assistant: github://esphome/firmware/voice-assistant/esp32-s3-box-3.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: ******


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

Install sequence started… brb

Edit 12/04/2023 - 00:33

This is amazing. Thank you so very much for reaching out to me, I’m so glad it’s working now. Your workflow was flawless and was easy to follow, it will help other users as well.

Kudos for that! :sunglasses:

note-to-self: oh my gosh, was I on the wrong track…

1 Like

so… let’s hope, the sensors from the dock will be utilized also soon… :slight_smile:
I can imagine, that the focus is on the VA itself right now… but I would really love to have the presence sensor, temp-sensor and IR being utilized as well… I think, it would make sense to use the presence sensor in combination with VoiceAssist (getting activated, when presence is detected, else, sleep - or similar scenarios)

5 Likes