A new radio experience for Quansheng UV-K6 & UV-K1.
Tune by band, frequency, and mode. Keep your channels, monitor multiple slots, and make the most of your radio.
Web Flasher & Device Tools · User Manual · Build & Development · Design · Firmware Builds
Rendered with the firmware UI and example data. Documentation is currently in Chinese.
| Everyday radio | Explore & monitor |
|---|---|
| Four working slots — independent VFO memories and channel selection | Multi-slot monitoring — compatible receiver paths, one speaker output |
| 200 channels — names, RX/TX settings, persistent storage | Seek & spectrum — find stations and inspect nearby signals |
| NFM transmit — shift, split, CTCSS/DCS, optional TX tail signaling | Frequency capture & RX tone scan — identify a carrier or receive tone |
| Broadcast reception — WFM, RDS text and clock on SI4732 | AM & SSB — SSB requires SI4732 hardware and an external patch |
| Display controls — brightness, idle backlight, battery views | K1 USB CDC — diagnostics and storage backup over a data cable |
Development is active. Basic listening and operation have been confirmed on the development units; full RF measurements, RX tone identification and TX tail interoperability remain ongoing. See each board's hardware record for the evidence and limits.
| Build | MCU | External storage | Radio / broadcast |
|---|---|---|---|
| UV-K6 + SI4732 · primary development unit | DP32G030 | 512 KiB I²C EEPROM | BK4819 / SI4732 modification |
| UV-K6 + BK1080 · build variant | DP32G030 | 512 KiB I²C EEPROM baseline | BK4819 / BK1080 |
| UV-K1 MiniKong · second target | PY32F071 | 2 MiB SPI NOR | BK4829 / BK1080 |
The default K6 build targets the SI4732 modification. Use ENABLE_SI4732=0 for BK1080 hardware. K1 always uses BK1080. Other EEPROM sizes and board variants are not validated targets. K1 and K6 images are not interchangeable.
Use the browser workbench to flash firmware, connect the running radio, read diagnostics and download storage backups. It requires desktop Chrome or Edge; flashing both boards uses a K-type UART programming cable. The buildless Preact + htm source is in website/.
- Read the flashing and backup instructions, and preserve your radio's factory calibration.
- Download the matching artifact from a successful Firmware build run:
uvk1-bk1080,uvk6-bk1080, oruvk6-si4732. - Flash the raw
.binwithtools/flash.py, then initialize the configuration when prompted.
To build locally, install ARM GNU tools, Python 3 and crcmod:
git submodule update --init --recursive
python3 -m pip install crcmod
# UV-K6 with the SI4732 modification (default)
make
make flash PORT=/dev/cu.usbserial-1420
# UV-K6 with BK1080
make ENABLE_SI4732=0
make flash ENABLE_SI4732=0 PORT=/dev/cu.usbserial-1420
# UV-K1 MiniKong
make BOARD=uvk1
make BOARD=uvk1 flash PORT=/dev/cu.usbserial-1420Replace the port with your device's port. Hold PTT while powering on to enter the bootloader. Both boards use a K-type UART programming cable; K1 USB CDC is available in the running application. See Development for image formats, recovery, build switches and host regressions.
| Guide | Contents |
|---|---|
| User Manual | Flashing, screen tour, keys, illustrated menus, channels, RX and TX ranges |
| Design | Tuning, slot monitoring, audio ownership, TX lifecycle, storage formats and roadmap |
| Development | Build matrix, tools, architecture, memory budgets and validation |
| Channel Format | Normalized channel record and the serial read/write commands |
| UV-K6 Hardware | Primary unit, controls, EEPROM layout, calibration and listening records |
| UV-K1 Hardware | Board differences, USB, SPI storage, calibration and hardware records |
| Datasheets · Resources | Chip references, original sources and external SSB patch provenance |
Run sh tests/run.sh for host regressions. Build both boards when changing shared HAL or drivers, and keep shared features within K6's 60 KiB Flash / 16 KiB RAM budget. Include the board, build options and validation results with your changes; update the relevant guide when behavior changes.
- fagci / Hawk5 — the upstream firmware this project evolved from.
- DualTachyon and Egzumer — radio driver and protocol implementation references.
- F4HWN and ApeX — UV-K1 board and BK4829 implementation references.
- PU2CLR SI4735 and Vadim Afonkin — external SSB patch provenance, detailed in Resources.
- ARM CMSIS, muwerk fonts and the original contributors whose notices remain in the source.
Project code is licensed under the GNU Affero General Public License v3.0. See LICENSE. Third-party files and external resources retain their own notices and terms; the SSB patch is separate from the firmware license. Source and release preparation notes are maintained in Development.