Pico-W-Go provides code auto-completion and allows you to communicate with your Raspberry Pi Pico (W) board using the built-in REPL console. Run a single file on your board, sync your entire project or directly type and execute commands.
Auto-completion based on Raspberry Pi Pico W MicroPython firmware: rp2-pico-w-20230407-unstable-v1.19.1-1009-gcfd3b7093.uf2
Works with:
Platform | x64 | arm64 / aarch64 | armv7l |
---|---|---|---|
Windows | ✅ | ✅ | ❌ |
macOS | ✅ | ✅ | ❌ |
Linux | ✅ | ✅ | ✅ |
- Auto-completion and docs
- Pseudo terminal integration for communication with MicroPython REPL on a Pico (w) board
- Running / Transferring files to / from your board
- Built-in virtual-workspace provider for Raspberry Pi Pico (W) boards
-
MicroPython firmware flashed onto the Raspberry Pi Pico (W):
- See Raspberry Pi docs for help.
-
Python 3.9 or newer (with pip) (user install; Microsoft Store version not supported but may work) installed on your system and in your PATH.
-
pyserial
pip package:pip install pyserial
Visual Studio Code extensions:
ms-python.python
| [Install] [Show]visualstudioexptteam.vscodeintellicode
| [Install] [Show]ms-python.vscode-pylance
| [Install] [Show]
Environment:
On most Linux installations the device file of the Pico serial port is owned by root and a group you normal don't have by default (except on Raspbian OS). This leads to timeout and access denied errors when Pico-W-Go tries to connect to the Pico. There are three ways how to solve this problem:
- Run VS Code in sudo (NOT RECOMMENDED)
- Normaly adding your user to
dialout
group should fix the issue:sudo usermod -a -G dialout $USER
(logout required) - Dynamically add the group who "owns" the serial port file to your current user. You can easily do this by downloading and executing the
scripts/solvePermissions.sh
script. However you have to change the marked line in the script if you Raspberry Pi Pico (w) does not connect to/shows up as/dev/ttyACM0
to the correct device file. The script will readout the group owning the device file and then add you to this group. (logout required)
# download scripts/solvePermissions.sh
wget https://raw.githubusercontent.com/paulober/Pico-W-Go/main/scripts/solvePermissions.sh
# maybe not required
chmod +x ./solvePermissions.sh
# (change `/dev/ttyACM0` to the device file/port of your Pico)
# run the script
./solvePermissions.sh
-
First of all open a folder and run
> Pico-W-Go > Configure Project
command viaCtrl+Shift+P
(or the equivalent on your platform) VS Code command palette. This will import stubs for autocompletion and the settings into your project folder. For the auto-completion to work, the extension prompts you (after project configuration) to install recommended extensions mentioned in #Requirements. -
If you have trouble running
> Pico-W-Go > Configure Project
, try setting following settings in your global VSCodesettings.json
:
"picowgo.pythonPath": "/path/to/your/python/executable/python3"
- Have the onboard LED flashing in under 5 minutes:
Note that accessing the onboard LED is slightly different for the Pico W compared with the Pico (Page 15 Chapter 3.4). So, you can use the following script in place of
flash.py
:
from machine import Pin
from utime import sleep
pin = Pin("LED", Pin.OUT)
print("LED starts flashing...")
while True:
pin.toggle()
sleep(1) # sleep 1sec
This extension contributes the following settings:
picowgo.autoConnect
: Ignores any 'device address' setting and automatically connects to the top item in the serialport list.picowgo.manualComDevice
: If autoConnect is set to false Pico-W-Go will automatically connect to the serial port specified here.picowgo.syncFolder
: This folder will be uploaded to the pyboard when using the sync button. Leave empty to sync the complete project. (only allows folders within the project). Use a path relative to the project you opened in vscode, without leading or trailing slash.picowgo.syncAllFileTypes
: If enabled, all files will be uploaded no matter the file type. The list of file types below will be ignored.picowgo.syncFileTypes
: All types of files that will be uploaded to the board, seperated by comma. All other filetypes will be ignored during an upload (or download) action.picowgo.pyIgnore
: Comma separated list of files and folders to ignore when uploading (no wildcard or regular expressions supported).picowgo.openOnStart
: Automatically open the Pico-W-Go console and connect to the board after starting VS Code.picowgo.statusbarButtons
: Select which buttons to show in the statusbar (DO NOT CHANGE, unless you know what you are doing)picowgo.gcBeforeUpload
: [Only works with firmware v1.16.0.b1 and up.] Run garbage collection before uploading files to the board. This will free up some memory usefull when uploading large files but adds about a second or two to the upload process.picowgo.rebootAfterUpload
: Reboots your board after any upload action. Usefull if you are developing withmain.py
orboot.py
.picowgo.pythonPath
: Path to the Python interpreter. Defaults to null so it will try to auto-detect a suitable python installation.
- Most doc-strings for MicroPython functions (descriptions/hints) are from docs.micropython.org by © 2014-2023 Damien P. George, Paul Sokolovsky, and contributors.
- For licensing purposes: Prior to version v3.0.0 of this extension the codebase was a fork of github.com/cpwood/Pico-Go which is a derivative product of Pymakr by Pycom Limited.