XIAO SP32C3 Home Assistant & ESPHome Tutorial

Trying to use this tutorial I receive a warning:

WARNING The selected Arduino framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.

But the build process does proceed with out any further warning or errors until the upload. Esptool does connect & reports back the device info then erases the flash locations. Then during the upload it fails at some variable % upload reporting:

A fatal error occurred: Serial data stream stopped: Possible serial noise or corruption.

It then tries lowering the port speed from 460800 to 115200, but again fails with the same message.

The % uploaded is always some variable amount from 2% to 17% in either case.

The above warning perhaps hints at a problem but I’m not sure they are related. Both the version & platform version are set as indicated in the tutorial & are both the latest version.

I’ve tried different USB cables & ports to no avail. I’ve had no problems uploading when using Arduino so I’m at a loss here.

My Home Assistant is running on TrueNAS Scale in a VM but I was having issues with a stable connection using a PCI USB pass through. I thought once I got the XIAO programmed it would not be a problem. Next I tried using the EPSHome tool on my Win machine but the seeed XIAO board is not supported even though it is listed. So in the mean time I setup a HA VM on my Windows machine to get the job done but now have this problem.

Any ideas?

Try the Home Assistant on a native PC, not a VM, does it work then ?

Yeah, I could not get it to work on my TrueNAS Scale box or a Windows VM installation. So I did finally setup HA on a PI and it did work per the tutorial. However, it still had the warning message:

WARNING The selected Arduino framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.

It appears even though I can set it up on the PI my other instances of HA are not going to detect it via WiFi without doing something. So I was able to duplicate the PI yaml file on my Windows VM and get it to detect the device, but I’m still having trouble in my TrueNAS Scale instance. I was able to use the PI yaml file here but needed to add a manual IP address. It compiled and uploaded using WiFi but still reports OFFLINE. Everything looks good in the log:

INFO Reading configuration /config/esphome/seeed-xiao.yaml…
WARNING The selected Arduino framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.
WARNING The selected Arduino framework version is not the recommended one. If there are connectivity or build issues please remove the manual version.
INFO Starting log output from 192.168.1.124 using esphome API
INFO Successfully connected to 192.168.1.124
[07:45:58][I][app:102]: ESPHome version 2022.10.2 compiled on Nov 14 2022, 07:16:47
[07:45:58][C][wifi:502]: WiFi:
[07:45:58][C][wifi:360]: Local MAC: A0:76:4E:44:27:04
[07:45:58][C][wifi:361]: SSID: [redacted]
[07:45:58][C][wifi:362]: IP Address: 192.168.1.124
[07:45:58][C][wifi:364]: BSSID: [redacted]
[07:45:58][C][wifi:365]: Hostname: ‘seeed-xiao’
[07:45:58][C][wifi:367]: Signal strength: -39 dB ▂▄▆█
[07:45:58][C][wifi:371]: Channel: 1
[07:45:58][C][wifi:372]: Subnet: 255.255.255.0
[07:45:58][C][wifi:373]: Gateway: 192.168.1.1
[07:45:58][C][wifi:374]: DNS1: 0.0.0.0
[07:45:58][C][wifi:375]: DNS2: 0.0.0.0
[07:45:58][C][logger:275]: Logger:
[07:45:58][C][logger:276]: Level: DEBUG
[07:45:58][C][logger:277]: Log Baud Rate: 115200
[07:45:58][C][logger:278]: Hardware UART: UART0
[07:45:58][C][captive_portal:088]: Captive Portal:
[07:45:58][C][mdns:100]: mDNS:
[07:45:58][C][mdns:101]: Hostname: seeed-xiao
[07:45:58][C][ota:089]: Over-The-Air Updates:
[07:45:58][C][ota:090]: Address: 192.168.1.124:3232
[07:45:58][C][ota:093]: Using Password.
[07:45:58][C][api:138]: API Server:
[07:45:58][C][api:139]: Address: 192.168.1.124:6053
[07:45:58][C][api:141]: Using noise encryption: YES

So I’m still trying to figure it out.

My only hint here is that when running from my TrueNAS Scale mDNS does not get resolved necessitating the manual IP?