From 277080d7860b6b492b67179952c92f6714d2d1a1 Mon Sep 17 00:00:00 2001 From: Hel Gibbons Date: Thu, 20 Oct 2022 16:11:05 +0100 Subject: [PATCH] add MicroPython FAQ --- README.md | 8 ++- couldnt_find_device_automatically.png | Bin 0 -> 43927 bytes faqs-micropython.md | 75 ++++++++++++++++++++++++++ setting-up-micropython.md | 2 + 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 couldnt_find_device_automatically.png create mode 100644 faqs-micropython.md diff --git a/README.md b/README.md index 8bc1a7d5..0f886e59 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,11 @@ This repository contains the C/C++ and MicroPython libraries for our range of RP - [C++ Examples](#c-examples) - [Boilerplate for C++ Projects](#boilerplate-for-c-projects) - [Supported Products](#supported-products) + - [Packs and Bases](#packs-and-bases) + - [SHIMs](#shims) + - [RP2040 Boards](#rp2040-boards) + - [Pico W Aboard](#pico-w-aboard) + - [Breakouts](#breakouts) - [Tutorials & Guides](#tutorials--guides) # MicroPython @@ -27,7 +32,8 @@ The easiest way to get started. If you're new to Pico, we recommend you read our New releases are issued regularly with new libraries, bug fixes to our existing libraries and new features inherited from MicroPython upstream. Be sure to check back! * :link: [Tutorial: Getting started with Pico](https://learn.pimoroni.com/article/getting-started-with-pico) -* [Readme: Instructions for setting up MicroPython](setting-up-micropython.md) +* [Readme: Instructions for installing MicroPython](setting-up-micropython.md) +* [Readme: Frequently Asked Questions](faqs-micropython.md) * [Pimoroni Pico MicroPython + Drivers Releases](https://github.com/pimoroni/pimoroni-pico/releases) * [Readme: PicoGraphics](micropython/modules/picographics) diff --git a/couldnt_find_device_automatically.png b/couldnt_find_device_automatically.png new file mode 100644 index 0000000000000000000000000000000000000000..c15943b9aa4d358d2a73adf1620d23d10affa9de GIT binary patch literal 43927 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 + +- [General MicroPython](#general-micropython) + - [How do I get pirate-brand MicroPython onto my device?](#how-do-i-get-pirate-brand-micropython-onto-my-device) + - [I flashed MicroPython to my device and it's not showing up as a drive anymore!](#i-flashed-micropython-to-my-device-and-its-not-showing-up-as-a-drive-anymore) + - [OK, then how do I transfer files/edit code?](#ok-then-how-do-i-transfer-filesedit-code) + - [How do I make my code run automatically?](#how-do-i-make-my-code-run-automatically) + - [How do I do a factory reset?](#how-do-i-do-a-factory-reset) +- [Thonny troubleshooting](#thonny-troubleshooting) + - [I get a 'No module named 'insert Pimoroni module here' error when I try to run example code](#i-get-a-no-module-named-insert-pimoroni-module-here-error-when-i-try-to-run-example-code) + - ['MicroPython - Raspberry Pi Pico' doesn't show up as an interpreter option](#micropython---raspberry-pi-pico-doesnt-show-up-as-an-interpreter-option) + - [Couldn't find the device automatically?](#couldnt-find-the-device-automatically) + - [Device is busy?](#device-is-busy) + +## General MicroPython + +### How do I get pirate-brand MicroPython onto my device? + +Follow [these instructions!](setting-up-micropython.md) + +### I flashed MicroPython to my device and it's not showing up as a drive anymore! + +This is fine and expected - once your board restarts running MicroPython it will no longer show up as a drive. + +### OK, then how do I transfer files/edit code? + +To program it and to transfer files to and from it you'll need to use an interpreter, such as Thonny or Mu. + +- [Download Thonny](https://thonny.org/) +- [Download Mu](https://codewith.mu/) + +If you're hardcore, you can also transfer files to boards running MicroPython using command line tools, like `mpremote`. + +- https://docs.micropython.org/en/latest/reference/mpremote.html + +To view the files on your device in Thonny you'll need to have the files window open - if you can't see it, go to 'View > Files'. Right click on a file and select 'Upload to /' or 'Download to /' to copy it to or from your board. + +### How do I make my code run automatically? + +Save your code as `main.py` to run it automatically when your board's powered up. + +### How do I do a factory reset? + +If you need to delete all your programs from your board's flash memory and start again from scratch, you can do that by downloading [this special .uf2 file](https://www.raspberrypi.org/documentation/pico/getting-started/static/6f6f31460c258138bd33cc96ddd76b91/flash_nuke.uf2) and copying it to your board whilst it's in bootloader mode (hold down 'bootsel', and tap 'reset'/plug in the USB cable). Once you've done that, you'll need to [install MicroPython](setting-up-micropython.md) again. + +You may also find clearing the flash to be useful if you encounter problems after upgrading to the newest version of MicroPython - just make sure you save any code you've been working on to your computer first! + +## Thonny troubleshooting + +Having trouble getting Thonny talking to your MicroPython board? Here's some things that might help! + +### I get a 'No module named 'insert Pimoroni module here' error when I try to run example code + +First of all, check you downloaded and installed Pirate brand/our custom MicroPython. Standard MicroPython won't include our modules. + +This error can also happen if you're trying to run code with Thonny's built in Python interpreter, instead of Pico/RP2040 flavoured MicroPython. Make sure you have 'MicroPython - Raspberry Pi Pico' selected as your interpreter in the box at the bottom right. + +### 'MicroPython - Raspberry Pi Pico' doesn't show up as an interpreter option + +Check you're running a recent version of Thonny - very old versions won't know what a Pico is. If you're using a Linux computer, bear in mind that some package managers don't install the most recent versions, best to download it from the Thonny website. + +### Couldn't find the device automatically? + +Some versions of Thonny seem to have problems finding devices that are running brand new Micropython v1.19. You might also run into this error if you have multiple RP2040 boards connected to your computer. To manually specify which port your device is using, click on **MicroPython (Raspberry Pi Pico)** at the bottom right, and select **Configure Interpreter**. Select your device under 'Port' - here, our board was showing up as 'COM20'. + +![Selecting the correct COM port](couldnt_find_device_automatically.png) + +If you're running a Windows computer, you should be able to see what COM ports your devices are using in Device Manager. + +### Device is busy? + +This error suggests your board is in the middle of doing something and you'll need to interrupt it by pressing the stop button in Thonny. If that doesn't get it talking, try resetting the board or disconnecting and reconnecting the USB cable. Restarting Thonny can also sometimes help! + +If none of that helps, you might have a malfunctioning `main.py` - you can clear everything that's in the board's flash memory by following [these instructions](#how-do-i-get-micropython-onto-my-device). Note that this will delete the all the code saved on your device, so you should only do it as a last resort! + diff --git a/setting-up-micropython.md b/setting-up-micropython.md index 8cdb9c01..bbd9db39 100644 --- a/setting-up-micropython.md +++ b/setting-up-micropython.md @@ -30,6 +30,8 @@ On the releases page you'll find a bunch of different .uf2 files for use on diff Lucky you! With your board plugged into your computer, just **hold down the BOOTSEL button and tap RESET**. A new drive should pop up on your computer called 'RPI_RP2'. +If your board has a power on/off button instead of a reset button, you'll need to hold down BOOTSEL and press the power button twice to cut the power, and then turn it on again. + ### If you have a board without a reset button: - **Disconnect the USB cable from your board.**