So I have been working on my Direct USB mode, which I now have at the beta level, and here is some information.
First, this is meant for drives that cannot be connected as SATA. It is not meant to be an adapter for SATA to USB. It could be used for other types of storage devices such as SD cards or NVMe drives with a USB adapter.
I only have SATA drives to test with, so all of my tests are using some form of USB to SATA adapter, which I say you should not be doing. But that is all I have to test with at this time. I will likely be asking for some beta testing help.
My testing with different USB adapters gave different results with different adapters. That means that the real world results will depend on the USB bridge of the device.
For SATA not all adapters directly support passthrough soft or hard resets, so I would think this could carry over to actual USB only drives.
Even without direct support for resets, there is a special reset for USB mass storage devices, called a Bulk Only Reset. This reset will trigger whatever resets the USB bridge needs to do (and is capable of) to reset the storage device. For SATA this reset itself will likely trigger a soft or hard reset, if it is capable. In the event of other types of adapters, it should be possible it would attempt to perform whatever reset could be done.
Resets can be performed on a timeout setting. If the device has not responded within the timeout limit, the reset process is started. If it is successful, the device will become ready again for the next command. If the reset is not supported or has no effect, you then still have to wait for the device to become ready.
In my testing, I have successfully used short timeouts to reset USB connected SATA drives to speed up the error handling process, very similar to timeouts on a SATA connected drive.
For drives that have some sort of “slow” issue, it can be possible to speed up the overall read speed by greatly increasing the cluster size (which is not possible using the OS reads). The idea is that the drive is performing a background operation between reads which causes all reads to take a long time. By increasing the read size, the ratio of data read per background operation is increased, allowing for a much faster overall data transfer. I only have one WD drive to test this with, but I am able to increase the overall read speed by a factor of 100.
For devices that could potentially require a very long timeout setting, you can set the timeout up to a stupid high 15 minutes (same as the other direct modes).
For devices that need to be power cycled, it will work with an external relay (which you would need to purchase and wire on your own, the instructions are on the website). Along with the usual drive issues, this may work well for some solid state devices that need to be power cycled often on a short timeout.
Overall, the Direct USB mode has good potential, but it still relies on the USB bridge, so results will vary. Only further testing will give a sign of the true potential.