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.