Flight Controller USB Connection: CP210X or VCP

by Oscar

A flight controller is designed to connect to the computer using one of the following 2 methods: CP2102 (CP2103) or VCP. This is how you can tell them apart.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

All FC’s use one of the two types of USB connection, CP210X or VCP. Each type requires different driver to install on your computer. Also it’s useful to know in case your USB port is broken and you need to connect to the computer.

Further Reading: How to choose an flight controller for mini quad

How to Tell if You have CP210X or VCP ?

CP2102, CP2103

CP210X is a chip as the interface between the FC and computer for configuration and firmware flashing. It’s common in older boards like the Seriously Pro Racer F3 (SPRF3) and Naze32 have a  on board which is used.

Driver – Silabs CP210X – http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

For CP210X, you will notice UART1 has MSP enabled for communicating with the computer when USB port is connected. That’s also why you don’t want to connect any other devices to this UART if you have this type of FC.

CP2102 USB MSP Port UART 1


Modern flight controllers use VCP (Virtual COM Port) to configure settings, and use DFU mode to flash firmware. These interfaces are integrated features in the MCU.

For VCP boards, you will see USB VCP in the port tab which has MSP enabled. VCP has the advantage that the USB connection is not shared with UART1 so you don’t need to worry about using it for something else.


Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


Steve Cook 29th May 2023 - 4:32 am

Can the 4-wire USB VCP connection be used for gps with or instead of the usb programming?

Gary Rogers 8th October 2021 - 3:18 am

How can I check to be sure my flight controller is communicating with my cp2102

Willie Fly 27th May 2021 - 4:39 am

Hi Oscar, I love your work, pages and tutorials, but in this one here, you explain how to tell if your board uses the CP210X or VCP. If someone, like me, has broken off the USB port, then you can not connect the board to betaflight to check via the interface which type you have.

Oscar 27th May 2021 - 9:59 am

Maybe you remember from memory? Got a screenshot of the ports tab somewhere? Google a screenshot of it? Or just ask people online? I am sure there are other people using the same board.

Jack Ley 27th October 2019 - 10:13 pm

I have a vcp, what does it mean when there is that ticker on the ports tab is a lighter yellow than any other ticker?

# version
# Betaflight / STM32F7X2 (S7X2) 4.1.0 Oct 6 2019 / 06:48:40 (c6452a55c) MSP API: 1.42
# manufacturer_id: CLRA board_name: CLRACINGF7 custom defaults: YES

# diff
# start the command batch
batch start

board_name CLRACINGF7
manufacturer_id CLRA

# mixer
mixer QUADX1234

# feature

# beeper
beeper -GPS_STATUS
beeper -READY_BEEP
beeper -ON_USB

# serial
serial 0 32 115200 57600 0 115200
serial 4 0 115200 57600 0 115200
serial 5 64 115200 57600 0 115200

# aux
aux 0 0 0 1650 2100 0 0
aux 1 1 1 900 1200 0 0
aux 2 2 1 1375 1625 0 0
aux 3 13 2 1200 2100 0 0
aux 4 35 3 1600 2100 0 0
aux 5 39 4 1375 1625 0 0
aux 6 48 4 1725 2100 0 0

# master
set gyro_to_use = FIRST
set acc_calibration = -26,5,19
set mag_hardware = NONE
set baro_hardware = NONE
set rssi_channel = 16
set serialrx_provider = FPORT
set yaw_motors_reversed = ON
set pid_process_denom = 4

profile 0

rateprofile 0

# end the command batch
batch end