# Adafruit CP2104 and CP2102N Friend - USB to Serial Converter

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/122/998/medium800/adafruit_products_5335-04.jpg?1690379628)

Long gone are the days of parallel ports and serial ports. Now the USB port reigns supreme! But USB is hard, and you just want to transfer your every-day serial data from a microcontroller to computer. What now? Enter the&nbsp; **Adafruit CP2104** and **CP2102N Friends**!

![](https://cdn-learn.adafruit.com/assets/assets/000/123/000/medium800/adafruit_products_3309-04.jpg?1690379787)

The high-quality CP2104 USB-Serial chip can upload code at a blistering 2Mbit/s for fast development time. It also has auto-reset for Arduino/ATmega328 boards so no noodling with pins and reset button pressings. The CP2104 has better driver support than the CH340 and can do very high speeds, and variable speeds without stability issues. Compared to the FT232RL and FT231X, the CP2104 has the same capabilities or better, at a great price! It even has the RX/TX LEDs to help you debug your data, they'll blink when the chip receives/transmits data.

![](https://cdn-learn.adafruit.com/assets/assets/000/123/001/medium800/adafruit_products_3309-00.jpg?1690379808)

The CP2104 Friend has a Micro B port, while the updated CP2102N has USB C instead. The CP2102N is otherwise 'drop in compatible' and anywhere you would use the CP2104 for uploading firmware to microcontrollers, it'll work exactly the same.

![](https://cdn-learn.adafruit.com/assets/assets/000/123/002/medium800/adafruit_products_5335-03.jpg?1690379825)

The CP2102N is&nbsp;_very similar_&nbsp;to&nbsp;[the CP2104](https://www.adafruit.com/product/3309). Despite having a name with a lower number, its actually considered the successor/next generation to the CP2104. Compared to the CP2104, the CP2102N can:

- Transfer data at a faster rate: CP2104 is 2Mbps max, the CP2102N is 3Mbps max
- Reprogram the internal settings: CP2104 has a one-time-programmable memory and the CP2102N has reprogrammable settings memory. 99% of people don't use this capability but it is there if you need it.
- The CP2102 **N** improves over the CP2102 (no N) by having the same RS-485 and GPIO support that the CP2104 has
- [More details in the SiLabs CP2104 to CP2102N migration guide](https://www.silabs.com/documents/public/application-notes/an976-cp2102-3-4-9-to-cp2102n-porting-guide.pdf).

The high-quality CP2102N USB-Serial chip can upload code at a blistering 3Mbit/s for fast development time. It also has auto-reset for Arduino/ATmega328 boards, so no noodling with pins and reset button pressings. The CP2102N has better driver support than the CH340 and can do very high speeds, and variable speeds without stability issues. Compared to the FT232RL and FT231X, the CP2102N has the same capabilities or better, at a great price! It even has the RX/TX LEDs to help you debug your data, they'll blink when the chip receives/transmits data.

![](https://cdn-learn.adafruit.com/assets/assets/000/123/003/medium800/adafruit_products_5335-02.jpg?1690379993)

By default, we've set the CP2104 and CP2102N up so that they match our FTDI cables. The 6th pin is RTS, the power wire is +5V and the signal levels are 3.3V (they are 5V compliant, and should work in the vast majority of 3.3V and 5V signal systems). Works excellently with any Arduino, ESP8266, ESP32 or any other microcontroller that uses an 'FTDI port' for communications and upload. You can also purchase a&nbsp;[6-pin extension cable](https://www.adafruit.com/products/206)&nbsp;from us, which will let you rearrange the wire order.

There's also a full collection of all the modem control pins you may need on the side, in case you need the DTR, RI, DSR, etc. pins.

![](https://cdn-learn.adafruit.com/assets/assets/000/123/004/medium800/adafruit_products_5335-05.jpg?1690379951)

Each order comes with a fully assembled and tested board. We give you a right-angle socket header and some male header strip. You can solder in the socket header on the edge to make it 'FTDI-like' or solder the male headers in to plug it into a breadboard and get access to all the pins.

For Linux you won't need a driver. For Windows, it will automatically grab the driver from Windows Update. For Mac OS X&nbsp;[you can check out SiLabs driver page for the latest and greatest](http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx).

Info: 

![](https://cdn-learn.adafruit.com/assets/assets/000/123/006/medium800/adafruit_products_3309-01.jpg?1690379977)

# Adafruit CP2104 and CP2102N Friend - USB to Serial Converter

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/111/807/medium800/adafruit_products_cropped_5335-04.png?1652810891)

![](https://cdn-learn.adafruit.com/assets/assets/000/111/808/medium800/adafruit_products_cropped_rotated_3309-01.png?1652810905)

## Power Pins

- **5V**  **pins** - These are the 5V power pins. They receive 5V output from USB and can supply ~100mA peak.
- **3V pin** - This is the 3.3V power pin. It is the output from the 3.3V regulator and can supply ~100mA peak.
- **GND pins** &nbsp;- These are common ground for power and logic.

## FTDI Data Pins

The following pins are found at the back of the board. The pin order matches the [FTDI cables in the Adafruit shop](https://www.adafruit.com/product/70) and use 3.3V logic, but are 5V compliant. They should work in the vast majority of 3.3V and 5V signal systems.

- **CTS** - &nbsp;Clear To Send control input. This pin is active low.
- **TXD** - UART data transmit pin. This pin sends the serial output.
- **RXD** - UART data receive pin. This pin receives the serial input.
- **RTS** - Ready To Send control output. This pin is active low.

## Control Pins

- **SU** - SUSPEND pin. This pin is driven high when the device enters the USB suspend state.
- **#SU** - SUSPENDb pin. This pin is driven low when the device enters the USB suspend state.
- **IO2** - GPIO pin. Can be used as a digital input or output.
- **IO3** - GPIO pin. Can be used as a digital input or output.
- **RST** - Reset pin. This pin is active-low.

## Modem Pins

- **DSR** - Data Set Ready control input. This pin is active low.
- **DTR** - Data Terminal Ready control output. This pin is active low.
- **DCD** - Data Carrier Detect control input. This pin is active low.
- **RI** - Ring Indicator control input. This pin is active low.

## TX and RX LEDs

These LEDs are located towards the back of the board in front of the FTDI pins. They help with debugging data.

- **R LED** - The serial receive LED. It blinks when the chip receives data.
- **T LED** - The serial transmit LED. It blinks when the chip transmits data.

# Adafruit CP2104 and CP2102N Friend - USB to Serial Converter

## Downloads

## Files

- [Windows and Mac Drivers Download](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers)
- [CP2104 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/111/794/original/cp2104.pdf?1652808338)
- [CP2102N Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/111/712/original/cp2102n-datasheet.pdf?1652465676)
- [AN721 USBXpress Device Configuration](https://www.silabs.com/documents/public/application-notes/AN721.pdf) (for configuring CP210x)
- [EagleCAD PCB Files (CP2102N) on GitHub](https://github.com/adafruit/Adafruit-CP2102N-Friend-PCB)
- [EagleCAD PCB Files (CP2104) on GitHub](https://github.com/adafruit/Adafruit-CP2104-Friend-PCB)
- [Fritzing object (CP2102N) in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20CP2102N%20Friend.fzpz)
- [Fritzing object (CP2104) in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20CP2104%20Friend.fzpz)

## Schematic and Fab Print CP2102N
![](https://cdn-learn.adafruit.com/assets/assets/000/111/711/medium800/adafruit_products_schem.png?1652465596)

![](https://cdn-learn.adafruit.com/assets/assets/000/111/710/medium800/adafruit_products_board.png?1652465587)

## Schematic and Fab Print CP2104
![](https://cdn-learn.adafruit.com/assets/assets/000/111/797/medium800/adafruit_products_2104schem.png?1652808827)

![](https://cdn-learn.adafruit.com/assets/assets/000/111/798/medium800/adafruit_products_2104board.png?1652808844)


## Primary Products

### Adafruit CP2104 Friend - USB to Serial Converter

[Adafruit CP2104 Friend - USB to Serial Converter](https://www.adafruit.com/product/3309)
Discontinued - **you can grab** [Adafruit CP2102N Friend - USB to Serial Converter&nbsp;](https://www.adafruit.com/product/5335) **instead!&nbsp;**

Long gone are the days of parallel ports and serial ports. Now the USB port reigns supreme! But USB is hard, and you just...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/3309)
[Related Guides to the Product](https://learn.adafruit.com/products/3309/guides)
### Adafruit CP2102N Friend - USB to Serial Converter

[Adafruit CP2102N Friend - USB to Serial Converter](https://www.adafruit.com/product/5335)
Long gone are the days of parallel ports and serial ports. Now the USB port reigns supreme! But USB is hard, and you just want to transfer your every-day serial data from a microcontroller to computer. What now? Enter the **Adafruit CP2102N Friend**!

The CP2102N is _very..._

In Stock
[Buy Now](https://www.adafruit.com/product/5335)
[Related Guides to the Product](https://learn.adafruit.com/products/5335/guides)

## Featured Products

### 6-conductor 0.1" socket-socket cable

[6-conductor 0.1" socket-socket cable](https://www.adafruit.com/product/206)
6" (150mm) long jumper cable of 6 conductors, 0.1" spacing with two 'female'/sockets on either end. Great for wiring up ShiftBrites together!

**Note:** Wire&nbsp;colors may vary.&nbsp;

Out of Stock
[Buy Now](https://www.adafruit.com/product/206)
[Related Guides to the Product](https://learn.adafruit.com/products/206/guides)
### USB Type A to Type C Cable - 1ft - 0.3 meter

[USB Type A to Type C Cable - 1ft - 0.3 meter](https://www.adafruit.com/product/4473)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4473)
[Related Guides to the Product](https://learn.adafruit.com/products/4473/guides)
### Pink and Purple Woven USB A to USB C Cable - 1 meter long

[Pink and Purple Woven USB A to USB C Cable - 1 meter long](https://www.adafruit.com/product/5153)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers, and more.&nbsp;&nbsp;[If you want something just like it but for Micro B, we...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5153)
[Related Guides to the Product](https://learn.adafruit.com/products/5153/guides)
### FTDI Serial TTL-232 USB Cable

[FTDI Serial TTL-232 USB Cable](https://www.adafruit.com/product/70)
Just about all electronics use TTL serial for debugging, bootloading, programming, serial output, etc. But it's rare for a computer to have a serial port anymore. This is a USB to TTL serial cable, with a FTDI FT232RL usb/serial chip embedded in the head. It has a 6-pin socket at the end...

In Stock
[Buy Now](https://www.adafruit.com/product/70)
[Related Guides to the Product](https://learn.adafruit.com/products/70/guides)
### FTDI Serial TTL-232 USB Type C Cable

[FTDI Serial TTL-232 USB Type C Cable](https://www.adafruit.com/product/4364)
Just about all electronics use a UART serial port with RX and TX pins for debugging, bootloading, programming, serial output, etc. But it's rare for a computer to have a serial port anymore. Thus, a serial cable is an essential part of any electrical engineer's toolkit.

This is a...

In Stock
[Buy Now](https://www.adafruit.com/product/4364)
[Related Guides to the Product](https://learn.adafruit.com/products/4364/guides)

## Related Guides

- [Playing Arduboy Games on Arcada](https://learn.adafruit.com/playing-arduboy-games-on-arcada.md)
- [Adafruit TCS3430 / TCS34303 Ambient Tri-Stimulus Color Sensor](https://learn.adafruit.com/adafruit-tcs3430-tcs34303-ambient-tri-stimulus-color-sensor.md)
- [A Z80 CP/M emulator for the SAMD51](https://learn.adafruit.com/z80-cpm-emulator-for-the-samd51-grand-central.md)
- [Adafruit PyBadge and PyBadge LC](https://learn.adafruit.com/adafruit-pybadge.md)
- [Tweet-a-watt](https://learn.adafruit.com/tweet-a-watt.md)
- [AD8495 Analog Output K-Type Thermocouple Amplifier](https://learn.adafruit.com/ad8495-thermocouple-amplifier.md)
- [Adafruit 7-Segment LED FeatherWings](https://learn.adafruit.com/adafruit-7-segment-led-featherwings.md)
- [Adafruit VL53L1X Time of Flight Distance Sensor](https://learn.adafruit.com/adafruit-vl53l1x.md)
- [Adafruit LSM9DS0 Accelerometer + Gyro + Magnetometer 9-DOF Breakouts](https://learn.adafruit.com/adafruit-lsm9ds0-accelerometer-gyro-magnetometer-9-dof-breakouts.md)
- [Monochrome OLED Breakouts](https://learn.adafruit.com/monochrome-oled-breakouts.md)
- [Current Limiting Stepper Driver with DRV8871](https://learn.adafruit.com/current-limiting-stepper-driver-with-drv8871.md)
- [SMT Breadboard Prototyping Using Breakout PCBs](https://learn.adafruit.com/smt-prototyping-using-breakout-pcbs.md)
- [Adafruit 20W Stereo Audio Amplifier - MAX9744](https://learn.adafruit.com/adafruit-20w-stereo-audio-amplifier-class-d-max9744.md)
- [Adafruit Proto Screw Shield](https://learn.adafruit.com/adafruit-proto-screw-shield.md)
- [Introducing ItsyBitsy M0 Express](https://learn.adafruit.com/introducing-itsy-bitsy-m0.md)
