Convert a Cheap USB to Serial Cable For TTL



This is meant to be a description of a project I did.  I give no guarantee as to its usability or suitability for anyone else. You assume all risks for your own projects.



 I purchased a cheap (approx. $10) USB to Serial adapter awhile ago to use with my Garmin GPS.  It works great, but I ran into a snag with it recently after receiving an Arduino kit from uC Hobby.  I could not get the serial adapter to communicate with the Arduino board.  Even after building a few level translators I could not get it to work.  So, as with most electronic gear I have around my house, I decided to take the adapter apart to see what makes it tick, and to see if I could hack it into something a little more usable for me :) 

Click on the pics to enlarge!


The USB to serial adapter I have is a TRENDnet TU-S9 I purchased at a small local computer store for around $10. Opening the adapter up only involved pulling the rubber shield back from the DB9 connector to expose the device's guts.  There was a little plastic case around the board that simply snapped apart.


The main chip is a Prolific PL-2303HX USB to serial bridge controller.  It also has a Zywyn ZT213LEEA 5v RS232 transceiver chip, along with a handful of assorted SMT parts. 


The PL-2303HX datasheet gives the device specs and pinout.  It has flexible signal level requirements, which sounded a little promising.  Looking at the datasheet, it has a pin (VCC_325) to set the signal levels for the RS232.  Levels can be set from 1.8v to 3.3v to connect directly to many devices/controllers.  I decided to try and see what would happen if I tried putting 5v on the VCC_325 pin.  In my case, it seemed to work fine without letting out any of the "magic smoke". 5v is out of spec for the chip, so follow at your own risk!

UPDATE- 5v is not needed for the Arduino, see bottom of page


To make my new adapter more functional than the original, I added a voltage switch so I could go from 3.3v levels to 5v levels as needed. I also wanted to make sure the original serial port was still intact, as I still wanted to be able to use it with my GPS unit. The TX and RX signal lines were taken right off the PL-2303HX chip, bypassing the Zywyn transceiver chip. I also pulled 5v off the USB line to add some external power leads to power my Arduino board while programming.  The following pics will show some of the steps I took in building my adapter.


Case  with USB,  TTL, and serial cable in place

USB and serial wiring in place, along with the external 5v tapped from the USB cable


RX and TX lines soldered onto the PL-2303HX.  Also soldered in wires for my 3.3v/5v switch.  For this, I ended up lifting   Pin 4 on the PL-2303HX and soldering a wire to it.  I then took 5v from the USB cable and 3.3v from the board and wired all three to a SPDT switch.

Here you can see the wiring going to the SPDT switch.  The wire I used is 30 gauge Kynar (wire wrapping).

And finally the finished project!



 I am quite happy with how this all worked out.  The serial port still works with my GPS, and I am able to program my Arduino board.  Also, the Arduino can be programmed just fine with the 3.3v signal levels, so there is no need to wire in the switch.  Just take TX and RX right off the PL-2303HX and you should be all set for programming an Arduino board.