Skip to content

Hardware Compatibility

Fombriti edited this page May 7, 2026 · 1 revision

Hardware Compatibility

quansheng_toolkit supports the PY32F071 family of Quansheng radios end-to-end (read, write, settings, calibration, DFU flash). The DP32G030 family shares enough of the EEPROM layout that read-only access should work, but is currently hardware-untested.

Compatibility matrix

Model MCU Stock firmware F4HWN compatible Toolkit support
Quansheng UV-K1 (standard) PY32F071 7.03.x ✅ Fusion 5.x ✅ read · write · settings · calibration · DFU flash
Quansheng UV-K1(8) v3 Mini Kong PY32F071 + 2 MB SPI flash 7.02.x ✅ Fusion 5.x ✅ read · write · settings · calibration (verified end-to-end with V/M, ChName, ChDel)
Quansheng UV-K5 V3 PY32F071 7.00.x ✅ Fusion 5.x ✅ read · write · settings · calibration · DFU flash
Quansheng UV-K5 (original) DP32G030 2.00.x ✅ Fusion 4.x 🚧 read-only, hardware-untested in this toolkit
Quansheng UV-K5(8) DP32G030 2.00.x ✅ Fusion 4.x 🚧 read-only, hardware-untested
Quansheng UV-K6 DP32G030 2.00.x ✅ Fusion 4.x 🚧 read-only, hardware-untested
Quansheng 5R+ DP32G030 ✅ Fusion 4.x 🚧 read-only, hardware-untested
Quansheng UV-TK11 Taiko Kong TBD TBD ❌ no port yet 🚧 in roadmap

Legend: ✅ = supported and tested · 🚧 = partial / untested · ❌ = not supported.

How to identify your radio

Quansheng's naming is famously messy — the same external label can hide different MCUs. Use the heuristics below before flashing anything.

1. Sticker under the battery

Pop off the battery. There's usually a printed label with model code (e.g. UV-K5(8) or UV-K1) and a hardware revision (e.g. V3).

2. Stock firmware About menu

On factory firmware, navigate to the equivalent of About / Version:

  • Stock 7.00.x → UV-K5 V3 family (PY32F071)
  • Stock 7.02.x / 7.03.x → UV-K1 family (PY32F071)
  • Stock 2.00.x → original UV-K5 / K5(8) / K6 / 5R+ (DP32G030)

3. F4HWN startup screen

If you're already running F4HWN, the splash shows:

  • F4HWN_5.x → PY32F071 build (works with this toolkit)
  • F4HWN_4.x (with K5/K6 in the build name) → DP32G030 build (the original Egzumer fork)

4. Bootloader version (most reliable)

The single most authoritative identifier is the bootloader version, which is part of the silicon and doesn't change with the firmware. Boot the radio in DFU mode (PTT + Side Key 2 while powering on, LCD blank) and run:

python -m quansheng_toolkit dfu-info

The toolkit prints the bootloader version and identifies the radio:

Bootloader Radio MCU
7.00.07 UV-K5 V3 or UV-K1(8) v3 Mini Kong PY32F071
7.03.01 UV-K1 standard PY32F071
(older) UV-K5 / K5(8) / K6 / 5R+ DP32G030 — different protocol, not supported by toolkit's DFU code yet

Important

Bootloader 7.00.07 is shared between UV-K5 V3 and UV-K1(8) v3 Mini Kong. The toolkit treats them as a single target (k5_v3) for DFU flashing, because the F4HWN PY32F071 build runs on both. Read/write of EEPROM also works on both, but the K1(8) v3 has a 2 MB SPI flash that the standard UV-K5 V3 lacks — used by F4HWN for extended channel storage.

MCU and bootloader detection

To inspect the live radio without flashing:

# Normal mode (firmware running)
python -m quansheng_toolkit info

# DFU / bootloader mode (PTT + Side Key 2 boot)
python -m quansheng_toolkit dfu-info

info reports the firmware version. dfu-info reports the bootloader version — that's the one you need before any flash decision.

F4HWN vs Quansheng stock — what changes

Capability F4HWN Quansheng stock
EEPROM read
EEPROM write ✅ on K1, ⚠️ silently rejected on K5 V3
Channel grid ✅ same memory map ✅ same memory map
F4HWN-specific settings (~76 entries: Sets, audio profiles, scope, etc.) ❌ — entries don't exist
Quansheng-specific settings (~34 entries)
Live LCD mirror ✅ (F4HWN-only protocol over USB)
24 scan lists ❌ — stock has only 2
Bootloader version unchanged unchanged

Warning

K5 V3 stock is read-only from every open-source toolkit, not just this one. The factory firmware silently rejects EEPROM write commands. To get write support on a K5 V3, flash F4HWN. See Flashing Firmware.

Out-of-scope models

The following are not in scope for this project. They are different chipsets / different vendors:

  • Quansheng UV-5R+ (older model, different memory map)
  • Quansheng UV-K6 — DP32G030, like the original K5; will be tested when hardware is available
  • Baofeng / Radtel / TYT clones — different vendors, usually different MCUs
  • UV-K5 V1, V2 — DP32G030, partially supported via the legacy _uvk5_v1 modules but explicitly out of scope for testing in this project

If you have a model not listed in the matrix and it talks the same EEPROM protocol, the read path might work — try python -m quansheng_toolkit read -o test.bin and see. Do not write or flash without confirming the bootloader version.


Next: Flashing Firmware for the DFU procedure.