HamCon is a free, browser-based radio programmer. Connect your radio via USB, read its memory, edit channels in a spreadsheet-style table, and write the changes back. No software to install.
| Radio | Service | Channels |
|---|---|---|
| Radioddity GM-15 Pro | GMRS | 30 |
| Radioddity GM-5RH | GMRS | 250 |
| Baofeng UV-5RM | GMRS | 250 |
| Baofeng UV-5R Mini | GMRS | 250 |
| Baofeng K6 | GMRS | 250 |
| Baofeng UV-5RH | Amateur | 250 |
| Baofeng UV-5R | Amateur | 128 |
| Baofeng UV-17Pro | Amateur | 250 |
| Baofeng UV-17ProGPS | Amateur | 250 |
| Baofeng UV-17R-Plus | Amateur | 250 |
| Baofeng UV-25 | Amateur | 250 |
| Baofeng K5-Plus | Amateur | 250 |
| Baofeng BF-F8HP-PRO | Amateur | 250 |
| Yaesu FT-3D | Amateur | 900 |
HamCon uses the Web Serial API to talk to your radio. This requires:
Safari and Firefox do not support Web Serial.
Most Baofeng and Radioddity radios use a Kenwood K1 two-pin programming cable. The USB end contains a serial adapter chip. The three most common chips are:
| Chip | Driver Needed? | Notes |
|---|---|---|
| CH340 | Usually auto-detected | Most common on modern cables. macOS Sequoia+ may need a driver from wch-ic.com. |
| FTDI FT232 | Usually auto-detected | Higher quality chip. Drivers at ftdichip.com if needed. |
| Prolific PL2303 | Yes (often) | Older cables. Prolific has dropped support for clones; genuine drivers at prolific.com.tw. |
/dev/tty.usbserial-* or /dev/tty.wchusbserial*.Click Read from Radio. The progress bar shows transfer progress. When complete, the channel table populates with your radio's current programming.
After editing, click Write to Radio. This uploads all channels to the radio's memory.
Use Backup Image (in the File panel) to save a raw memory dump. This is a byte-for-byte copy of your radio's memory that you can restore later with Load Image/SD.
Click any cell in the channel table to edit it. Changes are immediate — there is no separate "save" step (changes are held in the browser until you Write to the radio or Export).
| Column | Description |
|---|---|
| # | Channel number (memory slot). Cannot be changed. |
| Name | Channel label (max 6–10 characters depending on radio). |
| RX Freq | Receive frequency in MHz. This is the frequency your radio listens on. |
| TX Freq | Transmit frequency in MHz. For simplex channels, TX = RX. For repeaters, TX is the input frequency (RX ± offset). |
| Tone | Tone squelch mode: None, CTCSS (analog sub-audible tone), DCS (digital coded squelch), or DCS-I (inverted DCS). |
| Tone Value | The specific CTCSS frequency (e.g., 141.3 Hz) or DCS code (e.g., D023). Repeaters require a tone to open their squelch gate. |
| Power | High for maximum range, Low to conserve battery or for nearby contacts. |
| Bandwidth | Wide (25 kHz) for standard FM channels, Narrow (12.5 kHz) for interstitial or Part 90 channels. |
| Scan | Include this channel in the radio's scan list. Uncheck to skip it during scanning. |
| Location | Optional. A note about where the repeater or channel is located (not sent to radio). |
| Notes | Optional. Free-text notes for your reference (not sent to radio). |
Simplex means you transmit and receive on the same frequency. Set TX Freq = RX Freq, and Tone to None (unless the simplex channel uses a tone).
Repeater channels use different TX and RX frequencies. The repeater listens on one frequency (your TX) and retransmits on another (your RX). You also need to set a CTCSS or DCS tone so the repeater accepts your signal.
CTCSS (Continuous Tone-Coded Squelch System) sends a low-frequency tone (67.0–254.1 Hz) beneath your voice signal. The repeater only opens when it detects the correct tone.
DCS (Digital-Coded Squelch) sends a digital code instead of an analog tone. It's less susceptible to false triggering. DCS-I (inverted) is the same protocol with inverted polarity — some repeaters require this.
HamCon can search RepeaterBook for repeaters in your state and import them directly into your channel list.
Imported repeaters are placed in the first available empty channel slots. RX/TX frequencies, tone mode, and tone values are set automatically.
Import CSV loads a CHIRP-format .csv file. Column mappings (Location, Name, Frequency, etc.) follow the CHIRP standard.
Export CSV saves your channel list as a .csv file that can be opened in CHIRP, Excel, or any spreadsheet application.
Backup Image saves the raw memory contents read from your radio as an .img file. This is a byte-for-byte backup.
Load Image/SD loads a previously saved .img file or an FT-3D MEMORY.dat SD card dump.
The Yaesu FT-3D can import channels from an SD card. Use Export SD to create a MEMORY.dat file. Copy it to the root of the radio's SD card, then import on the radio.
Print opens a clean, printer-friendly view of your channel list in a new tab. Use your browser's print dialog (Ctrl+P / Cmd+P) to print or save as PDF.
The Midland MXT575 uses numbered "privacy codes" instead of standard CTCSS/DCS values. The MXT575 Cheat Sheet button generates a printable reference sheet mapping each privacy code to its CTCSS tone or DCS code.
If you read from or write to the radio with the wrong model selected, the channel data may be garbled or the operation may fail. Always verify the radio model in the toolbar dropdown matches your physical radio.