

The Adafruit MCP2221A USB to GPIO / ADC / DAC breakout (Part ID: 4471) is a versatile and user-friendly board designed to bridge USB connectivity with GPIO, ADC, and DAC functionalities. This breakout board is based on the Microchip MCP2221A chip, which enables seamless communication between a computer and external devices via USB. It is ideal for prototyping, testing, and interfacing with sensors, actuators, and other peripherals.








The Adafruit MCP2221A breakout board offers the following key technical features:
| Specification | Details |
|---|---|
| Chip | Microchip MCP2221A |
| USB Interface | USB 2.0 Full-Speed |
| GPIO Pins | 4 configurable GPIO pins |
| ADC Channels | 3 channels, 10-bit resolution |
| DAC Channels | 1 channel, 5-bit resolution |
| I2C Support | Master mode, up to 400 kHz |
| Operating Voltage | 3.3V (logic level) |
| Power Supply | Powered via USB (5V input) |
| Dimensions | 25mm x 18mm x 3mm |
| Operating Temperature | -40°C to +85°C |
The breakout board has the following pin layout:
| Pin Name | Type | Description |
|---|---|---|
| GND | Power | Ground connection |
| VDD | Power | 3.3V output (regulated from USB 5V input) |
| GP0 | GPIO / ADC | Configurable as GPIO or ADC (10-bit resolution) |
| GP1 | GPIO / ADC | Configurable as GPIO or ADC (10-bit resolution) |
| GP2 | GPIO / ADC | Configurable as GPIO or ADC (10-bit resolution) |
| GP3 | GPIO / DAC | Configurable as GPIO or DAC (5-bit resolution) |
| SCL | I2C Clock | I2C clock line (shared with GP1 in I2C mode) |
| SDA | I2C Data | I2C data line (shared with GP0 in I2C mode) |
| USB | USB Interface | USB connection for power and data communication |
Although the MCP2221A is typically used with a computer, it can also interface with an Arduino UNO via I2C. Below is an example of using the MCP2221A as an I2C slave device:
#include <Wire.h>
// I2C address of the MCP2221A (default is 0x20)
#define MCP2221A_ADDR 0x20
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Start serial communication for debugging
Serial.println("MCP2221A I2C Example");
}
void loop() {
Wire.beginTransmission(MCP2221A_ADDR); // Start communication with MCP2221A
Wire.write(0x01); // Example: Send a command byte
if (Wire.endTransmission() == 0) {
Serial.println("Command sent successfully!");
} else {
Serial.println("Failed to communicate with MCP2221A.");
}
delay(1000); // Wait 1 second before sending the next command
}
Board Not Recognized by Computer:
GPIO/ADC/DAC Not Responding:
I2C Communication Fails:
By following this documentation, you can effectively utilize the Adafruit MCP2221A USB to GPIO / ADC / DAC breakout for a wide range of applications.