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 the ESPHome Command Line — ESPHome I used below commands.

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

Note these are only the dependencies for the dashboard, you have to have Esphome installed via terminal as well as described on Installing ESPHome Manually — ESPHome

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.

26 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:

1 Like

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.

1 Like

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.

1 Like

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.

1 Like

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:

2 Likes

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.

2 Likes

What is the good power supply for wt32-eth01 after i flash it with esphome? Just directly connect 5V from USB cable?

I want to use this board together with CAN on MCP2515. Can anybody tell me which Pins I need to take for the SPI Bus connection to the MCP2515?

@klim123123 yes USB cable is fine.

I was following the instructions given above but now esphome does not find the device now. I can also not connect via serial connection anymore. On my ethernet networt I can see that the device is there and has an IP address assigned.
Any idea how to fix this?

1 Like

I had exactly the same problem for last 3 hours. I tried everything.
Only way to fix this, is to flash it again.

I still can’t run it using 5V. It’s booting only with 3.3V.
p.s. ok i found problem with my usb cable. voltage dropped to 3.7V. i changed cable and it’s working now.

1 Like

Thanks for the hint with the USB to TTL converter. I have tried it several times with a CP2102, but it didn’t work…

Got my ethernet up and working on WT32-ETH01, but I can’t do OTA (OT wire?) ESPhome updates without the peer resetting. This is somewhat disconcerting as I imagined ethernet would be more reliable than wifi. Anyone else have this problem? Is there a fix?

no problems here with ota updates via esphome on homeassistant (and using one wired wt32-eth01)…

I don’t experience problems with over the network updates. What do you mean by without resetting the peer?

It stops uploading between 20% and 80% and says “connection reset by peer”.

Thank you for this tutorial.

I’ve fallen at the first hurdle!

Terminal is giving me this:

Successfully installed bitstring-3.1.9 cffi-1.15.0 cryptography-36.0.1 ecdsa-0.17.0 esptool-3.2 pycparser-2.21 pyserial-3.5 reedsolo-1.5.4 six-1.16.0 tornado-6.1
WARNING: You are using pip version 19.2.3, however version 22.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
asht@MacBook-Pro ~ % esphome dashboard config/
zsh: command not found: esphome

Installation seems to be successful.
Why would the esphome command not be found?

1 Like