MicroPython officially becomes part of the Arduino ecosystem
Tags: micropython, arduino, esp32, embedded
Published: 2022-12-31 14:47:45

**Last month MicroPython officially became part of the Arduino ecosystem. The inclusion of MicroPython as a member of the Arduino family is an exciting development for those interested in using Python to develop for any board with a serial REPL interface, like the ESP32. The ESP32 is a low-cost, low-power system-on-chip (SoC) microcontroller with built-in WiFi and Bluetooth capabilities, making it a popular choice for a wide range of projects, including IoT devices, home automation, and wearable electronics.**

> You can find the Arduino MicroPython Firmware and the Arduino IDE for MicroPython here: https://docs.arduino.cc/micropython/

**So what is the Arduino Ecosystem?**
As an experienced developer, you may already be familiar with the Arduino platform and its capabilities. Arduino is an open-source hardware and software platform that is widely used for building electronics projects, including microcontroller-based projects such as IoT devices, robotics, and home automation systems.

At its core, the Arduino platform consists of a microcontroller board, a development environment (IDE), and a programming language originally based on C/C++. Next to the Arduino IDE for MicroPython you can now also use MicroPython on the Arduino microcontroller board, so on the hardware, which enable you to write, upload, and debug code for the microcontroller based on your Python knowledge. 

There are currently four Arduino boards that officially supports MicroPython. They are listed below:

[Nano 33 BLE](https://store.arduino.cc/arduino-nano-33-ble)
[Nano 33 BLE Sense](https://store.arduino.cc/arduino-nano-33-ble-sense)
[Nano RP2040 Connect](https://store.arduino.cc/nano-rp2040-connect-with-headers)
[Portenta H7](https://store.arduino.cc/portenta-h7)


![picture taken from the [arduino website](https://docs.arduino.cc/learn/programming/arduino-and-python)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xhukdun18oip376ka1bs.png)

**MicroPython?**
MicroPython is an open-source programming language based on Python that is specifically designed for use on microcontrollers and small embedded systems. It was created in 2013 by Damien George, a software engineer from Australia, with the goal of bringing the simplicity and ease of use of Python to the world of microcontroller programming, which is typically done using low-level languages like C.

As a high-level, expressive language that is familiar to many experienced Python developers, MicroPython has become a popular choice for a wide range of projects, including IoT devices, robotics, and home automation systems.

In addition to creating MicroPython, Damien George has also played a significant role in the development of the Pyboard, a microcontroller board specifically designed for use with MicroPython. He has also written several books on the subject, including "Programming with MicroPython" and "Getting Started with MicroPython," which provide valuable resources for those looking to learn more about using MicroPython with microcontrollers.

As a Python developer, you may be familiar with the many benefits of using Python for a wide range of projects, including its simplicity, readability, and wide range of libraries and frameworks. However, you may also be interested in exploring new platforms and technologies, such as microcontrollers. If this is the case, you may be wondering how you can use your Python skills to develop for microcontrollers, one of them being the popular ESP32 chip. Now you can also start to use the 4 supported Arduino boards!

One option for doing this is by using the Arduino IDE for MicroPython, , a simple, cross-platform IDE for MicroPython that supports any board with a serial REPL interface so it can also work with non-Arduino boards like the ESP32. With MicroPython, you can use your existing Python skills and knowledge to write code for microcontrollers, such as the Nano 33 BLE or the ESP32, without the need to learn a new language or deal with the complexities of low-level programming.

However, it's important to note that there are some differences between developing for the ESP32 using MicroPython and using traditional Python on a computer or server. These differences stem from the fact that the ESP32 is a microcontroller, which is a type of small, low-power computer that is designed to perform a specific set of tasks.

One of the main differences is that a board has limited resources compared to a typical computer. This means that you need to be mindful of the amount of memory and processing power you are using in your code. You may also need to optimize your code to ensure that it runs efficiently on the the chosen board.

Another difference is that a board has a number of built-in peripherals, such as WiFi and Bluetooth, that you can access and control using MicroPython. This can be a powerful tool for building IoT devices and other projects that require connectivity. However, it also means that you need to be familiar with the specific capabilities and limitations of eg. the Nano 33 BLE or ESP32 when developing  your code.

**Arduino IDE for MicroPython**
The Arduino IDE for MicroPython, created in collaboration with Murilo Polese who wrote the initial version, offers a robust development platform that combines the benefits of both worlds. This results in a more efficient and effective development experience.

> Please visit this lab to get started: https://labs.arduino.cc/en/labs/micropython