USB Type A Female Breakout Hookup Guide
If you have a microcontroller that can act as a USB host, then you will need a way to plug in USB cables and devices. The USB Type A Female Breakout accepts a Type A USB plug on one end and breaks out the 4 USB lines to a standard 0.100 inch header.
SparkFun USB Type A Female BreakoutBOB-12700
NOTE: This tutorial uses the mbed LPC1768, as it has a built-in USB host. However, the breakout board can be used for any platform that has a USB host.
Covered In This Tutorial
In this tutorial, we will use the mbed LPB1768 and the USB Type A Female Breakout to create a simple circuit that accepts a USB keyboard and prints pressed keys to a serial console.
- USB Type A Female Breakout
- Male PTH headers
- 2x 15kΩ resistors (if you don't have any, 10kΩ resistors will work for this)
- 5x Jumper wires to connect from breadboard to Arduino.
- Breadboard to tie everything together.
- USB Keyboard
The board is a simple breakout for USB lines.
GND should be connected to the ground of the host circuit.
D+ and D- are the differential pair lines for USB. They should be connected to D+ and D-, respectively, of the host circuit. Additionally, a 15kΩ pull-down resistor is needed on each D+ and D-.
VCC needs to be connected to a 5V supply (which could come from the host circuit, if available).
To connect the USB breakout board, solder the break away headers to the 4 header holes on the board.
Connecting the USB Breakout Board
For the LPC1768, make the following connections with jumper wires:
(USB Breakout → LPC1768)
- VCC → VU
- D- → D-
- D+ → D+
- GND → GND
Additionally, add 2 15kΩ pull-down resistors on the D+ and D- lines. Attach one resistor from D+ to GND, and attach another from D- to GND.
We will use the mbed online editor and compiler for this example. First, navigate to mbed.org, and login or create a profile.
Once logged in, go to the Handbook Homepage, which contains all of the official mbed libraries.
Scroll down to find the USB Host Keyboard library under "Communication Interfaces."
Click the "Import Program" button to load the library and example program into the online compiler.
Make sure you have "Program" selected from "Import As:", as we want to use the example program (select "Library" if you plan to write your own program using the library).
In the "Program Workspace," select the "USBHostKeyboard_HelloWorld" folder and click "Compile" at the top. This will automatically compile the program and download a binary (.bin file) to your computer.
Plug in the mbed microcontroller to your computer using a USB cable. The mbed should enumerate as a USB mass storage device. If you are using Windows, it will appear as if you plugged in a thumb drive.
Find where you downloaded the compiled .bin file and copy it to the root directory of your mbed device.
Press the reset button on the mbed system. This will reboot the mbed and load the .bin file to be immediately executed.
In addition to enumerating as a mass storage device, the mbed also has a built-in COM port. If you are on Windows, open up the Device Manager and locate the mbed Serial Port's COM number.
Start the serial program of your choice (I will use PuTTY for this example) and select the COM port correseponding to the mbed device. Use 9600 baud, and click "Open."
Once you establish a Serial connection to the mbed, you will be presented with a blank console.
Plug in a USB keyboard to the USB Type A Female Breakout Board.
The Serial console should show the keyboard being enumerated. You can type, and keystrokes will appear in the console. If you unplug the keyboard, you should see a "disconnected" message.
IMPORTANT: Only letters and numbers are supported in this example program. Additionally, the program cannot discern multiple keystrokes (for example, if you hold '1', press '2', let go of '2', and let go of '1', you'll see "111" printed).
Resources and Going Further
The USB Type A Female Breakout is a great way to add USB devices to your microcontroller, assuming your microcontroller can support a USB host. For some ideas, see mbed's Handbook section on USB host libraries:
- USB Host Mouse to add a USB mouse to your project
- USB Host Keyboard (Yes, I know we just covered this one)
- USB Host MSD to read/write to USB flash drives
- USB Host Serial to communicate via Serial over the USB lines
- USB Host Hub to have the mbed act as a USB hub