Summary of differences between Ethernet and non-Ethernet builds - analysis, no code changes#5432
Summary of differences between Ethernet and non-Ethernet builds - analysis, no code changes#5432
Conversation
…e-selected via WLED_ETH_DEFAULT Co-authored-by: netmindz <442066+netmindz@users.noreply.github.com>
This assessment was wrong.
Ask a human ;-) The other differences between ethernet builds and normal (wifi-first) builds can be found by searching for
In summary: yes an ethernet build will run on non-ethernet esp32, but some features may behave unexpected. A non-ethernet build on ethernet boards may run, or may crash. |
|
@copilot please revise your proposal based on the new information provided. Do not change code in this PR. Just provide a summary of differences, based on your source code review and other information available to you. Also check the official espressif documentation for recommendations regarding custom firmware with Wi-Fi and ethernet on esp32. |
Co-authored-by: softhack007 <91616163+softhack007@users.noreply.github.com>
Reverted the code change in 37e4e48. The PR description now contains a comprehensive summary of all 15 categories of differences between ethernet-enabled and non-ethernet builds, based on reviewing every |
Per reviewer feedback, the original code change has been reverted — the
DEFAULT_LED_PIN = 4override whenWLED_USE_ETHERNETis defined is an intentional safety measure. This PR now contains no code changes, only a summary of differences based on source code review.Summary of Differences: Ethernet vs Non-Ethernet Builds
1. Default LED Pin (
const.h:660)DEFAULT_LED_PIN = 4(GPIO4 — safe for all known ethernet boards)DEFAULT_LED_PIN = 16(GPIO16 — standard ESP32 default)ETH_CLOCK_GPIO16_OUT). A fresh install with pin 16 on these boards causes crashes.2. E1.31/Art-Net Universe Count (
const.h:555)E131_MAX_UNIVERSE_COUNT = 20E131_MAX_UNIVERSE_COUNT = 12E131_MAX_UNIVERSE_COUNT = 93. SPI Bus for APA102/WS2801 LEDs (
bus_wrapper.h:307,324)4. Network Identity & Routing (
Network.cpp)5. Ethernet Board Configuration & Pin Reservation (
network.cpp,wled.h)ethernetTypeglobal,initEthernet()allocates up to 10 pins (6 non-configurable RMII pins + MDC, MDIO, power, clock).6. WiFi Behavior on Ethernet Connect (
network.cpp:413)7. Settings UI (
xml.cpp:279,set.cpp:148)8. GPIO Reservation in Settings (
xml.cpp:134)9. Configuration Persistence (
cfg.cpp:133,913)eth.typeandeth.pin[]incfg.json.10. Debug Output Routing (
net_debug.cpp:12,33)ETH.hostByName()for DNS resolution of debug host.WiFi.hostByName().11. Audio Reactive aPLL Conflict (
usermods/audioreactive/audio_source.h:234)12. Usermod Behavior (quinled-an-penta)
13. Platform Restrictions
14. ESP-NOW Interactions (#5210, #4703)
ETH_CLOCK_GPIO0_OUT,ETH_CLOCK_GPIO16_OUT, orETH_CLOCK_GPIO17_OUTmay crash when ESP-NOW is enabled.15. Flash Space
Espressif ESP-IDF Recommendations
Per Espressif documentation, the ESP32 EMAC uses a dedicated RMII interface with fixed pins that cannot be remapped. WiFi and Ethernet can coexist but share some hardware resources (notably the aPLL clock). The recommendation is to configure the PHY and clock mode correctly for the specific board hardware.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.