Loading repository data…
Loading repository data…
knoinok / repository
Desktop toolkit for Quansheng UV-K1, UV-K1(8) v3 Mini Kong and UV-K5 V3 radios. Channels, settings, calibration, DTMF, live LCD mirror, anti-brick DFU firmware flashing. CLI + PySide6 GUI, cross-platform. Open-source (Apache-2.0).
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Open-source desktop toolkit for Quansheng UV-K1, UV-K1(8) v3 Mini Kong and UV-K5 V3 radios.
Channels • scan lists • settings • calibration • DTMF • boot logo • firmware flashing — from a polished PySide6 GUI or the CLI.
Portable, single binary, fully offline — bundles Python, Qt and 9 verified firmwares; no installer, no internet, no cloud.
Download · Quick start · Flashing firmware · CLI · Roadmap
[!WARNING] This software has no real brain. Please use your own. Use at your own risk. There is no guarantee it will work in any way on your radio, and certain operations (firmware flashing, calibration restore) can brick the device. The anti-brick allowlist limits — but does not eliminate — that risk. Back up your EEPROM and calibration before any write operation.
[!NOTE] The toolkit covers the PY32F071 family (UV-K1, UV-K1(8) v3 Mini Kong, UV-K5 V3) end-to-end. The original DP32G030 family (UV-K5 / K5(8) / K6 / 5R+) shares enough of the EEPROM layout that read-only access should work, but isn't hardware-tested in this project. The Quansheng UV-TK11 "Taiko Kong" is on the roadmap.
.exe (~71 MB) bundles the Python interpreter, Qt, the toolkit code and all 9 firmware images — drop it on a USB stick and you have a complete radio-maintenance kit you can plug into any PC at a hamfest, club meeting or field site without touching a network..bin images — F4HWN open-source builds and Quansheng stock — with an anti-brick allowlist that refuses any combination not matching the live bootloader version.Comment column for clean round-trip..bin so you know the dump is stable before you ever rely on it. Two-dialog confirmation on restore, profile-aware byte-count check, jump-to-region hex viewer.0x1C00, with validated input (printable ASCII names, DTMF chars 0–9 A–D * #).[!TIP] Windows users — easiest path. A single self-contained
.exeis published on every release. Python interpreter, Qt and all 9 bundled firmwares are embedded — no installer, no internet needed after download.
quansheng-toolkit.exe from the latest tagged release (~71 MB).[!NOTE] First launch on Windows. SmartScreen will warn about an "unrecognised publisher". Click More info → Run anyway. The binary isn't code-signed yet (signing certificates are paid; on the roadmap).
The toolkit makes zero network calls during normal operation — read/write EEPROM, edit channels, flash firmware, dump calibration, mirror the LCD: everything happens locally. The bundled firmware images live inside the binary; the SHA-256 manifest is shipped with the package; even the help text is local.
The only thing that ever touches the network is clicking a release-link inside one of the firmware info cards (those open in your default browser, outside the toolkit).
This makes the toolkit ideal for:
quansheng-toolkit.exe is a complete portable kitFor macOS and Linux, build from source — see Install — from source. The from-source install needs the network only for pip install; after that it's fully offline too.
| Model | MCU | Firmware | Status |
|---|---|---|---|
| Quansheng UV-K1 | PY32F071 | F4HWN Fusion 5.x | ✅ read · write · settings · calibration · DFU flash |
| Quansheng UV-K1 | PY32F071 | Stock 7.03.x | ✅ read · write · settings · calibration |
| Quansheng UV-K1(8) v3 Mini Kong | PY32F071 + 2 MB SPI | F4HWN Fusion 5.x | ✅ read · write · settings · calibration (verified end-to-end with V/M, ChName, ChDel) |
| Quansheng UV-K5 V3 | PY32F071 | F4HWN Fusion 5.x | ✅ read · write · settings · calibration · DFU flash |
| Quansheng UV-K5 V3 | PY32F071 | Stock 7.00.x | ⚠️ read-only — firmware silently rejects writes (same on every open-source tool) |
| UV-K5 / K5(8) / K6 / 5R+ | DP32G030 | Stock | 🚧 same EEPROM layout as K5 V3 stock — should work read-only, hardware-untested |
| UV-TK11 Taiko Kong | TBD | TBD | 🚧 in roadmap |
quansheng-toolkit.exepython -m quansheng_toolkit.gui[!IMPORTANT] Always do a Read first before editing. The Dashboard shows the live image — if you edit before reading, you're working against an empty buffer and Apply will overwrite the radio with zeros.
[!CAUTION] Flashing is destructive and irreversible. The wrong firmware can brick the radio. The toolkit's allowlist verifies the bootloader version before allowing the flash, but if you bypass that with
Custom .bin, you're on your own.
The Firmware tab guards the destructive flash path with three layers of confirmation and an anti-brick allowlist that refuses incompatible bootloader/firmware combinations.
To flash:
Validated combinations:
| Radio | Bootloader | Firmware |
|---|---|---|
| UV-K5 V3 | 7.00.07 | F4HWN Fusion 4.3, 5.4 |
| UV-K1 standard | 7.03.01 | F4HWN Fusion 5.4 |
| UV-K1(8) v3 Mini Kong | 7.00.07 (shared with K5 V3) | F4HWN Fusion 5.4 |
Required: Python 3.10 or newer.
git clone https://github.com/knoinok/quansheng_toolkit.git
cd quansheng_toolkit
py -3.13 -m pip install -r requirements.txt PySide6
py -3.13 -m quansheng_toolkit.gui
brew install python@3.13
git clone https://github.com/knoinok/quansheng_toolkit.git
cd quansheng_toolkit
python3 -m pip install -r requirements.txt PySide6
python3 -m quansheng_toolkit.gui
[!NOTE] CH340/CH9102 cable users: install the WCH driver from https://www.wch-ic.com/downloads/CH34XSER_MAC_ZIP.html. The UV-K1's native USB-C bridge needs no driver.
sudo apt install python3 python3-pip python3-venv # or distro equivalent
git clone https://github.com/knoinok/quansheng_toolkit.git
cd quansheng_toolkit
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt PySide6
python3 -m quansheng_toolkit.gui
Add yourself to the serial-port group:
sudo usermod -aG dialout $USER # Debian/Ubuntu
sudo usermod -aG uucp $USER # Arch/Fedora
# log out and back in
For a stable USB-C device name, drop a udev rule:
echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="36b7", ATTRS{idProduct}=="ffff", MODE="0660", GROUP="dialout", SYMLINK+="quansheng_uvk1"' | sudo tee /etc/udev/rules.d/99-quansheng.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
Every GUI feature is also available headless — handy for scripting and CI.
python -m quansheng_toolkit info # handshake + firmware version
python -m quansheng_toolkit read -o cur.bin # full EEPROM dump
python -m quansheng_toolkit list # decode channels (live or --from-file)
python -m quansheng_toolkit show-settings # every named setting
python -m quansheng_toolkit list-settings # every key `make-bin --set k=v` accepts
# CSV-driven channel patch with scan-list assignment derived from the Comment column
python -m quansheng_toolkit make-bin -i cur.bin --csv ch.csv \
--derive-from-comment -o patched.bin --show
python -m quansheng_toolkit apply-full --