Skip to main content

PiPicoFlasher 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).

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.

Shell commands

  • 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

  • flash(source, target=None) — Copies a UF2 from a Jumpstarter resource to the BOOTSEL volume. target is the destination filename (default Firmware.uf2).
  • enter_bootloader() — Enters BOOTSEL mode via GPIO reset or 1200-baud serial touch.
  • bootloader_info() — Parses INFO_UF2.TXT from the mounted volume.
  • dump — Not supported over UF2 mass storage.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jumpstarter_driver_pi_pico-0.8.1.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jumpstarter_driver_pi_pico-0.8.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file jumpstarter_driver_pi_pico-0.8.1.tar.gz.

File metadata

File hashes

Hashes for jumpstarter_driver_pi_pico-0.8.1.tar.gz
Algorithm Hash digest
SHA256 16772997aafcf5bbabb217bab859da88f6a9e0bb6d8a49605b623286e2fe5daf
MD5 4072e1d1673b192e7e3e903386470d89
BLAKE2b-256 7422918f2789965e84efdfbce6afcbab32a79d155b420f10dfbcf3b7740d45c1

See more details on using hashes here.

File details

Details for the file jumpstarter_driver_pi_pico-0.8.1-py3-none-any.whl.

File metadata

File hashes

Hashes for jumpstarter_driver_pi_pico-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a2a222bec692f3726a317f534814d10f8151dc7a2f72529668f2412fa347143
MD5 a31e8acf65768702292b5b1456c08688
BLAKE2b-256 bf842caf7ef5892a2a2bcf8df752d1c59037b02fa9ae576639b9efee5aa598cd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page