Turn your Quansheng UV-K5(8) into a dedicated aviation scanner, focused exclusively on the 118β136 MHz (AM) band β tower (TWR), approach (APP), en-route (ACC), ATIS, ground (GND) and the 121.500 MHz emergency frequency.
β οΈ Receive-only. This firmware never transmits. Transmitting on aviation frequencies is illegal.
π§ͺ Evolving / experimental. This firmware is under active development β use at your own risk. Back up the factory firmware before flashing.
π‘ By default, the firmware ships with Foz do IguaΓ§u (SBFI/IGU) frequencies pre-loaded in the scanner.
| Item | Specification |
|---|---|
| Radio | Quansheng UV-K5(8) (and compatible variants) |
| RF chip | BK4819 (18 MHz β 1.3 GHz receive) |
| MCU | DP32G030 (ARM Cortex-M0, 64 KB flash) |
| Display | ST7565 128Γ64 (8 pages of 8 px) |
| Target band | 118.000 β 136.975 MHz |
| Modulation | AM |
| Step | 8.33 kHz / 25 kHz |
1/2/3/ALL);This frees ~23β30 KB of flash for the AM reception algorithms.
Grab the latest binary from the Releases section (the ...-firmware.packed.bin file).
Use a flasher to save the factory firmware before any flashing. You will need it to restore the radio.
Use the web flasher (Chrome/Edge via Web Serial) with the downloaded .packed.bin file.
Done β the radio boots straight into airband scanner mode.
β οΈ Use a quality data cable. An interrupted flash may require DFU recovery.
The C source lives in firmware/src/. The build is done with Docker (works on macOS Intel/Apple Silicon and Linux).
cd firmware
docker build -t uvk5-build .
docker run --rm -v "$PWD:/app" -w /app uvk5-build /bin/sh -c "make clean && make"
Requirements: arm-none-eabi-gcc + python3 with crcmod.
cd firmware
make clean && make
The flashable binary is produced at firmware/build/firmware.packed.bin (flash < 64 KB, zero warnings with -Werror).
π Full build + release guide in
docs/build-release.md.
qap/
βββ firmware/ # Firmware (C source, Makefile, Dockerfile)
β βββ src/ # Source code (BK4819 drivers, UI, scan, AGCβ¦)
βββ docs/ # Architecture, UI, Brazilian airband frequencies
βββ plans/ # Implementation plans (roadmap)
βββ CHANGELOG.md # Build history
βββ CNAME # qap.romildo.net domain
βββ LICENSE # Apache 2.0
βββ NOTICE # Credits to the base projects
| Document | Contents |
|---|---|
docs/arquitetura.md |
Technical decisions, BK4819, flash budget |
docs/ui-design.md |
ST7565 128Γ64 UI specification |
docs/frequencias-airband-brasil.md |
Brazilian ATC frequencies (TWR/APP/ACC) + suggested scan |
CHANGELOG.md |
Build history with hash and dated binary |
Each build publishes a dated binary with sha256 hash in the Releases section:
20260816T21h08-firmware.packed.bin0054e37e2fee0c2c80f99567e39d9f81c7702b481dff2efd55f97f7886a2614cDirect link to the latest release:
https://github.com/romildodcm/qap/releases/latest/download/firmware.packed.bin
Distributed under the Apache License 2.0 β see LICENSE and NOTICE.
Fork based on: