Radios

Baofeng UV-B5 · Volume 3

Baofeng UV-B5 — Vol 3: Programming

Earlier-generation Baofeng workhorse

3.1 Programming workflow

Programming cable. Standard Baofeng USB programming cable with the Kenwood K-1 / K-2 two-pin plug — same cable as the F8HP and most other Chinese dual-band HTs. Known-good versions use genuine FTDI FT232RL; clones use Prolific PL-2303 (often counterfeit — Windows driver headaches) or CH340 (works on Linux out of the box; needs the CH340 driver pack on Windows). Prefer the FTDI-genuine cable — about $20 mid-2026 from BTECH vs. $5-8 for clones; the driver pain you save the first time something goes wrong pays the difference in one session.

Software: CHIRP. CHIRP is the answer for the UV-B5 — the driver was added in the early 2010s and is one of the better-debugged community drivers in the project. See Vol 3 (Programming software landscape) for the full CHIRP context. There is no “official Baofeng CPS” worth using; the original factory “VIP CPS” is buggy, awkwardly translated, and was abandoned years ago.

CHIRP version matters. Use a recent CHIRP build (CHIRP-next, the rolling release that replaced the old stable releases in 2022). Older CHIRP versions (pre-2018) had known channel-name corruption bugs on the UV-B5 — writing certain characters could scramble adjacent channel names. Fix is running current CHIRP; install via the platform installer at chirpmyradio.com.

Codeplug structure. The UV-B5 codeplug is the simple 99-channel flat list — no zones, no groups, no contacts, no roaming. Each channel has:

  • Frequency (RX) and TX offset (split + sign for repeaters, or zero for simplex)
  • Channel name (6-character display name)
  • Power level (high / low)
  • Bandwidth (narrow 12.5 kHz / wide 25 kHz)
  • CTCSS / DCS encode and decode
  • Skip flag (skip this channel on scan)
  • BCL (busy-channel lockout) on / off

Plus a global settings page with VOX, dual-watch, beep on / off, squelch level, backlight timeout, transmit timeout (TOT), and the radio’s name display. That is the entire codeplug — small enough to import / export as a CSV from CHIRP in a few seconds, simple enough to backup as a binary .img and restore later without surprises.

Workflow.

  1. Plug in cable, identify the COM port (Device Manager on Windows; dmesg | grep tty or ls /dev/serial/by-id/ on Linux).
  2. Open CHIRP, read from radio (Radio → Download from radio → Baofeng → UV-B5).
  3. Save the read-back as uv-b5-YYYYMMDD-baseline.img immediately — this is your recovery point.
  4. Edit channels in the spreadsheet view, or import a .csv of channels from somewhere like RadioReference.
  5. Sanity-check the channel list — frequencies in valid ham allocations, offsets and tones correct for any repeaters.
  6. Write to radio (Radio → Upload to radio).
  7. Save the final codeplug as uv-b5-YYYYMMDD.img for archive.

Firmware version check. The CHIRP UV-B5 driver expects specific firmware version strings to identify the radio. If CHIRP cannot detect the radio (gives “unrecognized model” or hangs at the model-detect step), check the firmware version in the radio’s menu (typically menu item 40 or similar — TBD verify against the unit). The two main firmware revisions both work with CHIRP, but a too-old (pre-2012) revision may need the older “uvb5_old” driver instead of the standard “uvb5” driver. Modern CHIRP handles both automatically; on older CHIRP versions you may need to pick the right driver manually.

3.2 Codeplug backups

Storage location. Codeplug files live in ../../programs/baofeng-uv-b5/ following the same convention as the F8HP codeplugs (../../programs/baofeng-f8hp/). Naming convention: uv-b5-YYYYMMDD[-tag].img for the binary image (CHIRP-native, byte-for-byte round-trippable), and the matching .csv export for human-readable diffing.

Most recent backup: TBD — to be backed up next time the unit is on the bench. If the unit has been operated recently, plan a CHIRP read-back-and-save before any edits.

Backup cadence. Low — this is a legacy unit that doesn’t change configuration often. Read-and-save the codeplug:

  • After any session that edits channels (one save at the end is fine)
  • Before swapping the battery (the radio’s RAM is battery-backed; an extended battery-out condition can lose settings on some Baofeng firmware revisions — verify on the UV-B5 by checking the codeplug after a battery swap)
  • Before flashing any firmware update (rare — Baofeng essentially doesn’t release UV-B5 firmware updates anymore, but if a community-flashed firmware ever becomes interesting, save first)
  • Once a year as a baseline hygiene practice

Restore. Full-image write through CHIRP — open the saved .img, then Radio → Upload to radio. The radio’s entire codeplug is overwritten; no partial / merge restore. This is the right behaviour for the UV-B5’s flat-channel-list architecture.