How to ESPHome on the WT32-ETH01-EVO (ESP32-C3)

Heyhey ESPHome users,

yesterday I received a ETH01-EVO and soldered the POE hat.
Unfortunateley I´ve no luck, programming the device at all.

Using a TTL flasher, I connected the device as follows:

Here is the pinout:

  • I bridged IO9 to GND to set it to boot/flash mode. Seems to work, as the status LED on the piggypacked ESP32-C3 doesn´t light up, while going on after boot when not bridged
  • Connected 5V and GND to power the ESP
  • Connected TXD0 and RXD0 to RX and TX with the TTL flasher
  • Tried flashing with esptool. first tried ESPHome, then locally with tasmota.
    esptool.py --chip esp32 --port /dev/cu.usbserial-10 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 40m --flash_size detect 0x1000 bootloader_dout_40m.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 tasmota32.bin

Anyone got this running? Ideas, where i went wrong?

Thanks and regards

Jakob

Pretty sure it is IO0 to gnd to put an esp32 into flashmode.

The Davicom DM9051 SPI Ethernet Controller that is on this module is not supported by ESPHome at this stage.

Try changing the chip type in your esptool command to --chip esp32c3

Also, use a tasmota bin file specifically for the C3 chip

Thanks for sharing. Looks like its in progress: Support DM9051 SPI ethernet device by bmork · Pull Request #6861 · esphome/esphome · GitHub

Thanks for sharing. Really helpful, as I wasn’t aware of platform specific builds.
With this I was able to flash tasmota to the WT32-ETH01-EVO:

esptool.py -p /dev/cu.usbserial-10 write_flash 0x0 ~/Downloads/Tasmota/tasmota32c3.factory.bin

Firmware can be found here:
https://ota.tasmota.com/tasmota32/release/tasmota32c3.factory.bin

More about funcionality later :wink:

to enable BOOT mode, connect IO9 to GND. (not IO0)
to use with ESPHome use

1 Like

So to flash, you need GPIO9 to Ground and GPIO8 to 3.3V. GPIO8 is can be tapped from the module board (it doesn’t have a pin on th board).

Does anybody have a template for Tasmota?

Hello everyone, any news on this?

See Tasmota-WT32-ETH01-EVO

Did you ever get this working? If so, what POE adapter are you using to connect this to your network? I haven’t been able to find detailed instructions on the POE daughter board

Hi,

I got a ETH01 EVO + PoE board and it is working fine (so far) with esphome 2025.7.0.
The ethernet configuration for the DM9051 chip can be found here: Ethernet Component — ESPHome

Does anyone have a proper pinout description, especially of the PoE board?

Yes, that’s the version where the support was finally merged. Good to hear that it works for you too.

Don’t have anything for the PoE board, but you can find module pinout and other info here:

Can anyone share the basic yaml to get it working with the POE board attached? I just tried and can’t get mine to come online :frowning:

You can find the information in the official documentation of the ethernet component: Ethernet Component — ESPHome

But here is my (working) YAML:

esp32:
  variant: esp32c3
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

ethernet:
  type: DM9051
  clk_pin: GPIO07
  mosi_pin: GPIO10
  miso_pin: GPIO03
  cs_pin: GPIO09
  interrupt_pin: GPIO08
  reset_pin: GPIO06
  clock_speed: 8MHz

Add this to see some basic network information:

text_sensor:
  - platform: ethernet_info
    ip_address:
      name: IP Address
    dns_address:
      name: DNS Address
    mac_address:
      name: MAC Address

binary_sensor:
  - platform: status
    name: "Status"

Thank you very much. I’ll try it out tonight. Mine looks quite similar probably just missing the additional attributes.

esp32:
  board: esp32-c3-devkitm-1

ethernet:
  type: DM9051
  clk_pin: GPIO07
  mosi_pin: GPIO10
  miso_pin: GPIO03
  cs_pin: GPIO09
  interrupt_pin: GPIO08
  reset_pin: GPIO06
  clock_speed: 8MHz

Most likely the issue is the missing ESP-IDF framework type.
I just noticed following info in the documentation:

DM9051 (SPI, **ESP-IDF only**)

Since Arduino is the default framework (as far as I know), it will use the Arduino framework if you don’t specify otherwise.