This article shows a list of IDEs compatible with MicroPython that you can use to program your ESP32 and ESP8266 boards. Do you want to start learning MicroPython, but you don’t know which IDE you should use? Read this article to find out the best IDE for your needs.
In our opinion, at the moment, there isn’t a perfect IDE for MicroPython. But, fortunately, there are various IDEs with different features that support MicroPython. You should choose the IDE that best suits your needs or the one you find easiest to work with.
Here’s a list of IDEs you can use to program the ESP32 and ESP8266 boards with MicroPython.
Learn how to start programming your ESP32/ESP8266 boards with MicroPython using Mu Editor:
Mu Editor is a simple Python editor for beginner programmers. It supports MicroPython with the ESP32 and ESP8266 boards [Mu Editor Webpage].
It works pretty well, comes with a simple and intuitive interface, and provides a menu to burn MicroPython firmware to your boards quickly, so you don’t need to use esptool.py to burn firmware. You can program and burn firmware using only one software. This software is also compatible with other boards that support MicroPython like Pyboard and micro:bit.
It allows you to see which files are saved on the MicroPython device (ESP32 or ESP8266) and on your project folder when you click on the Files menu.
You can choose between different light and dark themes. Additionally, it comes with a useful Tidy function that checks your code to fix indentation and issues related to extra or missing spaces and a Check function that checks your code for errors.
This IDE is almost perfect, however, there are a few things that we don’t like about it. First, it doesn’t have a STOP button to abort and interrupt the code that is running on the board. You need to establish a connection and then press CTRL+C. This doesn’t always work, because when the ESP is busy, you can’t connect with it. So, you’ll need to manually reset the board to establish a new connection with the board, which doesn’t always work at first (the uPyCraft IDE works better on this matter).
Another thing we don’t like about this IDE is that most of the time you can’t get a connection with the board on the first try to upload files. You need to reset the board manually, open the REPL, press CTRL+C, close the REPL and open the Files menu. You may need to repeat this several times until you get a connection.
You can check the following tutorial to learn how to start programming your ESP32/ESP8266 boards with MicroPython using uPyCraft IDE:
uPyCraft IDE: this IDE was specifically designed to be used with MicroPython. It provides tools to upload code to the board and also to flash MicroPython firmware. This last tool is very useful because it provides an intuitive, easy and quick way to burn MicroPython firmware on your boards [uPyCraft IDE Webpage].
The IDE has a left sidebar that shows the files saved on the board and the files saved on your workspace. The right sidebar has all the necessary tools to establish a communication with the board and run and upload code.
We like this IDE because it is pretty easy to establish communication with the board once you select the right COM port. The connection is almost always established on the first try, and the STOP button works pretty well to interrupt the code currently running on the board to be able to establish a new connection. Another thing we like is the Upload and Run button, as the name suggests, it runs the code immediately after upload. In other IDEs, you have to manually reset the board to run the code.
Some downsides about this IDE, it prints all the debugging information on the REPL, which might be confusing for beginners. Some other IDEs have a separate window or file where it prints the debugging information.
Sometimes, when it can’t establish a communication on the first try, it will require that you flash MicroPython firmware on your board again. This can be pretty annoying especially when you’re testing and debugging code.
Finally, some people have issues with the installation of this IDE and never get it working properly (we never had this problem).
Learn how to start programming your ESP32/ESP8266 boards with MicroPython using Thonny IDE:
Thonny IDE: Thonny is a simple IDE for Python with MicroPython support. Intuitive, simple, and easy to use. It was recently updated, and in our opinion, the oldest version was easier to work with than the newest version [Thonny IDE Webpage]. Nonetheless, it’s still a good and intuitive IDE for beginners.
Burning MicroPython firmware to your boards is also easy as it provides an interface to do that.
Something that can be confusing for beginners is the Run button. The Run button runs the current code on your board without uploading the code. To upload the code to the board you have to go to another menu on the File menu. In our opinion, it would be better to have an icon to save code to the board.
VS Code + Pymakr Extension
Learn how to program your ESP board with MicroPython using Vs Code with the PyMakr extension: MicroPython: Program ESP32/ESP8266 using VS Code and Pymakr.
VS Code + Pymakr extension: many people are used to programming using VS Code. In fact, VS Code is one of my favorite software to program the ESP32 and ESP8266 boards using C/C++ Arduino programming language. Fortunately, there is a plugin for VS Code that supports MicroPython called Pymakr. This is an excellent choice for those who are used to VS Code [Pymakr extension Webpage]. You’ll need to use a separate tool to burn MicroPython firmware (Flashing MicroPython Firmware with esptool.py on ESP32 and ESP8266).
However, for beginners, VS Code might be too complex to get started. Additionally, if this is your first time programming with MicroPython, we recommend starting with one of the previous IDEs and later making the switch to VS Code.
PyCharm: it is an advanced Python IDE with cool features like code completion, debugging, error highlights, and it helps you write better Python code by providing tips and tricks [PyCharm Webpage]. It is a more advanced IDE for professional developers or advanced programmers. A beginner can still use it but might find it overwhelming to get started. If you’re already familiar with Python and used to using Pycharm, you can stick with it because it supports MicroPython.
At the moment, we don’t have any tutorials about using PyCharm with the ESP32/ESP8266 boards, but you’ll find some tutorials with a quick google search.
MicroIDE is an IDE created by one of our readers. It’s still in beta version, but it’s worth giving it a try. The great advantage of this IDE is that as long as you have the IDE firmware on your board, you can upload new code wirelessly via the IDE web server, without the need for a physical serial connection between your board and your computer.
At the moment, the IDE is only compatible with ESP32, but it will have support for the ESP8266 boards in the future.
The easiest way to install it is to copy and paste https://dl.microide.com/setup.py on an ESP32 with Micropython firmware and execute it. The program will connect to dl.microide.com and download the necessary files to the filesystem. The act of importing the module launches the web editor, which is a web server that allows you to write and save Micropython files to the board and execute them.
Installing the IDE and how to use it is well documented on its webpage: https://microide.com/.
What IDE should you use?
For beginners, we recommend the following IDEs in this order:
- Mu Editor
- uPyCraft IDE
- Thonny IDE
This ranking is merely based on our preferences. In previous tutorials, we recommended the uPyCraft IDE. At the time, MicroPython support in Mu Editor wasn’t available for ESP32/ESP8266 boards. However, you may choose any of these three IDEs. Their features and the way they work are very similar.
If you’re a professional programmer already used to PyCharm or VS Code, you can use those IDEs. But, we recommend starting with one of the basic recommended IDEs first to easily understand how MicroPython works and then proceed to one of the most complex IDEs.
We hope you’ve found this article useful.
Have you tried these MicroPython IDEs? Let us know what you think in the comments section.
If you want to learn more about MicroPython check out our resources:
Thanks for reading.