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...
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.
It's the LTS5 from Dragino, a LoRa touchscreen: https://docs.dragino.com/docs/LoRaWAN-End-Node/lora-modules-.... And for the record, I'm extremely happy with all their other products, which are all open-firmware, open-hardware, etc. and excellent quality. Plus they're super responsive. It's just this particular product which has this weird issue.
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.
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?
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.
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.
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.
... 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?
Nothing will happen most of the time. Cheapo chargers are usually flyback design which is immune to this.
Anyway if you connect anything non-compliant together anything can happen. My point was that always on 5V is no problem for compliant device on the other side.
Normal people don't connect two chargers together. :) You can create all kind of fun combos though. Like connecting your PC via USB-A port to a type-c charger, etc. It's all by design safe. USB-A will provide power no matter what, it doesn't matter what CC signals are.
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.
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).
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.)
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.
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.
It would, but it would make the Pi always believe it's connected to a 500/900mA source. [edit] Actually, not sure - I assumed that they don't connect CC pins on both sides with each other on this fixer board, but if they do, it wouldn't work.
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.
Yeah, I have once produced similar boards of my own design and paid $22 total for 5 boards, including shipping from China to Europe and all taxes/customs. It had Super-Speed passthrough too, so you could probably go cheaper :)
$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.
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.
37 comments
[ 3.1 ms ] story [ 49.4 ms ] threaddmesg 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...
How is the standard supposed to work with defective devices that don't implement the standard?
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?
Anyway if you connect anything non-compliant together anything can happen. My point was that always on 5V is no problem for compliant device on the other side.
Normal people don't connect two chargers together. :) You can create all kind of fun combos though. Like connecting your PC via USB-A port to a type-c charger, etc. It's all by design safe. USB-A will provide power no matter what, it doesn't matter what CC signals are.
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.
https://a.aliexpress.com/_mtW11kT
$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.
I'm so annoyed they cheaped out that I don't even plan on buying anything from them again.