element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents GimmeGPIO: A Simple Way to Get GPIO on Laptops and Desktops -- Episode 699
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: cstanton
  • Date Created: 29 Jan 2026 9:51 AM Date Created
  • Last Updated Last Updated: 29 Jan 2026 11:06 AM
  • Views 2422 views
  • Likes 7 likes
  • Comments 18 comments

GimmeGPIO: A Simple Way to Get GPIO on Laptops and Desktops -- Episode 699

In this project, Clem builds GimmeGPIO, a compact USB-to-GPIO board that brings Raspberry Pi–style GPIO to almost any computer. Using an ESP32-S2 and a Pi-compatible header, the board lets laptops, desktops, and even older machines interact with real-world hardware over USB. Clem walks through the hardware design, thin PCB choices, firmware approach, and Python control, showing how GPIO, PWM, I2C, and serial can be added without relying on a Raspberry Pi.

Watch the Project

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Clem’s GimmeGPIO project starts from a familiar frustration. Full-sized computers are powerful, flexible, and often already sitting on a desk, but they are cut off from direct hardware control. GPIO is the missing link. GimmeGPIO is Clem’s answer to that gap: a small USB-connected board that gives almost any computer access to Raspberry Pi-style GPIO, without turning the computer itself into a single-board system.

The project is not positioned as a Raspberry Pi replacement. Instead, it is a way to reuse older laptops, desktops, or even servers for hardware projects, or to add more GPIO to an existing setup when a Pi alone is not enough.

image

Why GPIO Matters

Early in the video, Clem frames the problem very directly. The real difference between a Raspberry Pi and a typical computer is not performance, storage, or operating system. It is the GPIO pins. Those pins are what let software interact with the physical world. LEDs, relays, sensors, buses, and simple control signals all depend on them. As Clem puts it, GPIO is “basically about putting code into the real world.”

Once you see the problem that way, the solution becomes obvious. Every computer already has one common interface, regardless of age or form factor. USB. Clem leans on that universality, noting that USB has been around since the late 1990s and is effectively guaranteed to be present in some form. GimmeGPIO is therefore built as a USB-to-GPIO bridge, designed from scratch rather than relying on off-the-shelf adapters.

image

Familiar Shape, Flexible Reality

Physically, GimmeGPIO looks immediately familiar. It matches the size, layout, and pin arrangement of a Raspberry Pi Zero. Clem points out that this is intentional. The board follows the same pinout and pin capabilities, which means existing Raspberry Pi documentation, pinout diagrams, and even accessories can be reused without translation.

That familiarity does not mean the design is locked in. Internally, the ESP32-S2’s pin multiplexing means the GPIO functions are not hard-wired to specific pins forever. Clem explains that while the current firmware mirrors the Raspberry Pi layout, the mapping can be changed later if a different layout or feature set makes more sense. The Pi-style header is a convenience, not a constraint.

image

Hardware Choices and PCB Design

The core of the board is an ESP32-S2. Clem’s reasoning is practical. It provides native USB support, enough GPIO to populate the full header, and still leaves a hardware UART available. That UART matters because it allows serial data to be passed through the board without everything being handled in software.

USB 2.0 ultimately caps performance, but Clem is clear that this is not a real limitation for the kinds of projects GimmeGPIO targets. GPIO, I2C, UART, and PWM rarely demand more bandwidth than USB can comfortably provide.

The PCB itself is unusually thin. Manufactured as a four-layer board at 0.8 mm, it is slim enough to be embedded into other hardware. Clem explicitly calls out future possibilities like installing the board inside an old laptop chassis. That thinness comes with a warning, though. During testing, overtightening the enclosure caused the PCB to flex enough to stop working. The takeaway is simple: thin boards are powerful, but they need to be treated gently.

image

How the Firmware Thinks

Rather than hiding everything behind opaque firmware, Clem keeps the device simple. GimmeGPIO presents itself as a USB serial device. Commands are sent as short text strings, either manually through a serial terminal or programmatically from code. This makes the system easy to inspect, debug, and extend.

When Clem talks about the code in the video, he focuses less on syntax and more on structure. Each capability has a clear purpose. Digital writes exist to do exactly what you would expect: set a pin high or low. Reads return the current state. Analog reads are supported, with Clem openly acknowledging that analog performance on both older Raspberry Pi boards and the ESP32 is limited. The goal here is parity, not perfection.

PWM output is where the firmware becomes more interesting. Clem uses the ESP32’s LEDC peripheral, which was originally designed for LED brightness control. Because it runs in hardware and continuously generates the waveform, it avoids timing jitter and frees the main processor. Clem mentions that recent changes to the ESP32 Arduino core altered how this peripheral is configured. To make this clear for anyone recreating the project, both the older and newer approaches are left visible in the firmware. His advice is blunt: do not blindly trust random tutorials, especially if they no longer compile.

UART and I2C support follow the same philosophy. The firmware exposes them because the hardware supports them, but Clem is upfront that some parts, particularly serial passthrough, still need refinement. The intent is clear, even if the implementation is still evolving.

image

Python on the Host Side

To make the board usable from a normal computer, Clem wrote a small Python library. The aim is familiarity rather than cleverness. Python is widely used in the Raspberry Pi ecosystem, so it makes sense to reuse that workflow. From the user’s point of view, the library simply wraps serial communication and turns it into function calls.

Clem’s emphasis here is ease of use. You plug in the board, open a serial port, import the library, and start controlling pins. There is no need to touch the firmware to get started. Experimentation happens on the computer, not on the microcontroller.

image

Putting It to the Test

In the video, Clem demonstrates the board using both a serial terminal and Python while probing the pins with an oscilloscope. Digital transitions, PWM signals, and fast serial interactions are all shown live. The close spacing of the Raspberry Pi header makes probing slightly awkward, but electrically the signals behave as expected.

Analog input performance is shown with appropriate expectations. Clem notes that analog reading was never a strong point on early Raspberry Pi boards, and the ESP32 behaves similarly. For simple measurements it works, but it is not presented as a precision instrument.

image

image

Case, Finish, Firsts and Where This Leads

To make the board usable as a standalone device, Clem designed a simple plate-based enclosure that can be 3D printed or laser cut. This project also includes several personal firsts: using very thin PCBs, engraving black PETG with a fibre laser, and working in a new workshop. These details are not just cosmetic. They highlight that GimmeGPIO is as much an exploration as it is a finished tool.

GimmeGPIO is not framed as a final product. It is a solid, working platform that can grow. The flexible pin mapping, thin PCB, and simple communication model all point toward future variants, including embedded versions. Clem also hints at making more boards simply because there are plenty of old computers that could benefit from GPIO access.

In the end, the project does exactly what it sets out to do. It removes the artificial boundary between general-purpose computers and the physical world. With GimmeGPIO, GPIO is no longer tied to a specific board. It becomes a feature that any computer can have.

Supporting Links and Downloads

- GimmeGPIO Github - Github Snapshot

 

Bill of Materials

Product Name Manufacturer Quantity Buy Kit
USB Connector, USB Type C, USB 2.0, Receptacle, 16 Ways, Surface Mount, Through Hole Mount Molex 1 Buy Now
Pin Header, Board-to-Board, 2.54 mm, 2 Rows, 40 Contacts, Through Hole Multicomp pro 1 Buy Now

Additional Parts

Product Name Manufacturer Quantity
Esp32-s2-mini-u1 1
Random PC with USB port 1

  • esp32 s2 project
  • electronics prototyping
  • diy gpio board
  • usb controlled gpio
  • usb to gpio adapter
  • gpio over usb
  • embedded ahrdware project
  • reuse old computers
  • maker electronics project
  • add gpio to laptop
  • raspberry pi gpio alternative
  • python gpio control
  • hardware hacking projects
  • gpio expansion board
  • esp32 usb gpio
  • friday_release
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • beacon_dave
    beacon_dave 3 days ago in reply to michaelkellett +1
    Looks like an S2 from old stock Some differences between the S2 and S3 listed here: Espressif SOC Product Portfolio ESP Product Selector
  • dougw
    dougw 1 day ago in reply to mayermakes

    Back when PCs had Centronics printer ports, we used to invent all sorts of GPIO applications that used printer ports. Applications involving LEDs, relays, motors, PWM, ADC, DAC, audio, EPROM programmers, PLC, etc. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 1 day ago in reply to beacon_dave

    it indeed may have some applications in a school setting.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 1 day ago in reply to beacon_dave

    that means i need to assemble 127....not gonna happen unless I start selling these

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 1 day ago in reply to dougw

    its exactly the same size as arpi zero. not by conicidence at it should allow to use any RPi hat on a normal pc.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 1 day ago in reply to mayermakes

    Given that you have added the additional functionality of pin multiplexing then this might be a feature to show off in a project.

    STEM / STEAM projects jump to mind.

    A teacher may not want to move off their school laptop onto a separate device but simply bring the real-time data / control straight into their laptop via a simple USB connection.

    A science teacher might want to get live experiment data into their presentation laptop. 

    A digital art teacher might want to demonstrate the control of generative art from real world sensing.

    They may favour different IO assignments than the fixed Raspberry Pi GPIO provides.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 1 day ago in reply to mayermakes

    Given that you have gone to the effort of mirroring the Raspberry Pi GPIO then it probably would make sense to do a project using an existing R-Pi Hat. Especially one where it makes sense to use the PC over a Raspberry Pi.

    Perhaps something that might have been done previously using Firmata + Arduino Uno. Something using the creative Processing language jumps to mind but I'm sure there will be others.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 1 day ago in reply to mayermakes

    "...if you have ideas for a project ..I'm all ear..."

    Connect 127 of them to a Raspberry Pi Slight smile

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 1 day ago in reply to scottiebabe

    yet. the main issue is the Rp1 is not freely available...and I wont salvage a new rpi for it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 1 day ago in reply to DAB

    i actually don´t have one yet, I just thought it would be neat to have.

    if you have ideas for a project ..I'm all ear.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 2 days ago in reply to scottiebabe

    Could you be the first ?  Slight smile

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube