Environment Setup
Note
This document is automatically translated using AI. Please excuse any detailed errors. The official English version is still in progress.
Espressif officially supports two types of development environments: ESP-IDF and Arduino IDE.
ESP-IDF
ESP-IDF is an official development framework launched by Espressif, supporting Windows, Linux, and macOS operating systems.
Development is conducted via command-line interface, enabling tasks such as configuration, compilation, flashing, and serial monitoring.
For developers who prefer graphical interfaces, Espressif also provides plugins for VSCode and Eclipse, allowing development within the IDE’s graphical environment.
Arduino IDE
The Arduino IDE is a versatile integrated development environment. It provides a specialized core for ESP series chips, encapsulating part of the ESP-IDF functions.
It allows developers to utilize Arduino’s simpler C++ programming language to develop ESP series chips.
Developers do not need to have an in-depth understanding of the IDF details, making embedded programming more accessible, especially for beginners.
Selecting the Appropriate Development Environment
For beginners and developers seeking simple and fast development:
Arduino IDE is an excellent choice. Its user-friendly interface and basic functionalities allow for easy onboarding.
For developers with some programming experience:
Visual Studio Code with the ESP-IDF plugin is a good choice. This combination provides a more friendly interface and automated configuration, making complex project development easier.
For advanced developers or professional developers familiar with Eclipse IDE:
The ESP-IDF plugin for Eclipse will provide more flexibility and powerful features.
Espressif-IDE provides a convenient ESP development environment.
For developers familiar with using the command line and seeking comprehensive features:
ESP-IDF command line is a suitable choice. It is the official framework provided by Espressif, offering the most complete set of features to meet the needs of developers for complex embedded solutions.
ESP-IDF and Espressif Chips
Click the title link to view the latest IDF version support information.
Official Development Environment Comparison
Arduino IDE
Suitable for:
Beginners, entry-level developers, and users seeking simple and fast development
Advantages:
Easy configuration and setup process
Provides an intuitive user interface and simplified workflow, making it easy to write and upload code, which is convenient for rapid prototyping.
Provides a wide range of libraries and ready-made codes, which are very convenient for rapid prototype validation and simple projects.
Arduino IDE is easy to operates on multiple operating systems, including Windows, Mac, and Linux.
Arduino IDE has extensive of documentation and tutorials for reference, making it easier to solve problems when encountered.
Disadvantages:
Limited advanced features, cannot modify the underlying code. In complex ESP-IDF projects, using the original ESP-IDF development toolchain and command line tools can be more flexible.
Limited debugging features. In complex ESP-IDF projects, other debugging tools are needed.
How to install:
ESP-IDF Command Line
Suitable for:
Advanced developers. Developers with rich embedded system development experience, who have a certain understanding of embedded system concepts, low-level programming, and hardware-related knowledge. Developers who prefer or are interested in using command-line development environments.
Advantages:
Provides a command-line based development environment using CMD or PowerShell, offering higher stability and flexibility.
Developers can use scripts and command line tools in the command line development environment to batch build, test, and deploy applications, thereby improving development efficiency.
The command line development environment is usually more lightweight and consumes less system resources. This makes it more suitable for development in resource-constrained embedded systems.
Easy to install, with an official Windows one-click installation tool to quickly set up the environment.
Disadvantages:
The command line development environment requires developers to have some knowledge of command-line and script programming. This presents a higher learning curve for beginners.
Lack of graphical interface, which may not be as user-friendly and intuitive as a graphical interface. Not convenient for direct development.
Need to edit code in other IDEs.
How to install:
Visual Studio Code Extension
Target Audience:
Developers with some embedded development experience who are already using or prefer to use VSCode as their main development environment.
Advantages:
Integrates the ESP-IDF with VSCode, providing developers with the convenience of developing, building, and debugging ESP-IDF projects within the same interface.
Offers simplified configuration features. Developers can easily configure project parameters, compilation options, and debugging settings, etc., through the plugin’s configuration interface. This makes configuring the ESP-IDF environment and projects more straightforward and intuitive.
VSCode is a relatively lightweight editor with fast startup speed and relatively low system resource consumption.
Disadvantages:
Developers who are not familiar with VSCode or plugin development may need extra learning and adaptation.
There may be limitations due to updates to the plugin itself and compatibility with new versions of ESP-IDF. Developers may need to monitor plugin updates and related documentation.
Many functionalities depend on plugins.
How to Install:
Espressif-IDE or Eclipse Plugin
Note
Espressif-IDE comes with IDF Eclipse Plugin, basic Eclipse CDT plugins, and other third-party plugins of the Eclipse platform to support the building of ESP-IDF applications.
Target Audience:
Advanced and professional developers. Developers with embedded system development experience who are already using or prefer to use Eclipse.
Advantages:
Integrates the ESP-IDF framework with Eclipse, providing developers with the convenience of developing, building, and debugging ESP-IDF projects under the same interface.
Offers superior support for complex large-scale projects.
Eclipse IDE has a vast ecosystem of plugins, allowing developers to install and use other useful plugins according to project requirements, thereby enhancing development efficiency.
It possesses powerful graphical debugging capabilities.
Cons:
Compared to the aforementioned lightweight development environments or pure command-line environments, Eclipse IDE itself may consume more system resources, especially on lower-performance computers, it may feel slower.
Eclipse is relatively complex in terms of environment configuration, and it is not very friendly to beginners.
Eclipse has a fairly large user community, but it is smaller compared to other environments.
How to install:
Note
For issues with environment setup, you can refer to csdn blog
The choice of the appropriate development environment depends on your level of experience, project complexity, and personal preference. Beginners can start with Arduino IDE, then gradually transition to the plugin-equipped VSCode environment. Experienced developers can directly use ESP-IDF or use the ESP-IDF plugin in Eclipse for more complex project development.
Other Development Environments
CLion
is an IDE developed by JetBrains, specifically designed for developers using C and C++ programming languages. It offers intelligent code completion, syntax highlighting, code navigation, powerful refactoring capabilities, and debugging tools to enhance developer efficiency. CLion also integrates version control systems, such as Git, to facilitate team collaboration.
CircuitPython
is an open-source version of the Python language designed for beginners, specifically for small, cost-effective computers known as microcontrollers. Microcontrollers are at the heart of many electronic devices, including various development boards used for building hobby projects and prototypes. CircuitPython simplifies the process of experimenting and learning programming on these low-cost microcontroller development boards, making it easier for beginners to get started.
MicroPython
is a highly simplified interpreter based onPython
, designed specifically for embedded systems. It allows developers to use the familiar Python language for embedded development, making programming simpler and more efficient. MicroPython can run on a variety of hardware platforms, including ESP series chips.
PlatformIO
is a cross-platform open-source ecosystem that supports multiple hardware platforms and development boards, and provides a unified development environment, allowing developers to use different hardware and development boards for embedded development. PlatformIO integrates multiple development tools, including compilers, debuggers, and upload tools.
Toit
is a modern memory-safe programming language. It features advanced editor integration, including functions such as syntax highlighting, jump-to-definition, and auto-completion.
UIFlow
is an easy-to-use graphical programming IDE that anyone can get the hang of. It supports both wireless and wired program pushing, allowing programs to run with just a click, eliminating the need for repeated compilation. It supports over 100 M5 hardware peripherals and sensors, and allows for one-click addition of extensions, effectively aiding in product prototype construction and accelerating the development process to final productization.
Wokwi
is an online ESP32 simulator that allows developers to simulate and evaluate some ESP32 software projects without ESP32 hardware, providing a faster solution for the prototype design of IoT projects for the ESP32 microcontroller.Attention
The platforms listed in this section are not directly developed and maintained by Espressif. If developers encounter difficulties during use, please seek support in the corresponding community and forum.