I have a USB-C hub that has an NVMe slot built in and offers USB-PD power passthrough. My intention had been to use that hub to dual boot Windows from a 2TB NVMe so I could run native Gamepass and Genshin Impact on my Steam Deck, while keeping the majority of that drive formatted to share games between SteamOS and Windows, but it seems that any time the device changes power states the NVMe drive is disconnected and reconnected as part of the process.
This is problematic enough when I start Windows from the NVMe SSD in the enclosure connected to power, things work fine until the Steam Deck reaches full charge and the USB-PD is renegotiated so as to run things from the charger rather than continually topping up the battery. Windows dies immediately because the disk briefly goes away and comes right back. So fine, I just don't start my Deck with the hub connected unless the Steam Deck is fully topped off and problem solved?
That's all fine and well, but it becomes unbearable when I use my fancy 120w charging brick that offers multiple USB ports to power/charge multiple devices which charger renegotiates every device plugged in whenever any device is added, removed, or changes power states. If my Kindle Fire hits full charge while I'm playing on my deck, the connection to the NVMe storage is killed and anything with files open from the drive takes a dump. This happens in Windows and in SteamOS.
I've used the same NVMe drive in several different external enclosures hooked up via USB-A, with several different USB chargers (all 65w or higher,) all through the same hub that has the NVMe slot built in, through a fancier Lenovo hub, and a through a cheap $20 number from Amazon; all of the hubs have USB-PD passthrough and no matter what the setup it seems like no drive will stay connected in any arrangement if the power delivery situation changes in any way.
The question then is this: What is responsible for this behavior?
Is the Steam Deck uniquely unable to keep data connections open while power delivery is renegotiated, are all 3 of the hubs I have botching things and another hub would allow this behavior I desire, or is this normal for the USB spec and it's just not possible to have a reliable data connection going during a USB-PD state change? I've been unable to find any answers searching the Internet, so if you've got an authoritative source on the answer to my question, I'd love to see it and know if I should just give up on my dream or if there's a solution somewhere.
Have you tried an enclosure for the drive with its own dedicated power source?
My suspicion is that upon the PD renegotiation, your drive is temporarily losing power. Whether this is expected or USB-compliant behavior, I don't know. But if that is the problem, I'd think using a separately powered enclosure might solve it.
On the other hand, maybe the (internal to hub) data hub IC is resetting the data line upon PD renegotiation. That seems contrary to the intent of USB and I'd suspect violates the USB standard.
Source: I've designed some USB PD power systems but not delved into the details of how data is handled
Good question. The same behavior also happens with an externally powered Western Digital Spinning Disk USB3 HDD, I haven't ever found an externally powered NVMe enclosure but I had thought about that possibility. I should also note that the two external NVMe enclosures I have used don't see any interruption for the LEDs on the enclosure when the power state change happens and any other USB connected peripheral continues to operate without interruption further complicating this situation.
A thunderbolt or usbc docking station might solve that issue, or powered usbc hub in a pinch
Sorry if it wasn't clear, these are all powered USB-C hubs, the Lenovo one is the docking station for my Lenovo laptop.
Then it shouldn’t be a power issue, the powered hub would correct for that.