How I installed ESPHome on the wt32-eth01

Hi, I would like to show how I installed EspHome on the WT32-ETH01 I bought from Aliexpress, for others to benefit.

I just used the normal Esphome dashboard and was suprised how easy it was.

image

I bought the WT32-ETH01 because I wanted to use ESPhome in combination with Ethernet.
A list of ethernet devices supported by ESPhome is here: Ethernet Component — ESPHome

Why Ethernet and not Wifi?

  • Reliability
  • Long distance possible
  • The signal isn’t as easy disturbed as with wifi (for security applications)
  • Don’t feel comfortable with having a ton of wifi devices in my home (EMF radiation)

Unfortunately the WT32-ETH01 doesn’t have a USB connection, so you need a CH340G Serial Converter USB to TTL converter. I thought this meant I needed to use a special seperate flashtool, but I was able to do it from the Esphome dashboard.

I used this one:

I found this forum post for the pin connections.

Here is another source (german) for the pins.

As the post says, this are the pin connections:

1. Connect your USB->TTL Flasher with your WT32-ETH01 (yes, RX and TX is crossed!!!)

USB->TTL //// WT32-ETH01
GND ------> GND
TX ------> RX0 (not RXD)
RX ------> TX0 (not RXD)
5V ------> 5V

Then only on the WT32-ETH01:
Connect the Pin “IO0” (next to RX0) and “GND” (next to IO0) together.

And only on the USB->TTL Flasher:*
Set the “Jumper” to S1 and 5V and not S1 and 3.3V

Note that it says that RX and TX are crossed and you connect to RX0 and TX0 not RXD and TXD.

So like this:

Zoomed in:

Zoomed in:

I am using MacOS and in terminal I installed the ESPhome Dashboard, so that I could run it locally. My Home Assistant is running on Raspberry Pi0 and this one isn’t capable of running Esphome, too little RAM.

So as it states on Getting Started with ESPHome — ESPHome I used below commands.

# Install dashboard dependencies
pip install tornado esptool
esphome dashboard config/

Then I added a device, chose to skip the wifi step and edited the .yaml to this:

Note: each Ethernet device has its own pinouts as stated here: Ethernet Component — ESPHome

esphome:
  name: wt32
  platform: ESP32
  board: esp-wrover-kit

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO0_IN
  phy_addr: 1
  power_pin: GPIO16


# Enable logging
logger:

# Enable Home Assistant API
api:

After that I chose Install and chose the “connected with this computer” option. Chose one of the serial devices showing up in Google Chrome and I was able to flash it. Note: at first I didn’t succeed, timeout error. I had to disconnect the USB from my Mac and then retry and it succeeded.

After that I removed the GND - IO1 connection jumper wire and added a Ethernet cable and checked my router, it was recognized, like below. Yeeeh.

Schermafbeelding 2021-11-21 om 18.36.23

Can’t tell anything about the reliability yet. But will try it for some projects. I found this:Home Assistant ESPHome Window Monitor . Which is quite an advanced project what I am not going to recreate, however it does report it being a good device.

Found below quote in this thread. Reporting that the selected board esp-wrover-kit isn’t totally suitable as some GPIOs will not match.

EDIT Actually, it does appear that the GPIO from the wt32-01 and the esp-wrover-kit match pretty closely… at least for my purposes. However there’s still some odd behavior; the WT32 module has a pin labeled GPIO1 but it appears to not be connected to any of the pins on the ESP32 module. Likewise, GPIO3 seems to be always high and i can’t seem to control it.

So the esp-wrover-kit will work with ESPHome, but it’s not a proper/complete solution.

8 Likes

Great news!
Looking forward to reliability and stability information after some time.
For exactly the same reasons I am also looking for this type of connection as ESPHome is super to create a “network” of sensors/activity devices… :slight_smile:

I just started looking into these: ESP32-POE-ISO:

The thing i especially liked is the fact it uses POE :grin:

That means I only need one LAN cable, and nothing else :thinking:

I have a couple of these from Aliexpress, work great with ESPHOME, they are double the cost of the ETH01 though

Yes, POE is very convenient. However they are a bit more expensive. I have one Olimex POE in use as well. Also works very well with ESPHome.

Where are GPIO1 and GPIO3 on your module? Mine does not have these pins on the silkscreen and, according to the datasheet, they are described as TXD0 and RXD0. Aren’t they used for the serial logger by default in ESPHome?

Anyway, I have one of these modules in constant use for several months now - no issues so far. I use it to control a bunch of relays for our shades.

I also have a Lilygo T-ETH-POE to read our smart meter, but it’s not yet powered by PoE.

Hi @andyboeh, good to hear that you have good experience with the module.

The quote about the GPIOs not matching with the esp-wrover-kit as a board, is not mine quote. It is from: ESPHome Ethernet connectivity feature request - #80 by famous.bulb which is also added to the message.

I can’t tell you anything about this.

There’s not much more to say: there appear to be a few different versions of the wt32-eth01 module. The silk screen on the module is unreliable.

I am using the module in more projects and am not the only person that’s been screwed over by either the silk screen and or easyEDA footprints not matching up.

I don’t have the original source anymore, but this is a screenshot of the translated page that helped me correct a lot of the mis-matched pins that I had.

If in doubt, you can always flash a very basic tasmota / ESP home configuration and set each pin to GPIO and then systematically turn each pin on/off until you find it’s location with a multimeter. Tedious, but works well… assuming you already know which pins are required for flashing :confused:

Obviously, I’ve got different boards. The pinout on all of them (I’ve ordered from three different sellers, received the same board each time) matches the datasheet at https://files.seeedstudio.com/products/102991455/WT32-ETH01_datasheet_V1.1-%20en.pdf.
The difference are swapped IO5 <-> IO35 pins and I can confirm that I have IO35 at RXD. The silkscreen markings on my modules are all correct, it reads WT32-ETH01 V1.2 on the bottom.

1 Like