examples/ethernet/basic/README.md
| Supported Targets | ESP32 | ESP32-P4 |
|---|
(See the README.md file in the upper level 'examples' directory for more information about examples.)
This example demonstrates basic usage of internal EMAC and Ethernet driver together with esp_netif. The workflow of the example is as follows:
esp_netifIf you have a new simple Ethernet application to go (for example, connect to IoT cloud via Ethernet), try this as a basic template, then add your own code.
[!TIP] For initialization of a wider range of Ethernet PHY chips, including SPI Ethernet modules and for advanced Ethernet configuration options, please use Component for Ethernet Initialization.
To run this example, it's recommended that you have an official Espressif Ethernet capable development board - either ESP32-Ethernet-Kit or ESP32-P4-Function-EV-Board. This example should also work for 3rd party ESP32 board as long as it's integrated with a IEEE 802.3 compliant Ethernet PHY chip and with the default RMII dataplane GPIO configuration.
[!NOTE]
Generic 802.3 PHYbasic functionality should always work for PHY compliant with IEEE 802.3. However, some specific features might be limited. A typical example is loopback functionality, where certain PHYs may require setting a specific speed mode to operate correctly. If this is a case, use driver tailored to that specific chip.
This example uses the default RMII GPIO configuration as defined by ETH_ESP32_EMAC_DEFAULT_CONFIG for the specific ESP32 chip (ESP32, ESP32P4, etc.).
idf.py menuconfig
See common configurations for Ethernet examples from upper level.
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py -p PORT build flash monitor
(Replace PORT with the name of the serial port to use.)
(To exit the serial monitor, type Ctrl-].)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
I (394) eth_example: Ethernet Started
I (3934) eth_example: Ethernet Link Up
I (3934) eth_example: Ethernet HW Addr 30:ae:a4:c6:87:5b
I (5864) esp_netif_handlers: eth ip: 192.168.2.151, mask: 255.255.255.0, gw: 192.168.2.2
I (5864) eth_example: Ethernet Got IP Address
I (5864) eth_example: ~~~~~~~~~~~
I (5864) eth_example: ETHIP:192.168.2.151
I (5874) eth_example: ETHMASK:255.255.255.0
I (5874) eth_example: ETHGW:192.168.2.2
I (5884) eth_example: ~~~~~~~~~~~
Now you can ping your ESP32 in the terminal by entering ping 192.168.2.151 (it depends on the actual IP address you get).
See common troubleshooting for Ethernet examples from upper level.
(For any technical queries, please open an issue on GitHub. We will get back to you as soon as possible.)