Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xinyuan-lilygo/lilygo-t-eth-series


https://github.com/xinyuan-lilygo/lilygo-t-eth-series

arduino esp32 eth poe

Last synced: 7 days ago
JSON representation

Awesome Lists containing this project

README

        

๐ŸŒŸLilyGO T-ETH-Series

[![Build-T-INTERNET-COM](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-INTERNET-COM.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-INTERNET-COM.yml)
[![Build-T-ETH-POE](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-POE.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-POE.yml)
[![Build-T-ETH-POE-PRO](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-POE-PRO.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-POE-PRO.yml)
[![Build-T-ETH-Lite-ESP32-S3](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32-S3.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32-S3.yml)
[![Build-T-ETH-Lite-ESP32](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32.yml)
[![Build-T-ETH-ELite-ESP32-S3](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-ELite-ESP32-S3.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-ELite-ESP32-S3.yml)

[![Build-ArduinoIDE-T-INTERNET-COM](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-INTERNET-COM.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-INTERNET-COM.yml)
[![Build-ArduinoIDE-T-ETH-POE](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-POE.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-POE.yml)
[![Build-ArduinoIDE-T-ETH-POE-PRO](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-POE-PRO.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-POE-PRO.yml)
[![Build-ArduinoIDE-T-ETH-Lite-ESP32S3](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-Lite-ESP32S3.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-Lite-ESP32S3.yml)
[![Build-T-ETH-Lite-ESP32](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-T-ETH-Lite-ESP32.yml)
[![Build-ArduinoIDE-T-ETH-ELite-ESP32S3](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-ELite-ESP32S3.yml/badge.svg)](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/actions/workflows/Build-ArduinoIDE-T-ETH-ELite-ESP32S3.yml)

## News:

* For esp-arduino versions lower than [3.0.0](https://github.com/espressif/arduino-esp32/releases/tag/3.0.0-rc1), use ETHClass2 as the driver. For versions higher than [2.x](https://github.com/espressif/arduino-esp32/releases/tag/2.0.15), esp-arduino native ETHClass will be used. It is recommended to use arduino-esp 3.0.0 and above

## Product:

| Product(PinMap) | SOC | Flash | PSRAM | Ethernet | POE | SDCard |
| ------------------------------------- | ------------------------------------- | ----- | --------- | -------- | -------- | ------ |
| [T-Internet-POE][1] | ESP32-WROOM-32 | 4MB | โŒ | LAN8720 | โœ… | โœ… |
| [T-POE-PRO][2] | ESP32-WROVER-E | 16MB | 8MB(QSPI) | LAN8720 | โœ… | โŒ |
| [T-INTER-COM][3] | ESP32-WROVER-E | 16MB | 8MB(QSPI) | LAN8720 | โŒ | โœ… |
| [T-ETH-Lite-ESP32][4] | ESP32-WROVER-E | 16MB | 8MB(QSPI) | RTL8201 | (Option) | โœ… |
| [T-ETH-Lite-ESP32S3][5] | ESP32-S3-WROOM-1 | 16MB | 8MB(OPI) | W5500 | (Option) | โœ… |
| [T-ETH-Lite-POE-Shield][6] | POE Shield (IEEE802.3 af/Class 0) | | | | | |
| [T-ETH-Lite-ESP32S3-Camera-Shield][6] | Camera Shield (Support OV2640/OV5640) | | | | | |
| [T-ETH-ELite-ESP32S3][7] | ESP32-S3-WROOM-1 | 16MB | 8MB(OPI) | W5500 | โœ… | โœ… |

[1]: https://www.lilygo.cc/products/t-internet-poe
[2]: https://www.lilygo.cc/products/t-poe-pro
[3]: https://www.lilygo.cc/products/t-internet-com
[4]: https://www.lilygo.cc/products/t-eth-lite?variant=43120880746677
[5]: https://www.lilygo.cc/products/t-eth-lite?variant=43120880779445
[6]: https://www.lilygo.cc/products/t-eth-lite?variant=43120887038133
[7]: https://www.lilygo.cc/products

## Examples

```bash
examples/
โ”œโ”€โ”€ UnitTestExample # Board function example
โ”œโ”€โ”€ ETHOTA # Upgrade firmware via Ethernet
โ”œโ”€โ”€ HelloServer # WebServer using ETH
โ”œโ”€โ”€ SDWebServer # SDWebServer using ETH
โ”œโ”€โ”€ MQTTClient # MQTT Example
โ”œโ”€โ”€ ESPMQTTSClient # MQTTS Example
โ”œโ”€โ”€ StaticIPAddress # Example of static IP address
โ”œโ”€โ”€ UDPClientReceiver # UDP Receiver example
โ”œโ”€โ”€ UDPClientSender # UDP Sender example
โ”œโ”€โ”€ UDPClientReceiverDirectPC # UDP Receiver, Directly connect to PC using network cable
โ”œโ”€โ”€ UDPClientSenderDirectPC # UDP Sender, Directly connect to PC using network cable
โ”œโ”€โ”€ AsyncUDPClient # Async UDP Client
โ”œโ”€โ”€ AsyncUDPServer # Async UDP Sender
โ”œโ”€โ”€ WebSocketClient # WebSocket Client
โ”œโ”€โ”€ WebSocketServer # WebSocket Server
โ”œโ”€โ”€ UnitTestExample # Hardware test example
โ”œโ”€โ”€ TCPClient # TCP Client
โ”œโ”€โ”€ TCPServer # TCP Server
โ”œโ”€โ”€ RS485_Master # RS485 Sender (ETH-Pro only)
โ”œโ”€โ”€ RS485_Slave # RS485 Receiver (ETH-Pro only)
โ”œโ”€โ”€ RS485_ModBUS # RS485 Modbus Master (ETH-Pro only)
โ”œโ”€โ”€ TFT_ILI9341_Shield # Screen interface example (ETH-Pro/ETH-Lite-ESP32 only)
โ”œโ”€โ”€ CameraShield # Camera shield example (ETH-Lite-ESP32S3 only)
โ”œโ”€โ”€ LoRaShield # LoRa Shield Sender Example (ETH-PRO only)
โ”œโ”€โ”€ SPIExample # SPI initialization example (ETH-PRO only)
โ”œโ”€โ”€ SPI_Wire_DevicesExample # SPI bus & Wire sharing example (ETH-PRO only)
โ”œโ”€โ”€ SharingSPIBus # SPI bus sharing example
โ”œโ”€โ”€ InternetComTest # T-INTER-COM example (T-INTER-COM only)
โ”œโ”€โ”€ WireExample # Wire initialization example
โ”œโ”€โ”€ USB_Camera # USB camera example (Only ESP32S3)
โ”œโ”€โ”€ I2C_HP303BSensor # External I2C Temperature and Humidity Sensor Example
โ”œโ”€โ”€ I2C_BME280Sensor # External I2C Temperature and Humidity Sensor Example
โ”œโ”€โ”€ TinyGPS_Example # GPS Module example
โ”œโ”€โ”€ PCIE_Modem_ATDebug # PCIE Modem example
โ”œโ”€โ”€ ADC_Button # ADC button example
โ””โ”€โ”€ T-ETH-ELite-Shield # T-ETH-Elite Dedicated examples
โ”œโ”€โ”€ LoRa_Receive_Interrupt # T-ETH-Elite Dedicated examples - LoRa Shield example
โ”œโ”€โ”€ LoRa_Transmit_Interrupt # T-ETH-Elite Dedicated examples - LoRa Shield example
โ”œโ”€โ”€ T-ETH-Elite-Gateway-Shield # T-ETH-Elite Dedicated examples - Gateway Shield test example
โ”œโ”€โ”€ T-ETH-Elite-LTE-Shield # T-ETH-Elite Dedicated examples - LTE Shield test example
โ””โ”€โ”€ T-ETH-Elite-LoRa-Shield # T-ETH-Elite Dedicated examples - LoRa Shield factory example
```

| Examples | [T-Internet-POE][1] | [T-POE-PRO][2] | [T-INTER-COM][3] | [T-ETH-Lite-ESP32][4] | [T-ETH-Lite-ESP32S3][5] | [T-ETH-ELite-ESP32S3][5] |
| ------------------------- | ------------------- | ----------------- | ---------------- | --------------------- | ----------------------- | ------------------------ |
| UnitTestExample | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| ETHOTA | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| HelloServer | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| SDWebServer | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| MQTTClient | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| ESPMQTTSClient | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| StaticIPAddress | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| UDPClientReceiver | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| UDPClientSender | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| UDPClientReceiverDirectPC | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| UDPClientSenderDirectPC | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| AsyncUDPClient | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| AsyncUDPServer | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| WebSocketClient | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| WebSocketServer | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| TCPClient | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| TCPServer | โœ… | โœ… | โœ… | โœ… | โœ… | โœ… |
| InternetComTest | โŒ (Can't run) | โŒ (Can't run) | โœ… | โŒ (Can't run) | โŒ (Can't run) | โŒ (Can't run) |
| RS485_Master | โŒ (Not adapted) | โœ… | โŒ (Can't run) | โŒ (Not adapted) | โŒ (Not adapted) | โŒ (Not adapted) |
| RS485_Slave | โŒ (Not adapted) | โœ… | โŒ (Can't run) | โŒ (Not adapted) | โŒ (Not adapted) | โŒ (Not adapted) |
| RS485_ModBUS | โŒ (Not adapted) | โœ… | โŒ (Can't run) | โŒ (Not adapted) | โŒ (Not adapted) | โŒ (Not adapted) |
| TFT_ILI9341_Shield | โŒ (Can't run) | โœ… | โŒ (Can't run) | โœ… | โŒ (Not adapted) | โŒ (Not adapted) |
| CameraShield | โŒ (Can't run) | โŒ (Can't run) | โŒ (Can't run) | โŒ (Can't run) | โœ… | โœ… |
| LoRaShield | โœ… | โŒ (Not adapted) | โŒ (Can't run) | โŒ (Not adapted) | โŒ (Not adapted) | โŒ (Not adapted) |
| SPIExample | โœ… | โœ… | โŒ (Can't run) | โœ… | โœ… | โœ… |
| SPI_Wire_DevicesExample | โœ… | โŒ (Not adapted) | โŒ (Can't run) | โœ… | โŒ (Not adapted) | โŒ (Not adapted) |
| SharingSPIBus | โœ… | โŒ (Not adapted) | โŒ (Can't run) | โŒ (Not adapted) | โŒ (Not adapted) | โŒ (Not adapted) |
| WireExample | โœ… | โœ… | โŒ (Can't run) | โœ… | โœ… | โœ… |
| USB_Camera | โŒ (Can't run) | โŒ (Can't run) | โŒ (Can't run) | โŒ (Can't run) | โœ… | โœ… |
| I2C_HP303BSensor | โœ… | โœ… | โŒ (Can't run) | โœ… | โœ… | โœ… |
| TinyGPS_Example | โœ… | โœ… | โŒ (Can't run) | โœ… | โœ… | โœ… |
| PCIE_Modem_ATDebug | โŒ (Not adapted) | โŒ (Not adapted) | โœ… | โŒ (Not adapted) | โœ… | โœ… |
| ADC_Button | โœ… | โœ… | โŒ (Can't run) | โœ… | โœ… | โœ… |

## 1๏ธโƒฃ PlatformIO Quick Start

1. Install [Visual Studio Code](https://code.visualstudio.com/) and [Python](https://www.python.org/)
2. Search for the `PlatformIO` plugin in the `VisualStudioCode` extension and install it.
3. After the installation is complete, you need to restart `VisualStudioCode`
4. After restarting `VisualStudioCode`, select `File` in the upper left corner of `VisualStudioCode` -> `Open Folder` -> select the `LilyGO T-ETH-Series` directory
5. Wait for the installation of third-party dependent libraries to complete
6. Click on the `platformio.ini` file, and in the `platformio` column
7. First change the default_envs to the board used
8. Uncomment one of the lines src_dir = xxxx to make sure only one line works
9. Click the (โœ”) symbol in the lower left corner to compile
10. Connect the board to the computer USB (If there is no onboard downloader, USB2TTL must be connected)
11. Click (โ†’) to upload firmware
12. Click (plug symbol) to monitor serial output
13. Since **T-LITE-ESP32** uses **IO0** as the clock input, the default working level of **DTR** is high level, so after the download is completed, you need to remove the connection between **DTR** and **IO0**, so that ETH will work, otherwise the initialization will fail
14. For **T-LITE-ESP32**, when uploading a sketch, you need to press and hold the *BOOT* button to run the upload

## 2๏ธโƒฃ Arduino IDE Quick Start
* It is recommended to use platformio without cumbersome steps
1. Install [Arduino IDE](https://www.arduino.cc/en/software)
2. Install [Arduino ESP32](https://docs.espressif.com/projects/arduino-esp32/en/latest/)
3. Copy everything from this repository [lib folder](./lib/) to Arduino library folder (e.g. C:\Users\YourName\Documents\Arduino\libraries)
4. Open ArduinoIDE -> Tools
![ArduinoIDE](image/ArduinoIDE.jpg)
5. `T-ETH-Elite` options are the same as `T-ETH-Lite`, but you need to adjust `USB CDC On Boot` to `Enabled`
5. Open the [examples](./examples/),such as [examples/UnitTestExample](./examples/UnitTestExample)
6. Switch to the [utilities.h](./examples/UnitTestExample/utilities.h) file, at the top of the sketch, uncomment the definition of the board name you use , such as **LILYGO_T_INTERNET_POE**
7. Connect external [USB2TTL](https://www.amazon.com/usb-ttl-adapter/s?k=usb+to+ttl+adapter)๏ผŒsuch as **CP2102,CP2104,CH340X**
* Has an onboard downloader(**T-POE-Pro**)
If the board has a USB-C, plug it directly into the USB-C, select the corresponding port, and upload.
* no onboard downloader(**T-ETH-Lite-ESP32/T-ETH-Lite-ESP32S3/T-Internet-POE**)
Additional USB2TTL is required to connect the board with USB2TTL
* Connection example:

| USB2TTL(Has DTR,RTS) | USB2TTL(NO DTR,RTS) | T-ETH-Series |
| -------------------- | ------------------- | ------------ |
| 5V | 5V | 5V IN |
| GND | GND | GND |
| RX | RX | TXD |
| TX | TX | RXD |
| RTS | | RST |
| DTR | | IO0 |

* Connection diagram

![connect](./image/connect.jpg)

* **Note that for boards that are not connected to DTR or RTS, the board must be put into download mode before uploading the sketch, otherwise the sketch cannot be uploaded.How to enter download mode, please see FAQ**
* **ๆณจๆ„๏ผŒๅฏนไบŽๆฒกๆœ‰่ฟžๆŽฅๅˆฐDTR,RTS ็š„ๆฟๅญ๏ผŒไธŠไผ ็จ‹ๅบไน‹ๅ‰๏ผŒๅฟ…้กปๅ…ˆๅฐ†ๆฟๅญ็ฝฎๅ…ฅไธ‹่ฝฝๆจกๅผ,ๅฆๅˆ™ๆ— ๆณ•ไธŠไผ ็จ‹ๅบ๏ผŒๅฆ‚ไฝ•่ฟ›ๅ…ฅไธ‹่ฝฝๆจกๅผ๏ผŒ่ฏท็œ‹FAQ**

8. Select the corresponding port and click Upload
9. Since **T-LITE-ESP32** uses **IO0** as the clock input, the default working level of **DTR** is high level, so after the download is completed, you need to remove the connection between **DTR** and **IO0**, so that ETH will work, otherwise the initialization will fail
10. **T-LITE-ESP32** Since the `PHYAD` address is selected as 0, the yellow LINK light will not light up, which does not affect the use.

5๏ธโƒฃ ESP32 basic examples

* [BLE Examples](https://github.com/espressif/arduino-esp32/tree/master/libraries/BLE)
* [WiFi Examples](https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi)
* [SPIFFS Examples](https://github.com/espressif/arduino-esp32/tree/master/libraries/SPIFFS)
* [FFat Examples](https://github.com/espressif/arduino-esp32/tree/master/libraries/FFat)
* For more examples of esp32 chip functions, please refer to [arduino-esp32-libraries](https://github.com/espressif/arduino-esp32/tree/master/libraries)

6๏ธโƒฃ FAQ

1. Unable to upload sketch,Please enter the upload mode manually.
1. Connect the board via the USB cable or connect USB2TTL
2. Press and hold the BOOT button , While still pressing the BOOT button, press RST
3. Release the RST
4. Finally release the BOOT Button(The BOOT button must be released last)
5. Upload sketch

2. Unable to verify flash chip connection
1. Please refer to this [issue #45](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series/issues/45)

## 7๏ธโƒฃ RESOURCE

* [T-ETH-ELite/Lite POE Module datasheet](./datasheet/ETH-POE-DP9900M-5V.pdf)
* [T-ETH-POR POE Module datasheet](./datasheet/ETH-PRO-POE-DP5300-12V.pdf)