picotool (source code)

= picotool

https://github.com/raspberrypi/picotool

Tested on <Ubuntu 25.04>, 

``
sudo apt install libusb-1.0-0-dev
git clone https://github.com/raspberrypi/pico-sdk
git clone https://github.com/raspberrypi/picotool
cd picotool
git checkout de8ae5ac334e1126993f72a5c67949712fd1e1a4
export PICO_SDK_PATH="$(pwd)/../pico-sdk"
mkdir build
cd build
cmake ..
cmake --build . -- -j"$(npro)" VERBOSE=1
``
and the executable is there under `build/picotool` so copy it somewhere in your `PATH` like:
``
cp picotool ~/bin
``
and then trying to use a <Zephyr> example:
``
sudo ~/bin/picotool load -f build/zephyr/zephyr.uf2
``
fails with:
``
No accessible RP2040 devices in BOOTSEL mode were found
``
TODO: how to avoid that? https://youtu.be/tRXLxrtfU_s?t=207 gives a workaround if you are using the Pico SDK by adding to CMakeLists.txt:
``
pico_enable_stdio_usb(blink 1)
``
but how to do it in <Zephyr>? Video description says:
> make sure that your program initializes the USB code via a call to "stdio_init_all()".
but again how to do that from <Zephyr>? It appears that this only works if the code currently running has support for the feature:
* https://forums.raspberrypi.com/viewtopic.php?t=361359

\Video[https://www.youtube.com/watch?v=tRXLxrtfU_s]
{title=Never unplug your Raspberry Pi Pico again by deltocode}