Is your QT Py all alone, lacking a friend to travel the wide world with? When you were a kid, you may have learned about the “buddy” system. Well, this product is kind of like that! It is a board that will watch your QT Py’s back and add a USB Host port.
That means that your tiny microcontroller project can have a keyboard, mouse, or disk drive plugged into it, opening up a huge ecosystem of common off-the-shelf devices that you can now integrate. The Adafruit USB Host BFF makes it easy to add USB Host support, especially now that TinyUSB supports it in the Arduino library as a ‘native’ interface for host support.
This BFF uses the MAX3421E – a tried and true USB Host chip. It uses SPI plus an IRQ pin to send data to just about any USB device. Note that because the chip is older and you’re limited to the SPI port speed, you won’t get blazing 480Mbps high-speed data transfer. But for basic HID interfacing or even reading/writing to a Mass Storage device, it does work quite well. There’s a famous USB Host Library that can be used, and its specialty is AVR support, but it also seems to support nRF52 and ESP32.
We personally recommend using the TinyUSB Arduino library – however, the trade-off is that the chip must have TinyUSB support already, which means it’s great for RP2040, ESP32-S2 or S3, nRF52840, SAMD21/51 chips. Make sure your desired QT Py mainboard is supported between the two libraries before purchasing!
To keep the BFF very compact, we use a micro-B USB “OTG” connector – a full-sized USB Type A wouldn’t fit! You’ll need to use a basic OTG adapter (such as those sold for use with the Pi Zero) to convert to type A. Unlike our USB Host ‘Wing, we don’t include a 5V power booster, so you will need to power the QT Py + BFF over USB or, in some other way, provide 5V on the 5V power line. However, to make it easier to power-cycle the peripheral, we have wired up a P-FET for switching the 5V host power on and off; you can either short the pin to A0 or use the MAX3421E’s GPIO pin.
Remember, you need driver support for the MAX3421E (see above for chips known to work). Unless you’re using a generic mouse, keyboard, CDC serial, or USB mass storage device, you will also need a USB driver that knows how to talk to the device—and writing a driver is non-trivial.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!