Image of Board

Feather RP2040 with USB Type A Host by Adafruit

You’re probably really used to microcontroller boards with USB, but what about a dev board with two? Two is more than one, so that makes it twice as good! And the Adafruit Feather RP2040 with USB Host is definitely double-the-fun of our other Feather RP2040 boards, with a USB Type A port on the end for connecting USB devices to.

Now you might be thinking “hey waitaminute, the RP2040 doesn’t have two USB port peripherals???” and you’d be correct! But what it does have is a nifty PIO peripheral that can be (ab)used to emulate a USB host peripheral. You get to keep the main USB port for uploading, debugging, and data communication, while at the same time sending and receiving data to just-about-any USB device. This work is originally by sekigon on GitHub, and if you’re using Pico SDK that’s still the recommended library to use.

Currently, support for the USB Host peripheral is only in Arduino. So check out the TinyUSB ‘dual role’ examples for some things you can do! For example, datalogging to a USB Key. Or reading from another device/microcontroller that has USB CDC serial interface. Or creating an HID re-mapper. Or connecting to weird devices that require firmware-updates like the Cypress EZ-USB based Intellikeys communications board.

Tutorials

Purchase

Contribute

Have some info to add for this board? Edit the source for this page here.

CircuitPython 9.2.6

This is the latest stable release of CircuitPython that will work with the Feather RP2040 with USB Type A Host. Use this release if you are new to CircuitPython.

Release Notes for 9.2.6

Learn how to install CircuitPython on this board
Modules included in this download _asyncio _bleio _pixelmap adafruit_bus_device adafruit_pixelbuf aesio alarm analogbufio analogio array atexit audiobusio audiocore audiomixer audiomp3 audiopwmio binascii bitbangio bitmapfilter bitmaptools bitops board builtins builtins.pow3 busdisplay busio busio.SPI busio.UART codeop collections countio digitalio displayio epaperdisplay errno floppyio fontio fourwire framebufferio getpass gifio hashlib i2cdisplaybus i2ctarget imagecapture io jpegio json keypad keypad.KeyMatrix keypad.Keys keypad.ShiftRegisterKeys keypad_demux keypad_demux.DemuxKeyMatrix locale math memorymap microcontroller msgpack neopixel_write nvm onewireio os os.getenv paralleldisplaybus pulseio pwmio qrio rainbowio random re rgbmatrix rotaryio rp2pio rtc sdcardio select sharpdisplay storage struct supervisor synthio sys terminalio tilepalettemapper time touchio traceback ulab usb usb_cdc usb_hid usb_host usb_midi usb_video vectorio warnings watchdog zlib

Features: Feather-Compatible, Battery Charging, STEMMA QT/QWIIC, USB-C, Breadboard-Friendly

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Previous Versions of CircuitPython

All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.

Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.