Read a Radio
Connect a supported radio, download its complete memory image, then save it as IMG or export its channels as CSV.
Write to a Radio
Prepare an IMG, connect the target radio, review the write plan, and use RADIOBENCH's qualified write path with read-back verification.
Review Files
Open an IMG or CSV, inspect channels in a clean table, make edits if needed, validate, and export a new IMG or CSV.
Working state
Download the complete radio image first. After a successful read, save the raw IMG for backup or export the channel list as CSV.
Connect the cable and radio
Use a supported programming cable and turn the radio on as required by the active driver.
Connect RADIOBENCH
Choose the serial port. RADIOBENCH identifies the radio through its clone protocol.
Read the radio
The source image is preserved before any editing begins.
Save what you read
Save IMG for a complete image backup or CSV for a portable channel list.
RADIOBENCH keeps writing intentionally conservative: review the intended image, identify/read the target radio, inspect the write plan, then use the qualified write path and verify by reading the radio back.
Open the IMG you intend to use
Review its channels before hardware is touched.
Connect and read the target radio
A fresh target-radio read establishes model, session, baseline, and preservation evidence.
Review the write plan
RADIOBENCH shows what would change and blocks unsupported or unexplained changes.
Write and verify
Only qualified write classes are enabled. Read-back verification remains mandatory.
Open a radio image or CHIRP-style CSV and work primarily in the Channels table. The raw-memory and protocol tools stay hidden in Easy Mode.
Open IMG
Inspect a complete radio image while preserving unknown bytes.
Open CSV
Import a CHIRP-style channel list into the active radio profile.
Radio Connection
Web Serial transport for the active radio driver.
Serial
Browser capability
USB VID/PID, when available, describes the USB serial adapter. The radio itself is identified by the clone protocol.
Preparation
- Turn the radio off.
- Connect the programming cable firmly to the mic/speaker connector.
- Turn the radio on; some cables/radios may require high volume.
- Select a quiet/inactive channel.
- Connect the serial adapter, test the connection, then read the radio.
Last hardware test
Connection, identification, firmware probe, timing, and adapter evidence.
Hardware qualification gates
Safe Write & Read-Back Qualification
Plan a controlled changed-block write, then prove the radio contains the intended image by reading it back.
Pre-write gates
Semantic change
Changed-block transmission plan
Only the driver-sized blocks listed here are sent by the controlled qualification write (UV-5R: 0x10 bytes; JC8810: 0x40 bytes).
| Image offset | Radio address | Region | Changed bytes | Payload |
|---|
Last qualification-write evidence
Read-back verification evidence
A PASS requires matching live radio identity evidence and a complete downloaded image that is byte-for-byte identical to the preserved target.
| Offset | Expected | Read-back | Classification | Region |
|---|---|---|---|---|
| No mismatches. | ||||
Radio Information
Driver identity, firmware evidence, and image provenance.
Driver
Current image
Driver Catalog
Capability-driven radio families, implementation status, and qualification boundaries.
Architecture rule
UI and project state consume normalized capabilities such as channel count, name length, bands, modes, power levels, settings support, and transport metadata. Model-specific memory maps and clone protocols stay inside their driver implementation.
| Status | Vendor / model | Family | Transport | Channels | Names | Capabilities | CHIRP basis | Action |
|---|
Global Settings
Driver-qualified settings with byte/bit ownership, raw-value preservation, and transactional undo.
Repeater Assistant
Build simplex, standard-offset repeater, odd-split, or receive-only memories with live TX calculation and validation.
Calculated result
Channel Templates
Apply reusable operating behavior without overwriting channel frequency, name, number, or notes.
Built-in templates
My templates
Stored locally in this browser.
Tone Workbench
Compose CTCSS, DTCS, and cross-mode signaling, then apply it transactionally to the active or selected channels.
Semantic result
Radio History & Backups
Immutable image snapshots with hashes, radio identity, provenance, and baseline controls.
Validation
Driver limits and optional United States amateur-band guardrails.
Evidence Compare
Compare the working image against the source download or any historical backup, with semantic and raw-byte evidence kept separate.
Semantic channel changes
Semantic setting changes
Raw-byte evidence
SEMANTIC = explained by a decoded field. RAW REVIEW = driver-owned bits changed without a decoded semantic difference. UNEXPLAINED = one or more changed bits are outside driver ownership.
| Offset | Baseline | Working | Class | Region / meaning |
|---|
CHIRP hardware-validation comparison
Load a CHIRP .img taken from the same radio without changing its programming between reads.
Memory Map Explorer 2.0
Navigate semantic fields, owned masks, preserved regions, changed bytes, and unknown-byte evidence for the active driver.
Address-space overview
Blue = driver-owned bytes/bits; amber = changed from source; red = change outside the qualified ownership mask.
Region table
| Image range | Radio range | Region | Bytes | Owned | Changed | Violations |
|---|
Region inspector
Unknown Bytes Ledger
Changed or notable bytes outside declared driver ownership. These are evidence, not auto-owned fields.
| Offset | Value | Source | Region | Status |
|---|
Semantic jump index
Known driver-owned ranges and fields. Click an address to inspect its containing region.
Image Intelligence
Reverse-engineering aids for entropy, repetition, ownership correlation, volatility evidence, and candidate structures.
Region intelligence
| Region | Bytes | Entropy | Owned | Changed | Unexplained |
|---|
Structure hypotheses
Change correlation
Raw Image
Hex inspection of the current working copy. Changed bytes are highlighted.
Protocol Analyzer
Decoded Web Serial traffic, block transactions, timing evidence, and simulator separation.
Decoded event stream
Recent block transactions
| Dir | Address | Size | Latency | Rate | Status |
|---|
Simulator & Fault Injection
Deterministic UV-5R clone-protocol harness for exercising handshake, block reads/writes, timing, and failure handling without physical hardware.
Scenario
Deterministic injection
The harness uses the same Baofeng frame shapes used by the real transport: magic/ACK identification, S read requests, X read responses/writes, and 0x06 acknowledgments.
Scenario results
| Scenario | Expected | Observed | Assertion | Duration | Reads | Writes | Detail |
|---|---|---|---|---|---|---|---|
| No simulator scenarios have been run. | |||||||
Last harness report
Scenario coverage
Diagnostics
Whole-product diagnostics for driver qualification, serial behavior, image ownership, migration/recovery integrity, simulator results, and release-candidate safety gates.
Operation timeline
Programming Guide
Read-first UV-5R programming, image safety, repeaters, tones, backups, and recovery.
1 · Getting started
Prefer READ RADIO for real hardware. OPEN IMAGE is appropriate for a known compatible UV-5R clone image.
RADIOBENCH patches known bytes/bits into the original image rather than rebuilding the radio image from scratch.
Resolve blocking driver errors and inspect unexplained raw changes before any hardware write.
Radio History stores local snapshots; export an .img when you want an external recovery copy.
2 · Connect a UV-5R
- Use a compatible two-pin programming cable and insert both plugs fully.
- Connect the USB serial adapter to the computer and open RADIOBENCH in a Web-Serial-capable browser.
- Power the radio on and select a quiet/inactive channel.
- Choose Connection → Connect and explicitly select the serial adapter.
- Run Test Connection. RADIOBENCH should identify the UV-5R family and probe firmware.
- Use Read Radio for the first real operation.
3 · Program channels safely
| Simplex | RX and TX use the same frequency. |
| + | TX = RX + offset. |
| − | TX = RX − offset. |
| Split | Transmit frequency is independent of receive frequency. |
| RX only | Transmit is inhibited for that memory. |
| FM / NFM | Wide / narrow receive-transmit bandwidth mode supported by the driver. |
| Scan excluded | Memory is skipped by the radio's scan behavior. |
RADIOBENCH stores frequencies internally as integer Hz, even though the editor presents MHz.
4 · Repeaters & tones
| Mode | Meaning |
|---|---|
| None | Carrier squelch; no transmit tone. |
| Tone | Transmit CTCSS; receive remains carrier squelch. |
| TSQL | CTCSS on both transmit and receive. |
| DTCS | Digital coded squelch with polarity. |
| Cross | Different signaling methods on transmit and receive. |
The Repeater Assistant always shows the calculated transmit frequency so an offset error is visible before you apply it.
5 · Image, project & CSV files
.img / .bin: complete compatible clone images. These can preserve radio-specific and undocumented bytes.
.radiobench.json: local project interchange including normalized metadata and working state.
CSV: channel interchange only. CSV does not represent a complete clone image and should never be treated as one.
6 · Recovery procedure
If the radio no longer identifies correctly, do not guess another model. Preserve the evidence and stop hardware writes.
Cable & Connection Troubleshooting
Field checklist for the most common UV-5R programming failures.
Radio did not respond / no ACK
Port or driver problem
If the browser cannot offer a serial port at all, the operating system may not have exposed the USB-to-serial adapter. Verify the cable appears as a serial device before debugging the radio protocol.
Some inexpensive USB programming cables have historically used problematic or cloned USB-serial chips. Troubleshoot the OS serial device first, then the radio connection.
Wrong radio / firmware mismatch
Stop if the connected device identifies as a blacklisted/different model or if source-image compatibility cannot be established. Similar-looking Baofeng-family radios are not automatically image-compatible.
Read succeeds but compare differs
- Confirm CHIRP and RADIOBENCH read the same physical radio without intervening edits.
- Compare image lengths and SHA-256 hashes.
- Inspect differing offsets in Compare / Memory Map.
- Export diagnostics and protocol logs.
- Do not proceed to qualification write until the discrepancy is understood.
Write acknowledged but verification fails
- Keep the intended target and failed read-back evidence.
- Export the read-back image and field-test package.
- Classify differences: intended byte, same planned block, or outside write plan.
- Power-cycle and repeat a read-only clone if needed.
- Do not broaden the write scope to “fix” the mismatch.
Browser requirements
Direct radio access depends on the browser exposing Web Serial and allowing explicit user port selection. When Web Serial is unavailable, RADIOBENCH remains an offline image/CSV editor, simulator, comparison, and evidence tool.
For hosted use, serve RADIOBENCH from an appropriate secure context. A locally opened copy may work differently depending on browser policy.
What to export when reporting a problem
Browser, driver, operation state, timing, errors, protocol and simulator evidence.
Environment, test matrix, user notes, and captured evidence status.
Only when you intentionally want to share radio image data; images may contain device-specific configuration.
Real-Radio Field Test
Persistent UV-5R qualification matrix for a physical radio, cable, browser, and controlled write/read-back cycle.
Test article
| ID | Test | Required | Status | Captured evidence | Notes |
|---|
Release-candidate rule
The field gate becomes READY FOR v1.0 only when every required real-radio case is PASS and no case is FAIL. Simulator PASS is useful software evidence but cannot satisfy a required physical-radio case.
Last captured evidence
JC8810 Read & Controlled-Write Qualification
Model/test-article read parity, revision-scoped Class 1 evidence, and laboratory qualification of the disabled Class 2 scan-inclusion candidate.
Test article
JC8810 fingerprints identify a supported model/variant but are not guaranteed to be unique serial numbers. The radio label and revision fields provide procedural test-article traceability.
Captured source evidence
Read qualification matrix
| ID | Requirement | Class | Status | Evidence | Notes |
|---|
Class 1 controlled-write ledger
Existing programmed-channel name only. Evidence is scoped to the active model and recorded firmware/PCB revision.
| Run | Result | Revision | Test article | Channel | Source SHA | Read-back SHA | Time |
|---|
Class 2 laboratory qualification
Scan inclusion only. Codec, ownership, one-block planning, and deterministic full-image simulator read-back. No physical Class 2 write path exists.
JC8810 model qualification history
Each supported Talkpod/Radtel model keeps independent read evidence and a revision-scoped controlled-write ledger. Evidence from one fingerprint/model/revision never qualifies another.
| Model | Read status | Class 1 maturity | Verified runs | Identification | Revision / PCB | Last capture |
|---|
TYT UV88-Family Acceptance & Read Qualification
Side-by-side TH-UV88 / TH-UV98 acceptance status, first-download provenance, exact CHIRP parity, and laboratory-only preparation of the first TYT write class.
UV88-family acceptance dashboard
Qualification is isolated by model and revision. A PASS for one model never qualifies the other.
| Model | Read gate | Fingerprint | Source provenance | CHIRP parity | Revision | Last capture |
|---|
Test article
Captured source evidence
Read qualification matrix
| ID | Requirement | Class | Status | Evidence | Notes |
|---|
TYW-C1 laboratory write-class preparation
Candidate: one existing channel scan-inclusion toggle. The simulator may exercise the exact framed block; physical transmission remains disabled.
Image/settings boundary
Qualification package
The export contains app/driver versions, test-article metadata, source and CHIRP hashes, exact-parity result, matrix evidence, and an explicit physicalWrite: DISABLED marker.
RT-900 Family Settings, Zones & Read Qualification
Qualified channel/settings/VFO ownership, static zones, RT-920 named zones, encrypted-clone provenance, repeated-read stability, and exact same-test-article CHIRP parity.
Test article
Captured source evidence
Read qualification matrix
| ID | Requirement | Class | Status | Evidence | Notes |
|---|
Zone / bank presentation
RT-910 uses 15 fixed zones of 64 channels. RT-920 uses 10 zones of 99 channels and stores ten 10-character zone names at 0xC800.
| Zone | Name | Channels | Image ownership |
|---|
Read provenance & stability
RTW-C1 laboratory write class
Candidate: one existing-channel scan-inclusion toggle. Simulator only.
RT-900 family qualification history
| Model | Read gate | Channels | Zones | Identification | Revision | Last capture |
|---|
Qualified image boundary
Qualification package
Qualification Center
Unified release authority across every operational driver. Simulator, software, physical-read, parity, controlled-write, and unrestricted-write states remain distinct.
| Driver | Family | Software | Simulator | Physical read | CHIRP parity | Controlled write | General write | Revision / evidence |
|---|
Qualification policy
Driver SDK
Generate and validate declarative driver manifests from the active RADIOBENCH driver.
Generated manifest
Validator
Driver template
Protocol Laboratory
Correlate request/response frames, timing, decoded events, simulator evidence, and fault signatures without sending anything merely by opening this page.
Correlated timeline
Backup & Forensics
Treat radio images as immutable evidence: provenance, ancestry, hashes, drift, unexplained-byte changes, and recoverable snapshots.
Image ancestry
Current evidence
Drift classification
| Offset | Before | After | Class | Region |
|---|
Offline Driver Documentation
Self-documenting support information generated from the active driver and its qualification metadata. No network connection is required.
Release Qualification
Whole-product release engineering for RADIOBENCH v1.0. Software qualification and physical-radio evidence are separate gates; this build remains a release candidate until both are earned.
Software qualification manifest
Build identity, driver versions, schemas, safety invariants, and qualification totals.
Browser compatibility
Only the current runtime is actively probed. Other browser families remain unqualified unless separately tested.
| Runtime | Offline analysis | Web Serial | Status |
|---|
Software release audit
All software checks must continue to pass for the preserved UV-5R RC gate.
Storage & recovery
A recovery bundle contains the current project, field-test state, templates, UI preferences, and all Radio History snapshots. Import merges recovered snapshots rather than deleting existing history.
v1.0 acceptance
The software release gate and physical-radio acceptance gate are intentionally separate. A clean software audit cannot manufacture hardware qualification.
| Gate | Requirement | Status | Evidence |
|---|
Recovery / interruption protections
Project files are validated before current state is changed.
Rows are staged in a cloned image before committing the import.
Closing/reloading during a radio operation or pending unverified write triggers a browser warning where supported.
Project and history can be exported together before field work.
Final acceptance checklist
| Gate | Requirement | Status | Evidence |
|---|
Last RC report
Radio-to-Radio Migration
Normalize the active channel plan, evaluate target-radio constraints, and build a target image without silently dropping unsupported information.
Compatibility report
| Source CH | Target CH | Name | Status | Details |
|---|
Programming Plan
Translate semantic edits into an explicit block-level plan before any write path is considered. Pre-existing source findings are baseline evidence; only new/worsened findings block the plan.
Plan gates
Planned blocks
| Image offset | Radio address | Bytes | Region | Status |
|---|
Controlled Write Framework 2.0
One fail-closed abstraction for write classes, prerequisites, ownership, block planning, read-back, and evidence maturity.
Write classes
| Class | Scope | Laboratory | Physical | Match |
|---|
Framework gates
Bulk Programming Queue
Prepare a controlled station workflow for multiple radios. Queue execution remains evidence-gated; this page never bypasses per-radio identification or verification.
| # | Radio label | Expected driver | Revision | Status | Evidence |
|---|
Fleet / Configuration Management
Track radio identity, ownership, baselines, last-programmed state, and configuration drift without uploading data anywhere.
| Label | Driver | Assigned to | Revision | Baseline | Last programmed | Drift |
|---|
Zone / Bank / Scan Architecture
Plan grouping and scan behavior against the active target radio's actual capacity and static-zone constraints.
Architecture groups
| Group | Channels | Limit | Scan included | Status |
|---|
Frequency & Regulatory Intelligence
Offline reference warnings for engineering review. This is not legal advice or an automatic compliance determination.
| Channel | Frequency | Category | Finding | Basis |
|---|
Repeater Intelligence 2.0
Maintain an offline repeater library, normalize tones/names, detect duplicates, and generate target-radio channel plans and zone suggestions.
| Name | RX MHz | Offset | Tone | Group | Status |
|---|
About / Open Source
RADIOBENCH v0.99.5
RADIOBENCH is an independent browser implementation inspired by the architecture and behavior of the open-source CHIRP project. It is not an official CHIRP release and is not endorsed by CHIRP developers or Baofeng.
The UV‑5R memory map, channel encoding behavior, identification sequences, blacklisted-model probes, auxiliary-memory safeguards, and clone-mode transaction design in this build are derived from CHIRP's UV‑5R driver and common data model. v0.3 added field-level image qualification; v0.4 added a transactional spreadsheet editor; v0.5 added behavioral channel templates, radio-aware transforms, automatic naming, an expanded repeater assistant, and a tone/cross-mode workbench. v0.6 added explicit write planning, same-session/live-radio gates, changed-block-only qualification writes, and write-evidence capture. v0.7 added exact full-image read-back verification, mismatch classification, persisted verification evidence, and a controlled hardware-write PASS. v0.8 aligns the core UV-5R global/work-mode settings surface to current CHIRP, adds field-level setting ownership/validation and transactional settings editing, and extends the controlled qualification path to one qualified setting change while keeping unrestricted full-radio writing locked. v0.9 adds immutable radio-history snapshots, baseline-to-target semantic comparison, and evidence packages. v0.10 adds a visual memory-map explorer, decoded protocol analyzer, block-level timing/throughput telemetry, and exportable engineering diagnostics. v0.11 turns the simulator into a deterministic virtual serial device and fault-injection regression harness. v0.12 streamlines the primary programming UI and adds a dedicated mobile channel-card workflow. v0.13 embeds operating/troubleshooting documentation and a persistent real-radio field-test matrix with exportable support evidence. v0.14 freezes the UV-5R feature set and adds release-candidate auditing, strict/transactional import validation, storage-health checks, interruption guards, and full recovery-bundle export/import. v0.15 introduced the multi-driver registry and capability layer. v0.16 ports the shared JC8810 clone engine used by Talkpod A36plus/A36plus 8W and the first Radtel RT-470/495/630 set. v0.17 qualifies that family image engine: field-level 32-byte channel patching, scramble/encryption/learning ownership, CHIRP-aligned core global settings, model-specific A36plus/Radtel settings, golden fixtures, and writable-range validation. v0.18 adds model/test-article physical read qualification and exact CHIRP parity evidence. v0.19 adds the first JC8810 controlled-write qualification: only a READ-QUALIFIED exact source may send one existing-channel name change in a CHIRP-aligned 0x40-byte block, and the result becomes WRITE QUALIFIED only after a complete byte-for-byte read-back match. Unrestricted JC8810 writing remains locked. v0.20 hardens that path with a model/revision/write-class evidence ledger: one exact read-back is recorded as a verified test, while repeat qualification requires three consecutive verified runs from three independently recaptured source images and at least two channel locations. v0.21 defines and laboratory-qualifies Class 2 scan inclusion: the candidate is limited to the CHIRP scan bit in one existing channel, must map to one 0x40-byte block, must preserve every neighboring bit, and must pass a deterministic full-image simulator read-back. Physical Class 2 remains disabled and requires Class 1 repeat qualification as a prerequisite. v0.22 adds the TYT TH-UV88 framed clone engine: 57,600-baud FE/FD transport, model identification, complete 0x22A0-byte image reads, 200-channel parsing/editing, channel availability and scan maps, deterministic virtual-radio coverage, and a read-only hardware path. v0.23 qualifies the TH-UV88 image/settings model: field-level ownership masks, CHIRP-aligned basic/work-mode settings, golden fixtures, semantic evidence classification, FM/power-on regions explicitly preserved, and a dedicated physical-read + exact CHIRP-parity qualification record. v0.24 expands that qualified family to TYT TH-UV98, reusing the shared 200-channel image/settings model while requiring UV98-specific protocol identity and an independent physical-read/CHIRP-parity evidence record. v0.25 hardens TYT family acceptance with a dual-model dashboard, first-download provenance fields, model-specific acceptance exports, and a disabled TYW-C1 scan-inclusion laboratory class. v0.26 adds the Radtel RT-900-family read-only foundation: dual identification, encryption setup, encrypted 0x40-byte clone blocks, 999/960/990-channel profiles, static-zone metadata, and calibration preservation. v0.27 qualifies the RT-900-family image and zone layer: explicit channel ownership, RT-910 static-zone presentation, RT-920 owned ten-character zone names with preserved padding, golden fixtures, and model-specific physical-read/CHIRP-parity evidence. Batch A advances directly to v0.30: v0.28 qualifies common settings and selected VFO controls; v0.29 adds first-download provenance plus repeated full-image and calibration stability gates; v0.30 adds the simulator-only RTW-C1 scan-inclusion class. Physical RT-900-family writing remains locked. Batch B advances directly to v0.34: v0.31 adds a unified Qualification Center; v0.32 adds Image Intelligence for entropy, repetition, volatility and ownership correlation; v0.33 upgrades the memory map into an address-searchable Explorer 2.0 with an Unknown Bytes Ledger; and v0.34 adds a declarative Driver SDK with manifest validation and simulator/scaffold generation. Accordingly, this build is distributed under the GNU General Public License v3.0 or later.
github.com/kk7ds/chirp — chirp/drivers/uv5r.py, chirp/drivers/mml_jc8810.py, chirp/chirp_common.py, chirp/bitwise.py, chirp/drivers/generic_csv.py
Copyright notices from CHIRP remain attributable to their original authors. RADIOBENCH implementation © 2026, distributed under GPL-3.0-or-later. No warranty is provided. Radio programming can vary by firmware and hardware revision; preserve backups.