-
Notifications
You must be signed in to change notification settings - Fork 429
WT32 ETH01
The firmware supports the WT32-ETH01 board, which uses a wired Ethernet (LAN8720) uplink instead of WiFi STA. In this mode the ESP32 receives its upstream connection via the RJ45 Ethernet port and provides a WiFi AP for clients.
If you are looking for a plain ESP32 Ethernet AP (Layer 2 bridge), check out the esp32_eth_wifi_bridge. There is also "reverse" version, the esp32_ethernet_router with WiFi STA as uplink (Internet) and Ethernet as downlink (LAN).
The WT32-ETH01 is an ESP32-based board with an integrated LAN8720 Ethernet PHY:
| Component | Details |
|---|---|
| Chip | ESP32 with integrated Ethernet MAC (EMAC) |
| PHY | LAN8720 Ethernet PHY |
| PHY Power | GPIO 16 (active high) |
| MDC | GPIO 23 |
| MDIO | GPIO 18 |
| PHY Address | 1 |
Note: GPIO 0 is used by the Ethernet clock on this board, so the BOOT button factory reset is not available. Use the factory_reset CLI command or esptool.py erase_flash instead.
The Ethernet variant requires an additional sdkconfig defaults file:
idf.py -B build_eth -D 'SDKCONFIG_DEFAULTS=sdkconfig.defaults;sdkconfig.defaults.wt32_eth01' buildTo flash and monitor:
idf.py -B build_eth -p /dev/ttyUSB0 flash monitorThe multi-target build script also builds the ETH variant automatically:
./build_all_targets.shesptool.py --chip esp32 \
--before default_reset --after hard_reset write_flash \
-z --flash_mode dio --flash_freq 40m --flash_size detect \
0x1000 firmware_wt32_eth01/bootloader.bin \
0x8000 firmware_wt32_eth01/partition-table.bin \
0x10000 firmware_wt32_eth01/esp32_nat_router.binAfter flashing, the WT32-ETH01 will:
- Create an open WiFi AP with SSID "ESP32_NAT_Router"
- Wait for Ethernet link on the RJ45 port
- Obtain an IP address via DHCP on the Ethernet interface (or use static IP if configured)
Connect to the AP and open http://192.168.4.1 to configure.
- The Getting Started (/setup) and WiFi Scan (/scan) pages are removed
- The Configuration page does not show Station Settings (no upstream WiFi to configure)
- The Configuration page adds an AP Channel field (0 = auto, 1-13 = fixed) since the AP channel is not constrained by an upstream WiFi connection
- Port mappings show "ETH (Ethernet)" instead of "STA (WiFi)" as the interface option
- The status page shows "Ethernet Connected/Disconnected" instead of WiFi signal strength
| Command | WiFi Build | ETH Build |
|---|---|---|
set_sta |
Available | Not available |
set_sta_mac / set_mac
|
Available | Not available |
scan |
Available | Not available |
set_ap_mac |
Available | Available |
set_ap_channel |
Not available | Available (0=auto, 1-13) |
All other commands work identically: set_ap, set_sta_static (for ETH static IP), portmap, dhcp_reserve, acl, pcap, set_vpn, remote_console, set_led_gpio, set_ttl, set_hostname, etc.
Since the Ethernet uplink doesn't constrain the WiFi channel (unlike STA mode where the AP must use the same channel as the upstream network), you can explicitly set the AP WiFi channel:
set_ap_channel 6 # Use channel 6
set_ap_channel 0 # Auto-select (default)
set_ap_channel # Show current setting
Changes require a restart.
To use a static IP on the Ethernet uplink instead of DHCP:
set_sta_static 192.168.1.100 255.255.255.0 192.168.1.1
To revert to DHCP:
set_sta_static dhcp
Changes require a restart.
All major features work with the Ethernet variant:
| Feature | Status |
|---|---|
| NAT Routing | ✅ |
| WireGuard VPN | ✅ |
| DHCP Reservations | ✅ |
| Port Forwarding | ✅ (interface shows as "ETH") |
| Firewall (ACL) | ✅ |
| PCAP Capture | ✅ |
| Remote Console | ✅ |
| MCP Bridge | ✅ |
| Web Interface | ✅ (without /setup and /scan pages) |
| LED Status | ✅ |
| BOOT Button Reset | ❌ (GPIO 0 used by ETH clock) |
| WiFi Scan | ❌ (no WiFi STA) |
| WPA2-Enterprise | ❌ (no WiFi STA) |
The default pin configuration matches the WT32-ETH01 board. If you use a different board with a LAN8720 PHY, adjust the pins via idf.py menuconfig under NAT Router Uplink, or edit sdkconfig.defaults.wt32_eth01:
CONFIG_ETH_UPLINK=y
CONFIG_ETH_MDC_GPIO=23
CONFIG_ETH_MDIO_GPIO=18
CONFIG_ETH_PHY_ADDR=1
CONFIG_ETH_PHY_POWER_GPIO=16
Set CONFIG_ETH_PHY_POWER_GPIO to -1 if your board does not use a power control GPIO for the PHY.