ESPUSB is a software-only USB device stack that adds low-speed USB capability to ESP8266 and ESP8285 microcontrollers. It implements the USB protocol primarily in software instead of relying on dedicated USB hardware. The design needs only a small amount of external circuitry and uses adjacent GPIO pins for the D+ and D- signals. It operates at USB low speed, making it suitable for human-interface devices and control-oriented peripherals. The repository includes an example that emulates a USB keyboard and mouse. A web interface can remotely control those virtual input devices over the ESP8266 network connection. The implementation is highly memory-conscious and includes custom control-message handling, hardware designs, and build tooling for embedded experimentation.
Features
- Software-only USB device implementation
- ESP8266 and ESP8285 support
- Low-speed USB peripheral operation
- Virtual keyboard and mouse example
- Web-controlled USB input devices
- Minimal SRAM and flash requirements