Build your Own Programming Cable

by John ‘Miklor’ K3NXU

CP2102j[1] Frustrated with that generic programming cable?
This $2 solution might just be your ticket to sanity.

Let’s See…

You purchased a radio and programming cable, loaded the software, and that’s as far as you’ve gotten. You’re fighting with error messages:
– Radio did not respond
– Could not open COM port
– Run Time Error
and Windows (TM) 10 keeps changing your drivers.

Now you do what many owners do. Put the radio in the drawer to be worked on later. This is like buying a roll-away treadmill and putting it in the closet until the next time you want to exercise. (NOT going to happen)

But wait, yours has the company name and logo right on the cable.
– It doesn’t matter. Keep reading.

There are a few options available, such as an FTDI cable. It’s truly Plug ‘n Play, and costs about $20.

But here’s a project that just might solve the issue for around $2. All you need is a small flat blade screwdriver, a soldering pencil, and a CP2102 board.


The CP2102 is a USB to TTL UART chip. What?
Long story short… It’s the same thing that’s in your current cable now, except these work.

CP2102 boards can be found on eBay for around $2 and on Amazon.

Here’s How

Let’s start with that original cable.CP2102j[1]

Take a small screw driver and pry the open the case from the back where the cable enters.
It should only be snapped together.CP2102b
Unsolder the 3 wires connected to the board.  GND is Black, TX is Red, RX is White.CP2102c
Solder the 3 wires to the corresponding terminals on the new board.CP2102g

Note 1:
Some boards may have the TxD and RxD reversed. If it doesn’t work the first time, reverse the two wires. No damage has been done.

Note 2: Some boards have pins on the back requiring small connectors. You can either remove the pins, solder to them, or use the connectors. (Whatever floats your boat.)


When you insert the new board into the USB port, give Windows a chance to find and load the new driver. Should take about 30 seconds. When it says Driver Found, you’re done.

If the driver is labeled CH340 instead of CP210x in Device Manager, that’s not a problem. Both chips are designed to do the same thing.

But I don’t have a Cable

If you don’t have a generic cable, you can use 2.5 and 3.5mm stereo jacks. Here are the pin outs, and what Jim’s (KC9HI) cable looks like.
CP2102jim CP2102o



If you are adventurous, try retrofitting the new board inside the original plastic housing. This will require a Dremel tool, X-Acto knife, Glue, and some patience, but it can be done.

If the board only has 5 terminals instead of 6, it’s not an issue. You only need GND, TX and RX.

Some come protected with a piece of clear heat shrink over the board so you can see the cool blinking lights.

Note 3: If you are trying to retrofit the board inside an existing shell, the red board below is a bit shorter and easier to fit.          Amazon       eBay
For about a dollar or so more, you can find the same boards in a metal case.

What’s the Advantage

– First and Foremost, it works. Take the radio out of the drawer, program it and have some fun.

– Next, it only cost around $2 to save the generic cable from the trash.

– Very Important – Bragging Rights. Now, when you go to a club meeting and someone says they can’t get their cable to work, tell them they can build their own, just as you did.

I hope you had fun with this project. It’s super simple and very rewarding. I’ve made several and never had a failure. Say goodbye to driver issues.

My thanks to Jim KC9HI for his input on this project

More Information:


17 comments on “Build your Own Programming Cable

  1. Thanks for the post. Really in the ham diy spirit. I do homebrew cables in a pinch, but eventually end up needing the USB interface for other projects. I got a cheap premade cable that works with my Baofengs on Amazon. I always check eBay or dx for the interfaces, depending on price and how soon I want it.

  2. I do have a question. I had a Baofeng cable that gave it’s life attempting to be a rig-control; it appeared to have a (counterfeit likely) FTDI chip and I kind of blew it up when I was trying to pull the RTS pin signal. That’s fine though; I wound up stealing the crystal to stick in a cheap serial-port adapter that has a lovely counterfeit-looking blog on it.

    Anyway, I’m guessing the Baofengs require TTL logic levels…or do they have some backwards compatibility for 232 levels?

  3. Other related homebrewing: I bought a programming cable for my Yaesu FT-817ND and got a cable made for “RT Systems”, a company that distributes control software for different radios like this. I did not buy that software and expected the cable to show up as a USB serial port on my Linux machine. No such luck, it just shows some unknown manufacturer ID and some broken text like “VT Systems CT62C Radio CaGle”.
    After some peeking I discovered that it is an (apparently real) FTDI chip that has been reprogrammed with different identifiers. It turns out that FTDI distributes a Windows program to do this reprogramming, although unfortunately this program requires a driver for the device to be installed as well. The cable came with a CD with the driver, I installed that on a scrap Windows XP system, ran the program, reprogrammed the FTDI chip to default settings, and now my Linux system recognizes the cable as a serial port and programs like chirp work fine.
    So what seemed like a bad start ended in success.

    • Interesting. I was also wondering if the inverse would be possible. EG: If one were to buy the RT Systems software, making a cable as described above would work because it would not be dependent on the VID and PID values that are programmed into the proprietary cable.

  4. After seeing this post and the a comment ( from one of the CHIRP maintainers in their bug tracker, I built one of these cables out of the headset that comes with the UV-B5 (the 27-menu-item version) since it’s got that handy two-prong connector.
    My CP2102 came with pins already on it and a five wires with compatible terminals on them, so I’ve been able to try every combination that makes sense… with no luck so far. CHIRP just keeps reporting that the radio did not ack programming mode. I’ve checked my cable for continuity and that the adapter is firmly seated. Some configurations even cause the radio to transmit when I try to read from it.

    Has anybody else experienced any trouble along these lines? Has anybody got a UV-B5 lying around and can confirm that this does actually work for it?

  5. Pingback: Don't throw out that cable! - KB6NU's Ham Radio Blog

  6. William, This may assist…
    The only three pins on the CP2102 you need are the GND, TxD, and RxD.

    The pin diagram required is the one found midway down the page

    It is possible the Spkr/Micr cable you are using does not have one of the contacts needed.
    The center ‘ring’ on the 2.5mm jack is used for Data transfer from the radio.
    There is no need for that on a Spkr/Micr.
    I would check continuity on the cable to make sure that ‘ring’ contact is actually part of the cable.


    • John,

      Thanks for replying!

      I had typed out a post saying how I’d already checked continuity thank-you-very-much and that it wasn’t working in spite of that, but a tinge of doubt had me recheck it just now and it looks like you’re right. Of the three conductors on the smaller pin, it looks like the available options are tip and base – the center conductor isn’t connected and I didn’t even notice.

      I ordered a data cable yesterday and (thanks to Prime), it should be here tomorrow.

      Thank you for encouraging me to recheck my work.


  7. Have a Baofeng UV-B5(the one with 27 menus) + generic cable ;
    Chirp works on win XP on old pc ,
    But not on newer pc with Win 7 …
    Baofengs own software does work on both !
    Chirp live Linux CD works btway also ..
    My own installed Linux mint does not .

    Now modded cable with CP 2102 board.. (got 5pcs from china for only 7$)
    working in win7 with chirp!
    and Baofeng original software stil works.
    Chirp live cd does work. also.

    only.. my installed Linux mint gives ack mode error, but that can also be due to tweaked OS problem hi!

  8. Traffic.

    This is just to let you know of an upcoming communications exercise being

    staged by Army and Air Force MARS from 1200Z on Nov 7 through 2359Z on Nov 11.

    This exercise is being sponsored by the United States Department of Defense, with

    a primary objective being to test interoperability between MARS stations and

    regular stations in the Amateur Radio Service. The scenario is the aftermath of a

    Carrington event, which is a massive coronal mass ejection from the sun that strikes

    earth directly, causing severe geo-magnetic storm conditions. Since a Carrington event

    will probably result in wide spread outages of the power grid, all MARS stations will

    likely be operating on emergency power. During the exercise, MARS members will

    be venturing into the Amateur Bands to make contact with stations in the Amateur

    Radio Service (that’s us). It would be proper (although not required) for participating

    ARES members to also be operating on emergency power as well.

    You can read the details in the attached PDF file. It is somewhat redacted, but you

    can get the general idea of what will be happening. No details regarding frequencies

    or modes are available yet. When they become available, I will pass them along.

    The important thing to know at this point, is that when contact is made, the MARS

    member will request the FIPS code for your county of residence. Most people

    have never heard of a FIPS code, and don’t know what that is. So I am listing the

    FIPS county codes for all counties in district 10 below:

    Ashtabula County – 39007

    Cuyahoga County – 39035

    Geauga County – 39055

    Lake County – 39085

    Lorain County – 39093

    Medina County – 39103

    Please forward this information to all ARES members in each of your counties.

    I encourage participation in this exercise, using emergency power if possible.

    Encourage your ARES members to participate as well.

    I intend to participate myself, using emergency power.

    Stay tuned for details regarding frequencies and modes to be used. As soon

    as I know what they are, I’ll be passing that information along.


    Eric Jessen, N8AUC

    District Emergency Coordinator – Ohio Section Tenth District

    ARRL – The national association for AMATEUR RADIO™


    (one of the information getter-outers)

  9. This is an interesting post that had me ordering some of these boards, and pondering some questions regarding proprietary cables made from the FTDI Chip. My first thought was, “does the CP2102 board ignore the VID and PID values”? Next, I wondered, FTDI has a free download of a utilities for Windows that will allow changing the USB serial chip’s VID and PID, and another utility that will allow editing the driver .inf files to change them there. The difference between proprietary cables and the generic ones are derived from these two values. It makes one wonder if it’s possible to program different VID and PID values into this chip in order to make your own backup to your existing proprietary cable.

Comments are closed.