Hacker News new | ask | show | jobs
by londons_explore 2207 days ago
The solution to this is a "self test" every time a device is plugged in.

Each device should run a full test suite of the cable and the device at the other end, and if any fail, it should refuse to work.

Part of the test suite should be checking that the device at the other end of the cable is also running the test suite.

Everything should be tested - for example if USB can transmit video over certain pins, the test suite should involve sending a frame of video, even if your device is a usb stick and doesn't need video. That way nobody can leave out bits of the spec.

USB is insanely fast, so thousands of tests should be doable in under a second, and in fact if the other device can't pass the tests quick enough that should be reason for failure.

1 comments

Who would buy, e.g., a laptop that refuses to work with most existing cables / devices? What do you gain from having a flash drive fail to work because you can't send video over it?

I can see the value of having this test suite for you to run personally, when you want to test. Or having someone certify capabilities and publish the test results for a particular piece of hardware.

But I can't imagine anyone (especially a non-tech-savvy person) using it by default and without an escape hatch - it should "just work".

I think the point is that if every device did this from the start, there wouldn't be a market for anything but cables that work for everything (because a cable that doesn't work for everything then works for nothing), so all cables would just work, for everything.

That sounds pretty unrealistic to me, though.

Looked at the other way, who would buy a faulty cable that doesn't meet this self-test specification? That would be a feature imo. Cable makers will need to all start meeting the specification very quickly or nobody will buy their cable.