How to Install CP210x USB Drivers for ESP32 & ESP8266
If your computer isn't detecting your ESP32 or ESP8266 board when you plug it in via USB, 99% of the time it’s because you're missing the CP210x USB to UART Bridge drivers.
Without these drivers, your system won't assign a COM port to your board, meaning the Arduino IDE or VS Code (PlatformIO) won't be able to communicate with it or upload your code.
Step 1: Download the Driver
Depending on your operating system, grab the appropriate driver directly from Silicon Labs:
-
Windows (10/11 Universal Driver): Download CP210x Windows Driver
-
Mac (macOS v11.0 or higher): Download CP210x macOS Driver
-
Linux: Most modern Linux distributions come with CP210x drivers pre-installed in the kernel, but if needed, source code is available on the Silicon Labs VCP Downloads page.
Step 2: Install the Driver
-
Extract the ZIP file: Unzip the downloaded folder to your computer.
-
Run the installer:
-
Windows: Double-click
CP210xVCPInstaller_x64.exe(for 64-bit systems) orCP210xVCPInstaller_x86.exe(for 32-bit systems) and follow the prompts. -
Mac: Mount the
.dmgfile and run the installer package. You may need to approve the extension in your System Settings > Security & Privacy.
-
Step 3: Verify the Connection
-
Plug your ESP board into your computer using a data-capable USB cable (make sure it isn't a power-only charging cable!).
-
Open Device Manager on Windows (or check
ls /dev/tty.*in the Mac Terminal). -
Expand the Ports (COM & LPT) section in Device Manager. You should now see Silicon Labs CP210x USB to UART Bridge assigned to a specific port (e.g.,
COM3orCOM4).
Once you see your COM port listed, you're all set to select it in your IDE and start flashing your code!
🛠️ Common Troubleshooting & Gotchas
-
"Power-Only" USB Cables: This is the #1 issue makers run into! Many cheap micro-USB or USB-C cables (like those bundled with rechargeable gadgets) only connect the power pins and lack the internal data lines. If your board lights up but no COM port appears in Device Manager, try swapping to a known high-quality data cable.
-
Alternative Chipsets (CH340 / FTDI): While CP210x is the most common bridge chip on ESP32/ESP8266 boards, some boards use the CH340G or FT232RL chips instead. If installing the CP210x driver doesn't resolve the issue, check the tiny black square chip near your board's USB port to confirm which chipset you have. Drivers for the CH340 can be found on the WCH official site.
-
Boot Button Requirement: Some ESP32 development boards require you to manually hold down the BOOT / IO0 button on the board while uploading code, releasing it only after you see
Connecting...in your IDE console. -
Mac Security Permissions: On macOS High Sierra or later, third-party system extensions are blocked by default. After running the driver installer, head to System Settings > Privacy & Security and click "Allow" next to the Silicon Labs driver extension prompt if requested.
Reference & full detailed walkthrough: Random Nerd Tutorials: Install ESP32 / ESP8266 USB Drivers