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.

If you’re new to MicroPython, our official guide, "Get started with MicroPython on Raspberry Pi Pico", is a great place to start. Learn the basics of MicroPython and physical computing, connect your Pico to displays and sensors, build alarms, reaction games, and more.

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:

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

There is also a book by Raspberry Pi Press available written by Gareth Halfacree and Ben Everard.

micropython book

In "Get Started with MicroPython on Raspberry Pi Pico", you will learn how to use the beginner-friendly language MicroPython to write programs and connect hardware to make your Raspberry Pi Pico interact with the world around it. Using these skills, you can create your own electro-mechanical projects, whether for fun or to make your life easier.

  • Set up your Raspberry Pi Pico and start using it

  • Start writing programs using MicroPython

  • Control and sense electronic components

  • Discover how to use Pico’s unique Programmable IO

  • Make a reaction game, burglar alarm, temperature gauge, and many more

You can buy the book on the Raspberry Pi Press site.

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.