This repository is a fork of the F4HWN custom firmware, who was a fork of Egzumer custom firmware. It extends the work done for the UV-K5 V1, based on the DP32G030 MCU, and adapts it to the newer UV-K1 and UV-K5 V3 built around the PY32F071 MCU. It is the result of the joint work of @muzkr and @armel.
A big thanks to DualTachyon, who paved the way by releasing the very first open-source firmware for the UV-K5 V1. None of this would have been possible without that initial work !
This firmware is distributed under the Apache 2.0 License, carrying forward the original copyright of DualTachyon, whose work laid the foundation for the UV-K5 open-source ecosystem. If you create a fork or a derived version, we strongly encourage you to keep your work open source.
Keeping your fork open:
It is also very much in line with the ham spirit: sharing knowledge, experimenting together and helping each other, rather than closing things off or claiming them as your own.
Maintaining an open-source fork is the best way to help build a healthy and sustainable ecosystem for everyone.
[!WARNING] EN - THIS FIRMWARE HAS NO REAL BRAIN. PLEASE USE YOUR OWN. Use this firmware at your own risk (entirely). There is absolutely no guarantee that it will work in any way shape or form on your radio(s), it may even brick your radio(s), in which case, you'd need to buy another radio. Anyway, have fun.
FR - CE FIRMWARE N'A PAS DE VÉRITABLE CERVEAU. VEUILLEZ UTILISER LE VÔTRE. Utilisez ce firmware à vos risques et périls. Il n'y a absolument aucune garantie qu'il fonctionnera d'une manière ou d'une autre sur votre (vos) radio(s), il peut même bousiller votre (vos) radio(s), dans ce cas, vous devrez acheter une autre radio. Quoi qu'il en soit, amusez-vous bien.
[!NOTE] EN - About CHIRP, as with many other firmwares, you need to use a dedicated driver. The matching CHIRP driver is now bundled with each release of this repository, so you can download the firmware and its driver together from the Releases page.
FR - A propos de CHIRP, comme pour beaucoup d'autres firmwares, vous devez utiliser un pilote dédié. Le driver CHIRP correspondant est désormais fourni avec chaque release de ce dépôt, ce qui permet de récupérer ensemble le firmware et son pilote depuis la page des Releases.
[!CAUTION] EN - I recommend backing up your calibration data with UV Studio immediately after flashing this firmware. It is a good habit to adopt.
FR - Je recommande de sauvegarder vos données de calibration avec UV Studio juste après avoir flashé ce firmware. C'est un bon réflexe à adopter.
Special thanks to Jean-Cyrille F6IWW (3 times), Fabrice 14RC123, Olivier 14RC206, Frédéric F4ESO, Stéphane F5LGW (2 times), Jorge Ornelas (4 times), Laurent F4AXK, Christophe Morel, Clayton W0LED, Pierre Antoine F6FWB, Jean-Claude 14FRS3306, Thierry F4GVO, Eric F1NOU, PricelessToolkit, Ady M6NYJ, Tom McGovern (4 times), Joseph Roth, Pierre-Yves Colin, Frank DJ7FG, Marcel Testaz, Brian Frobisher, Paolo Bussola, Dirk DL8DF, Levente Szőke (2 times), Bernard-Michel Herrera, Jérôme Saintespes, Paul Davies, RS (3 times), Johan F4WAT, Robert Wörle, Rafael Sundorf, Paul Harker, Peter Fintl, Pascal F4ICR (2 times), Mike DL2MF (3 times), Eric KI1C / F4WFS (3 times), Phil G0ELM, Jérôme Lambert, Eliot Vedel, Alfonso EA7KDF, Jean-François F1EVM, Robert DC1RDB (2 times), Ian KE2CHJ, Daryl VK3AWA, Roberto Brunelli, Robert Boardman, Stephen Oliver, Nicolas F4INE, William Bruno, Daniel OK2VLK, Tayler Chew, Peter DL7RFP, Philippe Kopp, Rune LA6YMA, Jeremy Luna, Steef Wagenaar (2 times), Zhuo BG7SGA, Jamie M0JLB, Antoine LIBERT, Vince K0DKR, Julia DF7JA, Ken 2E0UMK, Victor TI2SYS, Tobi DG9LAY, Deaglan K4DFQ, Catherine PALMER, Brian WA6JFK, Stéphane Hintzy, Roger F1HCN, Marcin Kusaj, Flavio Cottarelli, Bob N1MLZ, Carlos EA1IJ, Brian M7YLF, Giuseppe IT9LLH, 邓 月, Jon M1JRH, Antonios Chouchoumis, Cédric Thomas, Justin White, Gordon Campbell, Per Georg Fostad, Edward Phillips, Peter Kintscher, Jerome Lambert and Andy G0FTD for their donations. That’s so kind of them. Thanks so much 🙏🏻
Fusion is the generic reference edition for the UV-K1 and UV-K5 V3. It is intended for everyday use and is the base inherited by the specialized editions. It includes:
SetCfg.Fusion also includes the overlay-apps platform: applications are loaded from external Flash and run in a 4 KiB RAM overlay. The additional presets are:
Multiboot uses the radio's external Flash to keep one automatically maintained Main firmware backup and four additional firmware slots. Each image is validated before it is restored to internal Flash, and the selector displays the edition and version stored in every valid slot.
To open the Multiboot selector, power off the radio, hold MENU, power it on,
then release the key when the selector appears. Use UP and DOWN to choose a
slot, MENU to restore it and EXIT to leave without making changes.
[!CAUTION] Never power off the radio while a firmware slot is being restored.
Multiconfig provides one independent configuration bank for Main and for each of the four user slots. A bank contains the memory channels and names, VFO settings, scan lists, radio settings and edition-specific settings. By default, each firmware slot uses the bank with the same number.
The SetCfg menu can select and apply another bank immediately, without
restarting the radio or changing firmware. The status bar shows the active bank
as CFG M or CFG 1 to CFG 4, so several operating configurations can be
used with the same firmware and compatible configurations can be shared across
editions.
A SetCfg override survives normal power cycles. It does not permanently
redefine the default configuration bank of a firmware slot: selecting a
firmware through Multiboot always restores the natural association between the
selected slot and its bank (Main to CFG M, or slot N to CFG N). Select
another bank with SetCfg again after switching firmware if required.
Full Watch extends the normal dual-watch cycle to monitor:
The priority channels come from the existing scan-list priority settings. Duplicates, invalid entries and channels already loaded in VFO A or B are ignored automatically.
The RxMode menu provides two Full Watch modes:
FULL RX / RESPOND replies on the channel that opened the squelch,MAIN TX / FULL RX always transmits on the selected main VFO.Animated chevrons show the background watch cycle while the normal VFO display remains available for navigation and operation.
Fusion can store up to 64 applications from the current collection of 43 in external Flash. Each app is loaded into a dedicated 4 KiB RAM overlay only while it is running, while larger read-only assets such as text, fonts, bitmaps and lookup tables remain in external Flash.
The current app collection includes:
APRS RX receives AX.25 UI frames using Bell 202 AFSK at 1200 baud, displays
common position formats and Mic-E data, and keeps a five-frame history. APRS TX
uses an editable callsign (with boot-message fallback) and transmits a position beacon; its companion
APRS Edit app edits the callsign, SSID, digipeater path, position, symbol and
89-character comment.
GeoNav reuses that APRS position as the home QTH and shows the bearing and
distance to a position handed off by the RS41, M10 or M20 radiosonde app.
APRS DIGI is a deliberately limited WIDE1-1 fill-in digipeater with
path-independent duplicate suppression and channel-busy protection.
KISS TNC makes the radio the TNC of APRSdroid (or any KISS client) over the
USB-C cable: the phone runs the APRS application, the radio demodulates and
transmits.
ACARS RX receives the 2400 bit/s AM-MSK aircraft data link, checks odd parity and CRC, and keeps a three-message history with aircraft address, flight ID, label and printable message text. AIS RX samples the raw discriminator at 38.4 kHz, validates HDLC frames and shows Class A/B position and static reports from AIS1 or AIS2, one channel at a time. Its Flipper Zero bench vectors stay on 433.650 MHz.
AF Scope and AF Spectro are one instrument for the demodulated RX audio, split
in two apps that hand off to each other with MENU: AF Scope is an
oscilloscope (frequency counter, peak detect, persistence) and a tuner (the
frequency of a steady tone against the nearest known tone); AF Spectro shows
the spectrum and a sonogram, the two main peaks and the level difference
between two tones (DTMF, FSK, Bell 202...). Both work in FM, AM and USB.
[!IMPORTANT] Overlay apps, including APRS RX, APRS TX and APRS DIGI, are experimental parts of Fusion. Use the app files supplied with the same firmware release so their ABI and required capabilities match the installed firmware.
[!CAUTION] Transmitting apps must only be used on frequencies, power levels and modes permitted by your licence and local regulations.
Low 1: below approximately 20 mW,Low 2: approximately 125 mW,Low 3: approximately 250 mW,Low 4: approximately 500 mW,Low 5: approximately 1 W,Mid: approximately 2 W,High: approximately 5 W,User: configurable through SetPwr.OFF,01 to 24,ALL.ALL list scans every channel except those assigned to OFF.MIX list combines any selected subset of the 24 named lists into one
scan set.00 selects ALL,01 to 24 select the corresponding list,25 selects MIX.MENU while scanning to exclude the current memory channel.MAIN ONLY, DUAL, FULL and CROSS display modes,F keypad lock (attenuation stays adjustable with the arrow keys).MOE, MOI, MOS, MOH, MO5 and MO identifiers,F keypad lock,AirCopy can transfer one 128-channel bank, the radio settings, or all memory banks and settings in one operation. Version 6.1 adds a stop-and-wait protocol with acknowledgements in both directions:
Before sending data, the two radios compare CRC32 values in groups of up to 24 blocks. The receiver returns a difference bitmap, so only blocks whose contents differ are transmitted. Each radio data frame can carry up to three consecutive 64-byte blocks, approximately doubling over-the-air throughput compared with the previous one-block framing.
Transfer also supports direct radio-to-radio cable cloning over UART at 460800
baud. Press * in AirCopy to switch between AIR COPY and CABLE COPY; use
UP and DOWN to select a memory bank, Settings or All (Mem+Set), then
MENU on the sender and EXIT on the receiver.
Cable mode additionally provides Flash 2M, which clones the complete 2 MiB
external Flash. Sectors are compared by CRC32 and only different sectors are
written. The device-specific calibration sector is never copied or erased, and
the receiving radio must be restarted after a successful Flash clone.
[!IMPORTANT] The new AirCopy wire format is not compatible with earlier versions. Both radios must run the same firmware version.
SetPwr: configurable User output power,SetPTT: Classic or OnePush PTT,SetTOT: timeout-timer alert,SetEOT: end-of-transmission alert,SetCtr: display contrast,SetInv: inverted display,SetLck: keypad or keypad-and-PTT lock,SetMet: S-meter style,SetGUI: VFO information style,SetRxA: RX audio profile,SetTmr: RX and TX timers,SetOff: automatic deep-sleep delay,SetNFM: narrow-FM bandwidth,SetVol: RX audio volume,SetScn: scan mode,SetNav: radio-specific navigation layout,SetCfg: apply another Multiconfig bank without restarting.PonMsg, BackLt, TxTOut, ScnRev and KeyLck menus.EXIT.F + UP or F + DOWN are persisted.F + UP or F + DOWN: adjust the squelch level.F + F1 or F + F2: adjust the frequency step.F + 8: temporarily switch the backlight between minimum and maximum brightness.F + 9: return to the configured backlight strategy.5 NOAA)* Scan while scanning)* SCAN while in RX DCS/CTCSS menu item)## Manual
Up to date manual is available in the Wiki section
Please note that the Quansheng UV-Kx radios are not professional quality transceivers, their performance is strictly limited. The RX front end has no track-tuned band pass filtering at all, and so are wide band/wide open to any and all signals over a large frequency range.
Using the radio in high intensity RF environments will most likely make reception difficult, especially in AM mode. The receiver simply does not have a great dynamic range, so stronger signals can easily cause distortion, desensitization and poor AM audio. This is fundamentally a hardware limitation: firmware can improve behavior at the margins, but it cannot overcome the front-end design of the radio. In practice, AM reception will degrade first and most severely, while FM reception is generally more tolerant and should remain more usable.
But, they are nice toys for the price, fun to play with.
This project provides a Docker-based build system for the UV-K1 and UV-K5 V3.
Everything is handled through the compile-firmware.sh helper script. Fusion is
the default generic preset, while specialized builds are generated in their own
build/<Preset> directories.
The script compile-firmware.sh:
uvk1-uvk5v3) if it does not already exist.cmake --fresh..elf, .bin and .hex files.All keeps the individual build logs quiet../compile-firmware.sh [Preset] [extra CMake options]
The default preset is Fusion. Available presets are:
Examples:
./compile-firmware.sh
./compile-firmware.sh Fusion
./compile-firmware.sh Service
./compile-firmware.sh All
You can pass extra configuration options after the preset name.
These are forwarded directly to cmake --preset inside the container.
Examples:
./compile-firmware.sh Service -DENABLE_VOX=OFF
./compile-firmware.sh Fusion -DENABLE_FEAT_F4HWN_GAME=ON
./compile-firmware.sh Fusion -DSQL_TONE=600
To prepare the rolling development firmware:
./compile-firmware.sh Fusion -DDEV=ON
This keeps the regular build output in build/Fusion and also updates
archive/f4hwn.fusion.development.bin. The development build is identified as
DEV in the firmware information screen. Publishing the updated archive file
remains an explicit Git operation.
You can flash the UV-K5 V3 and UV-K1 directly from your web browser using the Web Serial-based UV Studio.
UV Studio combines firmware flashing, calibration maintenance, boot-logo management, K5Viewer and RF Log in a single interface. It requires no application installation, server or account. Use a desktop browser with Web Serial support, such as Chrome, Brave, Edge, Opera or Firefox 151+.
.bin firmware file.Flash Firmware, then select the serial port associated with your radio.Once finished, your radio restarts with the new firmware.
UV Studio can also dump and restore calibration data, which is highly recommended. It is best to create a dump immediately after installing the F4HWN firmware, and to restore it before installing another firmware or returning to the stock firmware.
Dump Calibration Data.When the process is complete, click Download calibration.dat to save the file to your computer.
[!NOTE] A good practice is to rename your calibration file using the serial number of your radio, which you can find on the label on the back of the device once you remove the battery. This helps avoid mixing up calibration files when you own multiple units.
calibration.dat file on your computer.Click Restore Calibration Data and wait until the process fully completes.
Many thanks to various people:
Copyright 2023 Dual Tachyon https://github.com/DualTachyon
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|