First ESPHome project (ESP32-S2 feather board) stuck on initial configuration install

I just purchased this ( Overview | Adafruit ESP32-S2 TFT Feather | Adafruit Learning System) to try out ESPHome.

For the initial configuration, I tried to connect to it directly from my PC using USB and got this error:

Failed to initialize. Try resetting your device or holding the BOOT button while selecting your serial port until it starts preparing the installation.

I tried a reset, different USB cable/port, resetting the board, and holding the boot button on connect (not sure what’s supposed to happen here, but nothing changed). None of those seemed to make a difference so I connected it to my RPi that’s running HA. That seemed to work and it started to install the initial configuration, but then gave me this error:

INFO Reading configuration /config/esphome/humidor.yaml…
INFO Generating C++ source…
INFO Compiling app…
Processing humidor (board: esp32-s2-saola-1; framework: espidf; platform: platformio/espressif32 @ 3.5.0)
--------------------------------------------------------------------------------
Tool Manager: Installing platformio/toolchain-esp32s2ulp @ ~1.22851.0
Error: Could not find the package with ‘platformio/toolchain-esp32s2ulp @ ~1.22851.0’ requirements for your system 'linux_aarch64

You can see that ESPHome is trying to configure it as a esp32-s2-saola-1 board. I did some research and came across this ( Adafruit ESP32-S2 Feather Development Board — PlatformIO v5.2 documentation), so I tried changing the board to featheresp32-s2, but that did not work either.

I’m looking for recommendations for my next troubleshooting steps.

Thank you

This puts the board in programing mode to load the sketch. Not all boards require this step but if it’s getting stuck right when the upload starts, this is usually the fix.

featheresp32-s2

I don’t see this in the list when you start a new device, you can’t just add board types. featheresp32 is the closest match I saw in the list, you can try that.

I figured out that I need to hold boot and then press reset. So, that’s working now.

But, I’m now I’m getting a “Configuration does not match the platform of the connected device. Expected an ESP32 device” error whether I put in featheresp32, featheresp32-s2, or esp32.

2 Likes

That looks like what you need to use. I skimmed this seems there maybe a work around.

Read the docs

Note
Support for the ESP32-S2 and ESP32-C3 is currently in development.

According to the docs you can add any from this list, PlatformIO Registry

That site says the correct config is

platform: espressif32
board: featheresp32-s2

whereas all my regular esp32 boards have

platform: ESP32
board: *whatever*

Also the platformio site I linked earlier in this post specifies the esp-idf framework for this board, so make sure you have that specified - see ESP32 Platform — ESPHome

1 Like

I realize that it is in the platform io list after the fact, the first one they used esp32-s2-saola-1gave the error

Could not find the package with ‘platformio/toolchain-esp32s2ulp

Then stated that featheresp32-s2 didn’t work either and assumed the same error. I know that error is from something not in the list and in my next post pointed out that featheresp32-s2 was indeed the board type to use.

@GoodyGizmos the relevant snip from the thread seems like they got a feather working with the following

esphome:
  name: $devicename
  platformio_options:
    board_build.variant: um_feathers2

esp32:
  board: featheresp32-s2
  variant: esp32s2
  framework:
    type: esp-idf
    version: recommended
1 Like

@Mikefila Thanks. Here’s what I’m trying:

It validates, but when I go to download the .bin file to performed the ESPTool workaround, I get a “preparation failed” error and the logs look like this:

I assume your referencing this post? You’d be better off posting to git-hub where there are people who have this hardware and have already troubleshot this particular board type.

Thanks. Yes, that’s the post I was referencing.

Being so new to ESPHome, I wasn’t sure if it was something I was doing wrong with the initial configuration. Now I understand that I bought the wrong board (at least for now) and where to look to find boards currently supported by ESPHome.

I’ve add a feature request to the ESPHome GitHub - Support for Adafruit ESP32-S2 TFT Feather · Issue #1705 · esphome/feature-requests (github.com).

I’m surprised that ESP32-S2 hasn’t been adopted more rapidly considering its low power options making it ideal for battery power IoT devices. What do you all use for those applications?

The ESP32 is overkill for most ESPHome uses. I buy the Wemos D1 Mini board (about $3.50 each) for most of my ESPHome projects, and I just installed a couple of ESP8266-01 boards (about $1 each) in my cars for presence detection.

I been using node-mcu’s with wroom ver chips. No particular brand and only because that is what I 1st bought and I know they work.

There is a whole thread on recommended esp32 boards, the general advice is this quality board.

Are you all using those chips/cards for low power/battery only applications though? That seems to be where the ESP32-S2 chip would shine (single core, no bluetooth, deep sleep, etc.).

No, but have tried the settings I suggested?

Yes, didn’t work.

That’s not an error message.

Same error as before…“Could not find the package…” yada yada

Googling that error finds this (and many others) Error when building on Linux aarch64 · Issue #14 · esp-rs/esp-idf-sys · GitHub

Try running esphome on a different architecture, like a pc.

Thanks. I came across posts like that too when I did my own research. Maybe I’ll eventually want to hack my way to a solution to get a board to work before it’s officially supported, but my initial impression of ESPHome was that it was more plug and play for DIY sensors.

Like I said before, I’ll just pay closer attention to which boards I get from now on.