Raspberry Pi Documentation


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.

MicroPython 640x360 v2

Download the correct MicroPython UF2 file for your board:

Documentation introducing working with Wi-Fi and Bluetooth on Raspberry Pi Pico W with C/C++ or MicroPython is presented in the Connecting to the Internet with Raspberry Pi Pico W book. Full details of supported Bluetooth protocols and profiles are Blue Kitchen BTStack Github repository.

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

Then go ahead and:

  1. Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer. Release the BOOTSEL button after your Pico is connected.

  2. It will mount as a Mass Storage Device called RPI-RP2.

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

  4. You can access the REPL via USB Serial.

The Raspberry Pi Pico 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.

If you are using an Apple Mac and running macOS Ventura there has been a change in how the Finder works which causes drag-and-drop to fail. This issue was fixed as of macOS Ventura version 13.1. Please see our blog post for a full explanation along with workarounds if you are unable to upgrade to the latest version of Ventura.

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)

So if the 'Pico W' string is present and in sys.implementation._machine that can be used to determine whether your firmware was compiled for Pico W.