All posts by Jerome Myers

My background is in electronics with experience in semiconductor capital equipment installation and support. I've become more interested in software in recent years and have been growing my skill sets in Linux system administration, web programming and infosec. I've particularly enjoyed Plugable Technologies because as employees we are empowered to do the right thing for our customers, every time.
Plugable's Testing Station for Charging Behavior

The State of USB Charging

The humble Universal Serial Bus, more commonly known as USB has evolved to be much more than just a way to connect a mouse or keyboard to your computer. With the proliferation of power hungry portable devices that charge over USB, we’ve all come to expect USB to operate as a Universal Source of Battery charging, but unfortunately it’s just not that easy.

The original USB 2.0 specification limited the power that could be drawn from any USB port to 500mA. This is plenty to charge smaller batteries reasonably quickly, but for larger batteries a higher power solution is needed. This has driven device makers to come up with novel ways to draw more than the allowed 500mA from USB 2.0 ports and in general has been accomplished by the USB port signaling to the devices that it’s ok for the device to draw current at a higher rate.

Unfortunately there hasn’t been a widely adopted standard, so not all ports and devices speak the same language when it comes to charging. And, to make the situation even more frustrating for end users, there hasn’t been much public discussion or documentation about what has been done.

iPads for example, are one device that can charge at a very quick rate, up to 2.1Amps when connected to an Apple computer or Apple charger but they will potentially not charge at all when connected to a regular USB port. There’s also the BC 1.1 charging standard that some devices like the Kindle Fire or the Nexus 7 support, but that support is usually undocumented. We find out about charging behavior through trial and error.

So, try we did! We’ve been working hard to unravel the mysteries of what will charge where by testing every device we have on all of our hubs and chargers, and publishing this data on the product pages for each of our devices with USB ports.

We’re also collecting reports from end users though a quick form that let’s you add to the knowledge base of charging behavior.

Here’s what’s been added so far:
plugable.com/support/charging

To add your device visit:
plugable.com/support/charging-report

Check the FAQ on each of these pages for the details of our in-house test results.

The new Plugable USB 3.0 SATA Lay-flat Dock with support for UASP, 4TB+ drives, and market leading USB 3.0 performance

Plugable’s new USB 3.0 lay-flat external SATA hard drive docking station focuses on cutting-edge performance, compatibility, and design.

Featuring easy USB host and SATA drive compatibility, it comes with the latest ASMedia 1053 chipset, featuring capabilities including:

  1. Automatic, driverless compatibility with all computing devices which already support USB flash drives or USB hard drives. Full backward compatibility with USB 2.0.
  2. Supports UASP (USB Attached SCSI Protocol) Specification Revision 1.0 for maximum performance on supported operating systems like Windows 8. The OS, host controller, and device must all support UASP to switch over to this higher performance transfer mode.
  3. “The adoption of the SCSI Protocol in USB 3.0 provides its users with the advantage of having better data throughput than traditional BOT (Bulk-Only Transfer) protocol, all thanks to its streaming architecture as well as the improved queuing (NCQ support) and task management, which eliminated much of the round trip time between USB commands, so more commands can be sent simultaneously. Moreover, thanks to the multi-tasking aware architecture, the performance is further enhanced when multiple transfers occur.”

  4. Supports USB Super-Speed, High-Speed and Full-Speed Operation, so the dock is backward compatible with any USB-capable computing device with USB Mass Storage support, for example the Raspberry Pi hobby board or Microsoft Surface or Toshiba Thrive Android tablet.
  5. Supports USB Mass Storage Class, Bulk-Only Transport Specification Revision 1.3
  6. Serial ATA bus up to 3/6Gbps Signal bandwidth for fast storage backups
  7. Support Spread Spectrum Control of USB3.0 and SATA interface to improve EMI performance, lowering USB 3.0 interference with other wireless devices such as mouse, keyboard, or Bluetooth
  8. Compatibility

    Works with all SATA drives, including 2.5″ and 3.5″, all SATA performance levels, and all sizes (currently tested up to 4TB).

    Includes (and requires) its own 12V, 2.5A power supply, so it is fully self-powered and will work even with unpowered hubs and battery-powered hosts.

    No drivers required for installation, the dock uses standard USB mass storage class support already provided in Windows XP and later, Mac, Linux, Chrome OS, and some variations of Android.

    PLEASE NOTE: Compatibility of USB 3.0 hubs on the latest 2012/2013 Macs is still evolving, because of differences in Apple hardware and OS X USB stack. Applying the latest hub firmware and Apple updates are recommended. When in doubt, on the newest Macs we recommend connecting the dock directly to a port on the host machine.

Windows 8 and Intel USB 3.0 Host Controllers

[Note: As of Windows 8.1, we don't recommend replacing the in-box Windows USB 3.0 stack with the Intel Windows 7 stack, as described in this post. This post is being kept for historical background, but we recommend working with your PC maker and Microsoft on any remaining issues with the built-in Windows 8.1 USB 3.0 stack. Feel free to also comment below if problems remain.]

One of the new features of Windows 8 is the built in XHCI host controller software and USB stack. While this brings some benefits like UASP support, there are some devices that currently don’t work with the Microsoft stack on the Intel USB 3.0 host controller. This can be fixed by forcing Windows to use the Intel USB 3.0 host controller drivers instead of the built in stack.

*NOTE* These instructions are only for machines with an Intel eXtensible Host Controller. Look for the Intel(R) USB 3.0 eXtensible Host Controller under Universal Serial Bus controllers in Device Manager.

First, download the latest driver package from Intel. It’s currently at version 1.0.6.245 and can be downloaded from the following link:

Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver rev. 1.0.6.245

Once the download has finished, extract the .zip file to a known location.

Now download these two .inf files which have been modified to allow the Intel driver to install on Windows 8:

We are going to replace the existing versions of these two files with the ones we just downloaded. Place the files in the following directory of the unzipped driver package and click yes when Windows warns that we are over writing a file with the same name:

Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver\Drivers\Win7\x64\

This will update these two infs with the modified versions that will allow the Intel driver to install on Windows 8 when the Host Controller and USB hub drivers are updated.

To install the Intel drivers in place of the in box XHCI stack, we’ll have to temporarily disable Driver Signing Enforcement. To do this press the Windows key + R and in the run box type:

shutdown.exe /r /o /f /t 00

Now make the following selections to boot into the Start Up Setting Screen

Troubleshoot — Advanced options — Start Up Settings — Restart

Then, when the machine restarts, select “Disable driver signature enforcement”. Your machine will start with Driver signing enforcement disabled until the next reboot.

When the machine restarts, open Device Manager (win + r, devmgmt.msc). Double click on the entry for the Intel(R) USB 3.0 eXtensible Host Controller and select the Drivers tab. You should see that the driver provider is Microsoft.

Now click “Update Driver” and then select “Browse my computer for driver software”.

Next choose “Let me pick from a list of device drivers on my computer”.

Next, select “Have Disk”.

In the Window that pops up titled “Install From Disk” choose “Browse” and navigate to the location where we replace the original infs with the two modified .inf files we downloaded earlier. Select iusb3xhc.inf and click ok.

Windows will warn that the driver is not signed and will require you to confirm the installation.

Once the installation is complete, reboot the machine following the same procedure as above:

shutdown.exe /r /o /f /t 00

Now make the following selections to boot into the Start Up Setting Screen

Troubleshoot — Advanced options — Start Up Settings — Restart

When the machine starts, select “Disable driver signature enforcement”. Your machine will start with Driver signing enforcement disabled until the next reboot. Once logged in, open Device Manager (win + r “devmgmt.msc”) and locate the entry under Other devices for an Unknown device, to find the correct one, double click on the entry for the unknown device view the details tab. Make sure it has the VID_8086.

Once you have located the correct device right click on it and choose “Update Driver” Choose “Browse my computer”, Windows will ask you to identify the type of device, scroll down and select “Universal Serial Bus Devices”.

Click next, choose “Have Disk”, “Browse” and select the modified iusb3hub.inf that we placed in the Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver\Drivers\Win7\x64\ folder earlier and click ok.

Again, Windows will warn about driver signing, when the install is finished, reboot your machine.

When it restarts look at the driver tab for the Intel(R) USB 3.0 eXtensible Host Controller and the Intel(R) USB 3.0 Root Hub to confirm that you are now running the Intel drivers.

To return to the built in Microsoft USB 3.0 driver stack, use the uninstall drivers button from the driver tab in device manager. When it’s finished, select the Action menu of Device Manager and “scan for hardware changes” Windows should find the Intel USB 3.0 host controller and re-install it using the built in Microsoft XHCI stack.

Thanks to Ekko for his original work on this. Please comment below if you have any corrections or refinements. We’d also love to have comments mentioning the problems you were having, and whether the Intel stack solved them for you. Thanks!