-
Notifications
You must be signed in to change notification settings - Fork 432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Picotool reset only really works on Raspberry Pi Pico boards #2078
Comments
This is an upstream picotool issue, essentially. Basically Picotool has hardcoded settings for VID:PID to look for in the USB tree, and only the base Pico is there. There is no option to override the VID:PID, or explicitly select a bus:device w/o looking at the VID/PID. Every decive here, including the PicoW, has a unique VID:PID so the Arduino IDE (and users/vendors) can identify it. Unfortunately there's nothing we can do here. If UF2 upload isn't working well for you, the CMSIS-DAP (Picoprobe) is your best bet. Good luck! |
Thanks for the quick feedback, it's appreciated. If I may, there are still a couple of things I feel
Would you be interested in PRs implementing any of these suggested improvements? |
How to reproduce
Tested on: Arduino IDE 2.3.2, arduino-pico 3.7.2, macOS 14.2 ARM.
There's a first minor issue here (that is also present with a "Raspberry Pi Pico" board selected): the upload concludes successfully but the device does not reboot into application code. Un-plugging then re-plugging the device (without holding the BOOTSEL button) gets the LED blinking. I suspect this could be fixed by calling
picotool load
with the-x
flag.With the "Raspberry Pi Pico" board selected,
picotool
correctly reboots the device into BOOTSEL mode, uploads the code and restarts the device.If any other board was selected for the first upload, the second upload fails with the following error:
Analysis
Looking at the devices on the USB bus (using e.g.
lsusb
), the programmed board is there, including the custom reset interface thatpicotool
should be looking for. But the PID/VID combination is not what picotool expects, causing the device to be essentially invisible topicotool
.There appears to have been some effort put into supporting custom PID/VIDs in
picotool
: raspberrypi/picotool#83 but so far that has not been merged.I guess this is mainly a
picotool
issue, but one issue forarduino-pico
is that it advertisespicotool
support for all boards when it really only works for plain Raspberry Pi Pico.A potential workaround would be to use the alternative method of rebooting to BOOTSEL mode that
stdio_usb
supports, which is to open (and close) the serial port at 1200 baud (e.g.stty -f /dev/tty.usbmodem1401 1200
on macOS) before invokingpicotool
. Apparently this is what Platform.IO does?The text was updated successfully, but these errors were encountered: