Getting Started With USB-C And Common Pitfalls With Charging And Data Transfer

USB-C is one of those things that generally everyone seems to agree on that it is a ‘good thing’, but is it really? In this first part of a series on USB-C, [Andreas Spiess] takes us through the theory of USB-C and USB Power Delivery (PD), as well as data transfer with USB-C cables. Even ignoring the obvious conclusion that with USB-C USB should now actually be called the ‘Universal Parallel Bus’ on account of its two pairs of differential data lines, there’s quite a bit of theory and associated implementation details involved.

The Raspberry Pi 4B's wrong USB-C CC-pin configuration is a good teaching example.
The Raspberry Pi 4B’s wrong USB-C CC-pin configuration is a good teaching example.

Starting with the USB 2.0 ‘legacy mode’ and the very boring and predictable 5 V power delivery in this mode, [Andreas] shows why you may not get any power delivered to a device with USB-C connector. Most likely the Downstream Facing Peripheral (DFP, AKA not the host) lacks the required resistors on the CC (Configuration Channel) pins, which are both what the other USB-C end uses to determine the connector orientation, as well as what type of device is connected.

This is where early Raspberry Pi 4B users for example saw themselves caught by surprise when their boards didn’t power up except with some USB cables.

The saga continues through [Andreas]’s collection of USB-C cables, as he shows that many of them lack the TX/RX pairs, and that’s before trying to figure out which cables have the e-marker chip to allow for higher voltages and currents.

On the whole we’re still excited about what USB-C brings to the table, but the sheer complexity and number of variables make that there are a myriad of ways in which something cannot work as expected. Ergo Caveat Emptor.

28 thoughts on “Getting Started With USB-C And Common Pitfalls With Charging And Data Transfer

  1. Yet ANOTHER USB-C “Tutorial”! I have a collection of these now – they all produce different results depending on the hardware devices and cables you use. Surely any progress towards a USB “standard” we users can DEPEND on is still just an illusion. Who do we blame for this stinking mess we are swimming in? The USB Implementers Forum, Inc. (USB-IF)? Nah – we have to blame ourselves for putting up with it – and in-general the GREEDY over-paid non-technical Marketing Goons that run the show. Remember USB-4 is just around the corner! Bend down, here it comes…

    1. While I largely agree, also a bit unfair. Folks can’t do anything but put up with it if there are no other choices – even the folks of HAD that probably could manage to create a good alternative don’t have the time and money to actually do so, and while marketing goons have alot to answer for in general in this case I would suggest it is rather more far too many cooks spoiling the broth in developing the ‘universal’ standard.

      USB-C is a bit like starting again, so definitely would expect it to be a mess as was USB1.0 that sorts itself out quite a bit by USB2 once the chip-makers and product builder and marketing folks sort out the problems. That said I really don’t think USB-C is a good spec at all, but at least it is a real rather than just paper standard, which means there is hope it might be…

  2. I’ve said it before, and I’ll say it again. A standard is only as good as the implementations of it. If it’s too complicated or confusing and a significant proportion of implementations get it wrong – not just crappy AliExpress junk, but reputable people like RasPi, the “standard” isn’t standard.

    We’re back where we were 20 years ago – the only reliable way to charge a device is to use the charger and cable from the same manufacturer. Except now they all *look* like they fit 🙄

    1. I basically have two sets of USBC devices. Those that appear fully compliant and everything else. Which is really just those that can do high power and those that don’t.

      The low power devices seems to survive on any USB A adapter and USB A to C cable. I also have (probably not compliant) USB cables with power displays which shows things are at least powered.

    2. In defence of AliExpress I’ve yet to have a USB C equipped product from there not work correctly, whereas Adafruit and Pimoroni in particular sell products without the required resistors at all.

  3. The good thing about the first version of USB was that it provided power beside the data connectivity.

    The USB standard has always been overcomplicated. But it definitely was a leap forward in terms of speed and features.

    USB 2.0 gave us 480Mbps. USB3.0 5.0Gbps.
    USB 4.0 40Gbps And there are rumors about 80Gbps in the next revision. This is amazing.
    But such crazy speeds do require good cables.

    The USB PD spec is also preaty nice. It came a bit late though. There were multiple years with propritary charging standards. Usb-c also came a bit late. It should have came in the place of the abomination which was micro usb type b 3.0.

    I agree that the most important thing is not the spec, but the implementations.
    But the way to the future is to cleanly mark each port, and each cable what it is capable of. But I don’t see this comming any time soon..

  4. I’m implementing a USB-PD+Data PCB dev board and was kind of taken aback at how rare it is to find USB PD 3.0 capable ports that also carry data, at least in standard(ish) PCs; even PCIe lanes only support 25W out of the connector. Kind of a shame, but also explains why many of those portable external monitors require two C connections: one for data, one for power (read: wall wart).

    1. The KM003C Tester featured in this article looks useful, so I looked at the links:

      Amazon $US95: https://www.amazon.com/Voltmeter-Charger-Voltages-Detector-Accessories/dp/B0CRJQ18DR/ref=sr_1_4
      Ali Express $US60: https://www.aliexpress.us/item/2255800759497923.html

      It’s typical for Amazon to be higher, but that is a significant difference. I’m not in a rush, but want it for my toolbox. Has anyone had experience with the KM003C from AliExpress? Any cautionary tales?

      1. It will most likely be the same hardware – and that is a smaller margin than I often see. I often see stuff on aliexpress that is then boxed and sold as another brand for 5 times the price here in aus in a store, sometimes 10 times the price..

      2. I’ve had good luck with AliExpress. Money is held in escrow until you receive the goods and do not dispute. Their dispute process is fair, when I’ve had an issue. Delivery is usually in 2 weeks for most goods. And… No Tax which gives them an advantage if you can wait.

        1. I have literally bought many hundreds of things on aliexpress – you soon get to know good suppliers (good delivery, reasonable products) and sometimes you have to take the chance to get new ones.
          Once you have a bit of practice it’s not too hard to tell the scam ones, and I think I’ve only twice had products not show up – and alixpress did a full refund..

          I started using it years ago because of range – it is hard to get things in Aus – but now use it for both range and price.it is rare I don’t get something for 1/3 of the price that I can get it in Aus..

        2. Do make sure you use the AliExpress dispute function, and not just contact the seller if there’s a problem. I made that mistake once, just contacted the seller. They assured me a replacement was on the way. I waited, and waited, and waited, and the time to file a dispute passed. And then the seller suddenly couldn’t understand anything I asked them (sure) and just kept linking me to my receipt over and over.

          It was a semi-expensive mistake too.

          Other than that, been quite happy. I think the number of problem orders I’ve had has been about on par with Amazon, to be honest. And if you shop around there’s more and more stuff that’s available for 14-day shipping, sometimes even with free shipping to boot.

  5. short of buying a cable and testing it you have no idea what a usbc cable will do for either poeer deliver or data transfer speed.
    It seems to be completely random, and not even correlated with the price of the cable..

    I have in my cable box – now all labeled – usbc cables that will only do 30MBytes/s, and ones that will do 2Gbytes a second (my fastest usb device). You can’t tell from the outside of the cable.

    Power delivery is just as bad, I have cables that I wouldn’t dare to plug in to deliver power!

    The whole thing is a mess.

    1. Made worse by how few devices label their ports or have every feature the device supports available on every port – can’t even be sure it is a dud cable until you have cycled around every port or have a known good device port to check that feature with…
      I really hate USB-C… But as it has become the standard to the extent it has seems we are largely stuck with it…

    2. There certainly are some “school fees” associated with getting up to speed with what the USB-C ports on a device or cable are capable of. USB-C is just a connector after all

  6. Case in point. I have a Dell XPS laptop which is marked as 30W.
    It came with a Dell branded usb-c psu also marked as 30W with a fixed cable.
    When using the psu the laptop complains it’s under powered and charging takes a while.

    Tested with a 45W psu and it’s fine..

    What’s a user to do?

    Could be a cable/psu fault. Could be a counterfeit psu?

    No way to know without a usb-c tester…

    1. If you have the equipment, you can always measure the current at the mains side. Depending on how hot your psu gets while charging, you can guess an efficiency number (say 95%) and that will show you what the chargingpower is approximately. I have a multimeter with bluetooth that i could use for such a setup, and such i could plot charging power over time. But if you breakout mains to measure current, be very, very careful with what you do. Best option is to use dedicated kwh meters of clamp on meters, of course.

  7. I really don’t understand why people are so hyped over USB-C, criticizing any device that doesn’t have it – even the ones that only do USB 2.0. I’ve yet to see a micro USB connector (not to mention mini USB or type A or B) pull out of the socket as easily as USB C, which does it all the time. Are the connector dimensions also subject to interpretation?

    1. I’ve seen tons of micro usb sockets that only worked if you held the cable in a magic position and eventually things always failed completely. It’s not sturdy, it may last plenty of insertions in a perfect world but in the real world I’d rather mini-usb than micro. And by using type C even when you don’t need to, you have cables around for when you do want its capabilities. Otherwise for 3.0 you need the wide version of micro-b or the full size connector.

      1. You are now assuming that type C cable actually does all or even any of the USB-C stuff – I agree Micro wasn’t as durable as Mini, but both are good enough and cheap’n’easy enough to replace with primitive tools. The USB-C connectors on the other hand pose a bigger challenge, and quite likely the device won’t just work with the cable on your desk anyway…

        1. I agree that being unable to tell what fraction of the capabilities the cable can support is dumb. At least you get the usual 5v power and usb 2.0 as a baseline. I don’t have a lot of spare usb-c cables, but I don’t plan to pick up many that can’t do better than that, except for charging maybe. Does it really happen that often that you get screwed over by which cable you grabbed?

          I also agree that being able to replace connectors would be great and c would be harder in that regard, but I am not likely enough to successfully do so on a lot of compact devices that may have such connectors.

          1. Personal story from my workplace. Back in the covid days we got sent docking stations and monitors etc. to use with our work laptops at home (we had docking stations at work, and were expected to use just the laptop when travelling or at home).

            One user lost the cable between their dock at the laptops, asked me to source a new one. Naively I just bought a USB-C cable and had it sent there. It didn’t work, was just USB2 apparently

            Next I ordered one that was USB3 compliant, as that was what the dock I had used. It didn’t work. So I bought a Thunderbolt 3 USB-C Cable, that didn’t work either.

            The documentation/specifications for the dock was no help (Toshiba, same as the laptop), so running out of remaining options I bought a 40 Gbps Thunderbolt cable. That did the trick finally .

  8. usb connector issues:
    1 Raspberry Pi 4B power requires specialized cable.
    2 Libre Le Potato uses micro usb c.
    3 Sipeed 64 bit MAIX BIT 2 core RISC-V uses standard type c. :)
    4 STM64 ARM Cortex M4 Nucleo uses usb mini.

    [M4s have ~all replaced 8051s for flash memory controller, we are learning.]

    Nucleo board appeared to have type c connector. No.

    Micro type c? No.

    YouTube video revealed mini used. Worked.

    1-4 all looks so similar in size.

    Sipeed and Nucleo both use the Arduino IDE.

    You can get your app running without invocation from an OS?

    Albert Gore willing, of course.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.