Connectivity problems with external drive when connecting over USB-C

Hello, first post :slight_smile:

I have stumbled across a particularly infuriating problem.

TL;DR:
I put a SSD in an enclosure to use as an external drive. Drive works perfectly fine when connected over the USB-A expansion card, but gets killed by the system after a minute or two of idling when connected over the USB-C expansion card.

Now, to give a bit more context:
I bought a 2TB Kingston NV2 M.2 SSD, put it in a SSD enclosure and made myself a 2TB partition (exFAT) to store movies and other large files (hence the cheap SSD).

I was pleased with the end result - decent performance, good price and most importantly - the enclosure came with a neat USB-C to USB-C cable (USB 3.x) that I could use to connect it to my phone or Framework laptop. It worked well on my phone (Samsung, Android 10), but not so much on the Framework.

During constant or heavy use (such as moving 900 gigs of movies over to it from another storage device) the connection between the laptop and the drive is stable. However, when the drive idles for a minute or two or is only under light load, something happens and when my system attempts to access it again, it is found to be “surprise disconnected” (according to the event viewer) and then promptly reconnected.
No explanation is needed as to why this is incredibly problematic.

I have close to no idea why, but this doesn’t at all happen if I use the included USB-C to USB-A cable (still USB 3.x) that came with the enclosure and connect the whole thing to a USB-A expansion card on my laptop.

I suspect this problem has something to do with windows trying to put the external drive to some kind of low power mode but ends up killing it entirely so it has to be restarted when accessed. Then again why would this happen only over USB-C?? I didn’t try to mess with my power plan settings in windows as honestly I really shouldn’t have to - I need windows to turn off actual HDD external devices to save on power when nothing needs to access them.

Any and all help is appreciated, I did a lot more digging before posting here and honestly found absolutely nothing that could help me. I am more than willing to answer any further questions regarding this and I don’t mind getting my hands dirty with poking around Windows - I gotta fix this!

Thanks and Cheers!

OS: Windows 11 Version 10.0.22621 Build 22621
Framework laptop 12th gen

1 Like

Smells from a distance like usb autosuspend.

(I have the same problem on Linux and am currently trying explicitly activated autosuspend in TLP, with the affected drives and their hub explicitly denied autosuspend. No results yet.)

I believe there’s hidden power plan options in windows for USB devices. Look up a guide to unhide them and let us know if that changes anything. Otherwise it might be related to a similar problem with expansion cards, in which case the issue is how the mainboard handles storage devices, and not the card itself.

Hmm this sounds promising - I’m going to give it a try. However, wouldn’t disabling autosuspend harm battery life, especially when having expansion cards such as the HDMI one installed?

Depends on what’s on the ports. HDDs spin down after a time (cf their specs), and often that can be set.

As an uninformed layman’s guess, setting charge limit to ~75…80% would set the battery degradation off by one or more orders of magnitude. Maybe someone more knowledgeable can give an estimate?

In my situation (laptop runs on AC most of the time), stable connections and no lost data are much more valuable than a tiny bit (if any) of battery life cost. YMMV when on the road, I guess.

After some testing I found out that autosuspend wasn’t at fault. I disabled it for when the laptop is plugged in and charging, but that didn’t fix the issue. In hindsight it makes absolutely zero sense that it would be at fault, because if I connect this external SSD through an USB-A card instead of a USB-C card there is no issue at all.

To top this whole thing off I think I broke some of my settings because now occasionally my fingerprint sensor “falls asleep” and doesn’t work until I reboot the system or restart it with the device manager or something like UsbTreeView.

Another thing I tried was to use device manager to stop my USB controllers from shutting off power to the ports to save battery but none of that worked either so I reverted those changes.

Hopefully something comes up but for now I’m gonna quit fussing about this and get to other things.

I’ve also been dealing with USB drive disconnect problems. I’ve noticed that for me, the disconnects happen when drives connect as USB 3.0. Now I know that you said that your drive connects to USB-A as USB 3.0, but I’m just curious if you have a USB-C charging cable that you could use to test connecting your drive to the USB-C port so that it connects at USB 2.0 speeds.

Over the course of experimenting with different configurations, I found that (for instance) my 1TB Expansion card stays connected fine when it’s only connected as USB 2.0.

Another thing I’ve discovered is that my external drives don’t have surprise disconnect problems when connected to an Anker powered USB-C hub.

1 Like

Just did a quick experiment myself with a USB 2 type-c to type-c cable and everything actually behaved. Interesting. Shame USB 2.0 is so slow. This is kind of infuriating, because it feels like a fix is out there, and we got no idea where to look haha. I’m very sorry that your expansion card is disconnecting like that. Have you tried asking the FW support people?

It’s definitely frustrating. I’ve had a support ticket going since February 2022 which is a little after I first got the 1 TB expansion card and started noticing the disconnects. Framework support has been trying to figure out the problem with me. In the course of the investigation, they’ve sent me a replacement Mainboard and a replacement 1 TB expansion card.

Before Feb 2022, I had noticed oddities where USB-A drives wouldn’t connect or they’d only connect if I plugged them in halfway at first. It was only within the last few months that I figured out the USB 3.x angle. For some reason, plugging in my USB-A drive halfway results in it connecting as USB 2.x instead of 3.x.

My current theory is that it could have something to do with power requirements. USB 3 has higher power requirements than USB 2. That’s what made me think of getting the powered USB-C hub. And like I said, using the hub does result in reliable connections. That’s good enough for me for now since I mostly use the laptop at home so it’s no big deal to use the hub for reliability.

I slowly experiment with different ideas as the mood hits in order to gather more info (while trying not to spend too much time looking into it.) My next experiment is going to be to install Ubuntu on a thumb drive and see if the USB 3.x is stable on my Framework using Linux instead of Windows… you know, to see if it could be just some weird Windows problem.

The powered hub and the disconnect-only-on-usb-C rule out autosuspend.

Another hypothesis: The usb-A module (including all connectors) has lower internal resistance on power and/or ground than the -C module, and with the currents of a peak consumption in usb-3 it drops voltage to a point where the device (or controller?) falters.

Dropped connection after ‘a minute or two’ idling contradicts this, though. A few seconds max. could be explained by cache writing to memory (or how is it with these 2TB Kingston NV2 M.2 SSD?). Unless there is a sudden current spike, but why would that be?

Usb-2 allows lower currents only, and maybe the devices themselves do some switching to draw less, so no voltage drop here.

The powered hub to remedy the disconnecting would fit.

It would be nice to see the total resistance from motherboard power/ground to module out pins for the -A and -C modules. Or the voltage drop under load.

(I don’t want to spend on these for a one-time use – better invest in a good hub:)

https://www.amazon.de/Digital-Multimeter-Voltage-Resistance-Temperature/dp/B09BVSWCKS

https://www.amazon.de/Electronic-Digital-Display-Adjustable-Resistance/dp/B07GR88Q79

Yup, did end up messing around with USB autosuspend - no luck, unfortunately. Additionally, as suliblian mentions here, the only disconnects when connected via the USB-C card thing really doesn’t suggest it’s got to do with the power options.

Lastly, if this issue indeed is similar to what you describe here, I hope a fix comes around eventually.

But why/how would the mainboard discriminate between usb-A and -C modules? They’re supposed to be nothing but passive adapters (I may be underinformed, not having opened one yet).

Afaik, the usbc one is passive, just passing the cables, but the usba is not passive.

Well I think therein likes the problem. From day 1 I’ve been thinking that when I plug the drive to the USB-C card, that’s just a passthrough card so its like plugging it directly into the motherboard. When it goes over USB-A it’s a bit different, because (I’m not particularly well informed here) it’s not just a plain simple passthrough.

It’s almost like, feels like, plugging it into the USB-C card makes the motherboard decide it’s something it has more control over and does whatever it wants with it, despite it being just a plain external drive.

Before I forget, I should mention that according to the LED on the SSD enclosure, it never actually looses power, because it remains on. It shines constantly, indicating zero data transfer.
Windows itself appears to only realize the drive has been surprise disconnected and needs reconnecting the moment it needs to access the drive again. There’s nothing in the event viewer that says that windows has decided to disconnect it or put it on standby for whatever reason.

@Nikola_Dekovski When I connect my drives via the USB-A module, sometimes they connect as USB 2.0 instead of USB 3.0. Have you verified that your drive is actually connected as USB 3.0 when plugging into the USB-A port?

On Windows 10 I can check the “Bluetooth & other devices” settings and it will say “Connected to USB 3.0” or “Device can perform faster when connected to USB 3.0” depending on whether it’s connected as USB 2 or 3.

Yes, absolutely. I can be sure of this, because the transfer speeds were way, waaay above what you’d get through USB 2.0 (upwards of 5gbps). I also used UsbTreeView to verify that the connection is USB 3.x.

Hmm. Maybe I should pick up a usb-c storage device that isn’t an expansion card and do some testing. Your theories in here are interesting, it might be time to revive the disconnecting storage card thread as a disconnecting usb-c storage device thread.

I guess that eliminates my grand USB 3.x theory in your case.

@Be_Far Yes, I think the 1TB expansion card disconnects are a symptom of a more generic USB disconnect problem. They’re the most visible manifestation of the problem since lots of people have the same hardware and have it plugged in all of the time. But I have other drives disconnect like a 2TB Seagate USB-A drive.

Again, for me the solution has been to either force a drive to connect as USB 2.x or to connect my drives to a powered USB hub. Both of these solutions have resulted in stable behavior.

@suliblian I do have a USB tester though I’m not sure what to look for to identify problems. It’s funny. I got the tester to investigate these problems, but when I started trying to use it, I realized I wasn’t sure exactly what I was looking for!

I have started doing the Ubuntu testing to see if my problems are related to Windows in some way. The first thing I noticed is that in trying to boot from the thumb drive, it doesn’t show up in one of my USB ports… the same port where I have to do the halfway plugin trick to get my Seagate drive to appear. It doesn’t matter if I swap my USB-A modules, it’s the physical port that has the problem and not the modules. So this specific problem is at a lower level than Windows OS. It’s possible that the flaky disconnects and the flaky connects are two separate problems, of course.

Does the voltage drop if a load consumes more, ie, a higher current? If you don’t have a defined load like the one in the second link, a few spinning disks on an unpowered hub might do. To spin up they often draw more power, so only the spinup phase is relevant. Or another load that draws a high current.

IIRC, the FW gives 3.5A to the port that draws the highest current, plus 1.5A to each of the others. If voltage drops markedly below 5V with these currents, we may have suspect.

What happens if you plug the usb-C directly into the mainboard, without a module?

Unfortunately I can’t test this because my cable won’t fit there and it’s the only USB 3 one that I have. As was established earlier in this topic the general issue doesn’t occur over USB 2 (I have a cable with a far slimmer connector that’s USB 2).

Luckily we don’t need this tested because the USB-C modules are supposedly just dumb metal with no silicon whatsoever, so really it shouldn’t change anything - Effectively I already am plugging the drive directly into the motherboard.