

The Adafruit CP2104 Friend (Manufacturer Part ID: 3309) is a USB-to-UART bridge designed to facilitate seamless communication between a computer and microcontrollers or other serial devices. It features the Silicon Labs CP2104 chipset, which provides reliable and high-speed data transfer. This module is equipped with a built-in level shifter, making it compatible with both 3.3V and 5V systems, ensuring versatility across a wide range of applications.








The Adafruit CP2104 Friend is a compact and powerful USB-to-UART bridge with the following key specifications:
| Parameter | Value |
|---|---|
| Chipset | Silicon Labs CP2104 |
| USB Interface | USB 2.0 Full-Speed |
| UART Baud Rate | Up to 921,600 bps |
| Voltage Levels | 3.3V or 5V (selectable via jumper) |
| Power Supply | USB-powered |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 1.3" x 0.6" (33mm x 15mm) |
The CP2104 Friend has a simple pinout for easy integration into your projects. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| GND | Ground connection |
| 5V | 5V output from USB (can power external devices, up to 500mA) |
| 3.3V | 3.3V output from the onboard regulator |
| TX | UART Transmit pin (data sent from CP2104 to the connected device) |
| RX | UART Receive pin (data received by CP2104 from the connected device) |
| DTR | Data Terminal Ready (used for resetting microcontrollers like Arduino) |
| CTS | Clear to Send (optional flow control pin) |
Connect the CP2104 Friend to Your Computer:
Connect to Your Microcontroller or Device:
TX pin of the CP2104 Friend to the RX pin of your microcontroller.RX pin of the CP2104 Friend to the TX pin of your microcontroller.DTR pin to the reset pin of your microcontroller for automatic reset functionality.Set Voltage Level:
Test Communication:
CTS pin to your device.The CP2104 Friend can be used to program or communicate with an Arduino UNO. Below is an example of how to send data from the Arduino to your computer via the CP2104 Friend.
// Example: Sending data from Arduino to computer via CP2104 Friend
// Ensure the CP2104 Friend's TX pin is connected to Arduino's RX pin,
// and the RX pin is connected to Arduino's TX pin.
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
delay(1000); // Wait for the serial connection to stabilize
}
void loop() {
Serial.println("Hello from Arduino!"); // Send a message to the computer
delay(1000); // Wait 1 second before sending again
}
Device Not Recognized by Computer:
No Data Transmission:
Voltage Level Mismatch:
Microcontroller Not Resetting:
DTR pin is connected to the reset pin of your microcontroller.Q: Can the CP2104 Friend power my microcontroller?
A: Yes, the CP2104 Friend can provide 5V (up to 500mA) or 3.3V output to power your microcontroller, depending on the selected voltage level.
Q: Is the CP2104 Friend compatible with macOS, Windows, and Linux?
A: Yes, the CP2104 Friend is compatible with all major operating systems. Ensure you install the appropriate drivers for your OS.
Q: What is the maximum baud rate supported by the CP2104 Friend?
A: The CP2104 Friend supports baud rates up to 921,600 bps.
Q: Can I use the CP2104 Friend for hardware flow control?
A: Yes, the CP2104 Friend supports hardware flow control via the CTS pin.
By following this documentation, you can effectively integrate the Adafruit CP2104 Friend into your projects for reliable USB-to-UART communication.