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.
MicroPython IDEs
Here’s a list of IDEs you can use to program the ESP32 and ESP8266 boards with MicroPython.
Mu Editor
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.
uPyCraft IDE
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).
Thonny IDE
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
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
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.
Wrapping Up
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.
Great article. I just wanted to pass on that I have been using the Thonny IDE and they have done a nice job of integrating esptool as a plug-in. Their user interface eliminates the need to run esptool separately.
Hi.
Thanks for sharing I didn’t know about that.
How do you use esptool in Thonny IDE?
Can you provide more details?
Regards,
Sara
I installed the plug-in by clicking on “Tools>Manage plug-ins…” and searching for “esptool”. After doing that, running the Interpreter configuration provided a user interface for installing or updating firmware including an option to erase flash and browse to the bin file to be used.
Thank you.
I was able to check that option now.
I need to update my Thonny IDE tutorial.
Thanks.
Regards,
Sara
Nice article. I’ve been wanting to move away from Thonny into something more “complete” and so like your short reviews. I’ll give pyCharm a try (I’ve been using Sublime for python programming of Raspberry Pi’s).
For fairly simple esp iot projects around the home, would the arduino or one of the micropython ides be most preferable ?
Thanks for your work !
Curt
Hi Curt.
I would say micropython is simpler because it requires fewer lines of code.
However, it will really depend on the project you want to build and what functionalities you want to add. Some functionalities are easily available in Arduino, but not in MicroPython.
Regards,
Sara
Hey Sara
I have tried the three Version MU Editior even in the lateste Version 1.1.1,
uPyCraft IDE and Thonny last update 3.3.13
MU editor is a pain. As you wrote already it’s missing the Run Stop, sometimes impossible
to get it working because of the hangups and for a beginner like me an absolut NOGO.
Today I got u uPyCraft working on my laptop after a lot of hassles, in my opinion it is foe beginners
the best solution. Esay and straight forward. It always worked on my Desktop, so I worked a little bit with
that.
Thonny is in my opinion the best IDE, you can test codes without to load the codes into the ESP.
You can even burn a new firmware without any problems.
Go to Tools – options – Interpreter choshe MicroPyhton (ESP32) and above the Ok – Cancel Buttons
it says “Install or update firmware” in blue (on my Desktop)
I personly like Thonny as beginner the best, but it is always a personly decision
Regards and thanks for all the good and trustable software and descriptions
Willem
Hi.
Thank you so much for your feedback.
I didn’t know about the burning firmware tool in Thonny IDE. That totally makes a difference.
Thanks for sharing. I’ll update my Thonny IDE tutorial asap.
Regards,
Sara
Thonny also seems very lightweight in terms of laptop resources. Not a huge IDE like some others
Thonny is also what i am using on Ubuntu 20.04
It seems mostly intuitive without that steep learning curve.
Nice article. I am a professional developer and really like to use Jetbrains IDEs like Pycharm. In fact Pycharm works really good for Micropython programming on ESP8266. Unfortunately the Micropython plugin does not support ESP32. There seems to be very low development on the plugin. I don’t think there will be support for ESP32 anytime soon.
That’s why I chose VS Code as my main Micropython IDE. A very good addition to the Pymakr Plugin is the Micropython CLI. This tool does anything from creating a project to configuring VS Code and managing stubs.
All in all this seems to be the best option for me.
I would say if you are working on larger projects than VS Code is the way to go at the moment. The Micropython CLI makes configuring a charm. So this is my recommendation!
Thank you for sharing your feedback.
Regards,
Sara
You might enjoy uPIDE:
https://github.com/harbaum/upide
It’s another IDE targeting Micro-Python.
Thanks for sharing.
I didn’t know about that one.
Regards,
Sara
i use VS Code (insider version) over years on my Mac for developing Python and C++ code.
Im interesting in MicroPython. Unfortunately, to use PyMakr extension, nodejs is needed too. Strange – why do i need Javascript libraries to work with python? However, its a good idea to mention that.
Hello Sarah. Is it possible to use ESP8266 to send data to mysql on both web server and remote server?
What I want to do is publish the sensor data on the index.html page on a local ip such as 192.168.1.200 in esp8266 and save it to mysql on a remote computer. I will be glad if you help me. Thanks.
Hi.
We have some tutorials about sending data to MySQL database (but not with micropython).
Check them here: https://randomnerdtutorials.com/?s=mysql
Regards,
Sara
Thanks, Sara, for these concise and thoughtful mini-reviews. One thing I should mention right away is that my host machine is a Raspberry Pi 4. This plays havoc with me trying to search the Internet or Youtube for “python IDE raspberry micropython wemos d1” as I get tons of results thinking I want to run Python on my Pi 4. So it’s been hilarious, as you can imagine. Thank you again for your article!
I’ve just started with Micropython, and I’m using Thonny because for some time now it comes preinstalled with Raspberry Pi OS. I was able to flash Micropython onto a Pi Pico. It (Thonny, the menu in lower right corner of the IDE) didn’t recognize the Pico at first. This was quite possibly due to me having so many USB devices plugged into my powered hub, plus a bazillion tabs open in Chromium browser. When I restarted the Raspberry Pi, then opened Thonny, the Pi Pico appeared right way. It’s quite enjoyable.
So now I’m thinking I should try a similar setup with my Wemos D1 Mini (clones, probably). I do understand the D1 has less available memory, but on the other hand, I’m running very small, simple scripts so far. I hope to follow your series, and see how it goes.
I’ll stick with Thonny for now, since again, my host machine is only a Pi 4. I did open Synaptic Package Manager is searched for uPycraft, but it is not available, at least not in the standard way.
Cheers!
As always, I found this interesting and maybe a bit helpful as well. But I need to add some data points for Mac users.
I was unable to get uPyCraft to work on MacOS 10.14.6. When it starts, it tells me there is a new version, tries to download it and fails, saying “Download false”. Also, their website does not have a download link for the Mac version – it says there is, but it is not a link. Google found V1 for me and it runs, but it’s not really a good choice for me.
Thonny is great for Mac, and Mu is exactly as you detailed (can’t restart the device, etc.).
PyCharm seems to have the most promise – especially because I learned from you that there is a Micropython plugin. I’ve used it for Python projects and now I’ll give it a shot for Micropython. I’m not really a beginner and the UI really appeals to me.
Please keep up the great work.
Hi all,
I also offer a small graphical IDE with tools suite, ESP32 MPY-Jama, that does many other things for ESP32 in MicroPython.
It’s open-source and available here :
–> https://github.com/jczic/ESP32-MPY-Jama
Quick installs with app/setup for MacOS/Windows and source installation for Linux.
Try it and let me know! 😉