Pi Pico Driver
jumpstarter-driver-pi-pico flashes Raspberry Pi Pico (RP2040), Pico W, and Pico 2 (RP2350) by copying a UF2 file onto the BOOTSEL USB mass-storage volume.
The driver supports two methods for entering BOOTSEL mode programmatically:
- GPIO reset - wire the Pico's BOOTSEL pad and RUN pin to host GPIO lines.
- 1200-baud serial touch - uses a USB CDC serial child. Only works when
the running firmware implements the convention (Pico SDK
pico_stdio_usb, CircuitPython, Arduino).
Installation
:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-pi-pico
Configuration
Serial-based BOOTSEL entry
export:
storage:
type: jumpstarter_driver_pi_pico.driver.PiPicoFlasher
config: {}
children:
serial:
ref: serial
serial:
type: jumpstarter_driver_pyserial.driver.PySerial
config:
url: /dev/ttyACM0
baudrate: 115200
GPIO-based BOOTSEL entry
When the firmware doesn't support the 1200-baud reset, you can wire two host GPIO pins to the Pico:
| Host GPIO | Pico pin | Notes |
|---|---|---|
| Pin A | BOOTSEL (TP6 on Pico) | Pull low to select bootloader on reset |
| Pin B | RUN | Pull low to reset the RP2040/RP2350 |
Both GPIO outputs should use open-drain drive and active-low polarity so
that on() pulls the line LOW and off() releases to high-impedance (the
Pico's internal pull-ups keep the lines high when released).
export:
storage:
type: jumpstarter_driver_pi_pico.driver.PiPicoFlasher
config: {}
children:
serial:
ref: serial
bootsel:
ref: bootsel
run:
ref: run
serial:
type: jumpstarter_driver_pyserial.driver.PySerial
config:
url: /dev/ttyACM0
baudrate: 115200
bootsel:
type: jumpstarter_driver_gpiod.driver.DigitalOutput
config:
device: "/dev/gpiochip4" # RPi5 GPIO chip - adjust for your host
line: 17 # GPIO pin wired to BOOTSEL
drive: open_drain
active_low: true
initial_value: inactive
run:
type: jumpstarter_driver_gpiod.driver.DigitalOutput
config:
device: "/dev/gpiochip4"
line: 27 # GPIO pin wired to RUN
drive: open_drain
active_low: true
initial_value: inactive
When both GPIO and serial children are present, GPIO reset is preferred.
Usage
j storage flash ...- flash a UF2 file (auto-enters BOOTSEL if needed)j storage bootloader- request BOOTSEL mode without flashingj serial ...- USB CDC console (when serial child is configured)
API Reference
.. autoclass:: jumpstarter_driver_pi_pico.driver.PiPicoFlasher()
Release files for jumpstarter-driver-pi-pico 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jumpstarter_driver_pi_pico-0.9.0.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jumpstarter_driver_pi_pico-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / jumpstarter_driver_pi_pico-0.9.0.tar.gz
| Download URL | jumpstarter_driver_pi_pico-0.9.0.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0a2fdbc7a9210318bf9ff77493dd3e27ea3ce194911666c2c78c1d9d9bacc78
|
|
BLAKE2b-256 checksum How to use checksums |
17417cbf24c028011d3e80ed2d4efd9447ac8815d9af69012951e6c156da8848
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / jumpstarter_driver_pi_pico-0.9.0-py3-none-any.whl
| Download URL | jumpstarter_driver_pi_pico-0.9.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c56205864752f3ce3b706c5e7df6f59732f7016b471917917328fc05e47dbb55
|
|
BLAKE2b-256 checksum How to use checksums |
696fd9e50a27d73a9c3775030b1db973e8494d2d16933d409f9bed05818b0712
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|