You are currently viewing ESP8266 ESP-01 Proteus Simulation Model Library | Download Free

ESP8266 ESP-01 Proteus Simulation Model Library | Download Free

Around two years ago, I shared my intention to bring NodeMCU simulation into Proteus, hoping to make virtual circuit design more accessible and enjoyable for everyone exploring embedded systems. Since then, I have been steadily working toward that goal, and I’m happy to share an important milestone in that journey.

Today, I’m introducing the ESP8266-01 (ESP-01) advanced simulation model, a foundational step toward full NodeMCU ESP-12 support. This model is built carefully to reflect real-world ESP8266 behavior, offering accurate AT command processing, WIFI connectivity simulation, TCP/IP networking, GPIO interaction, webserver functionality, and HTTP client features, all directly inside Proteus.

This release represents the first major leap toward complete NodeMCU simulation, and I’m excited to make it available for anyone interested in experimenting, learning, or developing IoT concepts in a fully simulated environment. I hope this model enhances your experience and brings even more possibilities to your design workflow as I continue working toward the next stages of the project.

Why This Release Took Time

This project has taken almost two years to reach a point where I felt confident enough to share it. The main reason behind the delay is simply time. As some may not know, I work full-time, and like many hobbyist developers, most of my projects, including this ESP8266-01 model, are built during my personal hours at home. Progress naturally slowed at times, as I am not a professional programmer. My work on these models comes from personal passion, allowing me to learn and refine my skills throughout the process.

During this period, I focused on several other Proteus models and smaller projects that required less time and complexity. The ESP8266-01 model, however, demanded deeper work and more experimentation, especially with the inherent limitations of Proteus simulation and the absence of advanced development resources. Even with the rise of AI tools, which certainly helped speed up parts of the development, the model still required careful testing, refinement, and problem-solving.

Despite these challenges, I continued working step by step, and I’m happy to finally share this release. I consider it a beta version, but it represents a significant milestone in my long-term goal of bringing complete ESP8266 and NodeMCU simulation to Proteus.

ESP8266 Proteus Model

The ESP8266 simulation model is designed to closely replicate the behavior of a real ESP-01 module while remaining easy to test and integrate in Proteus. It provides a realistic environment for learning, experimentation, and demonstration of IoT concepts, without requiring real hardware or internet connectivity.
Below is an overview of the main features, each briefly described for clarity:

ESP-01 ESP8266 Proteus Simulation Model
ESP-01 ESP8266 Proteus Simulation Model

1. Core Simulation Framework: Accurately emulates ESP8266 behavior using UART communication, timed responses, and internal state machines.

4. HTTP Web Server Functionality: Includes a built-in web server with URL routing, GPIO control through browser, and optional custom web pages.

2. Wi-Fi Management System: Supports simulated Wi-Fi modes, scanning, connection attempts, and IP assignment similar to a real ESP8266.

5. HTTP Client Requests (API Simulation): Simulates GET and POST requests to external servers, including HTTPS support and API-style responses.

3. TCP/IP Networking Support: Allows the creation of TCP servers and client connections for simulated network communication.

6. GPIO Emulation System: Provides four programmable GPIO pins for digital input/output testing, serial control, and web-based interaction

The ESP-01 Proteus schematic symbol that I designed closely resembles the actual ESP-01 hardware module in terms of physical appearance. However, there are some important differences in functionality and hardware interfacing.

The real ESP-01 module has 8 pins:

  • GND
  • TX
  • RX
  • VCC
  • CH_PD
  • RST
  • GPIO0
  • GPIO2

In the simulation model, I did not include the power-related pins (VCC and GND), since Proteus automatically powers the module internally. Additionally, the CH_PD and RST pins were omitted to simplify the design.

To enhance usability, I added two extra GPIO pins, giving the simulated module a total of 6 pins:

  • 2 communication pins: TX, RX
  • 4 GPIO pins for input/output control

This design makes the model easy to use in Proteus while still providing extended functionality for simulation and testing purposes.

ESP8266 Simulation Model Features and Commands

The model supports a selected subset of the official ESP8266 AT command set that covers common WiFi and IoT use cases. The commands are listed below, each with a brief description, syntax examples, and notes on any model-specific behaviors, including simulations or limitations. Commands that are not supported will return ERROR.

Basic Commands:

Command: AT
Description: Test if module is responsive
Response:
  OK
Command: AT+GMR
Description: Show AT version, model information
Response:
  OK

Command: AT+RST
Description: Soft reset and clears custom page
Response:
  OK

WiFi Mode Commands

Command: AT+CWMODE=1
Description: Set WiFi mode to Station (STA)
Response:
  OK
Command: AT+CWMODE=2
Description: Set WiFi mode to Access Point (AP)
Response:
  OK
Command: AT+CWMODE=3
Description: Set WiFi mode to Station + Access Point (STA+AP)
Response:
  OK
Command: AT+CWMODE?
Description: Query current WiFi mode
Response:
  +CWMODE:x
  OK

WiFi Connection (STA)

Command: AT+CWJAP="ssid","password"
Description: Connect to AP – only "ELECTRONICSTREE","ADMIN" works
Response:
  WIFI DISCONNECT
  WIFI CONNECTED
  WIFI GOT IP
  OK
Command: AT+CWQAP
Description: Disconnect from AP
Response:
  WIFI DISCONNECT
  OK
Command: AT+CIFSR
Description: Show IP and MAC (uses your PC’s IP)
Response:
  +CIFSR:STAIP,"192.168.1.100"
  +CIFSR:STAMAC,"5c:cf:7f:08:43:75"
  OK

WiFi Scan

Command: AT+CWLAP
Description: Scan for networks (returns fake results)
Response:
  +CWLAP:(3,"TP-Link_5G",-52,"11:22:33:44:55:66",11,0,0)
  +CWLAP:(4,"MyHome",-71,"aa:bb:cc:dd:ee:ff",6,0,0)
  ...
  OK

TCP/IP General

Command: AT+CIPMUX=<0/1>
Description: 0 = single connection, 1 = multiple connections
Response:
  OK
Command: AT+CIPSTATUS
Description: Show connection status
Response:
  STATUS:3
  +CIPSTATUS:0,"TCP","93.184.216.34",80,"CONNECTED",...
  OK

TCP Client (Single Connection)

Command: AT+CIPSTART="TCP","host",port
Description: Open TCP connection (CIPMUX=0)
Response:
  OK
  CONNECT
Command: AT+CIPSEND=<length>
Description: Send data (CIPMUX=0)
Response:
  >
  (type data here)
  SEND OK
Command: AT+CIPCLOSE
Description: Close connection (CIPMUX=0)
Response:
  CLOSED
  OK

TCP Client (Multiple Connections)

Command: AT+CIPSTART=<id>,"TCP","host",port
Description: Open connection on specific ID (0–9)
Response:
  <id>,CONNECT
  OK
Command: AT+CIPSEND=<id>,<length>
Description: Send data on specific ID
Response:
  >
  SEND OK
Command: AT+CIPCLOSE=<id>
Description: Close specific connection
Response:
  <id>,CLOSED
  OK

TCP Server

Command: AT+CIPSERVER=1,<port>
Description: Start TCP server (AP or STA+AP mode only)
Response:
  OK
Command: AT+CIPSERVER=0
Description: Stop TCP server
Response:
  OK

HTTP Client

Command: AT+HTTPCLIENT=2,1,"url",,,transport
Description: Simple GET request (transport 1=HTTP, 2=HTTPS)
Response:
  +HTTPCLIENT:200,<length>
  <response body>
  OK
Command: AT+HTTPCPOST="host","path",<length>,transport,"headers"
Description: POST request with body (after > prompt)
Response:
  OK
  >
  (send body here)
  +HTTPCLIENT:200,<length>
  <response body>
  OK

Built-in Web Server

Command: AT+CIPSERVER=1,80
Description: Start web server on port 80
Response:
  OK
Command: AT+WEBLOAD=1
Description: Enable custom page from ./ESP01/index.html
Response:
  OK
Command: AT+WEBQUIET=1
Description: Hide +IPD spam when browsing
Response:
  OK

GPIO Control (Custom)

Command: AT+GPIOMODE=<pin>,<0/1>
Description: Set GPIO mode (0=input, 1=output), pins 0–3 only
Response:
  OK
Command: AT+GPIOSET=<pin>,<0/1>
Description: Write HIGH/LOW (output mode only)
Response:
  OK
Command: AT+GPIOGET=<pin>
Description: Read current pin state
Response:
  +GPIOGET:1
  OK

Utilities

Command: AT+CIUPDATE
Description: Fake OTA firmware update
Response:
  +CIPUPDATE:1
  ....
  +CIPUPDATE:4
  OK
Command: AT+PING="ip"
Description: Ping host (real ICMP, 4 packets)
Response:
  +PING:8.8.8.8,32,56
  +PING:8.8.8.8,32,58
  ...
  +PING:4,4,0,56,57,58
  OK

Understanding the Simulation Environment: Proteus + Windows Networking

It is important to understand that when we run an ESP8266 ESP-01 simulation inside Proteus, the hardware behavior is simulated, but the actual networking functions come from Windows, not from Proteus itself. Proteus does not contain its own TCP/IP stack, DNS system, or HTTPS engine. Instead, it uses your computer’s existing network interfaces to process internet traffic.

This means the Windows environment acts as the real networking layer behind the simulation. If Windows has internet access, DNS resolution, open ports, and no firewall restrictions, then the simulated ESP-01 can perform HTTP requests successfully. But if the computer’s network is blocked, offline, or restricted, the HTTP client inside Proteus will also fail

In simple terms:

  • Proteus simulates the ESP-01 firmware and AT command behavior.
  • Windows provides all real internet communication required by the HTTP client.

So, before testing HTTP features, always ensure that the Windows network is active and stable, because the simulation depends entirely on it to communicate with online services such as httpbin or testing APIs.

Enhanced VSM ESP8266 Features

As you review the list of supported AT commands, you may notice that some of them are not available on the real ESP8266 hardware module, and yes, that is intentional. The VSM ESP8266 model extends far beyond the capabilities of the standard ESP8266 AT firmware by introducing several simulation-oriented enhancements designed to improve the development experience. These additional features are included because the VSM model does not support flash programming like a physical ESP8266, meaning custom firmware cannot be loaded. To ensure users still have access to advanced functionality, many higher-level features are built directly into the model itself.

As a result, the VSM ESP8266 offers convenient custom GPIO commands such as AT+GPIOMODE, AT+GPIOSET, and AT+GPIOGET, allowing direct pin interaction through AT commands, something not possible on the real module. It also includes an integrated HTTP web server with useful REST endpoints (/get, /set), support for Server-Sent Events (SSE) for real-time data updates, the ability to load custom webpages, enhanced HTTP client handling and quiet mode to manage +IPD output. Compared to the physical ESP8266, this offers a more flexible and user-friendly testing environment. Altogether, these improvements make the VSM ESP8266 a more capable and developer-friendly tool while still maintaining the familiar behavior of the real AT command interface.

ESP8266 Proteus Simulation

In Proteus, you can use the Virtual Terminal to communicate with the ESP-01 simulation model, just like you would with a real ESP8266 module. You can send different AT commands, observe the responses, and verify the module’s behavior directly inside the simulation.

This post focuses on introducing the model’s main features, functionalities, and supported AT commands.
In upcoming posts, I will demonstrate how to use this ESP-01 model in real project scenarios, including data transmission, web server testing, GPIO control, and more.

ESP-01 ESP8266 Proteus Simulation

If you are already familiar with the real ESP8266/ESP-01 hardware, you should have no trouble using this simulation model. The command structure and behavior are very similar, making the transition smooth.

While the model works correctly and supports a wide range of commands, there is a possibility that it may interrupt the Proteus simulation thread, which can lead to freezes or occasional crashes.
This is a known limitation when running complex, highly interactive models inside Proteus.

Download Library

Simply click on the button to download the library. You can refer to this post for instructions on how to install the library in Proteus 8. How to Download and install Library in Proteus (electronicstree.com)

ZIP Password : electronicstree.com

We’re always looking to expand our library collection based on what our community needs. If you’re looking for a specific Arduino module, sensor, or component that we don’t currently offer, we’d love to hear from you!

Reach out to us at help@electronicstree.com with your requests. We prioritize new library development based on community demand, so your suggestion could be our next addition.

Fixing the “External model DLL not found (GLE=0x0000007E)” Error

If you start a simulation and see an error message such as:

or something similar with another DLL name, don’t panic. In most cases the DLL is not really missing. What’s happening is that your system doesn’t have the Visual C++ runtime libraries that the DLL needs in order to run.

The solution is simple. Go to Microsoft’s website and download the latest Visual C++ Redistributable for Visual Studio 2015–2022. You can find it here:

During installation, make sure you install both the x86 (32-bit) and x64 (64-bit) versions. Even on a 64-bit system, some applications depend on the 32-bit runtime, so having both installed avoids errors.

Once the installation is complete, restart your computer. After restarting, try running the simulation again. In most cases the error will disappear and everything will work normally.

Leave a Reply