Let's Make Robots!

Make your own "FTDI cable" for $5

Arduino USB-serial cable

I read on the Arduino forum about using cheap Nokia data cables as a compatible "FTDI cable". I decided to have a look and started to shop around for a compatible cable. The best candidate seems to be the CA-42 USB2.0 Nokia Data Cable and I ordered this one: http://www.dealextreme.com/details.dx/sku.45715 from Deal Extreme for $4.40 with free shipping. It comes in a box with a driver CD, so you don't have to browse all over the internet to find drivers.

This is how it looks like:

The nice part of this cable is that the blue plastic casing is not glued, so with a knife I pried it open. Inside, I found a small PCB with a black blob and... lucky me, the pins are already labeled! It has GND (the label is covered by the blob), Rx, Dtr, Tx and Vcc.

Only GND, Rx and Tx were used, so I needed to ditch the original cable and make a new one. For this purpose I bought a 6 wire phone cable, about 2 meters long (good for 3-4 cables) for $1 and some crimp pins and 6 pin housings, $0.40 a set. 

I stripped one end of the phone cable and there were 6 colored wires: white, black, red, green, yellow, blue. I need only 5 wires, so I cut off the white wire. Then I crimped 5 pins on the remaining wires and I plugged them like this (from left to right):

  • Blue    - Dtr
  • Yellow - Tx
  • Green  - Rx
  • Red     - Vcc
  • nothing
  • Black  - GND

Then I stripped the other end of the cable, cut off the white wire, then started to solder the remaining wires in order (from left to right):

  • Black  - GND
  • Yellow - Rx
  • Blue   - Dtr
  • Green - Tx
  • Red    - Vcc

The Dtr pin on the little board had a red wire jumper to a pin on the back of the board. I removed that wire before soldering the Blue wire instead. When soldering the Rx and Tx wires you need to be careful and switch them, so the Rx pin from the microcontroller will go to the Tx pin from the FTDI chip and the Tx from the microcontroller will go to the Rx pin from the FTDI chip.

This is how the cable looks now:

Then I placed the little board back in it's plastic casing and closed it.

The only thing that is missing are the Rx-Tx LEDs, but we'll live without them.

Before I can use the cable I need to install the driver. I put the CD in and browsed the folders to find a Windows 7 compatible driver. I didn't, but I found a Vista driver and installed that one. After the install finished, I plugged the cable in the USB port. New hardware was detected and the driver loaded. It shows as a "Prolific USB-to-Serial Comm Port" and was allocated the COM8 port. So it is not a FTDI chip, but another chip that does the same thing.

Will Arduino IDE work with it? Let's see. I took a µBotino board and plugged the cable in the FTDI header. The power LED came on and the already loaded Blink program started to run. So far so good. I started the Arduino IDE and loaded another Example sketch, selected the serial port COM8 and clicked the Upload button. The pin D13 (red) LED flickered for a moment and then went off. After a little bit, the "Done uploading" message came in the IDE, so I was sure the uploading was done. The Blink sketch was not there anymore, because the D13 LED wasn't blinking. I loaded the Blink sketch and clicked on the Upload button, then, after seeing the "Done uploading" message, the D13 LED started to blink again! Success!

As you can see, this is an easy and cheap way to make your own FTDI cable and you can use it as a USB-serial cable for any project you have.

Cheers!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

great tutorial :)

I bet this post will save some USD to many users in the forum!

 

 

Did you verify this is a genuine FTDI chip from the computer?  If so that is a good deal considering what the chips cost alone.  Looks like the cable can be useful with only the Rx, Tx, and GND pins.  DX has some sweet deals including $6 oscilloscope probes :)

It's not a genuine FTDI chip. In Windows 7 shows up as "Prolific USB-to-Serial Comm Port". However, it works. All you need is a serial Comm to communicate with the Arduino board. It doesn't matter what device provides that Comm port. It may be RS232 Comm port, or FTDI chip, or another AVR configured to work as a USB to serial interface (see the Arduino Uno board). So even a Prolific chip with the proper driver works. Of course it's not actually a real FTDI cable, but works as one.

Prolific makes good chips too.  Tend to have good driver support and work with win7 x64

Very nice. Will save people some money and so might encourage others to try Arduino. This plus my inverter tip http://letsmakerobots.com/node/21245 and you should be able to use it on a Picaxe. 

My cheap suggestion costs 4 times as much, but includes a free GPS. Currently (Dec 2010) there is a vendor on Amazon selling the Pharos GPS-500 with Microsoft branding (was packaged with Streets) for $19 delivered, including the USB adapter and a USB extension cord. It will come in a plastic case that says Microsoft on it. Carefully crack that open to expose the GPS. Lay it chip down with the connector toward you. The 2nd lead from the left is for 3.3v or 5v (I have had success with both), followed by GND, GPS Tx and GND. Wire those 4 and it will start spewing NMEA strings at 4800 baud. I am pretty sure that GPS Rx is 1st lead on the left. I don't know that it listens for commands, but that would be important if you want to use the USB adapter that came with it to make an FTDI cable. Just match up which would connect to what using the GPS pinouts and you are good to go!

Since using the words "FTDI cable" created confusion, I updated the tutorial to specify that it is not a true FTDI cable, but a compatible cable that does the same thing. In the Arduino community, the words "FTDI cable" are used more like a type of cable that can be used to program Arduino boards that do not have the FTDI chip on board, so people are looking for that type of cable and most of the time they are overlooking similar cables that do the same thing and are cheaper. The FTDI chip has a lot of unused functionality and may be worth it's price, but to achieve a simple USB-serial interface with auto-reset it is overpriced. I have tested the cable with the xBees and it works perfectly (needed an Tx-Rx swapping to connect to my xBee regulated board, since this board already has those pins swapped). Also, the little board inside the cable has another wire jumper on the back of the board, that may be for other pins usually used on a serial interface (RTS, CTS) so people can use them if needed. There are many similar cables that do not have those pins brought out and you have to poke around with the DMM while using the adapter to find out what pin is what.

I made mine, and works pretty good, so thanks very much =DDD*

Cool! Cheers!