Hardware Setup and Software Aspects

Plugable's USBC-TKEY comes in a simple package with multiple cables, but, for our purpose, we only need the main unit and the USB 2.0 Micro-B to Type-A cable. The gallery below shows the package contents and a few close-up shots of the main unit. Note that the main unit comes with a Type-C male connector to link up to the host port and a Type-C female connector to attach the device to. In addition, there is a micro-USB 2.0 connector on the side which enables the USBC-TKEY to communicate the sniffed data to another system for further analysis.

The host device used as the 'test system' was our Skylake DAS Testbed (specifications outlined below).

AnandTech DAS Testbed Configuration
Motherboard GIGABYTE Z170X-UD5 TH ATX
CPU Intel Core i5-6600K
Memory G.Skill Ripjaws 4 F4-2133C15-8GRR
32 GB ( 4x 8GB)
DDR4-2133 @ 15-15-15-35
OS Drive Samsung SM951 MZVPV256 NVMe 256 GB
SATA Devices Corsair Neutron XT SSD 480 GB
Intel SSD 730 Series 480 GB
Add-on Card None
Chassis Cooler Master HAF XB EVO
PSU Cooler Master V750 750 W
OS Windows 10 Pro x64
Thanks to Cooler Master, GIGABYTE, G.Skill and Intel for the build components


The USBC-TKEY was plugged into one of the Thunderbolt 3 / USB 3.1 Gen 2 Type-C ports enabled by the Alpine Ridge controller. While the USBC-TKEY acts as a transparent interposer for the host's port, it needs to be connected to a Ubuntu system for data gathering purposes via its micro-USB port. We chose the ECS LIVA Core (one of the low power PCs at our disposal) and installed Kubuntu 15.10 on it. Plugable's documentation indicates proper support for Ubuntu 14.04 only and advises the use of a USB 2.0 port on the data gathering machine. However, we had no trouble connecting the kit to a USB 3.0 port on a ECS LIVA Core running Kubuntu 15.10.

Plugable's documentation for the USBC-TKEY mostly deals with the capture and viewing of the power delivery packets being exchanged over the interposer [ Update: New documentation for the advanced features of the USBC-TKEY is now available on Plugable's website. It also provides a step-by-step guide to enable the serial console - a process described below in brief ]. However, our requirements were a bit different. Google's Twinkie documentation came to our rescue. Once the interposer link became active (i.e, device was connected to the USBC-TKEY so that it could communicate with the host), the USBC-TKEY itself became visible on the Kubuntu machine. Executing a 'modprobe usbserial' enabled a serial console for the device. There are multiple ways to access this serial console (/dev/ttyUSB0 in our case), but, for a quick check to make sure everything was up and running normally, we used 'screen'. Out of the various commands available, the 'twinkie vbus' provided us the required information.

A little bit of Python scripting using the 'serial' module enabled the creation of a CSV file with the vbus parameters (and, hence, the power consumed by the USB peripheral) sampled at pre-configured time intervals. The CSV file could then be fed to external tools / scripts to generate a graph of the power delivered through the interposer as a function of time.

Introduction USBC-TKEY in Action
Comments Locked


View All Comments

  • serendip - Friday, March 18, 2016 - link

    How about USB hard drives? I know most won't power up because they need more than 500 mA on USB2 but it would be interesting to see exactly how much power is used. I've gotten USB hard drives to work with phones and tablets over OTG but only with a powered hub or a charging hub that allows a battery pack to be connected over micro-USB.
  • jbrizz - Sunday, March 20, 2016 - link

    I can power a 320GB 7200 rpm USB 3.0 hdd from my 2012 Nexus 7 and Galaxy S5 with a USB 2.0 OTG cable. One would assume that if they can supply power across the bus they should be able to power anything that runs on a PC, 500mA is 500mA whether from a PC or phone.
  • serendip - Monday, March 21, 2016 - link

    That's weird, I've never been able to get 500 GB or 1 TB USB HDD working over OTG. The drive spins up, mounts for a second and then disconnects, probably because the peak current draw exceeds 500 mA. I looked at a bunch of spec sheets from WD and Seagate and all their drives had peak current in the 1 A or higher range. They work fine when plugged into powered hubs though.
  • jasonelmore - Saturday, March 19, 2016 - link

    $200 for this thing?!?! what are they smoking.. I'll just make a arduino version for $35.... Thanks for the idea tho.
  • dano_spumoni - Saturday, March 19, 2016 - link

    This explains so much!!!! I was having random disconnects with a USB 3.0 to M.2 Enclosure when using the front USB 3.0 ports on my Desktop. When I use the rear ports it works perfectly and I get 400 MB/s sequential read/writes... Normal USB thumb drives and powered drives work fine in front but not USB powered enclosures. I knew something was wrong with my front ports but this is the reason.
  • alin - Saturday, March 19, 2016 - link

    There are still people out there who care about power consumption for flash devices? Hmm. Very well then... :)
  • woggs - Saturday, March 26, 2016 - link

    I bought one of these to play with... And changed my mind. It's on ebay if anyone wants it.
  • woggs - Tuesday, April 19, 2016 - link

    Still on ebay...
  • epobirs - Sunday, March 27, 2016 - link

    Interesting. I have a SIIG USB 3.1 enclosure that I put a Patriot Blast 480GB SSD in. The performance is very nice in that it gets very close tot he limits of SATA itself. The included cable has a second host port connector to enlist more power where needed but it seems to work fine on 3.0 on a single plug.

    Is anyone developing native USB 3.1 controllers for SSD class flash memory that would exceed the SATA envelope? This would be ideal for consoles like the PS4 if the USB host was upgraded to 3.1 in later model.
  • ggruk - Monday, April 19, 2021 - link

    Hi Ganesh

    An exciting article from 2016. I read it yesterday and found very useful.
    I am designing a new product - a special type of Monitoring Meter. Am using PIC32MM0256GPM064 in it as the main microcontroller. It comes with a USB OTG module. I then want to save data in the Meter to a USB flash drive (USB2.0). However, my meter cannot provide more than 100mA current to the USB flash drive. So, I was looking for a low power flash drive. You article shows that 128GB flash drive that you tested could be suitable. Have tested some of the many flash pen drives I have and measured the current drawn by using Windows Device Manager for the Rot Hub. One Data Traveler flash drive of 8GB showed 100mA. All others are showing 200 to 500mA. Is there a way to have a USB flash drive that would draw less than 100mA as drawn by HID devices. Would be grateful for your comments.
    I am also thinking of an option where I provide two Micro USB sockets on the Meter. One to power up the meter, say from a Mobile Phone charging Power Bank (with only the +5V and GND connected and another Micro AB socket where the flash drive is connected. Then I hope the flash drive would be supplied with power by the Power bank and data would sent by my Meter. Is this possible?
    Again would thank you very much for your comments and advice. ggrUK

Log in

Don't have an account? Sign up now