I lost a good two hours the other day on an insufficiently documented device, looking for a way to flash a new firmware onto it.
dmesg was absolutely silent about it when I plugged in or out my C-C USB cable although the device switched on when I was using a simple charger instead. I opened it up to see if there was a special switch or something to put it in firmware flashing mode, to no avail. The little documentation I had only mentioned using one of the USB port.
In the end, out of ideas, I switched cables (even though I knew my cable was perfectly fine). As soon as I plugged in a A-C USB cables, everything worked immediately...
mort96 4 hours ago [-]
IMO it's a huge failure of the USB-C standard that to a USB 2 only device, a C-C cable looks different to an A-C cable. It's the cause of so many issues of the kind, "it works when I use a different cable" or "it works with this power supply but not that power supply". I understand why something needs the ability to check, but when not doing anything special to detect USB-C capabilities, they should be identical.
crote 4 hours ago [-]
> to a USB 2 only device, a C-C cable looks different to an A-C cable
It does not. The vast majority of sinks have absolutely no knowledge of the cable used.
This is literally device engineers not bothering to read any part of the USB-C spec, or intentionally leaving out a $0.0003 part. And no, that's not a typo - I really do mean "50k unit reel for $15".
mort96 4 hours ago [-]
I know how cheap resistors are. I design PCBs as a hobby and occasionally semi-professionally.
Leaving off parts should result in behavior which is identical whether you connect an A-C cable or a C-C cable. Detecting the difference between them should require adding parts.
crote 4 hours ago [-]
There is nothing to detect on the sink side, for basic operation. All the smarts are in the power source.
It's like saying USB cables should still carry 10Gbps data when only the VBUS and GND wires are present, because some AliExpress scammers leave out the data wires: you can't leave out trivial core parts and still expect it to work!
mort96 3 hours ago [-]
> There is nothing to detect on the sink side, for basic operation.
I know. You need the detection for the fancy stuff like PD, not for basic operation.
So why does it matter that a resistor is missing on the sink side? It's stupid.
Ajedi32 56 minutes ago [-]
It is needed for basic operation, because unlike with a A-to-B cable, power bricks plugged into a USB-C cable have no way of knowing whether the other side is also a power supply that will short out if you try to feed it power instead of drawing power from it. A couple resistors in the sink is probably the cheapest possible way of signaling this information to the supply. This isn't PD, it's just a basic requirement to allow having the same connector on both ends of the cable.
seba_dos1 3 hours ago [-]
You already got the answer spelled out several times here in this thread.
Ajedi32 4 hours ago [-]
I don't think you understand the problem. Unlike a USB-A power supply, a USB-C power supply cannot just assume by default that the device you plugged into it is not another power supply. That would risk causing a short and potentially starting things on fire.
I suppose that instead of a $0.01 resistor to request power they could have mandated some kind of (probably more expensive) circuit breaker that detects the short and shuts things off before it causes a fire, but I suspect then instead of broken devices having missing resistors you'd get ones with missing circuit breakers...
It pretty hard (maybe impossible) to design a spec that still works when manufacturers randomly omit critical components for no reason.
NooneAtAll3 4 hours ago [-]
if nobody follows the spec, it's the problem in the spec
why tf does it matter what the other side of the cable is connected to?
crote 4 hours ago [-]
> if nobody follows the spec, it's the problem in the spec
The vast majority of devices follow the spec. It isn't exactly hard, you know: throw "how do i implement a usb-c port on a device" in Google and its AI summary literally contains all the information you need.
If >99% of engineers have no trouble implementing it, can you really blame the spec?
> why tf does it matter what the other side of the cable is connected to?
Because both sides of a C-C cable have the same plug, and people want it to work properly when any kind of device is attacked to either side. This means using the same cable to connect a wall charger to a smartphone, a smartphone to a laptop, or a laptop to a docking station.
Similarly, they want the same port on a power bank to be be used both to put power into the power bank and to draw power out of it. And when they do something silly like connecting two wall chargers together, they don't want their house to catch fire.
seba_dos1 4 hours ago [-]
It doesn't.
All the power source needs is a way to sense that a power sink has been plugged in, as otherwise you could connect two powered sources with each other. Type C makes it about as simple as possible. It's really not the spec's fault.
ianburrell 4 hours ago [-]
USB-C doesn't provide power by default which is better design than USB-A always providing some power. The device needs to signal that it is a sink with 5.1k ohm resistors so the charger can turn on the power. There is also resistor to signal legacy USB charging to work with USB-A ports.
How is the standard supposed to work with defective devices that don't implement the standard?
seba_dos1 3 hours ago [-]
> There is also resistor to signal legacy USB charging to work with USB-A ports.
There's no such thing on the device. A power sink with a USB-C receptacle has two 5.1kΩ resistors, one on each CC line. A power sink with a USB-C plug has a single 5.1kΩ resistor. Always. That's it - anything else in on the power source (or cable) side.
You only need to bother with anything more on the sink side once you want to either sense what's the max current provided by the source (which you can do simply by measuring the voltage on CC pins), or implement PD.
ianburrell 3 hours ago [-]
I think you corrected me before. Maybe this time it will stick.
I don't understand why the USB-C module that they are using doesn't include the resistors. Then they can replace the microUSB module with USB-C module and have it work.
crote 2 hours ago [-]
Because putting a somewhat-precise resistor inside a connector is not trivial, and would likely double the price of the connector due to the increased complexity of manufacturing.
On the other hand: the resistor itself is basically free, and you are already putting a few dozen of them on your final PCB anyways. Adding one more resistor value barely changes the assembly process.
The people who are willing to skimp on USB-C resistors are definitely not going to splurge on a custom drop-in connector module, so it would not solve any real problem. The resistor-less devices are broken because their manufacturers do not care that they are broken. You can't engineer yourself out of that kind of greed and apathy.
genxy 3 hours ago [-]
The A-C cable is new the mini-usb cable. I keep a couple magic cables in the tool box with a big flag of tape on it so it doesn't disappear into the gyre.
criddell 6 hours ago [-]
What was the device? Somebody experiencing the same problem might appreciate the tip.
seba_dos1 4 hours ago [-]
There's all sorts of cheap devices like that out there that merely have a Type C-shaped receptacle that doesn't actually implement Type C because they couldn't bother to place two resistors on the board.
eknkc 6 hours ago [-]
I did not know this was a thing.
I have a couple of devices that do not charge on a usb c source. I have to use a USB A - C cable on their shitty usb-c ports.
Now that I know the probable reason I’m more annoyed.
Cieric 4 hours ago [-]
Another thing that it could be is quick charge, since that seems to conflict with some PD chargers as they'll try to negotiate, fail and then reset. My Light L16 camera has this problem so I have to use the charger it came with or find something dumb enough that it doesn't try anything special.
rjh29 5 hours ago [-]
While the device is ultimately to blame, many PD chargers will work anyway (by dangerously assuming 5V when there are no CC resistors). My Anker chargers do this.
8cvor6j844qw_d6 5 hours ago [-]
Interesting. I thought 5V is a safe default for USB when in doubt and risk of damage is nil even if it's assumed.
seba_dos1 4 hours ago [-]
Just grab two of these spec-violating chargers and a C-to-C cable.
I don't think the right solution to problems coming from spec-violating garbage is producing differently spec-violating garbage.
Palomides 5 hours ago [-]
are there devices that are damaged by 5V?
megous 4 hours ago [-]
There's nothing dangerous about it.
No Type-C receptacle featuring device can assume there will be no Vbus voltage on attachment from the other side, regardless of CC signals.
For a simple reason that USB C-A cable assemblies exist and can be plugged to any old charger or port on the A side, which will not wait or negotiate anything. It will just source Vbus 5V right away.
crote 4 hours ago [-]
... which is exactly why a source with a female USB-C port is not supposed to apply VBUS until it detects a sink.
Obvious counterpoint: what's going to happen when two noncompliant "always provide 5V" USB-C wall warts are connected together with a C-C cable? How well does a charger like power being fed into it?
blacksmith_tb 4 hours ago [-]
I have a fair number of badly designed / implemented usb-c devices with this problem (not all from fly-by-night companies, my Philips water flosser is a glaring example). I have a couple of small metal-enclosed male C to female C adapters (which don't have an exposed circuit board) that do the same thing as the Adafruit version.
rufo 5 hours ago [-]
As someone with a bunch of "USB-C" devices that do this, I'd wondered for years why nobody sold these. I recently just found them on Aliexpress in a more finished format (nice-looking case and such), so I'm hopeful they'll start to filter out into the world more. (If you're interested, do a search for "usb c resistor" and you'll find them for ~$2-$4.)
kevin_thibedeau 5 hours ago [-]
Are you sure they aren't C-to-C data blockers?
rufo 13 minutes ago [-]
As positive as I can be without having bought one just yet. The ones I've seen specifically say they "solve the problem that low power devices cannot be powered via C to C", that they support 480Mbps data transmission, and are listed as 5.1K ohm resistor adapters.
joecool1029 5 hours ago [-]
There were some higher profile products that left this out like the original revisions of the raspberry pi 4.
seba_dos1 4 hours ago [-]
Raspberry Pi 4 had a slightly different problem - they attempted to get away with using just one resistor instead of two, as it allowed them to simplify their voltage-sensing circuit a bit. At a cost of non-compliance and all the issues that came with it, of course, so not a great bet after all.
nubinetwork 3 hours ago [-]
So it wouldn't work on a pi then?
seba_dos1 3 hours ago [-]
It would, but it would make the Pi not able to check the power capability of the source.
Note that the Pi's failure mode is different - it does work with C-to-C cables as long as they don't contain e-markers. They tried to be clever and it backfired.
The_SamminAter 6 hours ago [-]
Oh, I made one of these not too long ago with those 4-pin solderable aliexpress USB-c pcbs. One side has the resisters, and I just joined them with headers. A few months ago I was looking for something just like this, but couldn’t find anything. I think a pack of 10 male and 10 female ports with CC resistors cost <$10, but I suppose this is a more elegant and accessible solution (plus, may actually pass more lines through).
summermusic 2 hours ago [-]
I've fixed this issue by using a Micro-USB to USB-C adapter
metaphor 4 hours ago [-]
Anyone in test for the domain able to attest that formal USB compliance verification would have detected the design defect that this hack resolves?
crote 4 hours ago [-]
It absolutely would. This is an "didn't even read a 5-paragraph AI summary of the spec" level of a design defect.
If you need this fix, it will literally refuse to work with any spec-compliant USB-C device on the other side of a C-C cable. No way to miss it.
8cvor6j844qw_d6 4 hours ago [-]
Wonder if there are USB C cable testers that detects this.
In practice, most if not all networking/hardware department carries a ethernet cable tester but somehow not true for USB cables.
Ajedi32 4 hours ago [-]
It's not the cable that's the problem here; it's the device you're plugging into the cable.
You don't need a cable tester to detect this problem; just plug the device into a spec-compliant USB-C power brick with a USB-C cable and see if it fails to charge.
seba_dos1 4 hours ago [-]
You don't need a tester to detect this (and it's not about cables).
tbyehl 5 hours ago [-]
Hagibis makes one that isn't a bare PCB. B0GLFGTLW9 on Amazon.com, for me today it's showing $6.99 for a 2-pack.
m-p-3 3 hours ago [-]
I hate my Powkiddy retro game console because of this. What's the point of a portable console if it's doesn't work with all the USB-C cable I have?
I'm so annoyed they cheaped out that I don't even plan on buying anything from them again.
megous 4 hours ago [-]
2 connectors and a 0.01c PCB for the price of a complete working charger.
Ajedi32 4 hours ago [-]
If you need this, it's not the charger that's broken but the device you're plugging into it.
megous 4 hours ago [-]
Yes, the point is it's extremely expensive for what it is.
crote 2 hours ago [-]
That's the cost of Western retail for you!
$0.50 to get it manufactured somewhere in Asia, $4.00 to get it shipped to the US, tested, packaged, put on a shelf, retrieved for your order, and put in a box to ship your way.
You're not paying for the PCB, you are paying for an American warehouse worker to do their job without having to pee in a bottle and walk around dead coworkers.
seba_dos1 3 hours ago [-]
Yeah, I once had similar (with a different purpose, but very alike) boards of my own design produced and paid $22 total for 5 assembled boards, including shipping from China to Europe and all taxes/customs. Unlike this one it had SuperSpeed passthrough too, so you could probably go cheaper :)
rahimnathwani 4 hours ago [-]
You can get five of them for less than $4 total here:
I don't buy and return products that don't charge with a single usb-c cable. How can I expect good quality from a product if the maker saves on ¢1 cent? It's 2026 yet new products still keep people from going all usb-c.
0x457 4 hours ago [-]
It's much less than a cent.
Rendered at 22:19:11 GMT+0000 (Coordinated Universal Time) with Vercel.
dmesg was absolutely silent about it when I plugged in or out my C-C USB cable although the device switched on when I was using a simple charger instead. I opened it up to see if there was a special switch or something to put it in firmware flashing mode, to no avail. The little documentation I had only mentioned using one of the USB port.
In the end, out of ideas, I switched cables (even though I knew my cable was perfectly fine). As soon as I plugged in a A-C USB cables, everything worked immediately...
It does not. The vast majority of sinks have absolutely no knowledge of the cable used.
This is literally device engineers not bothering to read any part of the USB-C spec, or intentionally leaving out a $0.0003 part. And no, that's not a typo - I really do mean "50k unit reel for $15".
Leaving off parts should result in behavior which is identical whether you connect an A-C cable or a C-C cable. Detecting the difference between them should require adding parts.
It's like saying USB cables should still carry 10Gbps data when only the VBUS and GND wires are present, because some AliExpress scammers leave out the data wires: you can't leave out trivial core parts and still expect it to work!
I know. You need the detection for the fancy stuff like PD, not for basic operation.
So why does it matter that a resistor is missing on the sink side? It's stupid.
I suppose that instead of a $0.01 resistor to request power they could have mandated some kind of (probably more expensive) circuit breaker that detects the short and shuts things off before it causes a fire, but I suspect then instead of broken devices having missing resistors you'd get ones with missing circuit breakers...
It pretty hard (maybe impossible) to design a spec that still works when manufacturers randomly omit critical components for no reason.
why tf does it matter what the other side of the cable is connected to?
The vast majority of devices follow the spec. It isn't exactly hard, you know: throw "how do i implement a usb-c port on a device" in Google and its AI summary literally contains all the information you need.
If >99% of engineers have no trouble implementing it, can you really blame the spec?
> why tf does it matter what the other side of the cable is connected to?
Because both sides of a C-C cable have the same plug, and people want it to work properly when any kind of device is attacked to either side. This means using the same cable to connect a wall charger to a smartphone, a smartphone to a laptop, or a laptop to a docking station.
Similarly, they want the same port on a power bank to be be used both to put power into the power bank and to draw power out of it. And when they do something silly like connecting two wall chargers together, they don't want their house to catch fire.
All the power source needs is a way to sense that a power sink has been plugged in, as otherwise you could connect two powered sources with each other. Type C makes it about as simple as possible. It's really not the spec's fault.
How is the standard supposed to work with defective devices that don't implement the standard?
There's no such thing on the device. A power sink with a USB-C receptacle has two 5.1kΩ resistors, one on each CC line. A power sink with a USB-C plug has a single 5.1kΩ resistor. Always. That's it - anything else in on the power source (or cable) side.
You only need to bother with anything more on the sink side once you want to either sense what's the max current provided by the source (which you can do simply by measuring the voltage on CC pins), or implement PD.
I don't understand why the USB-C module that they are using doesn't include the resistors. Then they can replace the microUSB module with USB-C module and have it work.
On the other hand: the resistor itself is basically free, and you are already putting a few dozen of them on your final PCB anyways. Adding one more resistor value barely changes the assembly process.
The people who are willing to skimp on USB-C resistors are definitely not going to splurge on a custom drop-in connector module, so it would not solve any real problem. The resistor-less devices are broken because their manufacturers do not care that they are broken. You can't engineer yourself out of that kind of greed and apathy.
I have a couple of devices that do not charge on a usb c source. I have to use a USB A - C cable on their shitty usb-c ports.
Now that I know the probable reason I’m more annoyed.
I don't think the right solution to problems coming from spec-violating garbage is producing differently spec-violating garbage.
No Type-C receptacle featuring device can assume there will be no Vbus voltage on attachment from the other side, regardless of CC signals.
For a simple reason that USB C-A cable assemblies exist and can be plugged to any old charger or port on the A side, which will not wait or negotiate anything. It will just source Vbus 5V right away.
Obvious counterpoint: what's going to happen when two noncompliant "always provide 5V" USB-C wall warts are connected together with a C-C cable? How well does a charger like power being fed into it?
Note that the Pi's failure mode is different - it does work with C-to-C cables as long as they don't contain e-markers. They tried to be clever and it backfired.
If you need this fix, it will literally refuse to work with any spec-compliant USB-C device on the other side of a C-C cable. No way to miss it.
In practice, most if not all networking/hardware department carries a ethernet cable tester but somehow not true for USB cables.
You don't need a cable tester to detect this problem; just plug the device into a spec-compliant USB-C power brick with a USB-C cable and see if it fails to charge.
I'm so annoyed they cheaped out that I don't even plan on buying anything from them again.
$0.50 to get it manufactured somewhere in Asia, $4.00 to get it shipped to the US, tested, packaged, put on a shelf, retrieved for your order, and put in a box to ship your way.
You're not paying for the PCB, you are paying for an American warehouse worker to do their job without having to pee in a bottle and walk around dead coworkers.
https://a.aliexpress.com/_mtW11kT