ESP32 MicroPython: Getting started with the uPyCraft IDE

The objective of this post is to explain how to get started with uPyCraft, a MicroPython IDE that supports the ESP32.


The objective of this post is to explain how to get started with uPyCraft, a MicroPython IDE that supports the ESP32.

An IDE (Integrated Development Environment) is a software that typically integrates a set of tools to make the process of code development easier. On such example is the famous Arduino Development Environment, that is extensively used by the maker community.

The uPyCraft is a very simple IDE for MicroPython development on the ESP32 and the ESP8266. The interface is minimalist and it is pretty straightforward to start working with it, as we will see during this tutorial.

So, our objective for this tutorial is to connect to a board running MicroPython and send a simple “Hello World” command in the environment prompt.

You can find the uPyCraft installation link here. You just need to download and run the executable file. During the installation procedure, it may ask you to install the Monaco font, which is needed for the IDE [1].

Note that upon a successful installation, you may be asked to update the version of the IDE. In my case I installed version 0.20, but then updated to version 0.21.

You can find the GitHub page of the project here, which also has the executable files available. The link for the uPyCraft forum can be found here.

Note that uPyCraft is from DFRobot, the company that makes products such as the ESP32 FireBeetle board, the ESP-WROOM-32 module or the ESP8266 WiFi Bee board.


Testing the IDE

After a successful installation of the uPyCraft IDE, just run it. After connecting your board, click on Tools -> Serial and select the COM port of your ESP32 board, as shown in figure 1.

If you don’t know what is the COM port of your ESP32, just go to this menu entry with the board disconnected and check the available ports, then connect the board and go to the menu again. The new entry that appears should correspond to your device.

ESP32 MicroPython IDE select serial port.png

Figure 1 – Selecting the COM port of the ESP32.

Upon selecting this, a popup window like the one shown in figure 2 should appear. In the board dropdown, select ESP32. Assuming that you haven’t flashed the MicroPython firmware to the board before, choose yes on the erase_flash dropdown.

ESP32 uPyCraft IDE erase flash.png

Figure 2 – Burn firmware popup.

Upon clicking the “ok” button, the firmware burn procedure should start. This is accompanied by a window that shows the progress, as illustrated in figure 3.

ESP32 uPyCraft IDE burn firmware.png

Figure 3 – Burning firmware progress.

After the burning procedure is finished, just click on the button highlighted in figure 4 to establish the connection to the board.

Click connect button uPyCraft IDE.png

Figure 4 – Connecting to the board running the MicroPython firmware.

Upon a successful connection, the icon should change to the format indicated in figure 5.

ESP32 uPyCraft IDE connect to board.png

Figure 5 – Successful connection to the ESP32 board.

Note also that at the bottom of the window a command prompt will be available. There, just introduce the python command bellow and hit enter:

print("Hello World from uPyCraft")

After sending the command, you should get an output similar to the one shown in figure 6, where the result of the command execution is printed on the prompt.

ESP32 uPyCraft prompt

Figure 6 – Successful execution of the MicroPython command on the uPyCraft prompt.

To disconnect from the board prompt, just click the same button clicked before for establishing the connection. It should end the connection and the prompt should no longer be available.

Final notes

As can be seen from this tutorial, getting started with the uPyCraft is pretty straightforward.

A very positive aspect is that the IDE takes care of flashing the MicroPython firmware on the ESP32 board for us. Otherwise, we would need to download it and burn it using the esptool. Although as can be seen in this tutorial the procedure is relatively simple, it is much more convenient to have it integrated in the development environment, specially for users that are getting started and don’t feel comfortable yet to use lower level tools such as the esptool.

Other characteristic that can be noted is the simplicity of the procedures and interfaces. In a certain sense, it has a philosophy similar to the Arduino IDE, which allow us to do simple things really fast, without the need to learn how to work with a set of complicated menus.

Nonetheless, since it is a relatively recent software, there is not yet extensive documentation available. Hopefully with time it starts having a better adoption and more support from the community.



This entry was posted in ESP32 and tagged , , , , , , , , . Bookmark the permalink.

25 Responses to ESP32 MicroPython: Getting started with the uPyCraft IDE

  1. Pingback: ESP32 MicroPython: Executing scripts with uPyCraft | techtutorialsx

  2. Pingback: ESP32 / ESP8266 MicroPython: Working with lists | techtutorialsx

  3. Pingback: ESP32 / ESP8266 MicroPython: Lambda functions | techtutorialsx

  4. Pingback: ESP32 / ESP8266 MicroPython: Applying map function to lists | techtutorialsx

  5. Pingback: ESP32 / ESP8266 MicroPython: Applying filter function to lists | techtutorialsx

  6. Pingback: ESP32 / ESP8266 MicroPython: Working with dictionaries | techtutorialsx

  7. Pingback: ESP32 MicroPython: HTTP Webserver with Picoweb | techtutorialsx

  8. Atilio says:

    I really like this IDE, but I have some doubts to use it seriously.

    is there any way to see the available space in the virtual file system?
    and RAM space for variables?

    I am working with the WROOM32 development kit by expressif
    Best regards, Atilio.

    Liked by 1 person

  9. Pingback: ESP32 MicroPython: Changing the HTTP response content-type of Picoweb route | techtutorialsx

  10. Pingback: ESP32 MicroPython: Serving HTML from the file system in Picoweb | techtutorialsx

  11. Pingback: ESP32 Picoweb: Serving JSON content | techtutorialsx

  12. Pingback: ESP32 Picoweb: Changing the returned HTTP code | techtutorialsx

  13. Pingback: ESP32 Picoweb: Obtaining the HTTP Method of the request | techtutorialsx

  14. Pingback: ESP32 / ESP8266 MicroPython: String split method | techtutorialsx

  15. Pingback: ESP32 MicroPython: Developing a simple URL query string parser | techtutorialsx

  16. Pingback: ESP32 MicroPython: Getting the query parameters on a Picoweb app | techtutorialsx

  17. Pingback: ESP32 MicroPython: Creating a thread | techtutorialsx

  18. Pingback: ESP32 MicroPython: Passing arguments to a thread function | techtutorialsx

  19. Pingback: ESP32 MicroPython: Timer interrupts | techtutorialsx

  20. Pingback: ESP32 MicroPython: External interrupts | techtutorialsx

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s