I thought it was about time I tried out ESPHome, and this is my experience so far with m5stack products. I have uploaded it on a m5stick-c and five m5stamp-c3u’s. I’m using a Windows laptop for the install, whereas I’ve seen others have issues with a Pi or Ubuntu; so ymmv. I also have a Core 2 and v1 Paper, but ESPHome doesn’t (yet) support the displays, so I will skip them for now.
For the m5stick-c, once I clicked connect, it was there, but it would not install. I found I needed to press the middle button (below the screen) for the install to work. I’m not sure how long you have to keep it pressed, so I did so for the whole process of several minutes. I understand there’s more editing required to get the screen working with the m5stick-c, but this will come later.
For the m5stamp, you have to hold the middle button down while inserting the usb plug into the laptop. If you don’t, it won’t show up in the connection dialog. I have the c3u, and it’s possibly different for the c3, because I think that connects with an adapter rather than via the inbuilt usb. It sits on “Preparing install” for several minutes. After the install is complete, it will try to connect, and you will get “Configuration created but unable to detect the device on the network”, but don’t unplug! If you do, you’ll notice it keeps connecting and disconnecting from USB because it isn’t working. Plug it back in, remembering to hold the middle button. Then edit the config and change the top to match the code below (3 lines to be inserted). After installing this, and unplugging/re-plugging, you should be good to go.
esphome:
name: your-name-here
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-c3-devkitm-1
variant: ESP32C3
framework:
type: esp-idf
As a noob, I found out the hard way you shouldn’t navigate away from the page while it’s “Preparing installation”, or it will (probably) fail. The other first-timer experience is that it’s probably not a good idea to rename the device once installed. Initially it won’t work unless you power cycle, because it will still be connected to wifi with the old name. But even after that, it appears that the yaml file maintains the original name, which might cause confusion later on.