Raspberry Pi Zero 2 W USB gadget: HID keyboard, mass storage, and a USB network interface at the same time.
Status: work in progress. Expect breaking changes.
PiCycle configures a Raspberry Pi Zero 2 W to present multiple USB functions concurrently:
- HID keyboard (for scripted keystrokes)
- Mass storage (exposed over USB)
- USB Ethernet (network emulator) with a local web interface
- Raspberry Pi Zero 2 W: https://a.co/d/dgyNJGX
- USB Dongle Expansion Board with Case: https://a.co/d/4QbcUZW
- microSD (TF) card, 64 GB recommended: https://a.co/d/89mxLgg
- Raspberry Pi OS Lite (64-bit)
- Flash Raspberry Pi OS Lite (64-bit) to the microSD (TF) card.
- Boot the Pi and log in.
- From your home directory, run:
sudo raspi-config nonint do_expand_rootfs
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y git
git clone --recursive https://github.com/GlowingBones/PiCycle.git
cd PiCycle
sudo bash ./install.sh- When prompted to reboot, select Yes.
Using the USB dongle expansion board, plug the PiCycle device directly into your computer's USB port.
Open: http://10.55.0.1/
Connect to the Pi remotely using the IP address assigned by your network.
WiFi is configured when flashing the OS image. You can change networks from the web interface.
Device not recognized over USB
- Ensure you're using the USB data port, not the power-only port
- Try a different USB cable (some cables are charge-only)
- On Windows, the RNDIS driver may need to install automatically; wait a moment
Can't reach the web interface
- Verify your computer received an IP address in the
10.55.0.xrange - Try disabling other network interfaces temporarily
- Clear your browser cache or try incognito mode
PiCycle can generate HID keystrokes. Use only on systems you own or have explicit permission to test. Review and validate any automation before running it.
This project is licensed under the MIT License. See LICENSE for details.
