SparkFun
SparkFun USB-C Host Shield
The SparkFun USB-C Host Shield provides all the digital logic and analogue circuitry needed to add USB peripheral/host control to your Arduino. Interface wit...
Get notified when back in stock
The SparkFun USB-C Host Shield provides all the digital logic and analogue circuitry needed to add USB peripheral/host control to your Arduino. Interface with and control any USB 2.0 compatible device — thumb drives, digital cameras, Bluetooth dongles, game controllers, and more.
This version updates the connector to USB-C and lets you choose between 5 V or VIN power input via an onboard switch. The MAX3421E communicates over SPI (pins D10–D13), with all signals level-shifted to 3.3 V through a hex converter.
Key Features
- MAX3421E USB Controller – USB host and peripheral functionality, USB 2.0 at 12 Mbps (full-speed)
- USB-C Female Connector – Configured for host applications, supplies 5 V with CC1/CC2 56 kΩ pull-ups
- Arduino R3 Footprint – Standard shield form factor, stackable headers
- Power Selection Switch – Choose between VIN or 5 V input
- On/Off Switch – Dedicated power control for the shield
- Reset Button – Resets the connected Arduino board
Specifications
- USB Controller: MAX3421E
- Operating Voltage: 3.0–3.6 V (controller); 5 V or VIN (shield power)
- Supply Current: 45 mA max / 8.7 mA idle / 30–60 µA suspend
- SPI Clock Speed: 0–26 MHz
- Operating Temperature: −40 to +85 °C
- SPI Pins: SCK (D13), POCI (D12), PICO (D11), CS (D10)
- Control Pins: INT (D9), GPX (D8), RST (D7)
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- CS
- CS stands for chip select, a control pin used by SPI devices to tell which connected device should listen. It matters when you connect more than one SPI module to the same microcontroller, because each device usually needs its own CS pin.
- Headers
- Rows of connector contacts on a fixed pitch (commonly 2.54 mm) used to link a board to a breadboard, jumper wires, or another board. They come as male pin headers and female socket headers; when a module ships with pre-soldered headers it can be used straight away, whereas bare pads require soldering the pins yourself.
- MAX3421E
- The MAX3421E is a chip that adds USB host controller hardware to a microcontroller project. It matters because it handles much of the low-level USB communication, but it also limits the board to the speeds and device support that this controller and its software libraries can provide.
- RST
- RST (reset) is a control pin used to restart or reinitialise a device to a known state. Connecting an RST pin to a microcontroller lets the host reset the device, which can help with reliable start-up or recovery.
- Shield
- An add-on board that plugs into a main controller board to give it extra features such as sensing, motor control or communication. Knowing a product supports shields helps you judge whether it can connect neatly into an existing maker-board setup.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- UPS
- An uninterruptible power supply is a battery-backed power system that keeps a device running when external power is unplugged or fails. For an embedded computer, it helps prevent sudden shutdowns that can corrupt files or interrupt a project.
- USB 2.0
- USB 2.0 is a widely used wired standard for carrying both data and power between a device and a computer or other compatible host, with data rates up to 480 Mbps. It indicates the kind of port a device uses and that it should work with most modern and many older computers.
- USB host
- A USB host is the side of a USB connection that controls attached devices, like a computer talking to a keyboard or flash drive. This matters because most microcontroller boards are normally USB devices, so adding USB host support lets them use common USB peripherals.
- USB-C
- USB-C is a small, reversible USB connector that can carry power, data and, on some devices, video over a single cable. The same connector can range from charging only to high-speed data, so the functions a given port actually supports vary.
Find this product in
Brands
Prototyping & Wiring
SparkFun USB-C Host Shield Schematic
Schematic · 154.5 KB · Click any page to view full size
MAX3421E Datasheet
Datasheet · 254.6 KB · Click any page to view full size
SparkFun USB-C Host Shield Board Dimensions
Mechanical Drawings · 208.3 KB · Click any page to view full size
MAX3421E Errata
Product Change Note · 353.0 KB · Click any page to view full size
MAX3421E Programming Guide
User Guide · 703.4 KB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 729.3 KB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
90f57c1
30 days ago
· 98 commits
- .github Update mkdocs.yml 30 days ago
- docs Add thumbnail image almost 2 years ago
- Hardware Changed R4 and R5 resistors over 3 years ago
- overrides Moved overrides folder folder almost 2 years ago
- .gitignore Create .gitignore almost 4 years ago
- glossary-local.md Update Mkdocs configuration almost 2 years ago
- glossary-sparkfun.md Update glossary-sparkfun.md over 1 year ago
- LICENSE.md Update LICENSE.md almost 2 years ago
- mkdocs.yml Update mkdocs.yml 30 days ago
- README.md Update README.md almost 2 years ago
Revision 2.0 of USB Host Library for Arduino.
e5bc995
about 1 month ago
· 1.5k commits
- .github fix: Remove "-Wno-incompatible-pointer-types" 11 months ago
- doc Install GraphViz, make sure Jekyll is disabled and updated the doc README over 7 years ago
- examples HID/scale: fix invalid extended char almost 2 years ago
- .gitattributes Removed content from merge conflict over 11 years ago
- .gitignore Added support for Teensy 4.0 and 4.1 over 5 years ago
- .gitmodules Add RTClib almost 13 years ago
- address.h Release part of the code under "GPLv2 or later", so it is compatible with GPLv3 about 8 years ago
- adk.cpp Merge branch 'master' of github.com:felis/USB_Host_Shield_2.0 over 8 years ago
- adk.h all sources to LF over 11 years ago
- AMBX.cpp Remove unneeded delays, rewrite main loop in example over 5 years ago
- AMBX.h Commit for AMBX support over 5 years ago
- AMBXEnums.h Commit for AMBX support over 5 years ago
- avrpins.h Added the pin definitions to support the m5 usb model on m5stack s3 11 months ago
- BTD.cpp Parse Extended Inquiry Result events and fix parsing class of device when more than one response was returned in a Inquiry Result event over 4 years ago
- BTD.h Parse Extended Inquiry Result events and fix parsing class of device when more than one response was returned in a Inquiry Result event over 4 years ago
Related Tutorials
Free guides on learn.littlebird.com.au