TEP DOWNLOAD CENTER

Project Files of LAN8720 Ethernet Module Library for Proteus: ESP32 Wired Ethernet

Libraries Code Projects Simulation
tep://download-terminal lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip ZIP archiveV1.0Verified0 downloads Free
LAN8720 Ethernet Module Library for Proteus: the module on the LAN with the ESP32 page on the phone and the ETH events in the monitor
Proteus library · File 1 of 1

LAN8720 Ethernet Module Library for Proteus V1.0

LAN8720 Ethernet Module Library for Proteus V1.0 comes as a ZIP archive of 162 files (2.4 MB, 5.2 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library, compiled HEX firmware and source code.

  • LIBProteus library
  • DLLProteus model
  • DSNProteus simulation
  • INOArduino sketch
  • LIBArduino library
  • HEXHEX firmware
  • SRCSource code

Description

LAN8720-Ethernet-Module-Library-for-Proteus-v1.0.zip with the LAN8720 Ethernet module in Proteus (the Microchip LAN8720A 10/100 PHY on the ESP32's RMII - TX_EN, TX0, TX1, RX0, RX1, CRS_DV, the 50 MHz clock into GPIO0 - and MDC / MDIO for the ESP32 sketch's ETH library: ETH.begin(), DHCP and the ETH events; an RJ45 cable to a virtual router, the LINK / ACT, 100M and PWR LEDs and a phone panel; TEPLAN8720.LIB and TEPNET.DLL), our ESP32-DevKitC V4 (TEPESP32DEVKITC.LIB), our Laptop and Mobile WiFi Monitors (TEPLAPTOP.LIB, TEPMOBILE.LIB), the ETH events demo project with its HEX file, the sketch, the TEP Boards for Proteus add-on 1.14.0 and a README.

Read LAN8720 Ethernet Module Library for Proteus: ESP32 Wired Ethernet

File Structure

lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip162 files · 77 folders · 5.2 MB unpacked
LAN8720-Ethernet-Module-TEP-v1.0/162 files · 5.2 MB
Arduino Code/153 files · 609.8 KB
LAN8720_ETH_Events/1 file · 7.5 KB
INO LAN8720_ETH_Events.inoArduino sketch 7.5 KB
TEP Boards for Proteus/152 files · 602.3 KB
hardware/152 files · 602.3 KB
tep/152 files · 602.3 KB
avr/152 files · 602.3 KB
cores/52 files · 257.5 KB
tep32/52 files · 257.5 KB
SRC abi.cppSource file 1.1 KB
SRC Arduino.hSource file 7.7 KB
SRC binary.hSource file 11 KB
SRC CDC.cppSource file 8.5 KB
SRC Client.hSource file 1.5 KB
SRC Esp.cppSource file 1.7 KB
SRC Esp.hSource file 1.8 KB
SRC esp32-hal-ledc.cSource file 5.6 KB
SRC esp32-hal-misc.cppSource file 4.9 KB
SRC esp32-hal-rgb.cSource file 1.1 KB
SRC esp32-hal.hSource file 5.8 KB
SRC HardwareSerial.cppSource file 9.6 KB
SRC HardwareSerial.hSource file 5.9 KB
SRC HardwareSerial0.cppSource file 2.5 KB
SRC HardwareSerial2.cppSource file 1.9 KB
SRC HardwareSerial_private.hSource file 4.4 KB
SRC hooks.cSource file 1.1 KB
SRC IPAddress.cppSource file 3 KB
SRC IPAddress.hSource file 3 KB
SRC main.cppSource file 1.6 KB
FILE newFile 2.5 KB
SRC new.cppSource file 3.5 KB
SRC new.hSource file 149 B
SRC PluggableUSB.cppSource file 2.7 KB
SRC PluggableUSB.hSource file 2 KB
SRC Print.cppSource file 6.4 KB
SRC Print.hSource file 3.2 KB
SRC Printable.hSource file 1.3 KB
SRC Server.hSource file 963 B
SRC Stream.cppSource file 8.6 KB
SRC Stream.hSource file 5.9 KB
SRC tep32_link.cSource file 5.7 KB
SRC tep32_link.hSource file 7.3 KB
SRC tep32_private.hSource file 1.3 KB
SRC Tone.cppSource file 14.7 KB
SRC Udp.hSource file 4.3 KB
SRC USBAPI.hSource file 6.1 KB
SRC USBCore.cppSource file 20.1 KB
SRC USBCore.hSource file 8.2 KB
SRC USBDesc.hSource file 2 KB
SRC WCharacter.hSource file 4.5 KB
SRC WInterrupts.cSource file 311 B
SRC wiring.cSource file 12.2 KB
SRC wiring_analog.cSource file 5.6 KB
SRC wiring_digital.cSource file 3.6 KB
SRC wiring_private.hSource file 2.2 KB
SRC wiring_pulse.cSource file 3.4 KB
SRC wiring_pulse.SSource file 5.9 KB
SRC wiring_shift.cSource file 1.5 KB
SRC WMath.cppSource file 1.6 KB
SRC WString.cppSource file 16.6 KB
SRC WString.hSource file 9.7 KB
libraries/81 files · 201.6 KB
Arduino_LED_Matrix/3 files · 5.8 KB
src/2 files · 5.3 KB
LIB Arduino_LED_Matrix.cppArduino library file 3.1 KB
LIB Arduino_LED_Matrix.hArduino library file 2.2 KB
LIB library.propertiesArduino library file 504 B
EEPROM/12 files · 22.6 KB
examples/8 files · 11 KB
eeprom_clear/1 file · 918 B
INO eeprom_clear.inoArduino sketch 918 B
eeprom_crc/1 file · 1.4 KB
INO eeprom_crc.inoArduino sketch 1.4 KB
eeprom_get/1 file · 1.8 KB
INO eeprom_get.inoArduino sketch 1.8 KB
eeprom_iteration/1 file · 1 KB
INO eeprom_iteration.inoArduino sketch 1 KB
eeprom_put/1 file · 1.3 KB
INO eeprom_put.inoArduino sketch 1.3 KB
eeprom_read/1 file · 1.4 KB
INO eeprom_read.inoArduino sketch 1.4 KB
eeprom_update/1 file · 1.8 KB
INO eeprom_update.inoArduino sketch 1.8 KB
eeprom_write/1 file · 1.4 KB
INO eeprom_write.inoArduino sketch 1.4 KB
src/1 file · 5.7 KB
LIB EEPROM.hArduino library file 5.7 KB
TXT keywords.txtText file 502 B
LIB library.propertiesArduino library file 463 B
MD README.mdReadme 5 KB
ESP32Servo/2 files · 2 KB
src/1 file · 1.6 KB
LIB ESP32Servo.hArduino library file 1.6 KB
LIB library.propertiesArduino library file 368 B
ESP8266HTTPClient/2 files · 872 B
src/1 file · 406 B
LIB ESP8266HTTPClient.hArduino library file 406 B
LIB library.propertiesArduino library file 466 B
ESP8266mDNS/2 files · 848 B
src/1 file · 404 B
LIB ESP8266mDNS.hArduino library file 404 B
LIB library.propertiesArduino library file 444 B
ESP8266WebServer/2 files · 937 B
src/1 file · 460 B
LIB ESP8266WebServer.hArduino library file 460 B
LIB library.propertiesArduino library file 477 B
ESP8266WiFi/2 files · 1.2 KB
src/1 file · 739 B
LIB ESP8266WiFi.hArduino library file 739 B
LIB library.propertiesArduino library file 448 B
ESPmDNS/2 files · 1.6 KB
src/1 file · 1.3 KB
LIB ESPmDNS.hArduino library file 1.3 KB
LIB library.propertiesArduino library file 350 B
ETH/3 files · 10.3 KB
src/2 files · 9.7 KB
LIB ETH.cppArduino library file 5.7 KB
LIB ETH.hArduino library file 4 KB
LIB library.propertiesArduino library file 562 B
HTTPClient/3 files · 11.6 KB
src/2 files · 11.3 KB
LIB HTTPClient.cppArduino library file 7.2 KB
LIB HTTPClient.hArduino library file 4.1 KB
LIB library.propertiesArduino library file 371 B
LEAmDNS/2 files · 868 B
src/1 file · 390 B
LIB LEAmDNS.hArduino library file 390 B
LIB library.propertiesArduino library file 478 B
Preferences/3 files · 10 KB
src/2 files · 9.6 KB
LIB Preferences.cppArduino library file 5.1 KB
LIB Preferences.hArduino library file 4.6 KB
LIB library.propertiesArduino library file 371 B
Servo/2 files · 652 B
src/1 file · 294 B
LIB Servo.hArduino library file 294 B
LIB library.propertiesArduino library file 358 B
SPI/6 files · 23.7 KB
examples/2 files · 6.4 KB
BarometricPressureSensor/1 file · 4.4 KB
INO BarometricPressureSensor.inoArduino sketch 4.4 KB
DigitalPotControl/1 file · 1.9 KB
INO DigitalPotControl.inoArduino sketch 1.9 KB
src/2 files · 16 KB
LIB SPI.cppArduino library file 5.6 KB
LIB SPI.hArduino library file 10.4 KB
TXT keywords.txtText file 835 B
LIB library.propertiesArduino library file 518 B
WebServer/3 files · 13.9 KB
src/2 files · 13.5 KB
LIB WebServer.cppArduino library file 9.1 KB
LIB WebServer.hArduino library file 4.4 KB
LIB library.propertiesArduino library file 439 B
WiFi/15 files · 46.7 KB
src/14 files · 46.2 KB
LIB tep_wifi_link.cppArduino library file 3.9 KB
LIB tep_wifi_link.hArduino library file 1.2 KB
LIB WiFi.cppArduino library file 9.3 KB
LIB WiFi.hArduino library file 7.1 KB
LIB WiFiClient.cppArduino library file 4.4 KB
LIB WiFiClient.hArduino library file 2.4 KB
LIB WiFiClientSecure.hArduino library file 388 B
LIB WiFiEvents.cppArduino library file 5.1 KB
LIB WiFiMulti.hArduino library file 893 B
LIB WiFiServer.cppArduino library file 667 B
LIB WiFiServer.hArduino library file 1.3 KB
LIB WiFiType.hArduino library file 5.5 KB
LIB WiFiUdp.cppArduino library file 2.3 KB
LIB WiFiUdp.hArduino library file 1.8 KB
LIB library.propertiesArduino library file 468 B
WiFiNINA/2 files · 1.4 KB
src/1 file · 882 B
LIB WiFiNINA.hArduino library file 882 B
LIB library.propertiesArduino library file 530 B
WiFiS3/2 files · 1.2 KB
src/1 file · 791 B
LIB WiFiS3.hArduino library file 791 B
LIB library.propertiesArduino library file 487 B
Wire/13 files · 45.5 KB
examples/7 files · 8.5 KB
digital_potentiometer/1 file · 894 B
INO digital_potentiometer.inoArduino sketch 894 B
i2c_scanner/1 file · 2 KB
INO i2c_scanner.inoArduino sketch 2 KB
master_reader/1 file · 730 B
INO master_reader.inoArduino sketch 730 B
master_writer/1 file · 646 B
INO master_writer.inoArduino sketch 646 B
SFRRanger_reader/1 file · 2.6 KB
INO SFRRanger_reader.inoArduino sketch 2.6 KB
slave_receiver/1 file · 977 B
INO slave_receiver.inoArduino sketch 977 B
slave_sender/1 file · 702 B
INO slave_sender.inoArduino sketch 702 B
src/4 files · 36 KB
utility/2 files · 22.4 KB
LIB twi.cArduino library file 20.6 KB
LIB twi.hArduino library file 1.8 KB
LIB Wire.cppArduino library file 10.4 KB
LIB Wire.hArduino library file 3.2 KB
TXT keywords.txtText file 596 B
LIB library.propertiesArduino library file 406 B
variants/14 files · 88.3 KB
d1_mini/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
d1_r2/1 file · 6.4 KB
SRC pins_arduino.hSource file 6.4 KB
esp32c3_supermini/1 file · 5.3 KB
SRC pins_arduino.hSource file 5.3 KB
esp32s3_devkitc1/1 file · 7.7 KB
SRC pins_arduino.hSource file 7.7 KB
esp32_devkitc_v4/1 file · 6.4 KB
SRC pins_arduino.hSource file 6.4 KB
esp32_devkit_v1/1 file · 6.3 KB
SRC pins_arduino.hSource file 6.3 KB
nano_33_iot/1 file · 6.1 KB
SRC pins_arduino.hSource file 6.1 KB
nano_esp32/1 file · 6.3 KB
SRC pins_arduino.hSource file 6.3 KB
nodemcu_v2/1 file · 6.1 KB
SRC pins_arduino.hSource file 6.1 KB
nodemcu_v3/1 file · 5.8 KB
SRC pins_arduino.hSource file 5.8 KB
pico_w/1 file · 6.5 KB
SRC pins_arduino.hSource file 6.5 KB
ttgo_t_display/1 file · 7.7 KB
SRC pins_arduino.hSource file 7.7 KB
uno_r4_wifi/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
uno_wifi_rev2/1 file · 5.9 KB
SRC pins_arduino.hSource file 5.9 KB
TXT boards.txtText file 7.1 KB
TXT LICENSE-LGPL-2.1.txtText file 25.9 KB
TXT LICENSE-MIT.txtText file 1.3 KB
TXT platform.txtText file 8.5 KB
TXT README.txtText file 12.1 KB
Proteus Library Files/4 files · 114.8 KB
LIB TEPESP32DEVKITC.LIBProteus library 39 KB
LIB TEPLAN8720.LIBProteus library 23.3 KB
LIB TEPLAPTOP.LIBProteus library 39.5 KB
LIB TEPMOBILE.LIBProteus library 13.1 KB
Proteus Model Files/1 file · 2.2 MB
DLL TEPNET.DLLSimulation model 2.2 MB
Proteus Simulation/3 files · 2.3 MB
DSN LAN8720-ETH-Events-with-Laptop-and-Mobile.pdsprjProteus simulation 27.9 KB
HEX LAN8720_ETH_Events.hexCompiled HEX file 67.1 KB
DLL TEPNET.DLLSimulation model 2.2 MB
TXT README.txtText file 19 KB

README

README.txt 246 lines
LAN8720 ETHERNET MODULE LIBRARY FOR PROTEUS - V1.0 (THE LAN8720 ETH BOARD ON THE ESP32'S RMII, THE ETH LIBRARY)
Designed by The Engineering Projects www.TheEngineeringProjects.com

IMPORTANT LINKS
Article (read it first - pictures, step by step, every feature explained):
  https://www.theengineeringprojects.com/2026/10/lan8720-ethernet-module-library-for-proteus.html
Report a bug or suggest a feature (our forum):
  https://www.theengineeringprojects.com/forum/category/lan8720-ethernet-module-proteus-library
The demo uses our ESP32-DevKitC V4 (included) - its article:
  https://www.theengineeringprojects.com/2026/10/esp32-devkitc-v4-library-for-proteus.html
The demo talks to our Laptop WiFi Monitor and Mobile WiFi Monitor (both included) - their articles:
  https://www.theengineeringprojects.com/2026/10/laptop-wifi-monitor-library-for-proteus.html
  https://www.theengineeringprojects.com/2026/10/mobile-wifi-monitor-library-for-proteus.html
Ethernet for an Arduino instead (SPI chips) - our libraries:
  https://www.theengineeringprojects.com/2026/10/w5500-ethernet-module-library-for-proteus.html
  https://www.theengineeringprojects.com/2026/10/enc28j60-ethernet-module-library-for-proteus.html
Support us (the libraries are free):
  https://www.theengineeringprojects.com/donate

FILE STRUCTURE
LAN8720-Ethernet-Module-TEP-v1.0/
|-- Proteus Library Files/
|   |-- TEPESP32DEVKITC.LIB                                        39.0 KB   the ESP32-DevKitC V4, to LIBRARY
|   |-- TEPLAN8720.LIB                                             23.3 KB   the LAN8720 module, to LIBRARY
|   |-- TEPLAPTOP.LIB                                              39.5 KB   the laptop, to LIBRARY
|   |-- TEPMOBILE.LIB                                              13.1 KB   the phone, to LIBRARY
|-- Proteus Model Files/
|   |-- TEPNET.DLL                                                 2.18 MB   module + boards + network, to MODELS
|-- Proteus Simulation/
|   |-- LAN8720_ETH_Events.hex                                     67.1 KB   U1 of the demo
|   |-- LAN8720-ETH-Events-with-Laptop-and-Mobile.pdsprj           27.9 KB   the demo + laptop + phone
|   |-- TEPNET.DLL                                                 2.18 MB   copy of the model
|-- Arduino Code/
|   |-- LAN8720_ETH_Events/LAN8720_ETH_Events.ino                   7.5 KB   the ESP32 sketch (ETH)
|   |-- TEP Boards for Proteus/hardware/tep/avr/                  602.3 KB   the Arduino IDE add-on 1.14.0 (152 files)
|-- README.txt                                                    ~18.4 KB   this file
Total: 5.19 MB (unzipped). The C++ source code of the models is not included.

WHAT IS IT?
The LAN8720 ETH board (the black module sold for the ESP32) as one Proteus part: a Microchip LAN8720A 10/100 Ethernet
PHY, its 50 MHz oscillator, a HanRun RJ45 MagJack with two LEDs and a 2x7 header, plus a red PWR LED. The ESP32 has
its own Ethernet MAC: the LAN8720A is only the PHY between that MAC (on the RMII pins) and the cable, and the ESP32
sketch's ETH library does the rest (DHCP, TCP, UDP - the same WiFiClient / WiFiServer / WebServer classes as on
Wi-Fi).
  * The pins: TX_EN, TX0, TX1 (the ESP32 sends: GPIO21, GPIO19, GPIO22), RX0, RX1, CRS_DV (it receives: GPIO25,
    GPIO26, GPIO27), nINT/REFCLK (the module's 50 MHz clock into the ESP32's GPIO0), MDC and MDIO (the management
    bus: GPIO23 and GPIO18 by default), VCC (3.3 V - the module has no regulator) and GND. The RMII pins of the ESP32
    are fixed; MDC / MDIO are the sketch's choice.
  * ETH.begin() in the ESP32 sketch (our ESP32 boards with the TEP Boards for Proteus add-on 1.14.0, included) looks
    for the module wired to its pins, as the real driver does: it reads the PHY over MDIO (its ID: LAN8720A), so the
    module must be on MDC / MDIO, powered, at the PHY address the sketch gives (this module: 1 - its PHYAD0 strap -
    or -1 for any address) and the clock mode must be ETH_CLOCK_GPIO0_IN. When one of them is wrong ETH.begin()
    returns false and Proteus's simulation log says why. With an RMII data pin missing the link comes up but no frame
    passes (no address).
  * The events, as on a real ESP32: ETH_START (ETH.begin), ETH_CONNECTED (the cable's link: 1.2 s of
    auto-negotiation, 100 Mbit/s full duplex), ETH_GOT_IP (DHCP, 0.9 s later: 192.168.1.(100 + the board's number),
    or the address of ETH.config()), ETH_DISCONNECTED (the cable out: the connections wait; back within 20 s they
    carry on, after 20 s without a link they are dropped and ETH_LOST_IP comes), ETH_STOP (ETH.end). WiFi.onEvent()
    (core 2.x) and Network.onEvent() (core 3.x) handlers are called between loop() runs and while the sketch waits in
    delay().
  * The LEDs as the LAN8720A drives them: the jack's green LED1 = LINK / ACT (on with the link, blinking with the
    frames), the yellow LED2 = the 100 Mbit/s speed; the red PWR LED (power); the cable's blue plug in the port.
  * The cable: the CABLE property (IN / OUT), a click on the RJ45 jack, or CABLE IN / CABLE OUT in the panel.
The part is drawn our way at the module's size (55.8 x 26.8 mm, about the size of the ESP32-DevKitC V4): the black
board, the RJ45 jack at its left end, the LAN8720A with its 50 MHz oscillator, the 2x7 header at its right end; its
pins leave the right edge, each named beside its end. Modules from other makers order the header differently - wire
by the names.

ONE DEVICE (search "LAN8720" in Pick Devices):
  LAN8720 ETHERNET MODULE  "LAN8720 Ethernet Module (ETH library, ESP32)" V1.0 (category Peripherals > Ethernet),
                           prefix U, model TEPNET.DLL
  The panel (a TEP pop-up window, the look of the TEP Serial Monitor - our own header, no Windows title bar; it opens
  at Run, the PANEL pad or the LAN8720A opens it again). Tabs:
    Wi-Fi     a phone with three tabs - BROWSER (OPEN ESP32 PAGE: the phone opens the page the ESP32 serves on
              PAGEPORT), ROUTER (the router's clients - the ESP32 is listed as LAN) and CLOUD (the internet host's
              requests); ETHERNET CABLE IN / OUT; the cards MODULE (the chip, the ESP32's Ethernet MAC, the MDIO
              reads, the LEDs), ETHERNET (router, status, address, the link, DHCP) and TRAFFIC
    RMII      what the ESP32's ETH driver did, newest first: ETH.begin, the MDIO reads and writes (the PHY ID, the
              link in reg 1, the speed in reg 31), DHCP; the link and the ESP32's sockets; the clock and the PHY
              address
    Test      web request test (the phone opens the page n times, measured) and cable test (the cable pulled for 3 s,
              measured)
    Settings  theme, text size, open at Run, window size
    Help      report a bug, suggest a feature, article, updates, donate, forum; Copy diagnostics

TEST STATUS
V1.0: verified in Proteus 8.5 on 23 Oct 2026 with the demo project as shipped (the windows off-screen, posted clicks
and keys). What the Proteus run showed:
  * Run: the monitor shows ETH_START at 0.0 s, ETH_CONNECTED at 1.1 s (link up: 100 Mbit/s, full duplex) and
    ETH_GOT_IP at 2.0 s (IP 192.168.1.101, MAC 24:0A:C4:00:00:04); the module's PWR LED, its green LINK / ACT LED and
    yellow 100M LED light, the cable's plug is in the port; the panel shows the module on the LAN (DHCP 0.90 s after
    the link).
  * The laptop's browser opens http://192.168.1.101/events: the event log as plain text (3 events, on the LAN). The
    phone opens the page (HTTP 200, 499 bytes in 0.05 s); its LED ON link lights D1 on GPIO13 ("LED ON (the web
    page)").
  * The cable out (CABLE OUT in the panel): ETH_DISCONNECTED at once ("no link - the cable is out"), both jack LEDs
    off, the plug out of the port; the cable back in: ETH_CONNECTED after the 1.2 s auto-negotiation, ETH_GOT_IP 0.9
    s later - the same address; the laptop's /events then lists 6 events.
  * The monitor's STATUS, EVENTS and HELP answer; the panel's RMII page lists what the ETH driver read over MDIO (the
    PHY ID 0x0007 0xC0F1, the link in reg 1, 100BASE-TX full duplex in reg 31) and DHCP, the ESP32's server on port
    80.
  * The panel's Test page: the web request test answered 3 of 3 (connect 4.0 ms, first byte 35.8 ms, full page 50.8
    ms, 509 bytes); the cable test (3 pulls of 3 s) put the board back on the LAN 2.110 s after the cable went back
    in each time.
  * Speed: about 0.3 x real time with the board's sketch, the module, the laptop and the phone running (the sketch
    runs on the hidden ATmega2560 of the ESP32 board).

INSTALLATION (about 5 minutes)
1. Close Proteus. Extract the WHOLE ZIP to a normal folder (e.g. Desktop).
2. Copy everything in "Proteus Library Files" to the LIBRARY folder of Proteus, for example:
     C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
   (on some PCs: C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\LIBRARY - use the folder that already
   holds Proteus's own .LIB files). TEPLAN8720.LIB is the module; TEPESP32DEVKITC.LIB our ESP32-DevKitC V4 (the board
   of the demo); TEPLAPTOP.LIB and TEPMOBILE.LIB our Laptop WiFi Monitor and Mobile WiFi Monitor.
3. Copy TEPNET.DLL from "Proteus Model Files" to the MODELS folder (...\Proteus 8 Professional\MODELS) - replace
   older copies (this TEPNET.DLL is the first one with the LAN8720 and Ethernet for the ESP32 boards; it still runs
   every part of the series).
4. Delete TEPLAN8720.IDX, TEPESP32DEVKITC.IDX, TEPLAPTOP.IDX and TEPMOBILE.IDX from the LIBRARY folder if they are
   there.
5. The Arduino IDE (only to compile your own sketches - the demo has its HEX file): the add-on is in "Arduino
   Code\TEP Boards for Proteus". The Arduino AVR Boards platform must be installed (IDE 2.x: Boards Manager, "Arduino
   AVR Boards"). Copy the folder "hardware" into your sketchbook folder - the result:
     Documents\Arduino\hardware\tep\avr\boards.txt
   (an older TEP Boards for Proteus there: replace it - 1.14.0 has the ETH library and the events). Restart the IDE
   and pick Tools > Board > TEP Boards for Proteus > ESP32-DevKitC V4 (TEP Proteus).
6. Start Proteus. In Pick Devices (P) search "LAN8720".

RUN THE DEMO
Keep the .hex file and TEPNET.DLL beside the project in "Proteus Simulation".
  LAN8720-ETH-Events-with-Laptop-and-Mobile.pdsprj - U1 our ESP32-DevKitC V4 (LAN8720_ETH_Events.hex, its monitor at
  115200 bps) with R1 (220R) + D1 (LED-GREEN) on GPIO13, and U2 the LAN8720 module wired by net labels: TX_EN GPIO21,
  TX0 GPIO19, TX1 GPIO22, RX0 GPIO25, RX1 GPIO26, CRS_DV GPIO27, REFCLK (nINT/REFCLK) GPIO0, MDC GPIO23, MDIO GPIO18,
  its VCC to the board's 3V3 (the 3V3 label), GND to ground. PC1 the Laptop WiFi Monitor (home page
  http://192.168.1.101/events) and MOB1 the Mobile WiFi Monitor (home page http://192.168.1.101/) - no wires, they are
  on the router's network.
  Press Run. The monitor shows ETH_START, ETH_CONNECTED (100 Mbit/s full duplex) and ETH_GOT_IP with 192.168.1.101
  and the MAC. Open the page in the phone's Browser (Go): the link, the address, the MAC, the time on the LAN, the
  LED on GPIO13 with LED ON / LED OFF / EVENTS and the last events; the laptop's Browser shows /events. Pull the
  cable (CABLE OUT in the panel, or click the jack): ETH_DISCONNECTED; put it back: ETH_CONNECTED and ETH_GOT_IP. In
  the monitor: STATUS, EVENTS, ON, OFF, HELP.

PINS (beside the module's right edge, top to bottom)
  TX1, TX_EN, TX0   the ESP32's transmit (GPIO22, GPIO21, GPIO19 - fixed on the ESP32)
  RX0, RX1          its receive (GPIO25, GPIO26 - fixed)
  nINT/REFCLK       the module's 50 MHz reference clock out, to GPIO0 (ETH_CLOCK_GPIO0_IN); not driven in the
                    simulation
  CRS_DV            carrier sense / data valid (GPIO27 - fixed)
  MDIO, MDC         the management bus (GPIO18, GPIO23 by default: ETH_PHY_MDIO, ETH_PHY_MDC)
  GND               ground
  VCC 3.3V          power: 3.3 V (the board's 3V3)
GPIO0 must be on the board's header: the ESP32-DevKitC V4 has it, our 30-pin ESP32 DevKit V1 does not. Without power
(VCC and GND) the module is off and ETH.begin() finds no PHY.

THE DEMO SKETCH (Arduino Code)
  LAN8720_ETH_Events  #define ETH_PHY_TYPE ETH_PHY_LAN8720, ETH_PHY_ADDR 1, ETH_PHY_MDC 23, ETH_PHY_MDIO 18,
                      ETH_PHY_POWER -1, ETH_CLK_MODE ETH_CLOCK_GPIO0_IN before #include <ETH.h>;
                      WiFi.onEvent(onEvent) (Network.onEvent on the core 3.x); ETH.begin(); the handler prints each
                      event with its time, sets the host name at ETH_START, prints the link at ETH_CONNECTED and
                      ETH.localIP() / ETH.macAddress() at ETH_GOT_IP, and keeps the last 10 events. WebServer on port
                      80: / is the page, /on and /off switch the LED on GPIO13, /events is the log as text/plain. The
                      monitor's STATUS, EVENTS, ON, OFF, HELP.
  The same sketch compiles for a real ESP32 with Espressif's core ("ESP32 Dev Module"): set ETH_PHY_ADDR to your
  module's address.

PROPERTIES (double-click the LAN8720 module > Edit Properties)
  ROUTER    the router the cable goes to - the network name of the Wi-Fi parts (default TEP-WiFi)
  CABLE     the Ethernet cable at Run: IN (default) or OUT
  PHYADDR   the PHY address the module answers at: 1 (default, its PHYAD0 strap) or 0
  PANEL     the phone's tab at start (BROWSER, ROUTER, CLOUD)
  PAGEPORT  the port OPEN ESP32 PAGE opens (default 80)
Every run starts again from the properties. With DHCP the address follows the board's number: U1 192.168.1.101, U2
.102 ... - give every network part its own number. The laptop is 192.168.1.21, the phone 192.168.1.41.

LINKS.INI (OPTIONAL)
The Help page cards open web pages. To point them somewhere else without a new DLL, put a text file named links.ini
next to TEPNET.DLL with lines KEY=URL, for example:
  ARTICLE=https://www.theengineeringprojects.com/...
Keys: WEBSITE, FORUM, BUG_REPORT, FEATURE_REQUEST, ARTICLE, USER_GUIDE, UPDATE_CHECK, DONATE. Only http:// and
https:// links are used; lines starting with # are comments.

TROUBLESHOOTING
* ETH.begin() returns false: read Proteus's simulation log (it names the reason) - MDC / MDIO not wired to the
  sketch's pins, no power on VCC, ETH_PHY_ADDR not the module's address (PHYADDR, or use -1) or a clock mode other
  than ETH_CLOCK_GPIO0_IN. (ETH.h needs TEP Boards for Proteus 1.14.0: an older add-on has no ETH library.)
* ETH_CONNECTED comes but ETH_GOT_IP never: an RMII pin (TX_EN, TX0, TX1, RX0, RX1, CRS_DV) or REFCLK is not wired -
  the log lists the missing ones.
* No events at all: the handler must be added with WiFi.onEvent() / Network.onEvent() before ETH.begin(), and the
  sketch must return from loop() or call delay() now and then (the events run there).
* The page never opens: the cable is out (the panel shows CABLE OUT) or the board is not on the LAN yet.
* WiFi.begin() is ignored: in this model a board uses one network at a time - the cable (ETH) or Wi-Fi.
* A paused simulation shows the SIMULATION LOG: click the Schematic Capture tab.
* No panel: click the PANEL pad (or the LAN8720A), or turn "Open the panel at Run" back on (Settings).

BUG REPORTS AND FEATURE REQUESTS
Please post them in our forum with a screenshot, the serial monitor text, the simulation log and the Copy diagnostics
text of the panel:
  https://www.theengineeringprojects.com/forum/category/lan8720-ethernet-module-proteus-library

SUPPORT US
This library is free. If it saves you time, please support our work:
  https://www.theengineeringprojects.com/donate

WEBSITE
  https://www.theengineeringprojects.com/

LICENCES AND THIRD-PARTY NOTES
* The LAN8720 module model, the ESP32 boards, the Laptop / Mobile WiFi Monitors and the network (TEPNET.DLL), the
  symbols and artwork (TEPLAN8720.LIB, TEPESP32DEVKITC.LIB, TEPLAPTOP.LIB, TEPMOBILE.LIB) are made by The Engineering
  Projects. The ESP32 board runs the sketch on Proteus's own ATmega2560 model (Labcenter); R1 and D1 are Proteus's
  own parts. The models use only standard Windows libraries; no Visual C++ redistributable is needed. The C++ source
  code of the models is not included.
* TEP Boards for Proteus (Arduino Code): its core, the EEPROM, SPI and Wire libraries and the variants are modified
  copies of the Arduino AVR core 1.8.6 (https://github.com/arduino/ArduinoCore-avr/tree/1.8.6, GNU Lesser General
  Public License 2.1, LICENSE-LGPL-2.1.txt); its ETH, WiFi, WebServer and the other libraries are ours (MIT,
  LICENSE-MIT.txt). LAN8720_ETH_Events.hex contains that core with the ETH, WiFi and WebServer libraries.
* Proteus is a product of Labcenter Electronics and is not included. LAN8720 and Microchip are names of Microchip
  Technology; ESP32 of Espressif Systems; HanRun of Zhongshan HanRun Electronic. This library is not made or endorsed
  by Microchip, Espressif, Waveshare or Labcenter.

REBUILDING THE FIRMWARE (OPTIONAL)
The HEX file is supplied; the Arduino IDE is not needed to run the demo. Open the sketch in Arduino Code with Tools >
Board > TEP Boards for Proteus > ESP32-DevKitC V4 (TEP Proteus), then Sketch > Export Compiled Binary (Ctrl+Alt+S).
Flash / RAM: LAN8720_ETH_Events 24,422 / 2,696 bytes (of the hidden ATmega2560's 253,952 / 8,192). Put the exported
HEX in place of the simulation's .hex. It is not a real ESP32 binary: the board in Proteus is NOT a real ESP32 chip
(no Xtensa model in Proteus) - the sketch runs on a hidden ATmega2560 at 16 MHz with 8 KB of RAM, int is 16 bits, and
there are no FreeRTOS tasks.

MODEL SCOPE AND LIMITS
Modelled: the module's place between the ESP32's Ethernet MAC and the router's LAN - ETH.begin() finding it by its
wiring, its power, its PHY address and the clock mode; the PHY's link (the cable, 1.2 s of auto-negotiation, 100
Mbit/s full duplex); what the driver reads over MDIO (shown in the panel); DHCP or ETH.config(); the ETH events; the
jack's LINK / ACT and speed LEDs, the PWR LED and the cable; TCP and UDP of the ESP32's sockets with the router, the
phone, the laptop and the internet host shared with every TEP network part. Not modelled: the RMII frames bit by bit
and the 50 MHz clock on the pins (the module is the link to the LAN), the MDIO bus waveform, 10 Mbit/s or half duplex
links, other PHYs (TLK110, RTL8201, DP83848, KSZ8081) and SPI Ethernet chips on ETH, IPv6, the boot strap of GPIO0 (a
running oscillator on a real board can keep the ESP32 in its download mode - many boards switch the oscillator with a
GPIO, ETH_PHY_POWER). The model's own choices: the cable goes to the same router as the Wi-Fi parts; with the cable
out the connections are kept for 20 s; the board uses the cable or Wi-Fi, not both; the simulation runs below real
time.

VERSION
TEP LAN8720 Ethernet Module library V1.0 (Oct 2026). Device LAN8720 ETHERNET MODULE (TEPLAN8720.LIB / TEPNET.DLL,
which also runs our ESP32, ESP8266, Arduino and Pico W boards, our Ethernet and Wi-Fi shields, modules and breakouts,
the ESP-01 family and the Laptop / Mobile WiFi Monitors), with our ESP32-DevKitC V4 (TEPESP32DEVKITC.LIB) and the
Laptop WiFi Monitor / Mobile WiFi Monitor (TEPLAPTOP.LIB / TEPMOBILE.LIB); TEP Boards for Proteus 1.14.0. Demo sketch
LAN8720_ETH_Events V1.0.

Development1 release

  1. V1.0LAN8720 Ethernet Module Library for Proteus V1.0this page

    V1.0 is the only release in the Download Center so far. When a newer version is published, it appears above with its own download page.

Installation10 steps

From the download to a working project, in order. The steps follow what the package contains.

You will need

  • Proteus Design SuiteProteus 8 or newer (Labcenter), on Windows
  • Arduino IDE1.8 or 2.x, with the board of the tutorial chosen under Tools → Board
  • The compiler named in the tutorialto build the source files into firmware
  • Any archive toolWindows, macOS and Linux extract ZIP files on their own

Steps

  1. 1

    Extract the archive

    Right-click lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip and choose Extract All (or open it with 7-Zip or WinRAR) into a folder you can find again. Keep its folder structure (LAN8720-Ethernet-Module-TEP-v1.0) as it is.

  2. 2

    Copy the library files into Proteus

    Move TEPESP32DEVKITC.LIB, TEPLAN8720.LIB and TEPLAPTOP.LIB and 1 more and the files into the LIBRARY folder of your Proteus installation: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY for Proteus 8, or the matching Proteus 7 folder. Older versions keep it under ProgramData\Labcenter Electronics. If Proteus is open, close it first.

  3. 3

    Add the simulation model

    Copy TEPNET.DLL into the MODELS folder next to LIBRARY, so the component can run, not only be drawn.

  4. 4

    Restart Proteus and place the component

    Start Proteus, open a schematic, press P (Pick Devices) and search for the component by the name used in the tutorial. It appears with its pins ready to wire.

  5. 5

    Install the Arduino library

    In the Arduino IDE choose Sketch → Include Library → Add .ZIP Library and pick the library, or copy its folder into Documents\Arduino\libraries. Restart the IDE to see its examples.

  6. 6

    Open the sketch in the Arduino IDE

    Open LAN8720_ETH_Events.ino, eeprom_clear.ino and eeprom_crc.ino and 15 more, select your board and port under Tools, then Verify. Sketch → Export Compiled Binary writes the HEX file a simulation needs.

  7. 7

    Build the source code

    Open abi.cpp, Arduino.h and binary.h and 49 more in the compiler named in the tutorial (MikroC, Keil, MPLAB, Code Composer or the Arduino IDE) and build it to get the firmware.

  8. 8

    Load the HEX file

    In Proteus double-click the microcontroller, set Program File to LAN8720_ETH_Events.hex and run the simulation. For real hardware, flash the same file with your programmer.

  9. 9

    Open the example simulation

    Open LAN8720-ETH-Events-with-Laptop-and-Mobile.pdsprj in Proteus to see the wiring exactly as in the tutorial. Check the controller's Program File path, then press Play.

  10. 10

    Follow the tutorial

    LAN8720 Ethernet Module Library for Proteus: ESP32 Wired Ethernet explains every connection and setting in order; keep it open beside the files while you build.

How to add a library in Proteus 8

FAQs9 questionsContact TEP

How do I download LAN8720 Ethernet Module Library for Proteus V1.0?

Wait for the 30-second guest countdown on this page, then press the download button; the file comes straight from our storage. Members who are logged in skip the wait. If the browser opens the file instead of saving it, use its Save as option.

What is inside the archive?

LAN8720 Ethernet Module Library for Proteus V1.0 comes as a ZIP archive of 162 files (2.4 MB, 5.2 MB unpacked) holding Proteus library files, simulation model DLLs, a Proteus simulation, an Arduino sketch, an Arduino library, compiled HEX firmware and source code. Open the File Structure tab for the full list of 162 files.

What should I do if the download does not start?

Check the browser's download list first; an ad blocker or a company firewall can also hold it back, so try another browser or network. If the file arrives incomplete, download it again. For an installation problem, read the Install tab or tell us in the comments with your software version and the exact error message.

Is this file free?

Yes. Every file in the TEP Download Center is free for learning, personal and student projects. If you share it, link back to this page or the tutorial so others find the latest version.

How do I check that the file arrived complete?

Compare its SHA-256 with the one on this page, 6eba8c27ac71ec8333594c77efc4e1576cd31154cf3dd241b13a6e97a6156ec1. In PowerShell run Get-FileHash "lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip"; on macOS or Linux run shasum -a 256 "lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip". The same value means the file is exactly the one in our storage; a different one means the download broke off, so download it again.

Do I need WinRAR to open the ZIP file?

No. Windows, macOS and Linux open ZIP archives on their own (Extract All, or double-click). WinRAR and 7-Zip work too. Extract the whole archive before using the files.

Where do I put the LIB and IDX files?

Both files go into the LIBRARY folder of your Proteus installation (Proteus 8: C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY; Proteus 7 has the same folder under its own name). Restart Proteus afterwards and search for the component with P.

Which Proteus version does the library need?

The tutorial names the Proteus version the library was made and tested with. Most TEP libraries work in Proteus 7 and Proteus 8; if the component does not appear after a restart, check that both the LIB and the IDX file were copied and that Proteus was fully closed while copying.

How do I get the HEX file into the simulation?

Compile the sketch in the Arduino IDE (Sketch → Export Compiled Binary gives you the HEX next to the sketch), then in Proteus double-click the board, set Program File to that HEX and run.

preparing · lan8720-ethernet-module-tep-v1-0-d921e2d14dd14882a39088afc9f1c5e5.zip
Rating
Your download will be ready shortly
Preparing your download…

Members skip the wait. Log in or join TEP.

  • 0Total downloads
  • 4%Popularity
  • ProteusCategory
  • 0Comments
  • ssyedzainnasirUploaded by
  • 23 Oct 2026Uploaded at
Last 14 days0 downloads
SHA-256 6eba8c27ac71ec8333594c77efc4e1576cd31154cf3dd241b13a6e97a6156ec1
DocumentationLAN8720 Ethernet Module Library for Proteus: ESP32 Wired Ethernet
Need help with this file? Bug report Ask a question Download problemsGet updates

Comments

0

Join the conversation

Start the conversationAsk a question or share how you used this download.