We use some essential cookies to make our website work.

We use optional cookies, as detailed in our cookie policy, to remember your settings and understand how you use our website.

MicroPython

What is MicroPython?

MicroPython is a full implementation of the Python 3 programming language that runs directly on embedded hardware like Raspberry Pi Pico. You get an interactive prompt (the REPL) to execute commands immediately via USB Serial, and a built-in filesystem. The Pico port of MicroPython includes modules for accessing low-level chip-specific hardware.

Drag-and-Drop MicroPython

You can program your Pico by connecting it to a computer via USB, then dragging and dropping a file onto it so we’ve put together a downloadable UF2 file to let you install MicroPython more easily.

Download the correct MicroPython UF2 file for your board:

For more information about using Wi-Fi and Bluetooth on Raspberry Pi Pico W-series devices with C/C++ or MicroPython, see Connecting to the Internet with Raspberry Pi Pico W-series.

For more information about supported Bluetooth protocols and profiles, see the Blue Kitchen BTStack Github repository.

Note
MicroPython distributions for other RP2040- and RP2350-based boards are available on the MicroPython download page.

To program your device, follow these steps:

  1. Push and hold the BOOTSEL button while connecting your Pico with a USB cable to a computer. Release the BOOTSEL button once your Pico appears as a Mass Storage Device called RPI-RP2.

  2. Drag and drop the MicroPython UF2 file onto the RPI-RP2 volume. Your Pico will reboot. You are now running MicroPython.

  3. Access the REPL via USB Serial.

The Raspberry Pi Pico-series Python SDK book contains step-by-step instructions for connecting to your Pico and programming it in MicroPython using both the command line and the Thonny IDE.

Where can I find documentation?

You can find information on the MicroPython port to RP2040 at;

Raspberry Pi Pico Python SDK

A MicroPython environment for RP2040 microcontrollers

Connecting to the Internet with Raspberry Pi Pico W

Getting Raspberry Pi Pico W online with C/C++ or MicroPython

RP2 Quick Reference

The official documentation around the RP2040 port of MicroPython

RP2 Library

The official documentation about the rp2 module in MicroPython

Which hardware am I running on?

There is no direct method for software written in MicroPython to discover whether it is running on a Raspberry Pi Pico or a Pico W by looking at the hardware. However, you can tell indirectly by looking to see if network functionality is included in your particular MicroPython firmware:

import network
if hasattr(network, "WLAN"):
   # the board has WLAN capabilities

Alternatively, you can inspect the MicroPython firmware version to check whether it was compiled for Raspberry Pi Pico or for Pico W using the sys module.

>>> import sys
>>> sys.implementation
(name='micropython', version=(1, 19, 1), _machine='Raspberry Pi Pico W with RP2040', _mpy=4102)

If the 'Pico W' string is present and in sys.implementation._machine, your firmware was compiled for Pico W.

On this page