A stripped-down Quansheng UV-K5/K6 firmware build intended for radios that get passed around as loaners. This fork keeps the community reliability fixes while removing configuration rabbit holes so a first-time user can turn the knob, press PTT, and get on the air.
The project also gives COML/COMT staff a predictable path from the ICS-205 form to a radio codeplug: program the memories in CHIRP, flash the loaner binary, and the handset stays aligned with the paperwork.
Warning
Flashing third-party firmware is always at your own risk. Test on non-critical hardware first and confirm RF behaviour before handing units out.
- Download the latest packed release (
loaner-firmware.packed.bin) from the Releases page. - With the radio powered off, hold the PTT and the top side key while turning it on. The display should stay blank, indicating the bootloader is active.
- Connect the USB cable, open Quansheng's PC programming tool, select Firmware Update, point it at the packed image, and start the transfer.
- After the loader reports success, power the radio off and back on to confirm the welcome screen shows the release tag from the packed image.
- Spin the channel knob and verify that the loaner channel names appear as expected.
- Put channel-only handsets in the hands of volunteers who have minimal or no radio training.
- Give COML/COMT staff an efficient way to push an ICS-205 channel plan onto the radios using CHIRP.
- Track upstream bug fixes while documenting the toggles that keep the loaner build focused and predictable.
- Channel knob only: the firmware boots into MR mode and ignores attempts to switch into VFO.
- Hardened menu: configuration items that could drift from the loaner plan are removed or disabled.
- Friendly prompts: welcome banner, battery indicator, and RSSI display identify the handset as a loaner and keep checks simple.
- Consistent keypad: digits recall the first ten memories, side buttons select the active VFO, and Menu is locked out.
- Lean feature set: Aircopy, FM broadcast, NOAA weather, the 1750 Hz tone burst, and the general alarm are compiled out so the UI stays focused on assigned channels and the binary remains compact.
This build assumes the channel plan lives on your ICS-205. To move that plan into a radio:
- Prepare the ICS-205 so each channel has a concise label (CHIRP shows up to seven characters by default).
- Launch CHIRP, connect the radio, and use
Radio -> Download From Radioonce to confirm the driver handshake. - Use
File -> Importto pull in either a CSV exported from your ICS-205 or an existing.imgtemplate. Map the columns to CHIRP'sName,Frequency,Tone Mode, andTonefields. - Sort the memories into the order that matches your loaner numbering, then
File -> Save Asto keep the template for the next deployment. - Upload the plan with
Radio -> Upload To Radio. After the radio reboots, rotate the channel knob and verify that the display shows the ICS-205 names. - Repeat for each handset; the standard workflow keeps the handset in channel mode, so operators only see the memories you defined.
Use a CHIRP build that includes the UV-K5 loaner whitelist from PR #1414 (or any newer release); older builds will block uploads because they do not recognise the OEFW-LNR banner yet.
Tip: Keep a CHIRP image with the baseline loaner plan in source control so teams can diff changes before distributing updates.
- Install Quansheng's UV-K5/K6 programming utility if it is not already on your workstation.
- Copy the packed binary locally - the metadata is required by Quansheng's loader.
- With the radio powered off, hold PTT + top side key and power it on to enter firmware download mode (the screen remains blank).
- Connect the USB cable (CH340 driver) and confirm the loader detects the serial port.
- Choose Firmware Update, select the packed binary, and start the process. Do not disconnect power until the loader reports completion.
- Power-cycle the radio and confirm the loaner splash/version text is displayed.
- Install OpenOCD and ensure it is configured for a J-Link probe, matching the expectations baked into the repo's OpenOCD config.
- Connect the debugger to the radio's programming header.
- From the repository root run:
make flash
- Use
make debugafterwards if you need an interactive OpenOCD session.
- Carry one handset that stayed stock as a control; it helps confirm the loader steps when training new volunteers.
- Log which firmware release you flashed (the welcome banner shows the tag) alongside the ICS-205 so future updates are easy to track.
- If a user reports odd audio or RF behaviour, power cycle and reseat the battery first; the firmware keeps settings read-only so faults are usually hardware.
All developer-facing build and packaging details live in BUILDING.md. Start there if you need to regenerate binaries or adjust feature toggles.
Open issues or PRs if you spot regressions that impact the loaner workflow. Documentation updates (especially CHIRP workflows and loaner field notes) are welcome.
docs/issues/issue-export.jsoncaptures the high-level loaner backlog for offline reference.docs/issues/issues-detailed.jsonpreserves the matching GitHub issue metadata export.
Based on the open-source efforts by DualTachyon, OneOfEleven, Fagci, and the wider UV-K5 community. This fork simply repackages their work for the loaner-radio use case.
Licensed under the Apache License 2.0. See LICENSE for details.
Copyright 2023 Dual Tachyon
https://github.com/DualTachyon
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.