USB-to-UART Bridge Controllers in ESP32 Development Boards
The most used USB-to-UART bridge controllers in ESP32 Development Boards are CH340 from WCH and CP2102 from SiLabs. Find out which one you should choose.
Today we are going to explore the USB-to-UART bridge controller chips in the context of ESP32 boards.
USB-to-UART chips are commonly used to enable communication between a computer or USB-enabled device and a microcontroller or other embedded system using UART (Universal Asynchronous Receiver-Transmitter) communication.
Even though there are many USB-to-UART chips available on the market, not all of them are used in the ESP32 development boards. We are going to look only into the most popular options, that are commonly used in ESP32 development boards.
USB-to-UART Bridge Controller Manufacturers #
Today, there are multiple companies producing the USB-to-UART bridge controller chips and the chips could be classified by the manufacturer. Out of these, 3 are notable when talking about ESP32 boards, because their chips are commonly used in ESP32 development boards: FTDI, SiLabs and WCH. First, let's take a look at each of the companies.
- FTDI - Future Technology Devices International Ltd is a private Scottish semiconductor device company, specializing in Universal Serial Bus (USB) technology.
- SiLabs - Silicon Laboratories is a public semiconductors manufacturer headquartered in Austin, Texas, United States.
- WCH - WinChipHead is the main brand of a company Nanjing Qinheng Microelectronics Co., Ltd, based in Nanjing, China.
Most Popular USB-to-UART Chips in ESP32 Boards #
Even though you can find the full list of USB-to-UART Chips in the section below, here we are listing the most popular chips, used in the ESP32 development boards. If you are just trying to choose the best ESP32 development board option and the USB-to-UART bridge option, this section should be sufficient.
Battle: CH340 vs CP2102 #
When it comes to ESP32 development boards, if you tried searching it recently, you have probably seen two options of the same board with different prices. The price difference is because of the different USB-to-UART controllers used - CH340 or CP2102. Even though they are practically the same, let's put them to CH340 vs CP2102 battle.
Left side: CH340 #
First up, we've got the CH340. It's a budget-friendly option that's gained popularity for its affordability. This chip does the job of converting data between USB and UART, making it a go-to for a lot of DIY and hobbyist projects. It's like the reliable underdog, quietly getting the job done without breaking the bank. You can see how to identify the CH340 USB-to-UART bridge controller chip on the D1 mini development board above.
Check ESP32 development boards with CH340G
Right Side: CP2102 #
On the other side, we've got the CP2102. This one's a bit fancier and tends to be a bit pricier. The CP2102 is known for its stability and ease of use. It's like the smooth operator of USB-to-UART – maybe a bit more polished than its CH340 counterpart. It's often the choice for more professional applications where reliability is a top priority. You can see how to identify the CP2102 USB-to-UART bridge controller chip on the NodeMCU-32S development board above.
Check ESP32 development boards with CP2102
Results #
According to some users, CH340 is sometimes unstable and might stop working out of the clear, but we personally never saw any difference between the CP2102 and CH340 in terms of reliability.
So, in a nutshell, if you're on a budget and just want to get things rolling, CH340 might be your pick. But if you're after a more sophisticated and reliable performance, CP2102 could be the way to go. It's all about what fits your project and your wallet!
Runner-up: FTDI #
If you want to program your ESP32 chip directly, without a development board, or if the development board does not include a USB-to-UART bridge, a popular option is an FTDI controller.
FT232RL is an external bridge controller board. It comes with a micro USB port and provides 5V or 3.3V voltage level, selectable with a jumper. Also, it has easily 6 easily accessible pins that you can use for connecting to ESP8266 / ESP32 or other development boards.
More USB-to-UART Chips #
There are quite a few other chips from the same manufacturers that contribute to the USB-to-UART bridge controllers. Let's take a look at each individually, analyzing their features to better understand how they align with the needs of actual ESP32 development board implementations. After the list of each manufacturer's chips, you will find some examples of ESP32 development boards, that integrate specific USB-to-UART bridge controllers.
FTDI #
FTDI devices stand out in the USB to UART market for their high-quality drivers, widely recognized in the industry for their reliability. Additionally, FTDI provides extensive documentation, aiding developers in seamless integration and troubleshooting. The broad industry acceptance of FTDI solutions underscores their reputation for stability and performance, making them a preferred choice in professional and hobbyist settings.
Series | Maximum Bit Rate | Package | Clock | EEPROM | Datasheet |
---|---|---|---|---|---|
FT230X | 3 Mbit/s | QFN16 (FT230XQ) / SSOP-16 (FT230XS) | Built-in | Yes | Link |
FT231X | 3 Mbit/s | QFN20 (FT231XQ) / SSOP-20 (FT231XS) | Built-in | Yes | Link |
FT232RL | 3 Mbit/s | QFN32 (FT232RQ) / SSOP-28 (FT232RL) | Built-in | Yes | Link |
FT2232H | 12 Mbit/s | LQFP-64 (FT2232HL) / QFN64 (FT2232HQ) / VQFN-56 (FT2232H-56Q) | External | No | Link |
The FT series of USB-to-UART bridge controllers provides several option, that comes in different chip packages. Notably, these controllers offer varying bit rates, package sizes, clock setups (internal or external), and EEPROM integration. The FT2232H stands out with a higher maximum bit rate of 12 Mbit/s compared to the 3 Mbit/s of the other three controllers, however, it requires an external clock, while the others have a built-in clock.
FT231X #
SparkFun ESP32 Thing - alongside the WiFi System-on-Chip (SoC), this device integrates an FTDI FT231x, serving as a USB-to-serial converter. This component enables seamless communication between your computer and the microcontroller, empowering programming tasks and data exchange.
FT2232H #
ESP-WROVER-KIT - stands out as an ESP32-based development board crafted by Espressif. Its notable feature is the inclusion of the FTDI FT2232HL chip, an advanced multi-interface USB bridge. This integrated chip facilitates JTAG usage for direct debugging of the ESP32, eliminating the need for a separate JTAG debugger by enabling debugging through the USB interface.
ESP32-Ethernet-Kit - created by Espressif, is a development board centered around the ESP32. Comprising two distinct development boards, namely Ethernet board A and PoE board B, the former includes the ESP32-WROVER-B module with dual-mode Bluetooth and Wi-Fi capabilities. Additionally, it features the IP101GRI, a Single Port 10/100 Fast Ethernet Transceiver (PHY).
SiLabs #
Silicon Labs distinguishes itself by offering a diverse portfolio of USB to UART bridge controllers. Notably, Silicon Labs devices are characterized by advanced features, including low power consumption, high data rates, and integrated functionalities like voltage regulators. This makes Silicon Labs solutions suitable for a wide array of applications, particularly those requiring energy efficiency and enhanced capabilities.
Series | Maximum Bit Rate | Package | Clock | EEPROM | Datasheet |
---|---|---|---|---|---|
CP2102 | 1 Mbit/s | QFN28 (CP2102) | Built-in | Yes | Link |
CP2104 | 2 Mbit/s | QFN24 (CP2104) | Built-in | Yes | Link |
CP2102N | 3 Mbit/s | QFN20 (CP2102N-QFN20) / QFN24 (CP2102N-QFN24) / QFN28 (CP2102N-QFN28) | Built-in | Yes | Link |
The CP series of USB-to-UART bridge controllers also come with several options Notably, the options offer different maximum bit rates, ranging from 1 Mbit/s for the CP2102 to 3 Mbit/s for the CP2102N. The package types also vary, with QFN28 for CP2102, QFN24 for CP2104, and multiple options (QFN20, QFN24, QFN28) for CP2102N. All three controllers have a built-in clock and EEPROM.
CP2102 #
ESP-WROVER-KIT - comes with both FT2232H and CP2102 USB-to-UART options. Mostly, the older versions have FT2232H and the newer ones have CP2102.
NodeMCU-32S - The ESP-WROOM-32 module is utilized in this setup, with the USB serial port chip CP2102 employed in the peripheral to extend the micro USB interface. This configuration allows for direct debugging by connecting to a computer via USB, ensuring fast and stable data transmission.
CP2102N #
SparkFun ESP32 Thing Plus - The SparkFun ESP32 Thing Plus marks the next stage for diving into Espressif IoT concepts, offering all the conveniences of the original ESP32 Thing while progressing forward.
ESP32-C6-DevKitC-1-N8 - The ESP32-C6-DevKitC-1 serves as an introductory development board built around the ESP32-C6-WROOM-1(U), a versatile module featuring an 8 MB SPI flash. This board seamlessly incorporates comprehensive functions for Wi-Fi, Bluetooth LE, Zigbee, and Thread.
CP2104 #
Adafruit Feather (HUZZAH32) - he Adafruit HUZZAH32 - ESP32 Feather stands out as an entry-level development board featuring the ESP32-WROOM-32, a versatile module equipped with an 8 MB SPI flash.
WCH #
WCH, represented prominently by the CH340 series, stands out for its affordability, making it an attractive option for cost-sensitive projects. However, WCH devices may have limitations in terms of advanced features and extensive support compared to industry giants like FTDI and Silicon Labs. While WCH is popular in hobbyist circles and projects with budget constraints, it may not be the go-to choice for applications demanding cutting-edge capabilities and comprehensive technical support. You can find a datasheet of CH340 here.
Series | Maximum Bit Rate | Package | Clock | EEPROM |
---|---|---|---|---|
CH340B | 2 Mbit/s | SOP-16 | Built‑in | Yes |
CH340C | 2 Mbit/s | SOP-16 | Built‑in | No |
CH340E | 2 Mbit/s | MSOP-10 | Built‑in | No |
CH340G | 2 Mbit/s | SOP-16 | External | No |
CH340T | 2 Mbit/s | SSOP-20 | External | No |
CH340 USB-to-UART bridge controller is available in multiple packages as well. They differ in chip package types, with CH340B and CH340C in SOP-16, CH340E in MSOP-10, CH340G in SOP-16 with an external clock, and CH340T in SSOP-20 with an external clock. The clock configurations vary, with most having a built-in clock except for CH340G and CH340T, which require an external clock. The presence of EEPROM is noted, with CH340B having it, while CH340C, CH340E, CH340G, and CH340T do not incorporate EEPROM in their designs. This information provides a quick reference for developers seeking specific characteristics within the CH340 series for their applications.
CH340G #
ESP32-CAM-MB - dual-mode development board designed around the ESP32, utilizing a PCB on-board antenna. It incorporates two high-performance 32-bit LX6 CPUs, employing a 7-level pipeline architecture. The main frequency of this board can be adjusted within a range of 80MHz to 240MHz.
Wemos D1 Mini (ESP8266) - The Wemos D1 Mini is a compact and versatile development board based on the ESP8266. Its small form factor makes it ideal for projects with space constraints. The board includes an integrated Wi-Fi module, allowing for seamless connectivity in IoT applications.
Conclusion #
We have reviewed the most popular USB-to-UART bridge controller chips from FTDI, SiLabs and WCH. Even though these companies provide multiple options each, currently the most used bridge controllers on ESP32 development boards are CH340 and CP2102. While the chips are very similar, CP2102 is considered a better option, but if you are on a tight budget, CH340 will easily meet your needs as well as CP2102.