Programmable USB Hub

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

Jul 01, 2019

Project update 2 of 10

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:

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!

Sign up to receive future updates for Programmable USB Hub.

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