Wednesday, December 26, 2012

DIY USB to TTL with Nokia CA-42

I don't know exactly how, but i came across this page that went through the process. Basically, the idea is to take an old Nokia phone USB adapter and use its serial TX/RX lines as a FTDI device for MCUs or any thing that uses TTL. I found one on ebay here (USA, Buy it now) and awaited for its arrival. After it sat in the local Post Office for a day because a snowplow took out our mail box (thanks dude), i finally got it.

The Build

The guide said to solder on wires to the serial push pins of the phone connector. But, i didn't like the possibly skimpy connections and the bulkiness of the connector, so, i cut off the rubber case and planned to solder male pins directly to the wires. To my surprise there were only three wires connected on the end of the cable (green, blue and white). Weird, there should be at five: TX, RX, VCC, GND, and DTR. I then found  the image below. Without taking off the rubber case i wouldn't have known that  those wires are missing and therefore little level shifter from the guide wouldn't worked. Green and white are serial and blue is ground, but what about  VCC and DTR? FTDI isn't much use without them.

I thought that the other wires might have been left out as a clone and hoped that they would be on the PCB with the USB plug. Luckily, the case was just plastic pins press fit into some plastic receptors. AKA, i could just pry apart the case, and not have to cut it apart like the phone side. The pads for DTR and VCC are on the PCB, yay! And labels too! But, gets better: VCC is 5v unlike in the image above and the guide, so im hoping that TX/RX are also 5v so that i don't have to do 3.3v -> 5v level shifting. If the chip in the Nokia phone that uses this adapter is 5v tolerant, then that is why only gnd, rx and tx are broken out to the connector.

With two more pins, i had to replace the stock cable. I found some ribbon cable in my scrap bin (from an old rear projection TV). I simply peeled off five lines, soldered them onto the board, and soldered 5 breadboard pins onto the other side. I followed a modified FTDI scheme as this serial converter doesn't have CTS. It went like so: DTR, RX, TX, VCC, GND. Regular FTDI is RTS, RX, TX, VCC, CTS, GND. Finally, I finished them up with hot glue.


Since i already had the arduino IDE installed, i used that to test the serial adapter. To do this i connected the TX and RX lines together which essentially just sends back what you sent (make sure if you dont use Arduino IDE, that the "display what you send" feature isnt on). If it works you will  receive back what you typed. You might want to do this earlier on, or periodically throughout.

The final test: Arduino. It works with no level shifter! i uploaded the blink sketch with the Arduino IDE in Ubuntu (linux). The DTR ( auto reset on code upload) doesnt work, but pressing reset when "Binary sketch size:" appears works just fine for now!


If you're comfortable with a little soldering then this is a great cheapo DIY FTDI. One last note: if you get a CA-42 that has all the wires like the one in the guide and the second pic, you will have to do some level shifting.

1 comment:

  1. This blog is very informative the stuff you provide I really enjoyed reading
    Joomla Web Development Company