-
Notifications
You must be signed in to change notification settings - Fork 58
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
Inconsistent flashing on a Raspberry Pi Pico W #74
Comments
It appears to me that there might be a timing issue: In cases where it fails it tries to reset |
Do a |
Thanks! I'll try it. Meanwhile, I have captured Linux |
Actually, I've gone ahead and commited a method that should be even better: Wait until |
Done - test log and accompanying |
The logs show the case where the pico was already in BOOTSEL mode. It ran into the max timeout of 3.0 seconds there until invoking |
OK ... by the way, the one I just ran isn't getting the devices right. I don't know how it found the Pico on |
If the device is in BOOTSEL mode, it does not create a |
I think I saw that case - /dev/ttyACM0 visible - in the previous failed runs yesterday. It found /dev/ttyACM0, sent it a reset, but didn't wait for the BOOTSEL mode to happen. |
Here's the new test with manual-bootsel-updated-pio.zip Is there a way it can test for I did a lot of testing with
P.S.: When I just ran that, the device was a SparkFun Pro Micro RP2350. So it can't tell whether it's an RP2040 or an RP2350 unless it's in |
Try again: I've commited f4f43a2, and there's now a fastpath if the device is already in BOOTSEL mode. This really should only ever happen once though, since once it has an Arduino firmware loaded into it, it should always do the 1200bps reset. |
Looks like everything on your end is working. For some reason, once PlatformIO successfully flashes the Pico W, PlatformIO's reset code works and I can re-flash it, but the host
Here's what
If I put the Pico W in manual BOOTSEL mode and re-flash it with the SDK |
1 similar comment
Looks like everything on your end is working. For some reason, once PlatformIO successfully flashes the Pico W, PlatformIO's reset code works and I can re-flash it, but the host
Here's what
If I put the Pico W in manual BOOTSEL mode and re-flash it with the SDK |
Interesting! I did not expect this. When an Arduino-framework code is loaded, then |
I'm going to call this a I'm going to see if I can come up with a simpler test to see if I can reproduce this using the Pico SDK to build and flash the SparkFun Pro Micro RP2350. That will make it easier to open an issue against |
Apparently this is a known issue but it's not clear to me what has to be changed - |
Mhm. Maybe we'll revisit this later when this platform can fully build Pico-SDK firmwares to confirm the issue. The issue with inconsistent flashing seems to be properly resolved now. Reset is done via 1200bps touch, not via |
I have a Fedora Linux system running PlatformIO and I'm testing a build against a Raspberry Pi Pico W. I just ran the same job 16 times and sometimes the upload fails and sometimes it succeeds:
I've captured verbose logs of all the tests in this zipfile:
test_logs.zip
This is the
lsusb
for the Pico:and the serial port:
I looked at some of the log files and it looks like when it fails, it correctly figures out that the board is at
/dev/ttyACM0
,tries to reset it, thinks it did so and proceeds with the upload, which then fails. But when it succeeds, it sometimes
thinks the board is at
/dev/ttyS31
and resets that, which wouldn't touch the actual board. Then it usespicotool
to upload the
uf2
, which succeeds becausepicotool
knows where the board it.Here's the
platformio.ini
entry for the board:The text was updated successfully, but these errors were encountered: