Skip to content

Forced commands actually do work with RP2040 on Windows ... with some restrictions #260

@Taranus

Description

@Taranus

Hello,

I see that the forced commands are disabled on Windows.
#if defined(_WIN32)
{
struct libusb_device_descriptor desc;
libusb_get_device_descriptor(to_reboot, &desc);
if (desc.idProduct == PRODUCT_ID_RP2040_STDIO_USB) {
fail(ERROR_NOT_POSSIBLE,
"Forced commands do not work with RP2040 on Windows - you can force reboot into BOOTSEL mode via 'picotool reboot -f -u' instead.");
}
}
#endif

But they can work in two cases. Either by binding the device to WinUSB with Zadig when it is in BOOTSEL mode with the MSC disabled. But in this case the MSC won't work anymore (the drive won't show up).

Or if you don't mask the MSC when you reboot the device.
Replacing the following line in main.cpp:
reboot_device(to_reboot, to_reboot_handle, true, 1);
by
reboot_device(to_reboot, to_reboot_handle, true, 0);

I don't know how to have the device working with picotool with AND without the MSC disabled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions