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 Jul 01, 2019

USB Hub Control Jupyter Notebooks

First, it’s incredibly exciting to see the enthusiasm for the Hub here on Crowd Supply and at the 2019 Teardown Conference last weekend.

Teardown was a great event and being able to launch this product at the conference was a treat. The sessions were excellent and it was a pleasure just geeking out with this awesome community of engineers, hackers, artists, and makers.

During the conference I did a presentation on how I’ve used Jupyter Notebooks to aid the electrical design and testing of this product. The video of the talk and source to all of the notebooks I demonstrated are on GitHub.

Readme file from the Notebook GitHub Repository

One of the example notebooks showed control and monitoring of the USB Hub from within Jupyter. A simple GUI allows downstream per-port and data pairs to be controlled, and live-graphs of per-port power draw.

Since the Conference, I’ve improved the notebook’s Data and Power Control buttons to mirror LED state of the USB Hub — meaning the buttons automatically change color based on Hub’s state. For the data buttons:

  • White : High speed device detected
  • Green : Full speed device detected
  • Blue : Low speed device detected
  • Off : No downstream device detected
  • Orange : Port data lines internally disabled / disconnected

Here’s a short video showing this Notebook in action:

Demonstration of Hub control inside of Jupyter.

You may have noticed that the Hub’s power monitoring is sensitive enough to pickup on a power change when the IceBreaker’s USB data lines are disconnected. The FPGA is still running & blinking LEDs, but the IceBreaker’s FTDI Bridge chip enters a low-power mode which lowers overall power consumption.

This notebook uses the open-source USB Hub Python Driver for all communication with the Hub. This driver includes a command line utility with this same kind of functionality (power monitoring & control, and data monitoring & control) for folks who prefer that and will include a small standalone GUI tool in the future. This Python driver is also designed to be easy to embed within a larger testing, automation, or continuous-integration framework.

If you’re interested in learning more about the other products shown in this video, I invite you to checkout their respective campaign pages.

iCEBreaker FPGA

The first open source iCE40 FPGA development board designed for teachers and students.


An FPGA board that fits inside your USB port.

Thanks again for your interest and support of the Programmable USB Hub! It’s amazing to see that the campaign has fully funded so quickly!

$29,531 raised

of $10,000 goal

295% 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: