Add Python Programmable GPIO Pins to Any Computer with USBgpio

Add Python programmable GPIO pins to any computer with USBgpio, a physical device that hooks up to any modern computer via a USB port.
Add Python Programmable GPIO Pins to Any Computer with USBgpio

Add Python Programmable GPIO Pins to Any Computer

Python programmable GPIO pins can be added to any computer with USBgpio, a physical device with 12 header pins (10 GPIO, 3.3V, GND) that hooks up to any modern computer via a USB port. There is also an accompanying Python library that controls the GPIO pins with simple commands.

Overview

USBgpio is a quick and easy way to do some prototyping without getting out your development boards, setting them up, connecting to a network, remotely accessing them, etc. It is pretty fast at ~54 microseconds to change a pin state, so it will work for many use cases. However, an Arduino UNO, for example, is about 16 times faster, so for high-speed applications, USBgpio would not be appropriate. That is not the intended use case for this device, however — USBgpio is meant for convenience, not squeezing out every last ounce of performance.

The USBgpio device

How It Works

USBgpio is a physical device with 12 header pins (10 GPIO, 3.3V, GND) that hooks up to any modern computer via a USB port. There is also an accompanying Python library that controls the GPIO pins with simple commands.

Blinking an LED with USBgpio

Media

The back of the unit:

The back of the unit

The wires that run from the header to the Arduino:

The wires that run from the header to the Arduino

The Arduino with a header designed to fit in the case:

The Arduino with a header designed to fit in the case

Testing the device:

Testing the device

Bill of Materials

  • 1 x Arduino Nano 33 IoT
  • 1 x USB-A to micro USB-B cable
  • 1 x 3D-printed case
  • 12 x Header pins, wires, DuPont connectors

USBgpio is a quick and easy way to do some prototyping without getting out your development boards, setting them up, connecting to a network, remotely accessing them, etc.