Programmable USB Hub

by Capable Robot Components

A USB hub with per-port power and data disconnects + dev board + I²C, GPIO, and SPI bridges

View all updates Feb 04, 2020

Production Complete

Campaign production is complete! All campaign orders shipped to Crowd Supply last week, while pre-orders are shipping this week. You should be receiving your Programmable USB Hub ahead of schedule! You’ll receive a tracking number by email when your order ships, and you can double-check your shipping address in your Crowd Supply account.

Thank you again for your order, and we look forward to seeing the Programmable USB Hub out in the wild!

Production & Testing

This is how the assembly and testing bench looked mid-production:

Testing & Assembly Bench

Each Programmable USB Hub goes through the following set of tests:

  • Low idle power draw.
  • Internal power rails have expected voltages.
  • GPIOs both work as inputs, and both work as outputs.
  • UART functionality.
  • RGB LED functional test.
  • All I2C devices present on the two I2C busses.
  • Downstream USB ports can deliver 2.6A of power.
  • Downstream USB port current limits, fault recovery, and power control works.
  • Data line (upstream and downstream) disconnection works.
  • Downstream ports have expected read/write speed to attached USB high-speed devices.

It turned out the code that runs all of these tests is larger than the combination of the Programmable USB Hub Host Driver & Device Firmware.

The programming & test fixture consists of:

  • 1x Programmable USB Hub, which controls device-under-test (DUT) power thru an external relay and which connects to the rest of the testing devices below.
  • 1x I2C Driver for I2C communication with 4x DC Loads.
  • 4x Isolated DC Loads, a to-be-announced product from Capable Robot Components
  • 1x GreatFET One with a custom IO PCB which tests DUT overall power draw, UART, GPIO, and voltage rails.
  • 1x JLINK Plus for MCU boot-loader programming
  • 4x USB high-speed thumb drives to test the communication speed of each port.

Host Side Driver

Also, the Host Side Driver is now available thru PyPi.

This means that driver installation is as simple as:

pip install capablerobot_usbhub

The command-line tool (usbhub) allows you to:

  • Control & monitor downstream port power & data links
  • Set per-port current limits
  • Control & monitor GPIO

Both the tool & included Python library fully support multiple Hubs attached to your computer via serial-number-based addressing (Hub enumeration order is ignored).

Note that the host-side driver is entirely optional. Your Hub will function as a 4-port USB Hub and as a USB-to-UART converter without any drivers.


Thanks to each and every one of you who has helped us get here! Without your support, the Programmable USB Hub would not have become a reality, and we are so grateful!

$29,756 raised

of $10,000 goal

297% Funded! Order Below

Product Choices


Programmable USB Hub

Fully assembled Programmable USB Hub PCBA in a custom metal enclosure with light pipes and rubber feet.


Programmable USB Hub Kit

Fully assembled Programmable USB Hub PCBA in a custom metal enclosure with light pipes and rubber feet. Also includes a power supply, Aux cable, I²C cable, and USB cable.


Rubber Bumpers


Mounting Flanges


Capable Robot Components

Capable Robot Components enables rapid development of autonomous robots by providing technological building blocks to system integrators. Right now, integrators have to develop things they would rather purchase because the right robot-first products don't currently exist. CRC provides proven products which are domain-agnostic, but configurable and adaptable to the integrator's market needs. This allows autonomous system developers to spend more time and effort on domain-specific engineering and testing.

Chris Osterwood

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: