

The Adafruit Feather RP2040 USB Host (Manufacturer Part ID: 5723) is a compact and versatile microcontroller board built around the powerful RP2040 chip. Designed with USB host capabilities, this board allows seamless interfacing with USB devices such as keyboards, mice, and storage devices. Its small form factor and robust feature set make it ideal for projects requiring USB device communication, IoT applications, and embedded systems development.








| Specification | Value |
|---|---|
| Microcontroller | RP2040 (Dual-core ARM Cortex-M0+) |
| Clock Speed | 133 MHz |
| Flash Memory | 8 MB (QSPI Flash) |
| RAM | 264 KB SRAM |
| USB Host Support | Yes |
| USB Connector | USB-C |
| GPIO Pins | 21 (including analog inputs) |
| Operating Voltage | 3.3V |
| Input Voltage Range | 3.3V to 6V |
| Power Supply Options | USB-C or LiPo battery |
| Dimensions | 51mm x 23mm x 8mm |
The Adafruit Feather RP2040 USB Host features a standard Feather pinout. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| USB | USB-C connector for power, programming, and USB host functionality |
| BAT | LiPo battery input (3.7V nominal) |
| 3V3 | 3.3V regulated output |
| GND | Ground |
| A0–A5 | Analog input pins (also usable as digital GPIO) |
| D0–D13 | Digital GPIO pins (some with PWM capability) |
| SCL/SDA | I2C communication pins |
| RX/TX | UART communication pins |
| SCK/MOSI/MISO | SPI communication pins |
| EN | Enable pin to turn the board on/off |
| RST | Reset pin |
Powering the Board:
Connecting USB Devices:
Programming the Board:
Interfacing with Peripherals:
Below is an example of using the Adafruit Feather RP2040 USB Host to read input from a USB keyboard:
#include <Adafruit_TinyUSB.h>
// Initialize USB host object
Adafruit_USBD_Host USBHost;
// Keyboard object
Adafruit_USBH_HIDKeyboard keyboard(&USBHost);
void setup() {
Serial.begin(115200);
while (!Serial) delay(10); // Wait for Serial Monitor to open
// Start USB host
if (!USBHost.begin()) {
Serial.println("Failed to start USB host!");
while (1);
}
Serial.println("USB host started. Connect a keyboard.");
}
void loop() {
// Check if a keyboard is connected
if (keyboard.connected()) {
uint8_t keycode;
if (keyboard.available()) {
keycode = keyboard.read(); // Read key press
Serial.print("Key pressed: ");
Serial.println((char)keycode); // Print key as character
}
}
}
USB Device Not Recognized:
Board Not Detected by Computer:
Code Upload Fails:
Overheating:
Q: Can I use this board with CircuitPython?
A: Yes, the Adafruit Feather RP2040 USB Host is fully compatible with CircuitPython. You can download the latest CircuitPython firmware from the Adafruit website.
Q: What is the maximum current output for USB devices?
A: The USB host port can supply up to 500mA. For devices requiring more current, use an external powered USB hub.
Q: Can I connect multiple USB devices?
A: Yes, but you will need a USB hub. Ensure the hub is powered if the devices require significant current.
Q: Does the board support USB OTG?
A: No, the board is designed specifically for USB host functionality, not OTG.
Q: How do I reset the board?
A: Press the reset button once to restart the board or twice to enter bootloader mode.