Programming cables and drivers for radios: why the PC won't see the port

Category: AccessoriesDifficulty: ★★☆~8 minutes

The scenario is familiar to anyone who has ever programmed a radio: you plug in the programming cable, launch CPS, hit "Read" — and nothing. "No COM port," "device not responding," the port list is empty. In 90% of cases the problem is not the radio and not the software, but the cable itself and its driver. Any "programmer" for a handheld DMR radio is essentially a USB → UART adapter: inside the USB plug housing there's a bridge chip that turns USB into an ordinary serial port, plus a cord with a proprietary connector on the end. Let's break down the connectors and chips you'll encounter, why the computer "won't see the port," and how to fix it — on Windows and on Linux.

First — back up the codeplugBefore writing anything to the radio, read out and save the current codeplug with the stock CPS. Any write overwrites channels, zones and contacts entirely. How to back up and build a config from scratch — in the codeplug article.

Anatomy of a programming cable

A programming cable has two parts, and problems can occur in each:

It's important to understand: the K1 pinout is an analog headset socket, over which data travels at TTL logic level. You can't swap a Kenwood-connector cable for one meant for, say, an AnyTone mobile (which often uses mini-USB or a proprietary connector) — you need a K1 programmer specifically for your family of radios.

A "charging" cord won't doIf the radio charges via micro-USB or Type-C, don't confuse the programming cable with the power cable. Cheap "charge-only" cords physically lack the data lines (D+/D−) — the computer won't see them as a device at all. For programming you need exactly a data cable with a USB-UART chip, not a charge-only "stub."

Why the PC "won't see the COM port": five causes

When CPS can't find the radio, one of these things is to blame — in descending order of frequency:

  1. The chip driver is not installed. A bare Windows install does not always pull the driver on its own. In Device Manager you'll see an "Unknown device" with a yellow exclamation mark instead of a line under "Ports (COM & LPT)".
  2. Counterfeit Prolific PL2303 — the scourge of the market. The official Prolific driver detects the clone chip and deliberately disables it: the device appears, but with the error "This device cannot start (Code 10)". Details below — this is a pain all its own.
  3. A "charge-only" cable or a defective cord with no data lines. The device is not detected at all.
  4. Wrong COM port in CPS. The driver is installed, the port exists (e.g. COM5), but a different port is selected in the CPS settings, or no port is selected.
  5. Wrong speed / busy port. Less often: the wrong baud rate, or the port is stuck "busy" after CPS crashed — reconnecting the cable or rebooting helps.

Counterfeit Prolific PL2303 and "Code 10"

Everyone needs to know this. The PL2303 chip from Prolific has been mass-copied in China, and for decades cheap programming cables have used precisely these clones. The modern official Prolific driver (which Windows pulls in automatically via Windows Update) can tell a fake from the original and deliberately disables the fake chip — as an anti-piracy measure. The result: in Device Manager the port appears, but with an exclamation mark next to it and the "Code 10" error. The radio won't program.

What you can do:

The key takeaway on hardwareCounterfeit Prolific PL2303 chips on the market are the norm, not the exception. If you're choosing a cable — get one based on CH340 or CP2102/CP210x (or a genuine FTDI FT232, but it's pricier and also gets counterfeited). They don't fight the user and don't require driver-rollback voodoo. Keep a Prolific cable as a last resort.

How to tell which chip is inside

The chip isn't labeled on the outside, but the system sees it. Plug in the cable and open Device Manager (Win+R → devmgmt.msc), expand the "Ports (COM & LPT)" section. The line will hint at the manufacturer:

What Device Manager showsChipWhere the driver comes from
USB-SERIAL CH340 (COMx)CH340 / CH341 (WCH)wch-ic.com, CH341SER
Silicon Labs CP210x USB to UART BridgeCP2102 / CP210xsilabs.com, VCP driver
USB Serial Port / USB Serial ConverterFTDI FT232ftdichip.com, VCP
Prolific USB-to-Serial Comm PortPL2303 (often a clone!)see the "Code 10" section
Unknown device / yellow "!"driver didn't installidentify the chip by VID&PID

If the line says "Unknown device," figure out the chip by its identifier: device properties → "Details" tab → "Hardware Ids." Match the VID (Vendor ID):

Remember "your" COM portIf the system has several COM ports, finding the right one is easy: unplug the cable — whichever line disappears is the radio's port. Plug it back in — it reappears. That number (e.g. COM5) is the one to enter in the CPS settings.

Where to get drivers and how to install them correctly

The golden rule that every manufacturer repeats in their instructions: install the driver first, plug in the cable second. If you plug it in first, Windows may "register" the device incorrectly, and you'll have to remove it and reinstall.

  1. CH340/CH341. Download CH341SER from the official WCH site (wch-ic.com / wch.cn). It's a WHQL-signed driver for Windows 7–11. Unpack it, run SETUP.EXE, click "Install" — one driver covers both CH340 and CH341.
  2. CP2102/CP210x. On the Silicon Labs site (silabs.com) look for "CP210x VCP Drivers" (VCP = Virtual COM Port). There's a ready installer for Windows.
  3. FTDI. On ftdichip.com — "VCP Drivers." On recent Windows it usually installs itself via Update.
  4. PL2303. If the cable is genuine — the driver from the Prolific site. If it's a clone — see the "Code 10" section and the old version.

After installing and connecting, check Device Manager: under "Ports (COM & LPT)" a line should appear with no yellow icon. Sometimes a reboot is needed.

The Windows 11 catchOn Windows 11 the programmer's driver is sometimes blocked by the security subsystem. If the device installed with an error but the driver seems correct — try disabling "Memory Integrity" (Memory Integrity / Core Isolation) in "Windows Security," run CPS "as administrator," and reinstall the driver. The same recommendation shows up in the instructions for TYT's branded cables.

Choosing the port and speed in CPS

The driver is installed, the port is visible — now for CPS itself. The procedure is almost the same everywhere:

  1. Open the connection settings: in most CPS this is Settings → Communication Port (or "COM Port," "Connection").
  2. Select the exact COM port number you found in Device Manager (COM5 in our example). This is the most common beginner mistake — the default port (COM1) doesn't match the real one.
  3. The speed (baud rate) for most handheld DMR radios in CPS is either fixed or not configurable at all — don't touch it if you're unsure.
  4. First do "Read" (read from the radio) — to confirm there's a connection. Then edit, and only then "Write."
Don't yank the cable during "Write"While a codeplug or firmware write is in progress, don't unplug the cable, remove the battery, or turn off the radio. A write interrupted halfway leaves the memory half-empty — the radio may stop powering on (requiring an emergency recovery). Wait for the progress bar to finish and the "Write complete" message. On a laptop, it's better to program on mains power, not on the "last few percent" of battery.
The port "jumps around" — that's normalWindows assigns the COM number to a specific USB connector. Plug the cable into a different port on the laptop and the number may change, so CPS "won't see" the radio again. Either always plug into the same connector, or re-check the number in Device Manager and update it in CPS.

Linux: modules and /dev/ttyUSB

On Linux it's simpler: the drivers for CH340 (ch341), CP210x (cp210x), FTDI (ftdi_sio) and Prolific (pl2303) are already built into the kernel. Plug in the cable — a device /dev/ttyUSB0 (or ttyUSB1, etc.) should appear. To check:

dmesg | tail              # see which module picked up the cable
ls -l /dev/ttyUSB*        # is there a device
lsusb                     # VID:PID — 1a86 (CH340), 10c4 (CP210x), 0403 (FTDI), 067b (PL2303)

Two typical Linux gotchas:

The law and TX — even when programmingWriting a codeplug by itself is harmless, but the frequencies and power levels you write are your responsibility. Transmitting (TX) is only allowed in the bands assigned to you and within the permitted power. Don't load other people's or service frequencies into channels "just in case" — going on air outside the permitted band is illegal. Details — in the frequencies and the law article.

The radio programs — get on the air

The cable came to life, the port was found, the codeplug was written — now register on DMRhub: private calls by DMR ID, SMS and groups already work. Grab our ready-made codeplug and contact list for your model, and if you want your own coverage — build a hotspot.

Sources

  1. CH340/CH341 — official WCH driver (CH341SER, Windows 7–11, WHQL) — wch-ic.com
  2. Fix PL2303 & CH340 "Code 10" on Windows (counterfeit Prolific, the "golden" driver, switching to CH340) — techeia.com
  3. On Counterfeit USB-serial Chips (how Prolific disables clones, why CH340 is more reliable) — epanorama.net
  4. How to fix issues with the TYT programming cable (driver before cable, Windows 11, COM port) — buytwowayradios.com