You are currently viewing Easy Guide to Using PL2303HXA USB to TTL with Arduino
PLL2303 HXA USB to TTL GUIDE

Easy Guide to Using PL2303HXA USB to TTL with Arduino

This guide on USB to TTL with Arduino UNO is not a new topic or anything particularly special. It serves as a supplementary reference for my Arduino with Blender series, specifically for those following my BlendixSerial guide and working with the Arduino UNO, instead of other Arduino boards with multiple serial ports. There is also another reason for this, which I will explain in the next section.

Why I’m Using the PL2303 USB to TTL Converter with Arduino UNO

I’m using the Prolific PL2303 HXA USB to TTL converter, and that’s the reason I’m writing this article. The story behind using this converter is actually pretty interesting—since, as you might know, this version has been discontinued by its manufacturer. I’m currently working on a video for my Blender addon, BlendixSerial, which now has a few new features that need two serial ports on the Arduino.

PL2303HXA USB to TTL CONVERTER
PL2303HXA USB to TTL CONVERTER

I only had one Arduino Mega in my collection, but unfortunately, one of my students accidentally damaged it pretty badly, so it’s no longer usable. I decided to get a new Mega board for the Blender series, but while going through my old electronics stash, I found the PL2303 USB to TTL converter. That’s when the idea hit me: why not use this instead of the Mega? After all, the Arduino UNO R3 is still the most popular board among hobbyists.

PL2303 HXA PHASED OUT SINCE 2012

The PL2303 HXA is a specific variant of the PL2303 series USB-to-Serial Bridge Controllers developed by Prolific Technology Inc. It allows USB-to-TTL (UART) communication and is commonly used in older USB-to-serial adapter modules. When I plug it into my PC, I get an error message in the COM port section of the Device Manager.

But what does this mean? After searching online, I found the following reasons:

Legacy Device:
The PL2303 HXA has reached the end of its lifecycle, and newer Prolific drivers no longer support it.

Counterfeit Chips:
Many PL2303 HXA modules in circulation are counterfeit. Prolific’s newer drivers detect these fake chips and disable their functionality, which causes the error message.

Solution: Install an Older Driver Version

To fix the error message and get your PL2303 HXA module working again, the key solution is to install an older version of the driver. Since the PL2303 HXA has reached the end of its lifecycle, newer drivers no longer support it, but older versions still do.

Recommended driver version: 3.3.2.105, which I have tested on Windows 11. I found an online link on Google Drive that provides this driver version. I’ll share the link with you, so you can download it and install it on your PC.

After installation, you can update the driver by following these steps:

Code Setup

To add another serial port to an Arduino Uno using a USB-to-TTL converter, you can use the SoftwareSerial library. This allows you to create additional serial ports on the Arduino’s digital pins.

Hardware Setup

Connect the PL2303 USB to TTL adapter to the Arduino:

    • RX of PL2303 → Arduino TX pin (the TX pin of SoftwareSerial, e.g., pin 11).
    • TX of PL2303 → Arduino RX pin (the RX pin of SoftwareSerial, e.g., pin 10).
PL2303HXA Hardware Setup with Arduino
PL2303HXA Hardware Setup with Arduino

Two-way communication between the PC and the Arduino

In our setup, we’ve added a USB to TTL module (PL2303) to create a second serial communication channel that connects the Arduino’s software serial (using pins 10 and 11) to your PC. This allows the Arduino to communicate with both the PC and an external device (such as another Arduino or terminal) at the same time, using two separate serial ports:

  • Hardware Serial (pins 0 and 1): Default communication between the Arduino and the PC (via USB).
  • Software Serial (pins 10 and 11): Used for communication between the Arduino and the PC via the USB to TTL module.

You can use two serial terminals on your PC to test the bidirectional communication between the hardware serial port and the software serial port on your Arduino. You can even use the two Arduino serial terminals from the Arduino IDE. As shown above, our Arduino is connected on COM4, and the PL2303 appears on COM5. So, just like the Arduino on COM4, you can select the Arduino on COM5 in another sketch window. This way, you won’t need any additional serial terminal program—you can use the Arduino IDE itself for both terminals

Two way Communication using PL2303 as Second Serial Channel
Two way Communication using PL2303 as Second Serial Channel

What This Achieves

Arduino will still communicate with your PC via USB (using the default hardware serial, pins 0 and 1). At the same time, the Arduino will use software serial (on pins 10 and 11) to connect to the PC via a USB-to-TTL converter module (PL2303). This allows two-way communication between the PC and the Arduino over two serial ports at the same time.

This Post Has One Comment

  1. Alex White

    This article is really great! Helped me a lot.

Leave a Reply