I got ahold of one of these mythical USB devices that should not exist.

Any guesses what this does?
Winner! Yes, this is a VL671 USB 2.0 to 3.0 transaction translator. I will forever hate the USB3 spec for not having this.

Since it's not in the spec, this thing works "transparently". Whatever you plug into it magically shows up as a SuperSpeed device.

Why would you want this? Several reasons.

Without this, a USB 3 hub does not give you any more bandwidth for USB 2 devices. You are limited to 480 Mbps *total*. Plug a USB 2 device behind one of these, and it becomes SuperSpeed and no longer fights the other USB 2 devices.
But more importantly, USB 2 is, electrically, a hideously bad standard that is the cause of high pitched whine in audio set-ups everywhere, even professional productions. I've heard USB whine on TV broadcasts.

USB 3 fixed this... but not for USB 2 devices behind a hub.
This happens because USB 2 is not a true differential standard (it has single-ended states), and it only has one ground pin shared between power and data. So you end up with data current return on then ground wire, and if you have a ground loop, then... 1 kHz whine.
With this translator, you can in theory cut the power/gnd lines and connect only the differential USB3 data lines to a host (which *are* AC coupled). Then provide power externally, and you now have an isolated USB2 bus - no ground connection, no ground loops.
Funny enough, neither of these are its intended purpose. This chip is marketed for hooking up USB2 devices to host controller ports which *only* have USB3 lanes, which are a thing in some devices.

In fact if it detects USB2 upstream it just goes into bypass, so I cut those pins.
So how well does it work? I'll be testing it properly soon. So far I can confirm it's not perfect - plugging a hub chain with like 12 devices behind it just outright didn't work. Single devices do, though. It's supposed to work with hubs behind it I believe, so we'll see.
Just checked the USB4 spec and of *course* the USB-IF learned *nothing* and still fucked this up for USB4.

At least hopefully most real TB3 devices use a PCIe host controller for this, including the USB2 pins... hopefully... but I bet this will go away in the future :(

• • •

Missing some Tweet in this thread? You can try to force a refresh

Keep Current with Hector Martin

Hector Martin Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!


Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @marcan42

21 Apr
"The SaaS loophole" - companies using open source software to build a cloud service without contributing back - is a real problem, and being concerned about this issue is reasonable.

It is also an *extremely* thorny problem.

Do not trust licenses that claim to magically fix it.
Closing the SaaS loophole inevitably requires *deep* changes to how we think about free software, about licenses, and about the obligations of developers, end-users, and third parties.

There is no "change some phrases in a license and it's fixed" solution.
Any licensing change that *effectively* closes the SaaS loophole *inevitably* triggers a host of downstream effects. There is no magic "stop FAANGs from doing this" trick that doesn't have a huge number of side effects.
Read 35 tweets
19 Apr
Huh, TIL that Twitter used to use simple incrementing user IDs and they are exposed in the API/URL scheme. I noticed they are still serving some URLs by user ID; I'm 39394680 (twitter.com/i/user/39394680) (~39M registered May 2009; this adds up with the user count then).
This was still the case as of at least 2014 or so; another account I have from then is at ~2.7B mark, which also just about adds up with assumed total (incl inactive) users around then (might be ~2x due to gaps/whatever).

Not any more, though.
@AsahiLinux is 1339487819903856640 (twitter.com/i/user/1339487…), which seems to be using Snowflake. They switched to that for tweet IDs in 2010, but I guess it took several years before they started using that for user IDs too.

Incidentally, @jack is user ID 12.
Read 4 tweets
18 Apr
Deleted the previous tweet, because it seems that QR code photo was carefully chosen and framed to prompt criticism of China. It was 3 min animated show over a river; a high tech version of fireworks, not a giant QR code in the sky towering over the city.

There are many things to criticize about China, but a company running a 3 minute show with drones over the Huangpu river is not one of them. We've been doing this kind of stuff for ages.

(that said, they still kind of failed at executing the QR code bit; they'd have been much better off with a short one-off domain)
Read 4 tweets
15 Apr
I always found it, shall we say, interesting how Lennart & the systemd crowd completely ignored the existence of OpenRC during the Great Init System Debates.

I mean systemd is (sometimes) fine, but it's almost as if they were *deliberately* pretending OpenRC doesn't exist.
I guess it's easier to argue for your init-system-become-all-absorbing-behemoth when you ignore the one good init system that predates it by a decade.

But hey, thanks to Gentoo we have eudev and elogind so non-systemd users can still have choice and run modern desktops.
Read 4 tweets
12 Apr
Speaking of repairability issues... This Surface Pro 4 may have removable storage, but it sure as heck isn't easy to get to.

The guides say use a pick and heat the whole thing up, but I find that doing it in sections with a hair dryer and these pizza cutter things works too.
I'm opening this one up to replace the display though, not the storage. It's getting a Pro 5 display which shouldn't have the fuzzy death issue, hope I got the right cable/display combo.
iFixit: "there are antennas, be careful not to damage them"

(without explaining how to be careful...)

Well, that didn't end well. I don't have copper tape, so I fixed it with two strips of brass soldering iron cleaning braid. Wonder what the impedance matching is like 🙃
Read 8 tweets
12 Apr
I'm trying to do an analysis of CD-R media quality for audio. There's no way to get raw error counts (pre ECC) off of most CD-ROM drives, but the subchannel has no ECC, so that works as a proxy for quality.

Here's a plot of subchannel errors on a CD-R with a line drawn on it.
This is before mangling it with a marker - you can still see some radial faults (errors that affected several adjacent tracks) as evenly spaced dots, including a pretty long section at around the 2/3 mark.

Code is here if anyone cares: github.com/marcan/cd-anal… (no docs, sorry)
Of note, neither of these had any audio data errors (the ripped audio was 1:1 identical to what was burned, thanks to the CIRC error correction). So this is quite neat in that you can get an estimate of how good the underlying data is *before* it gets bad enough to corrupt audio.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!