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 (SD card, experimental) | Amateur | 900 |
| Yaesu FTM-510DRASP (SD card, in development) | Amateur | 999 |
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 find repeaters near you and import them straight into your channel list.
Imported repeaters go into the first empty channel slots, with RX/TX frequencies, tone mode and tone value set for you. Repeaters already in your list (same frequencies and tone) are skipped.
| Source | What it covers | What you need on hamcon.net |
|---|---|---|
| RepeaterBook | US amateur and GMRS repeaters. The most complete US directory. | Nothing. HamCon has its own RepeaterBook access. |
| HearHam | Amateur repeaters worldwide, maintained by the HearHam community. No GMRS. | Nothing. Free and public. |
Bring your own credentials. HamCon’s own access to a service belongs to hamcon.net. If you run your own copy of HamCon (for example on a Raspberry Pi or your own web host), it needs its own credentials: request a RepeaterBook app token for your copy from RepeaterBook and add it to your server’s settings (the README in HamCon’s source explains how). Don’t reuse hamcon.net’s.
Services added in future that need your personal API key or login will ask for it in the Search Repeaters window, with a link to where you get it. HamCon keeps it in this browser only (it isn’t synced or uploaded anywhere else) and sends it only to that service, through HamCon’s server. You can remove it there at any time, for example on a shared computer.
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 a Yaesu SD card backup (FT-3D MEMORY.dat, or FTM-510 CLNFTM510D.dat).
Yaesu radios are programmed by editing their microSD backup file in the browser — no cable needed. The Yaesu .dat format is undocumented, so HamCon uses heuristic detection and preserves unknown bytes so non-channel settings survive editing.
Yaesu FT-3D (experimental). Import a MEMORY.dat SD card dump to load channels, then use Export SD to write an updated MEMORY.dat. Copy it to the root of the radio's SD card and import on the radio.
Yaesu FTM-510DRASP (in development). The FTM-510 path targets the CLNFTM510D.dat backup (Setup menu 107 BACKUP → WRITE TO SD → ALL). It is not yet functional — the channel record layout is still being calibrated against a sample file, so import/export should be treated as experimental and not relied on for a working 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.