PicoKey App recovery mode issue #249

Closed
opened 2026-01-27 10:58:34 +08:00 by MiniProjectDIY · 3 comments
MiniProjectDIY commented 2026-01-27 10:58:34 +08:00 (Migrated from github.com)

Hi,I have some rp2350 boards that are kind of pico2 copy but without direct access to bootsel pin(using touch IC instead and a jump point for initial program).All boards were programed with V7.2 firmware.

Now I'm trying to use PicoKey App to reboot those boards into bootsel mode(for upgrading v7.4 firmware).I toggled the button of "Recovery Mode" in the PicoKey App and the board turned into a removable usb disk in the file explorer as expected.
But after I copied the new firmware(or any other .uf2 file) into the usb disk,it won't re-flash the program and reboot as I expect.It works just like a normal usb disk,nothing else.

I have to close PicoKey App first,then using "picotool reboot -u" command to reboot the board into bootsel mode again.Then copy .uf2 file into the usb disk and the "flash&reboot" works.

I tried above process with new v7.4 firmware and the issue remains.

Hi,I have some rp2350 boards that are kind of pico2 copy but without direct access to bootsel pin(using touch IC instead and a jump point for initial program).All boards were programed with V7.2 firmware. Now I'm trying to use PicoKey App to reboot those boards into bootsel mode(for upgrading v7.4 firmware).I toggled the button of "Recovery Mode" in the PicoKey App and the board turned into a removable usb disk in the file explorer as expected. But after I copied the new firmware(or any other .uf2 file) into the usb disk,it won't re-flash the program and reboot as I expect.It works just like a normal usb disk,nothing else. I have to close PicoKey App first,then using "picotool reboot -u" command to reboot the board into bootsel mode again.Then copy .uf2 file into the usb disk and the "flash&reboot" works. I tried above process with new v7.4 firmware and the issue remains.
polhenarejos commented 2026-01-28 08:09:33 +08:00 (Migrated from github.com)

I am not sure to undestand the problem. Are you using a "kind of" pico2 board with a customized firmware? Have you enabled secure boot?

I am not sure to undestand the problem. Are you using a "kind of" pico2 board with a customized firmware? Have you enabled secure boot?
MiniProjectDIY commented 2026-01-28 09:58:44 +08:00 (Migrated from github.com)

To clarify something here:
I just test official pico and pico2 board with this issue and nothing changed.
No customized firmware used,just pico-fido firmware.
I'm not sure how to verify whether secure boot was enabled,but I think rp2040 doesn't have the secure boot problem,right?

After toggle the recovery mode switch on PicoKey App,I can see the removable disk and the App showed that board status was: In Bootloader.
But I can't program the chip via copy a .uf2 file to the disk in that condition until I reboot the board with "picotool reboot -f -u" command.

In my words,the PicoKey App seems didn't reboot the board into a REAL bootsel mode?

To clarify something here: I just test official pico and pico2 board with this issue and nothing changed. No customized firmware used,just pico-fido firmware. I'm not sure how to verify whether secure boot was enabled,but I think rp2040 doesn't have the secure boot problem,right? After toggle the recovery mode switch on PicoKey App,I can see the removable disk and the App showed that board status was: In Bootloader. But I can't program the chip via copy a .uf2 file to the disk in that condition until I reboot the board with "picotool reboot -f -u" command. In my words,the PicoKey App seems didn't reboot the board into a REAL bootsel mode?
polhenarejos commented 2026-01-30 06:53:39 +08:00 (Migrated from github.com)

There are a couple things:

  1. Correct. RP2040 does not support secure boot or any secured feature.
  2. Support for RP2040 is experimental.
  3. PICOBOOT is owned by the host who initiated it. If you mount the board pressing BOOTSEL, then is your OS who owns the mounting. If PicoKeyApp mounts the board, then it owns the board and you cannot drag & drop any firmware. All write commands must be placed through the app.
  4. To solve it, I added a button which allows you to navigate through your system to load a local firmware.
  5. In case of RP2040, there is no possibility to retrieve the serial number in BOOTSEL mode by default. It must be previously marked through any PicoKey firmware, which do an initialization just for RP2040.
  6. In case your board is blank, and thus is not possible to retrieve the serial number, then you must first load Pico Rescue firmware, which will initialize your board and your serial number will be retrievable.
    Be sure to use latest version of the app.
There are a couple things: 1. Correct. RP2040 does not support secure boot or any secured feature. 2. Support for RP2040 is experimental. 3. PICOBOOT is owned by the host who initiated it. If you mount the board pressing BOOTSEL, then is your OS who owns the mounting. If PicoKeyApp mounts the board, then it owns the board and you cannot drag & drop any firmware. All write commands must be placed through the app. 4. To solve it, I added a button which allows you to navigate through your system to load a local firmware. 5. In case of RP2040, there is no possibility to retrieve the serial number in BOOTSEL mode by default. It must be previously marked through any PicoKey firmware, which do an initialization just for RP2040. 6. In case your board is blank, and thus is not possible to retrieve the serial number, then you must first load Pico Rescue firmware, which will initialize your board and your serial number will be retrievable. Be sure to use latest version of the app.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dearsky/pico-fido#249