Esphome on Windows 11

Some of my ESPHome projects involve e-ink displays and the layout can require lots of iterations. (Although the excellent ESPHome Display Designer helps a lot with layout.)

I run my Home Assistant node on a raspberry pi and for most things this is fantastic. However, the compile/link/deploy loop has been painfully slow for me. So I decided to take a look at offloading this to my PC as it has significantly more horsepower.

Compounding this, I’ve found getting my Firebeetle 2 chips flashed to be a little hit/miss. After working on the device for a while I’ll have periods where it can no longer be programmed over the network. Equally the web serial approach seems to have periods where I can’t connect for long periods (this is something I’ve seen across a few different boards/cables etc - I’m getting paranoid that I’m doing something wrong)

As discussed previously I’m more of a Unix person when I’m in software mode, so I installed ESPHome in Ubuntu through WSL. To allow USB devices to be shared into the WSL sub system you need to follow these instructions

Once installed, fire up Ubuntu (or whatever distribution you are using) and then in a powershell in Win 11 as admin :

usbipd list

usbipd bind --busid <YOURBUS>

usbipd attach --wsl --busid <YOURBUS>

Then in Ubuntu the device should show up, you can check with :

lsusb

Then when using esphome upload, you should be offered the serial port as an option alongside OTA.

This approach means I get fast compilation of my YAML and a significantly more reliable serial upload compared with the web version.