Skip to main content

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:

  1. GPIO reset - wire the Pico's BOOTSEL pad and RUN pin to host GPIO lines.
  2. 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 flashing
  • j 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)

Source distribution for jumpstarter-driver-pi-pico 0.9.0
File Size Uploaded
jumpstarter_driver_pi_pico-0.9.0.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jumpstarter-driver-pi-pico 0.9.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page