picoboot-rs
A crate for connecting to and communicating with RP2040/RP2350 microcontrollers using the PICOBOOT USB interface.
picoboot-rs now supports the picobootx picoboot extension library, which is a device side picoboot implementation that allows custom commands to be added to the picoboot protocol.
Getting Started
-
Use
Picobootto find a PICOBOOT device. -
Use
Picoboot::connect()to connect to the device and get aConnection -
Use the
Connectionto interact with the device, such as reading/writing/erasing flash memory.
Example
use ;
async
See the examples directory for more complete examples.
Notes
When using this crate it is possible that further configuration for USB devices on the host machine may be required.
-
When running on Linux , you may need to add some additional udev rules to allow your user to access the PICOBOOT USB . These udev rules can be found here unless they have been moved!
-
When running on Windows, you shouldn't need to do anything further, as the RP2040/RP2350 include WCID support. However, if you hit problems, install WinUSB for the device using Zadig. Plug in the Pico device while holding the BOOTSEL button, and install any of the listed drivers for the RP2 Boot device in Zadig.
-
macOS tends to need no further configuration.
License
picoboot is dual-licensed under the MIT OR Apache 2.0 Licenses.
You can choose either the MIT license or the Apache 2.0 license when you re-use this code.
See LICENSE-MIT and LICENSE-APACHE for more information on each specific license.
The Apache 2.0 notices can be found in NOTICE.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Acknowledgements
This crate was based on picoboot-rs by Hickok-Dickson