Wheel Firmware Update stalls on "Preparing Device... Wait for DFU"

Wheel Firmware Update stalls on "Preparing Device... Wait for DFU"

Issue:

When attempting to update the firmware on a GSI wheel using simOS, whether prompted automatically or initiated manually, you may encounter the following message: "Preparing Device...   Wait for DFU"


At this point the wheel will have gotten the command to start up in Device Firmware Update (DFU) mode, but the simOS app fails to detect it due to another driver taking control of (hijacking) the device instead of the proper STM Bootloader driver. This is often the case when there are Thrustmaster drivers present on your PC for instance, but removing them may not always be an option or work completely. The simOS app just keeps waiting and the update seems to hang, when in fact it hasn't even started yet.

Info
To fix this behavior we recommend using the USB Device Tree Viewer program, which you can download here: https://www.uwe-sieber.de/usbtreeview_e.html
When starting it please choose to Run as Administrator, or choose Restart 'As Administrator' from the File menu in the USB Device Tree Viewer before continuing.

Keep simOS open and the wheel plugged in after starting the update attempt, as unplugging it will cause it to revert to the regular mode upon plugging it back in.

This is how the wheel's DFU device then shows up in the USB Device Tree Viewer (in the case of Thrustmaster drivers):

Notes
Note that your wheel might not have the USB2.0 Screen device if it has no dash (like the X-29), and that the device you see in port one may be called differently if a different driver hijacked the wheel's bootloader. The driver should be called STM32 Bootloader, in this exact capitalization / case.

Solution:

From the context menu you can go to the Device Properties
Once there, you click Update Driver, and select Browse my computer for drivers
Then select Let me pick from a list of available drivers on my computer
Select the STM32 Bootloader driver (in this exact capitalization / case) from the list, and click Next

Notes
Note that if the STM32 Bootloader is not shown in the list like above, you may need to deselect Show compatible hardware to be able to find and select the STM32 Bootloader driver. If you still can't find it you can download it from our website using this link. Please make sure you Run the installer as an Administrator.

And you're done! If simOS was still waiting for the DFU, it automatically recognizes the updated device and performs the update.
This is how the DFU device will show up in the USB Device Tree after assigning the correct driver, but before the update has finished:
After the update has finished the STMicroelectronics STM32 Bootloader will disappear and will be replaced with the wheel's proper identifier, like this:

Notes
Note that in this example the wheel is a Hyper P1, but in your case could be any other GSI wheel running simOS.

Alert
Sometimes you'll see the proper STM32 Bootloader driver in the USB Treeview, yet simOS will not detect the DFU device. For some reason the procedure designed to cope with 3rd party drivers from Thrustmaster / Guillemot being present ends up affecting the detection of the actual DFU device despite having the proper driver, leading to simOS not updating the wheel. By turning off the Third Party Driver Mitigation in the simOS settings it should detect the device after you unplug the cable, plug it back in, and try updating again.