28

I have a Win 10 64-bit HP laptop (model: 15-dw0088ca) which has 1 USB-C port and two USB ports.

  1. Can I use an ordinary USB-C <-> USB-C cable, like the one in Pic 1, to transfer files from this HP computer to another one that also has an USB-C port?

simplex1_0-1633888143587.jpeg

Pic 1: USB-C <-> USB-C cable.

  1. Can I use an ordinary USB-C <-> USB cable, like the one in Pic 2, to transfer files from this HP computer to another one that only has USB ports (no USB-C port)?

simplex1_1-1633888328047.jpeg

Pic 2: USB-C <-> USB cable.

Remark: I know that, with some software, files can be transferred from one PC to another using a special USB <-> USB cable like this one:

simplex1_2-1633888514559.jpeg

PC to PC data transfer cable (which I do not have).

Various sites say that using an ordinary USB <-> USB cable for PC to PC data transfer is not a solution. I do not really understand why as long as ordinary cables like: USB <-> Micro-USB, USB <-> USB-C, USB-C <-> USB-C can be used for transferring files between a mobile phone and a PC.

Note:

There is a similar question (Is it possible to connect two PCs via USB C?) but the answers there are a bit speculative. This is an example:

So, if you have two computers with USB-C ports, and a USB-C cable, then the chances are that all the hardware is there to make a 20 Gbps connection between the two. All it takes is one computer to have the right software to support a network device on a USB-C port, and the other to have the right software to emulate a network device on a USB-C port.

It is not clear from the above excerpt whether an USB-C <-> USB-C connection between two computer, with an ordinary cable (not a data transfer cable), is possible. Also, there is no answer regarding the USB-C <-> USB data transfer.

10
  • 1
    Does this answer your question? Is it possible to connect two PCs via USB C?
    – MMM
    Oct 11 at 12:37
  • @MMM , The answers there are a bit speculative. they are not quite clear. I quote from an answer: "So, if you have two computers with USB-C ports, and a USB-C cable, then the chances are that all the hardware is there to make a 20 Gbps connection between the two. All it takes is one computer to have the right software to support a network device on a USB-C port, and the other to have the right software to emulate a network device on a USB-C port." Oct 11 at 12:40
  • 2
    "ordinary cables ... can be used" Only if transfer's enabled in the phone. In that case the phone basically presents itself to the PC as an external drive or a controllable device. PCs don't have the facility by default. What the answer you quoted refers to is Ethernet-Over-USB, in which case your PCs see the USB ports as network interfaces, and data transfer is done with network protocols and data transfer tools. Oct 11 at 12:52
  • 4
    Note that what you call "USB" is actually the USB-A connector. Oct 11 at 22:16
  • 1
    @RobertWerner That converter emulates two network adapters, one for the device on each end. Oct 13 at 0:13
33

USB-C gets rid of the physical USB-A/B distinction and instead allows the two ends to negotiate to work out which acts as computer and which as a device.

However, connecting two USB-C desktops together with a USB-C cable, although physically possible, still ends up with one end being required to act as a device. Most computers don’t usually have software (or hardware) allowing them to act as devices, although it is possible to install such software. Then it all depends on this software.

This is why for generic USB-C you still need a PC-to-PC data transfer cable, that acts for both computers as a device so both computers can act as hosts, which Windows does well. Unless the transfer cable can emulate a network adapter for both hosts, you will also need a specialized software for the transfer of data.

USB-C can also be used for Thunderbolt 3, and if both computers have this then connecting them together with a USB-C cable results in a 10Gbps network link between the two. Thunderbolt 3 has this networking capability built in, rather than requiring adapters or special software. You can even use this capability to daisy chain together multiple PCs into a high speed LAN without requiring a switch, as long as the intermediate PCs each have two Thunderbolt 3 sockets, taking advantage of the Thunderbolt 3 built-in daisy-chaining capability.

Without Thunderbolt 3, the best bet is to do the transfer via a common router. You may also connect the two computers directly via an Ethernet cable to create a local network. Modern Ethernet adapters do not even need a crossover cable.

11
  • 20
    I think it should be noted how utterly insane it is that an ordinary user can't practically transfer files between two computers by linking them with a physical cable, whether USB or ethernet.
    – iono
    Oct 13 at 14:28
  • 5
    "Most computers don’t usually have software allowing them to act as devices" - this is a deep misconception. To act as USB device, the computer must have a dedicated hardware block, and means to control host-device data flows/muxes. Which is absent in most/all desktops. "Just software" cannot make a USB host controller into "device controller", hardware functions are fundamentally different. And there is no logical model of host-to-host connection in USB3 and older. The concept is introduced only in USB4. Oct 13 at 17:58
  • 4
    @iono It works just fine with Ethernet. Both computers will get an APIPA address and if you answer "yes" to the prompt Windows gives you about making your computer discoverable to other computers on the network you can share files. Other OSes have other file-sharing options (like scp), but it's basically the same.
    – 9072997
    Oct 13 at 22:02
  • 9
    @Vikki - not for many years already you don't. Auto MDI-X takes care of crossover inside the network interface.
    – brhans
    Oct 13 at 23:51
  • 2
    @iono it was/is possible with serial cables and ethernet cables or any other kind of network cable (firewire). USB just isn't a Network standard and needs a clear host/client relationship, beginning at the hardware level... Oct 14 at 10:41
16

Can I use an ordinary USB-C <-> USB-C cable, like the one in Pic 1, to transfer files from this HP computer to another one that also has an USB-C port?

As far as I know: only if both ports are Thunderbolt or USB4 ports, and if the operating system on both ends supports "IP over Thunderbolt" (or really Ethernet over Thunderbolt). This is available in macOS, Linux, and apparently supported in Windows 10 as well. If it is supported, the connection would show up as a new LAN interface through which you could use SMB or other network file transfer software.

Unfortunately, it seems that your laptop's USB-C port only supports USB (3.2 Gen 1x1) but not Thunderbolt.

With just USB, it would in theory be possible with USB-C for either end to act as either role (USB host vs USB peripheral), but as far as I know, laptops typically do not support this – only smartphones tend to be dual-role, while computers are always hosts.

(Note that the ability to switch USB roles for data transfer seems to be completely independent from the ability to change power supply direction in USB Power Delivery.)

Can I use an ordinary USB-C <-> USB cable, like the one in Pic 2, to transfer files from this HP computer to another one that only has USB ports (no USB-C port)?

Same as above, excpt the device on the USB type-A side is always a USB host, so the HP laptop on the USB-C side is specifically the one which would need to support role switching.

(Finally, if one of the devices supported USB peripheral mode aka USB OTG, like a Raspberry Pi with its USB OTG-capable "dwc2" chip, it could pretend to be a network interface or a storage device – but only Linux has so-called "gadget" drivers implementing this; Windows doesn't.)

It will be helpful if someone can explain to me the purpose of that convertor which can be seen in the middle of the PC to PC data transfer cable (the last of the three pictures I posted).

Regular USB A-to-A connections are not allowed. The 'A' port is always on the USB host, and you cannot connect together two USB hosts. If you tried to make such a direct cable, you'd probably fry one of the USB controllers.

(Micro-B ports on phones and some RPi models are wired to special controllers which can act as either host or peripheral, and the Micro-B port itself has an extra pin to indicate this – which full-size A/B ports did not.)

So what you (usually) have with this cable is not an A-to-A connection between the PCs, but two fairly standard A-to-B connections to the box in the middle which acts as a USB peripheral on both sides. They're a lot like if you had two "USB-to-Ethernet" adapters connected back-to-back.

8
  • 2
    For Macos, you have to boot one of the computers into "target disk mode". Oct 11 at 21:54
  • @ChristopherSchultz: If you want raw access to the disk over SCSI, then yes, but that's a separate feature from networking over TB/FW.
    – user1686
    Oct 12 at 4:44
  • " you'd probably fry one of the USB controllers." USB, even the early generations, is quite robust. Since the voltage will be capped at 5V, nothing will fry. It won't work, but the worst-case scenario is that you might need to powercycle both PC's.
    – MSalters
    Oct 12 at 7:24
  • 2
    I've had powered USB hubs that lacked diodes, causing them to backfeed the USB port when no load is applied. The computer didn't actually notice unless the USB port was supposed to be unpowered (at boot or sleep), at which point it turned the thing off for safety reasons.
    – AI0867
    Oct 12 at 12:23
  • 1
    @Vikki: They use the same connector, but no, Thunderbolt is a separate packet protocol. It can encapsulate USB traffic, or PCIe traffic, or IP directly for IP-over-Thunderbolt. See this diagram and description from wikichip re: Ice Lake's Thunderbolt, and also note the difference between raw Thunderbolt 3 bandwidth (40 Gbit/s) vs. PCIe3 x4 (32.4 Gbit/s) and/or DisplayPort (34.56 Gbit/s) with aggregate 40 max Oct 14 at 2:01
4

For you, (un)fortunately, answer boils down to this: get an USB-C/USB-C cable and try. You may have to be careful, though, as Austin Hemmelgarn points out there may be significant voltage difference between laptops, which may not be mitigated by internal protection of the USB port... Modern laptops aren't grounded at all, so you may have to either get a dedicated USB grounding cable (believe it or not, but apparently this is a big issue in USB, especially for people working with sound on their laptops, and they worked it out ages ago), or makeshift something.

To connect two PCs via USB for data transfer - besides using Bridged USB-A/USB-A cable that has some extra board added, which you don't have - you have few possibilities available:

  1. Use USB-C/USB-C cable. But it also requires for at least one port to be DRD (Dual-role-Data) port. It is part of the USB-C standard already, so basically, it depends on the actual, physical build of the port(s) you have in your laptop(s). Had one of your computers be a Mac of newer design, answer would be yes, as Apple makes all it's USB-C ports as DRD for a few years now.

  2. I think you could also achieve what you need with USB-A/USB-A cable, but again, at least one port needs to be DRD and of course it is, I believe, USB3 or higher feature (But please don't quote me on this, I'm not 100% on that).

  3. Technically, you could to that too with any USB cable provided one of the devices is OTG (OTG is basically DRD, but I think those differ in implementation, so same functionality, different port build), but same condition applies: not 100% sure. Also, not sure if OTG is purely hardware, or it needs also software to work properly (which means drivers in your case).

12
  • 1
    Note that one of the requirements of USB C was that any possible connection does not cause damage, so you don't need to be careful (assuming proper implementations, which when should assume or else undefined behaviour happens)
    – Ferrybig
    Oct 12 at 16:59
  • 1
    @AcePL Even though USB has a higher power limit, the specification only allows up to 7.5W without proper negoation, and USB C ports must be protected in voltage in either direction until the role has been establised. (sinks excluded) People connecting chargers to each other or other invalid combinations has been part of the standard of allowing cables with the same plug, it also requires ground and power to mate before any signal cables
    – Ferrybig
    Oct 13 at 7:00
  • 1
    @Ferrybig - All you said is true, and it's true since at least USB2 (in general, of course -C is more advanced and better), and yet it's still a problem. Have you seen the details on grounding implementation of the USB-C standard, which I linked in my answer? Austin asks you a question: would you be willing to bet your two laptops on "it should work, because standard says so"? His point (and I agree) is that with two laptops the probability the connection's power and ground DIFFERENCE to be too much for the circuitry to compensate. There's only so much 10 nanoFarad capacitor will take...
    – AcePL
    Oct 13 at 7:23
  • 3
    @Nat: Because self-powered USB devices don't connect USB VBUS pin to their internal power supply. USB hosts do.
    – Ben Voigt
    Oct 13 at 17:16
  • 3
    @Nat: If things are working right, then with USB-C both hosts will detect no peripheral device and neither one will turn on VBUS. But a damaged (or poorly-made) cable could trigger turning on VBUS at both ends... People have definitely burned up USB-C ports by using knockoff cables.
    – Ben Voigt
    Oct 13 at 17:30
4

It's possible, but it would require different drivers to the ones that most computers normally use, for the particular port that you are going to be using for this purpose. Such software is not widely available and would probably be a PITA to set up.

In practical terms I'd plug both computers together with Gbit Ethernet and transfer data between them using the existing networking software. The minimum hardware requirement (for those living on a desert island), is one cross-over Ethernet cable. If you have a computer with no wired Ethernet port, get a USB3 (or USB2) Ethernet "dongle", or use wireless through your router. Wireless is pretty fast these days if you put the wireless computer close to a sufficiently capable router.

I once saw a USB data-exchange cable rather like the photo in the question, with a plastic lump in the wire and some rather bogus Windows software. Out of interest I plugged it into a Linux computer, which revealed the plastic lump to contain two USB-Ethernet NICs connected together! So basically, an expensive way to avoid having to learn how to configure one's networking software at all.

1
  • 1
    You do not need a special cross-over cable for gigabit (and everyone has gigabit these days). Any old Ethernet cable should do fine.
    – user253751
    Oct 14 at 12:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.