Helper and custom configuration of the Nunu UV-K5 firmware.
Its a custom firmware for the Quansheng UV-K5 walkie-talkie. My firmware of choice is the Kamil (a.k.a. Nunu) firmware, optimized for fast scan, containing the AM demodulation fix, and new spectrum analyzer features. It is a fork of the Egzumer firmware.
References
History
The Ludwich66 repository contains a list of all the people participating to reverse engineering the K5 (hardware, firmware encryption, flashing, custom firmware). The Amnemonic repository contains reverse-engineering effort progress.
Alternative firmware are:
- Egzumer [Wiki] [Flash interface]
- Merge between OneOfEleven and Fagci (OSFW) (shipped with the radio) firmware, both based on a re-implementation of the original firmware by DualTachyon. First very popular firmware.
Using the ArchLinux PKGBUILD helper
Clone this repository and enable or disable patches directly inside the
PKGBUILD
:
git clone https://github.com/pierreay/uv-k5-firmware-custom-pkg.git
cd uv-k5-firmware-custom-pkg
# You may wnt to edit the PKGBUILD
Then, compile:
makepkg
Finally, follow flashing instructions.
Using original releases
A firmware release can be directly flashed through the web interface, by clicking on a parameterized HTTP links from the GitHub release page.
Using original source code
The other option is to locally clone the source code, configure the firmware
and use the web-interface uploading our local binary. I tried k5prog
as in the
repository Makefile
to flash the firmware locally, but it always gives errors.
First, install the needed dependencies:
sudo pacman -S python-crcmod # Check CRC of compiled firmware.
Then, clone the repository and parameterized the Makefile
with desired options:
git clone https://github.com/kamilsss655/uv-k5-firmware-custom
cd uv-k5-firmware-custom
# You may wnt to edit the Makefile
Finally, compile the firmware:
make
Flash the firmware using the web interface by uploading the resulting
firmware.packed.bin
binary.
The rich documentation can be downloaded offline:
mkdir -p "$HOME/.local/share/doc/uv-k5-firmware-custom-wiki"
git clone "https://github.com/kamilsss655/uv-k5-firmware-custom.wiki.git" "$HOME/.local/share/doc/uv-k5-firmware-custom-wiki"
Firmware flashing is supported by an official Windows application called “Programming Software-Neutral”. Jacek “SQ5BPF” Lipkowski developed K5Prog, an EEPROM reader/writer and firmware patcher for the UV-K5 in C under Linux. WhosMatt developed UVMod, a firmware patcher with a web interface to customize the selected features. Egzumer’s forked it to keep the web-based patcher without the customization feature, called UVTools.
- Power the K5 while maintaining the PTT button pressed, the LED should be ON.
- Only now, first plug the Jack programming cable into the radio and then, plug the USB adapter into the computer – in this order.
- Check that a Serial-to-USB converter is detected as
ttyUSB0
underdmesg
, e.g., apl2303
for Chinese-cloned cable. - Proceed to firmware flashing from software, the LED should blink.
- If the flasher does not detect the radio in flashing mode, try executing the flash command several time, disconnect/reconnect the USB adapter, or restart the application / refresh the web page.
Memory programming is supported by CHIRP. The procedure is to simply connect the powered ON radio to the computer using the programmatic cable. If using an custom firmware, a new “CHIRP driver” may be needed to support it. For example, the custom uvk5-chirp-driver driver has been officially added to CHIRP to support Egzumer firmware.