Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ethernet-lan.md #212

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion docs/features/ethernet-lan.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ WLED controllers are usually integrated into local network wirelessly (via WiFi)
- WLED Software must be compiled with Ethernet support included. Web-based WLED installer have special option for this. Be sure you use right WLED version with Ethernet support.
- Ethernet requires many GPIOs (see table below). You cannot use them for other purposes at the same time.
- If you switch from WiFi to Ethernet and you use dynamic (not static) IP addresses via DHCP (that is true in most cases), your WiFi/LAN Router will most likely grant new IP address to the WLED Controller. If you don’t delete WiFi credentials, your Controller will be accessible via WiFi and Ethernet at the same time by two different IP addresses.
- Ethernet standard requires that the ethernet lines including shield are isolated form the electronics and for EMC reason ceramic capacitor (rated for 2 kV) is connected between Ethernet shield and electronics ground. Unfortunately, many simple/cheap ethernet adapters do not fulfill these requirements. Be careful using them.
- Ethernet standard requires that the ethernet lines including shield are isolated form the electronics and for EMC reasons a ceramic capacitor (rated for 2 kV) should be connected between Ethernet shield and electronics ground. Unfortunately, many simple/cheap ethernet adapters do not fulfill these requirements. Be careful using them.
- Most of Ethernet based controllers/ adapters are based on LAN87xx IC. It requires proper reset line. Unfortunately, some simple/cheap adapters do not implement this line correctly that might lead to instabilities especially during boot up.
- ESP32 can be configured to provide the 50MHz clock for the PHY on GPIO0, GPIO16 or GPIO17. For operation with LAN87xx IC, use GPIO17. If you want to use GPIO0 with LAN87xx, you will need to add an inverter between GPIO0 and the LAN87xx CLKIN pin.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information is clearly stated in Espressif documentation and a reference to it should be added here if you want this text to be included.
https://docs.espressif.com/projects/esp-idf/en/v5.1/esp32/hw-reference/esp32/get-started-ethernet-kit.html#rmii-clock-sourced-internally-from-esp32-s-apll

- If you connect Ethernet adapter via wires, keep them as short as possible. The communication between ESP32 controller and the adapter is on high speed of 50 MHz that requires proper connection to avoid instabilities.

## Ethernet setup
Expand All @@ -39,5 +40,22 @@ ESP32Deux | | 17, 18, 23
[WESP32](https://wesp32.com/) | | 0, 16, 17
[WT32-ETH01](https://www.seeedstudio.com/Ethernet-module-based-on-ESP32-series-WT32-ETH01-p-4736.html) | | 0, 16, 18, 23

## Defining GPIO for a custom PCBA
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misleading or incorrectly worded heading.
IMO it should read: Creating custom/new Ethernet board option in WLED


The following PHY are supported by WLED according to the header ETH.h:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ETH.h is not part of WLED and WLED does not support anything but LAN8720A and IP101.

[LAN8720](https://www.microchip.com/en-us/product/lan8720a)
[TLK110](https://www.ti.com/product/TLK110)
[IP101](https://www.lcsc.com/datasheet/lcsc_datasheet_2206021645_WIZNET-IP101GRI_C910373.pdf)

The source code also mentions ETH_PHY_MAX but this is not enough information to link to a specific part

If you want to add an additional board type including custom GPIO allocations to the UI, you will need to modify the following source files before compiling WLED using default_envs = esp32_eth in platformio.ini:
| File | Line (approx) | Description |
|---|---|---|
const.h | 288 | increment WLED_NUM_ETH_TYPES
const.h | 301 | add a #define for your board with the next available index after the list of existing boards
network.cpp | 119 | add an aditional initialisation for your board type
settings_wifi.htm | 221 | add your board name and enum index


note that you will need to recompile the html, see [Changing web UI for instruction](https://github.com/Aircoookie/WLED/wiki/Add-own-functionality/a30b2f3004c9aafc0639138afbff73b4efe4a766)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary in 0.15 as it is done automatically if the environment is set up correctly.