J-Link Compact Usb-C Issues
Posted3 months agoActive3 months ago
alvarop.comTechstory
heatednegative
Debate
80/100
Usb-CHardware IssuesElectronics Design
Key topics
Usb-C
Hardware Issues
Electronics Design
The J-Link Compact USB-C device has issues due to a non-compliant USB-C cable design, sparking a discussion about the complexities and frustrations of USB-C implementations.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
54m
Peak period
39
0-3h
Avg / period
7.4
Comment distribution74 data points
Loading chart...
Based on 74 loaded comments
Key moments
- 01Story posted
Sep 28, 2025 at 2:40 PM EDT
3 months ago
Step 01 - 02First comment
Sep 28, 2025 at 3:33 PM EDT
54m after posting
Step 02 - 03Peak activity
39 comments in 0-3h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 30, 2025 at 2:27 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45406749Type: storyLast synced: 11/20/2025, 6:39:46 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
the complexity is high, but how else can you tell a cable that supports USB4 (40GBps) from one that’s only good for charging your phone (and everything in between)? users aren’t going to be able to tell the difference (using a cable with no data lines is already a super common issue with people getting into MCUs) so the device needs to be able to tell how much data and power the connected cable can distribute automatically.
this also why usb-c extension cables (M-F) aren’t spec complaint
it’s a real cool port, but the complexity demon is definitely present in the spec :)
By attempting to link up at the highest supported speed and downshifting if there's no valid signal? Ethernet had this figured out decades ago.
I’m not sure if e.g. Displayport even has the capacity for link training (and there are USB-C to Displayport cables that have to support legacy devices that know nothing about USB); HDMI (until 2.2 or so) definitely does not.
It’s ok to not agree with the USB-IF’s tradeoffs in their solutions, but denying the complexity of the problem space can be a hint that you don’t sufficiently understand it to pass that kind of judgement.
Probably shouldn't be surprised but it involves communicating over the AUX channels. Is this something that a sizable % of computers can do? For some reason I thought aux channel was semi free for use, that it could be for Ethernet or USB in a pretty naked form. Didn't realize that needed mode switching?
https://www.intel.com/content/www/us/en/docs/programmable/68...
But to GPs point, there still needs to be a way to tell the source that a given cable is a USB-C-to-DisplayPort one in the first place. So why not include the metadata on what signal grades it’s rated for in that same indicator? That’s exactly what e-markers are.
but denying the complexity of the problem space can be a hint that you don’t sufficiently understand it
...or that I understand more of it simultaneously to see that it could be made much simpler.
This allows it to work with other ports without putting a complete link speed protocol converter into the cable or adapter.
And even with Ethernet, that autorating has plenty of downsides. I've had a cable which I accidentally nailed through, so sometimes it could only connect at 10Mbps. It took me a long time before I realized it needs to be replaced, precisely because it'd just downshift instead of throwing any errors.
precisely because it'd just downshift instead of throwing any errors.
That's "a feature, not a bug".
The price is not too surprising --- the margins are insane on many embedded development tools, although the stuff coming out of China is slowly trying to change that. The most expensive part of this device is the MCU which is around $15, but comparable ones from other manufacturers are <$5.
Out of what must be dozens, I own a total of two devices, and have encountered one more, that have this kind of mistake in their design; except for the Raspberry Pi 4, I’m not surprised based on the quality and price of the device.
More evidence that USB-C is an insanely overengineered spec. Cables should be dumb pipes, not devices with their own active circuitry. IMHO Ethernet, while not perfect, got this part right.
The only reason the signals don’t exactly match the one above is just the orientation of the cable.
This is one of the more perplexing design decisions. Was simply mirroring the contacts too simple for them? Did someone imagine a use-case where they wanted to detect the orientation of the cable? WTF.
I am very happy that I can charge my phone and laptop from the same charger, and don't ever have to worry about whether the cable I'm using will be a fire hazard.
I appreciate having the option to choose between a thin cable for charging only, and a pretty thick (and also heavy, inflexible, and relatively expensive) one for high-speed data transfer and charging.
The only alternative to that would seem to be having different ports per device, which is infeasible in many cases, and inflexible in most others.
> Was simply mirroring the contacts too simple for them?
That would require twice the number of contacts for the same number of physical wires, which would make the plugs even larger.
Smartphones already do this. They essentially measure the resistance of the cable by measuring the voltage and correlating it with the current drawn, and regulate the current accordingly.
That would require twice the number of contacts for the same number of physical wires, which would make the plugs even larger.
No. Look at the pinout. It's not symmetrical. They could've made it perfectly symmetrical.
Not sufficient. It’s easy to have a cable where the long conductors can safely carry a lot more current than the terminations. Or one could have a 1 foot thin cable connected in series with a 10 foot thick cable.
For that matter, a short low-ampacity cable would look just like a long high-ampacity cable.
Doesn’t help with the concern of high-resistance spots somewhere in a low-current-rated cable.
Not sure what problem you're thinking of.
Imagine 2 cables with the same resistance, one 0.5m long and the other 2m. At a set amount of amps, the 0.5m long cable would need to safely dissipate 4 times as much heat than the 2m cable over the same distance. And you don't know how long the cable actually is (and they make 10cm usb cables after all) so you can't make any decision based on resistance that doesn't risk some cables going up in flames.
Ultimately what I'm saying is that the endpoints have or can measure all the information they need to adapt, and this is even more accurate than requiring a cable to self-identify which is worthless if it's lying (and that can happen unintentionally if it's damaged or the connector is worn.)
Yes resistance goes up the warmer the cable gets, but you know neither the resistance of the cable at 20°C nor the temperature of the cable. Simple example, say the user is charging their phone, you detect the cable getting plugged in and measure the resistance at say 1 Ohm to make the numbers nice. Cool, now at what resistance do you determine the cable is too hot and reduce the current? Copper's temperature coefficient is about 0.4% per °C so the resistance should be 1.12 Ohm at a safe 30°C increase right?
Wrong! The cable resistance you measured could already have been at 50° and you're now pushing the cable into fire hazard territory. This isn't theoretical either, people plug in different devices after another all the time (this also eliminates any sort of memorizing if you were thinking about that). So what are you just going to wait 5 minutes at safe charging current and see if the temperature goes down? That's not going to fly in a market where some devices charge 50% in like 20 minutes.
And all of this is ignoring another important design goal of usb-c: dumb charge-only devices exist and should continue to function with a minimal of extra added components. USB-C allows this with the addition of two simple resistors that set the current you want. Measuring resistance on the other hand either requires a accurate voltage source on the device side (expensive) or somehow connecting the power line to some other line (how that would work without additional control electronics I have no idea).
That's far higher than what the implementations assume.
No! Where did you hear this?
Smartphones usually either rely on type-c pd nowadays or do far less standard Samsung/Apple resistor on usb line check.
Some power banks also do terrible thing where they increase current pull until they see voltage starting to collapse but that’s to check for OC limits on load switch. However that’s really starting to go away because type c just works
Yep read it. It does even more terrible things (modulating current to change voltage), but no monitoring for voltage drops.
It’s also rarely supported, and looks like they just switched to pd3 (the sane protocol)
Did you not see:
"Do cable imp. Calculation. Protect cable from burnout" on page 12
"Adjust Vbus according to cable impedance/quality" on page 14
and "Cable Impedance Measurement" on page 15?
Pump Express is their fast charging protocol, but even before that, in the days of feature phones, they were already doing the measurements and adjusting charging current.
If I’m not mistaken, that was explicitly allowed under USB Battery Charging. But chargers have to opt in to that via signaling on D+/D-.
The difference between high-current and low-current cable was very small, so once cable got a little bit worn out, the detection was basically random. You plug cable, and get 1A charge. Unplug-replug, and it's 0.5A now. Unplug-replug and it gets 2A.
I am very glad that the system has died out and we have cables that simply report their capacity directly.
(that said yes, it could have been simpler, like having a symmetric pinout. But this would be a marginal improvement at best, as USB-IF seems to be incapable of producing simple designs. It'd still be thousands of pages of docs)
cables that simply report their capacity directly.
...which won't true when worn or the manufacturer is lying.
Cable-reported capacity does not really change over cable lifetime - the currents used to sense resistance are miniscule, and would not be affected by cable being worn. For example, extra 0.5 ohm of cable resistance completely ruins the current sensing, but make absolutely no difference when measuring 5K or 1K resistance.
And if manufacturer is lying, that's annoying but it's 100% deterministic - you know the cable is bad, you can throw it away. With impedance sensing, the same cable can be good or bad, depending on the mood, and that's why it should not be used ever.
Without internally connecting all corresponding pins to the same wire? To what benefit?
The parts that need to be symmetric for passive legacy devices already are.
You only need the active circuitry for high-power (240W) or high-speed (Thunderbolt) cables. Ordinary cables just need a single, cheap resistor.
“Active” is also somewhat ambiguous: E-marked cables can be both passive or active in terms of what they do with the signal on the high speed data lines (such as amplifying it, converting it to optical etc.)
Knowing that USB has this feature is follows that USB-C needs to be self orienting in case both ends of the connector plugged in different orientations.
You say Ethernet got this part right, well it got this part right by not having a reversible connector. Ethernet has 4 tx/rx pair and USB-C has 2 rx/tx pairs per usb 3 connection with 4 in total for 20gbps. The difference is reversibility. Is it worth the tradeoff?
If you want to allow all of
- Reversible connectors
- Passive (except for marking), and as such relatively cheap, adapters and cables
- Not wasting 50% of all pins on a completely symmetric design connected together in the cable or socket
there's no way around having an asymmetrical cable design that lets the host know which signal to output on which pins.
USB-C was heavily inspired by Lightning.
Why, to what end? They don't add any noticeable amount of cost to the cables and it's a whole lot better of a solution for consumers then requiring all cables to carry 5 amps and thus making them thicker.
> Did someone imagine a use-case where they wanted to detect the orientation of the cable?
They didn't imagine anything, USB3.0 5Gpbs with only 2 differential pairs, like you'd have in a usb-c to usb-a cable, requires this. And you can't just connect them together like you'd do for USB2, the resulting stubs degrade the signal too much.
I have a giant stack of cables and it would be nice to know what they can do.
No idea why this is not a thing on most devices.
These sorts of devices can tell you how a cable is wired up, which is great for a a first pass or spot checking.
Here you go, I got this guy and it’s fantastic.
Tells me pd capabilities, voltage/current and resistance.
I wish the EC didn't shove their heads up their ass to give us such an unreliable connector on our mobile devices throughout the world.