Skip to content

Releases: armel/uv-k1-k5v3-firmware-custom

F4HWN v5.9.0

Choose a tag to compare

@armel armel released this 14 Aug 00:55
435192e

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.9.0 as usual and start using the radio. Make sure to also install the dedicated v5.9.0 CHIRP driver provided as an attachment to these release notes.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.9.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 77/77.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the dedicated v5.9.0 driver provided as an attachment to these release notes, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead!

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 76/77 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UV Studio, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I’m currently out in the countryside, pretty much in the middle of nowhere, so I don’t really have the time, or more importantly the equipment, to shoot and edit a video 😄

But I’m pretty sure you’ll quickly discover the improvements brought by this new release for yourselves.

For the impatient ones, you can also check this GitHub discussion, where I explain the main changes.

📋 Changelog

Added

  • Added a categorized menu browser with dedicated Channels, Scan, Keys, Power, Display, Timers, Audio, Radio, DTMF, and Service categories.
  • Added an All category as a fallback to the original flat menu, preserving the existing menu order and numbering.
  • Added a side-key action picker: press F, then hold either side key to choose and immediately run an available action.
  • Added two extra Fox Hunt front-end attenuation levels, BYP and BYP+, for locating very strong nearby transmitters.
  • Added a keypad lock shared by Fox Hunt and Beacon modes, toggled by holding F for approximately 0.5 seconds (discussion #498).

Improved

  • Improved menu navigation by remembering the last selected item in each category.
  • Improved the category screen with two-digit category and item counters.
  • Improved the side-key action picker with reverse navigation, confirmation, cancellation, timeout handling, and automatic exit when reception starts.
  • Improved memory-scan feedback by pausing scan resumption while the active scan-list name is displayed.
  • Improved Fox Hunt attenuation controls: UP and DOWN now adjust attenuation directly and remain available while the keypad is locked.
  • Improved Fox Hunt signal stability after attenuation changes by allowing the RSSI detector to settle before resetting peak, minimum, trend, and history data.
  • Improved keypad-lock safety by making the lock available during both Beacon idle periods and active transmissions.

Fixed

  • Fixed Fox Hunt unexpectedly returning to the main VFO when the SetOff timer expired. Fox Hunt and Beacon now remain active until explicitly exited.
  • Fixed Broadcast FM scans being interrupted by an incoming signal detected on the main radio channel. Normal Broadcast FM listening continues to yield to channel reception as before (Thanks @EthanYan6)
  • Fixed scan progress jumping forward after the scan-list name overlay disappeared during memory scans.

Maintenance

  • Added the ENABLE_FEAT_F4HWN_MENU_CAT feature flag and enabled it for Fusion.
  • Added the ENABLE_FEAT_F4HWN_ACTION_PICKER feature flag and enabled it for Fusion.
  • Refactored side-key action validation and execution so assigned and dynamically selected actions share the same safety checks.
  • Fixed compile-with-docker.sh argument forwarding so additional CMake options are passed safely.
  • Fixed an unused-variable warning when the fast memory scanner is disabled.
  • Updated the rolling Fusion development firmware throughout development.

🪛 Dumping and restoring calibration data

UV Studio can dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump immediately after installing the F4HWN firmware, and
  • restore it before installing different firmware, for example when returning to the stock firmware.

Dump

  • Open UV Studio.
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.
  • Select the radio's serial port when prompted.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename the calibration file using the serial number of your radio, which is printed on the label on the back of the device, under the battery. This prevents calibration files from being mixed up if you own multiple radios.

Restore

  • Open UV Studio.
  • Power on your radio in normal mode.
  • Select your calibration.dat file.
  • Click Restore Calibration Data.
  • Select the radio's serial port when prompted and wait until it is fully complete.

🖥️ About the Live Viewer feature

UV Studio includes the Live Viewer feature. It can be used on a computer with a Chromium-based browser such as Chrome, Edge, Brave, or Opera, as well as Firefox 151 or later.

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with the F4HWN 🔥 Fusion edition.
  2. Keep the radio connected to your computer using a compatible USB serial cable or its USB-C connection.
  3. Open the UV Studio Live Viewer.
  4. Click Connect and select the radio's serial port.

That's it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A dedicated v5.9.0 CHIRP driver supporting the UV-K1 and UV-K5 V3 is provided as an attachment to these release notes. It allows reading and writing the radio's memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12864 B        16 KB     78.52%
           FLASH:      111584 B       118 KB     92.35%
✅ Done: Fusion

Enjoy,

F4HWN v5.8.0

Choose a tag to compare

@armel armel released this 04 Aug 15:50
fe9c4e9

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.8.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.8.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.8.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 76/76.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the f4hwn.fusion.chirp.v5.8.0.py driver, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 75/76 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVStudio, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://www.youtube.com/watch?v=xtzw2TNv0ZI

📋 Changelog

Added

  • Added Fox Hunt mode as an assignable side-key action.
  • Added a dedicated Fox Hunt signal-strength display with calibrated dBm, S-meter, peak, minimum, and signal-trend indicators.
  • Added selectable Fox Hunt attenuation levels for locating strong nearby transmitters.
  • Added silent, Geiger-style beep, and received-audio modes to Fox Hunt.
  • Added a full-width signal-history graph to Fox Hunt.
  • Added persistent storage for:
    • Fox Hunt attenuation,
    • display mode,
    • audio mode,
    • Beacon idle interval,
    • Beacon TX window,
    • selected fox identifier.
  • Added an ARDF-oriented Beacon mode with:
    • MOE, MOI, MOS, MOH, and MO5 fox identifiers,
    • MO finish/home identifier,
    • optional callsign identification using boot message 1,
    • automatic fallback to MOE when no callsign is configured.
  • Added an adjustable Beacon TX window from 5 to 60 seconds.
  • Added an adjustable Beacon idle interval from 5 to 240 seconds.
  • Added repeated CW identification throughout the configured TX window.
  • Added live TX and idle countdowns to the Beacon screen.
  • Added progressive display of the transmitted CW message.
  • Added a dedicated on-air icon during Beacon transmission.
  • Added reverse cycling with F + 1, F + 2, or F + 3 for Fox Hunt and Beacon settings.

Improved

  • Improved scan feedback by temporarily displaying the active scan-list name when starting or switching lists (discussion #462).
  • Improved power-on backlight animation with smoothstep easing.
  • Improved fast-scan UI by preventing overlap between the RSSI sparkline and RX chevron.
  • Improved RF Log behavior so logging and UV Studio streaming are enabled only when the RF LOG action is assigned to a key.
  • Improved Beacon safety by enforcing function lock, TX lock, battery voltage, and modulation restrictions before every transmission (issue #478).
  • Improved Beacon operation for ARDF use:
    • changed the Morse speed to approximately 12 WPM,
    • repeated the selected identifier for the complete TX window,
    • added support for classic five-fox timing with an idle interval of up to four minutes.
  • Improved Beacon controls with a consistent layout:
    • 1 adjusts the TX window,
    • 2 adjusts the idle interval,
    • 3 selects the fox identifier,
    • F reverses the next setting change.
  • Improved Beacon responsiveness by allowing the TX window, idle interval, and fox identifier to be adjusted during both transmission and idle phases.
  • Improved Beacon interaction:
    • MENU interrupts the current transmission and starts a new idle interval,
    • either side key switches between Fox Hunt and Beacon modes,
    • EXIT leaves Fox Hunt completely.
  • Improved Beacon display updates by refreshing K5Viewer only during muted CW gaps.
  • Improved Fox Hunt body-scan feedback with a resettable minimum-signal hold.
  • Improved battery monitoring while Fox Hunt or Beacon is active.
  • Improved persistence so changed Fox Hunt and Beacon settings are saved within approximately 500 ms.
  • Improved flash endurance by avoiding unnecessary external-flash sector erases.
  • Improved channel-attribute writes by updating only the required data instead of rewriting the entire buffer.
  • Improved RAM usage by moving read-only lookup tables to Flash.
  • Improved Fox Hunt code size by:
    • sharing common display and interpolation helpers,
    • reducing temporary and persistent buffer sizes,
    • calculating PGA attenuation directly instead of using a lookup table,
    • removing per-column modulo operations from the signal-history renderer,
    • avoiding unnecessary Beacon message construction.
  • Reduced Fox Hunt Flash usage by a further 52 bytes through targeted refactoring and hot-path optimization.
  • Reworked the README around the Fusion feature set and replaced UVTools2 references with UV Studio.

Fixed

  • Fixed the false Remove Offset indicator displayed after disabling reverse mode (issue #469).
  • Fixed RX mode restoration after leaving Close Call (issue #478).
  • Fixed RX mode restoration when switching from an active channel or frequency scan to Broadcast FM, Close Call, or CTCSS/DCS scanning (issue #480).
  • Fixed restart handling in modal applications, including Air Copy, Breakout, Frequency Scanner, Spectrum Analyzer, UART, and Fox Hunt.
  • Fixed restart commands being lost during an active Beacon TX window by servicing maintenance commands between CW characters.
  • Fixed Beacon transmissions bypassing normal TX safety restrictions.
  • Fixed progressive Beacon text positioning for callsign and fox identifiers.
  • Fixed K5Viewer keepalive handling during long Beacon TX windows.
  • Fixed Fox Hunt settings being lost when the radio powers off without leaving the application normally.

Maintenance

  • Added the ENABLE_FEAT_F4HWN_FOXHUNT feature flag and enabled it for Fusion.
  • Extended the persisted Fox Hunt configuration from five to seven bytes to include the selected fox identifier and TX window.
  • Extended the VFO compatibility mapping so AirCopy includes all persisted Fox Hunt and Beacon settings.
  • Refactored duplicated Fox Hunt and Beacon display helpers.
  • Refactored channel-settings updates to remove redundant write parameters.
  • Reduced Fox Hunt buffers to their actual maximum required sizes.
  • Removed dead and unreachable code.
  • Updated the README with detailed Fusion, Fox Hunt, Beacon, RF Log, K5Viewer, and UV Studio documentation.
  • Updated the Wiki.
  • Updated the donors list.

🪛 Dumping and restoring calibration data

UV Studio can dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump immediately after installing the F4HWN firmware, and
  • restore it before installing different firmware, for example when returning to the stock firmware.

Dump

  • Open UV Studio.
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.
  • Select the radio’s serial port when prompted.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good...

Read more

F4HWN v5.7.0

Choose a tag to compare

@armel armel released this 18 Jul 23:48
3bd3ebb

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.7.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.7.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.7.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 76/76.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.7.0.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 75/76 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://youtu.be/NnLYsnUs-Go

📋 Changelog

Added

  • Added RX/TX history log stored in external flash.
  • Added RX/TX Log action entry.
  • Added support for up to 512 visible RX/TX log entries.
  • Added F + UP/DOWN shortcuts to jump to the first or last RX/TX log entry.
  • Added optional wrap-around scrolling for RX/TX Log via ENABLE_FEAT_F4HWN_RXTX_LOG_WRAP.
  • Added S-meter capture and display in RX/TX Log.
  • Added minimum battery voltage logging per RX/TX session.
  • Added TX power level display for TX rows in RX/TX Log S-meter view.
  • Added secure clear-log confirmation flow.
  • Added optional RX/TX Log streaming to K5Viewer.
  • Added paginated RF Log history streaming to K5Viewer.
  • Added session marker streaming to K5Viewer.
  • Added ACTIONS lock scope to SetLck (discussion #450).
  • Added NOTICE file.

Improved

  • Improved RX/TX Log channel name handling by resolving names at display/export time instead of storing them in flash.
  • Improved RX/TX Log memory usage by aligning RAM and flash layouts and shrinking the view cache.
  • Improved RX/TX Log flash layout for more efficient cached display handling.
  • Improved RX/TX Log UI badge rendering and centered S-meter/detail text.
  • Improved RX/TX Log status bar stability when the filter label is shown.
  • Improved RX/TX Log empty-screen rendering.
  • Improved RX/TX Log numbering so indexes remain traffic-only and continuous across sessions.
  • Improved K5Viewer architecture by renaming the screenshot module to K5Viewer.
  • Improved K5Viewer protocol with RF Log feature flags and restart synchronization.
  • Improved scan range handling by increasing the skip list from 32 to 64 entries (discussion #429).

Fixed

  • Fixed auto key lock timer on startup (issue #431).
  • Fixed duplicate RX/TX Log session marker after repeated reboots without traffic.
  • Fixed RX/TX Log end-of-list scrolling.
  • Fixed RX/TX Log upward wrap before the total row count is known.
  • Fixed RX/TX Log behavior by ignoring squelch-only incoming state.
  • Fixed RX/TX Log index handling so session markers do not consume traffic indexes.
  • Fixed unlock handling from the RF LOG display.
  • Fixed alarm/1750 lock behavior to use the new SetLck PTT scope.

Maintenance

  • Removed unused REGA emergency alarm feature (ENABLE_REGA).
  • Removed legacy Python K5Viewer tool.
  • Removed unused KEY_STAR definition.
  • Removed redundant channel-name sanitization already handled by SETTINGS_FetchChannelName.
  • Replaced unreachable RX/TX Log EEPROM mapping with a documentation comment.
  • Refactored RX/TX Log reset/stop logic and badge numbering.
  • Updated .gitignore.
  • Updated donors list.
  • Prepared Fusion configuration for RX/TX Log and K5Viewer RF Log integration.

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.) or Firefox 151+.

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.7.0.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12800 B        16 KB     78.12%
           FLASH:      103548 B       118 KB     85.70%
✅ Done: Fusion

Enjoy,

Armel, F4HWN

F4HWN v5.6.1

Choose a tag to compare

@armel armel released this 21 Jun 17:33
5b4b3e2

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.6.1 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.6.1.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.6.1.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 76/76.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.6.1.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 75/76 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://youtu.be/PCuMHbVo3mg

📋 Changelog

Added

  • Added screenshot state flags for deep sleep and red/green LED status, improving K5Viewer state detection.

Improved

  • Improved F+4 frequency scan sensitivity.
  • Improved F+4 frequency copy scan by verifying VHF second-harmonic candidates before accepting the detected frequency.

Fixed

  • Fixed reset defaults when F4HWN packed settings are erased (Issue #413).
  • Fixed normal roger beep behavior and level across bandwidth modes (Issue #416).
  • Fixed NAR+ FM demod boost on BK4829.
  • Fixed SetSav screensaver state when entering SetOff deep sleep.
  • Fixed screensaver reactivation while deep sleep mode is active.

Maintenance

  • Refactored status-line rendering for manual backlight and battery text.
  • Updated donors list.

Credits

  • Thanks to @mrkusypl for the status-line refactoring contribution.

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.) or Firefox 151+.

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.6.1.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12480 B        16 KB     76.17%
           FLASH:       98432 B       118 KB     81.46%
✅ Done: Fusion

Enjoy,

F4HWN v5.6.0

Choose a tag to compare

@armel armel released this 15 Jun 01:24

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.6.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.6.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.6.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 77/77.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the f4hwn.fusion.chirp.v5.6.0.py driver, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 76/77 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://www.youtube.com/watch?v=b_DxJUuygYA

📋 Changelog

Added

  • Added SetSav menu behind ENABLE_FEAT_F4HWN_LOGO_SAV.
  • Added screen saver support using the backlight timeout (BLTime / BLMin behavior).
  • Added OFF, LOGO, LOGO+ scrolling logo and MATRIX screen saver modes.
  • Added screen saver setting persistence in EEPROM settings.
  • Added ENABLE_FEAT_F4HWN_LOGO_SAV feature flag, with a dependency on ENABLE_FEAT_F4HWN_LOGO.
  • Added ENABLE_FEAT_F4HWN_SCAN_RSSI feature flag.
  • Added ENABLE_FEAT_F4HWN_SCAN_SUBAUDIBLE feature flag.
  • Enabled SetSav, scan RSSI indicator and ScanRange subaudible detection for the Fusion preset.
  • Added boot beep support when POnMsg is set to LOGO (Issue #340).
  • Added RSSI sparkline indicator during memory scan and ScanRange.
  • Added automatic CTCSS / DCS subaudible detection while stopped on a signal in ScanRange.
  • Added ScanRange CTCSS / DCS display on the main screen.
  • Added hollow manual backlight bulb icon to show when manual backlight mode is currently off.

Improved

  • Improved screen saver wake-up behavior: the first key press now only wakes the display instead of immediately triggering the key action.
  • Improved wake-up handling from sleep mode to avoid unintended key actions.
  • Improved screen saver handling during radio activity by preventing it during TX, RX, FM scan, M-SCAN, BEAM and CSS background scan.
  • Improved screen saver activation checks when BLTime is OFF, always-on, or outside the supported timeout range.
  • Improved screen saver exit behavior when receiving, transmitting, waking from sleep, or returning from SetTmr sleep.
  • Improved screen saver synchronization with K5Viewer / screenshot updates.
  • Improved LCD refresh behavior while keeping RX blink visible.
  • Improved SetTmr status refresh behavior by throttling unnecessary updates.
  • Improved F+4 frequency copy scan UI.
  • Improved scanner screen readability with clearer frequency, tone, save and scan status labels.
  • Improved scan display with RSSI activity visualization during fast scan.
  • Improved VFO Lock icon placement during scan.
  • Improved FM radio frequency handling by centralizing BK1080 frequency updates.
  • Improved FM radio resume/play display flow.
  • Improved VFO/status display rendering for Fusion UI.
  • Improved scan list status rendering by using the small inverse text helper.
  • Improved screenshot/K5Viewer streaming by replacing the full previous-frame buffer with per-chunk hashes.
  • Improved screenshot/K5Viewer streaming memory usage and reduced peak stack usage by computing chunks on demand.
  • Improved screenshot/K5Viewer robustness by using wider 16-bit chunk fingerprints.
  • Improved backlight PWM memory usage, saving 128 bytes of SRAM while preserving distinct brightness steps.
  • Improved boot display selection flow.

Fixed

  • Fixed bandscope frequency rounding with 8.33 kHz step (Issue #380).
  • Fixed SetSav behavior when BLTime is set to OFF.
  • Fixed SetSav exit when waking from SetTmr sleep.
  • Fixed screen saver activation during TX.
  • Fixed screen saver activation during RX.
  • Fixed screen saver activation during FM scan.
  • Fixed screen saver activation during M-SCAN.
  • Fixed screen saver activation during BEAM.
  • Fixed ENABLE_FEAT_F4HWN_RX_TX_TIMER guard when ENABLE_FEAT_F4HWN_DEBUG is enabled.
  • Fixed minor gFM_ChannelPosition handling.
  • Fixed AM to FM dual-watch RX reconfiguration (Issue #389).
  • Fixed stale screenshot chunks by widening the screenshot chunk fingerprint.
  • Fixed dead screenshot bit-packing flush logic.
  • Fixed manual backlight status icon display when manual light is off.

Maintenance

  • Refactored LOGO loading/display code so it can be reused by the screen saver.
  • Refactored submenu string tables to use const char* const.
  • Refactored boot display selection flow.
  • Refactored screenshot frame comparison and chunk generation logic.
  • Refactored several small UI/status/radio code paths for size and clarity.
  • Refactored radio squelch threshold loading and clamp logic.
  • Refactored FM radio frequency update calls through FM_SetFrequency().
  • Added shared helper for small inverse text rendering.
  • Removed dead screenshot bit-packing flush code.
  • Archived old LOGO asset.
  • Updated donors list.
  • Updated .gitignore.
  • Updated CMake presets and feature declarations for Fusion.

Credits

  • Thanks to @mrkusypl for feedback, major refactoring and optimizations contributions.
  • Integration and release flow by @armel.

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.) or Firefox 151+.

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
    ...
Read more

F4HWN v5.5.0

Choose a tag to compare

@armel armel released this 08 May 01:53
e21d472

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.5.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.5.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.5.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 76/76.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.5.0.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 75/76 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://www.youtube.com/watch?v=FCeKwCsgiGw

📋 Changelog

Added

  • Added faster scanning (scan-range + memory) feature behind ENABLE_FEAT_F4HWN_SCAN_FASTER.
  • Added SetScn (Set Scan) menu.
  • Added volatile scan-range exclusions (32 slots, Issue #330).
  • Added BEAM feature behind ENABLE_FEAT_F4HWN_BEAM.
  • Added homologated DCS index display in Rx/Tx DCS menus.
  • Added LOGO option to POnMsg menu.

Improved

  • Improved fast-scan detection and displayed metadata.
  • Improved ChName editing with long-press behavior.
  • Improved spectrum analyzer persistence by saving additional parameters.
  • Improved spectrum scan-range UI by showing bandwidth instead of unused frequencyChangeStep.
  • Improved DCS display format (homologated index on 2 digits).
  • Improved secondary channel UX by displaying VFO_Lock while receiving on first channel.

Fixed

  • Fixed S-meter behavior during scan reception.
  • Fixed quick-PTT stuck squelch (listenPrevRssi seeding at listen entry).
  • Fixed Breakout beep audio setup order.
  • Fixed manual scan resume from active RX.
  • Fixed scan resume flow, AM/FM precheck, and list refresh behavior.
  • Fixed display overlap bug.
  • Fixed manual squelch spectrum line behavior (predictable 1 dB step, Issue #333).
  • Fixed manual spectrum behavior by skipping curve smoothing in manual mode (Issue #333).
  • Fixed aircopy replication by including VFO area in Settings map for scan-range source frequencies.

Maintenance

Credits

  • Thanks to @mrkusypl for major refactoring and optimizations contributions.
  • Integration and release flow by @armel.

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.).

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.5.0.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       13248 B        16 KB     80.86%
           FLASH:       95836 B       118 KB     79.31%
✅ Done: Fusion

Enjoy,

F4HWN v5.4.0

Choose a tag to compare

@armel armel released this 28 Apr 01:58
7863184

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl for his huge contributions!

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.4.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.4.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.4.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 75/75.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.4.0.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 74/75 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📺 Presentation video

I also made a presentation video for this release, available on my YouTube channel:

https://www.youtube.com/watch?v=W92YT8zw170

📋 Changelog

Added

  • Added WIDE/NARROW filter selection for AM RX.
  • Added scan progress gauge behind ENABLE_FEAT_F4HWN_SCAN_PROGRESS.
  • Added homologated CTCSS index display in Rx/Tx CTCSS menus.
  • Added tool for decoding packed Quansheng stock firmware images.

Improved

  • Improved entering text into ChName in a multi-tap system (PR #310, thanks @mrkusypl).
  • Improved ChName editing with press EXIT backspace (Issue #281).
  • Improved Spectrum UI and workflow.
  • Improved FM Radio and UI (PR #268, Thanks @mrkusypl).
  • Improved hidden menu behavior (starts from the first hidden item).
  • Improved SysInf.

Fixed

  • Fixed build when ENABLE_FMRADIO is disabled.
  • Fixed large-range spectrum stability (Issue #295).

Maintenance

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.).

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.4.0.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       13024 B        16 KB     79.49%
           FLASH:       91948 B       118 KB     76.10%
✅ Done: Fusion

Enjoy,

F4HWN v5.3.1

Choose a tag to compare

@armel armel released this 31 Mar 16:56
61aa14c

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl and @Tunas1337 for their valuable help.

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.3.1 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.3.1.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.3.1.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 75/75.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.3.1.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 74/75 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📋 Changelog

  • Fixed squelch level resetting to 1 upon restart (issue #246)
  • Add Rx audio profiles for AM (issue #244)

About AM,  the idea is to offer different AM profiles, just like in FM.
Depending on the modulation type, the SetRxA (64/69) menu or the RxA action assigned to a key such as F1, F2, M allows you to switch the audio profile.

In FM, the profiles remain the same as before: FLAT, CLEAN, MID, BOOST, and MAX.

In AM, the available profiles are now: SHARP, STOCK, and OPEN.

  • SHARP uses a narrow IF filter with low gain, making it selective and precise, with better adjacent channel rejection. As you reported, it can sometimes sound harsh or distorted on strong signals, but it always remains clear.
  • STOCK is designed to stay as close as possible to the stock firmware, based on my current understanding of the BK4829 settings and behavior.
  • OPEN uses a wider IF filter with higher gain, making it more open and pleasant to listen to, with better sensitivity on weak signals. As you reported, some receptions may sound a bit muffled, especially on ATC.

Regarding the issue encountered by some users, who need to enable MONITOR in order to receive AM signals, I do not know the cause and I have never been able to reproduce it on my side. Therefore, leave MONITOR enabled if needed, or revert to the stock firmware if it works better for you. You are also free to investigate on your own and propose concrete solutions (with code...). As for me, I will not spend any more time on this point and I will close any related issues. I cannot fix problems that I do not observe and do not understand. I am not a wizard 🧙🏼‍♂️

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.).

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.3.1.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12480 B        16 KB     76.17%
           FLASH:       85708 B       118 KB     70.93%
✅ Done: Fusion

Enjoy,

F4HWN v5.3.0

Choose a tag to compare

@armel armel released this 28 Mar 22:27
064a203

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @mrkusypl and @Tunas1337 for their valuable help.

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.3.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.3.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.3.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 75/75.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.3.0.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 74/75 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📋 Changelog

  • Fix PWM frequency to suppress audio interference (issue #195)
  • Fix one and two letters scan list names (issue #206)
  • Fix overlap between Live DTMF and Unlock Keyboard (issue #215)
  • Fix breakout: reliable key handling from K5Viewer (issue #214)
  • Fix spectrum: reliable serial key input + USB-C unplug freeze fix (issue #212)
  • Fix SetVol keeps the changes despite Exit key is pressed (issue #200)
  • Backlight fading and improved backlight control in spectrum (PR #211, thanks @mrkusypl)
  • Align BK4829 (AGC, AM) with stock firmware
  • Replaced the previous Audio Bar with a new Audio Scope display (TX only…)
  • Improve Audi Scope (PR #238, PR #239, PR #241, PR #242, thanks @mrkusypl)
  • Reduce the lag between consecutive RX on both frequencies under DW mode (issue #198)
  • K5Viewer: more reliable key handling (PR #216, thanks @mrkusypl)
  • Code refactoring (PR #218, PR #225, PR #226, PR #229, PR #232, PR #234, thanks @mrkusypl)

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.).

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.3.0.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12480 B        16 KB     76.17%
           FLASH:       85384 B       118 KB     70.66%
✅ Done: Fusion

Enjoy,

F4HWN v5.2.0

Choose a tag to compare

@armel armel released this 06 Mar 01:12
8a8752f

🌐 Translate
Automatic translation is available via Google Translate: Open translated version.

🔥About this firmware

This firmware is a fork of the F4HWN custom firmware. It extends the work originally done for the UV-K5 V1 (DP32G030 MCU) and adapts it to the newer UV-K1 and UV-K5 V3, which are based on the PY32F071 MCU. It is the result of joint work by @muzkr and @armel. Many thanks to @Tunas1337 for his valuable help.

This release, called 🔥Fusion edition, merges into a single firmware all the different editions I previously released for the UV-K5 V1.

Warning

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.

⚙️ Getting Started

If you are already running 🔥Fusion Edition v5.x, there is nothing special to do: just Flash with 🔥Fusion Edition v5.2.0 as usual and start using the radio. Just make sure to also update the f4hwn.fusion.chirp.v5.2.0.py driver.

However, if you are coming from a factory firmware or from any version earlier than 🔥Fusion Edition v5.x, I recommend following the steps below:

  1. (Optional) From CHIRP, export your memory channels to CSV (using the v4.3 driver).

  2. Flash your UV-K1 or UV-K5 V3 with 🔥Fusion Edition v5.2.0.

  3. Enter the hidden menus by holding PTT + SIDE BUTTON 1️⃣ while powering on the radio, then release all keys and perform a RESET ALL, menu 75/75.

Warning

Due to the complete change in memory mapping, you will lose all your memory channels and all your settings.

  1. (Optional) Using CHIRP with the driver f4hwn.fusion.chirp.v5.2.0.py, you can reload your CSV file and copy / paste your old channels.

Warning

Do not try to import your CSV file, do a copy / paste instead !

The radio will restart with the new firmware.

Remember to set the navigation direction according to whether you are using a UV-K1 or a UV-K5 V3, using the hidden menu 74/75 SetNav.

📚 Wiki documentation

To complement these release notes, remember that a GitHub Wiki is available.

It brings together the main documentation in one place: getting started, programming with CHIRP, using UVTools2, radio operation, scanning, menu reference, button functions, advanced features, troubleshooting, and videos/tutorials.

If you are discovering 🔥 Fusion Edition, or if you need to quickly find details about a specific feature, the Wiki remains the best place to start.

📋 Changelog

  • Fix scan save channel (issue #143)
  • Fix last channel name character cropped (issue #148)
  • Fix bug Reset All channels 512 -> 768 (issue #156)
  • Fix can't save channel in some channel slots (issue #153)
  • Blink arrow on RX (issue #146)
  • Add named list
  • Add bidirectional scanlist navigation with F + UP/DOWN keys (issue #145)
  • Increase MIC gain values
  • Improve UI
  • Improve SMeter calibration (issue #162)
  • Code refactoring (thanks @mrkusypl)
  • UVTools2 add bootloader check control
  • K5Viewer add virtual keyboard control

🪛 Dumping and restoring calibration data

UVTools2 can also dump and restore calibration data, which is strongly recommended.
Ideally, you should:

  • create a calibration dump right after installing the F4HWN firmware, and
  • restore it before installing a different firmware (for example, when returning to the stock firmware).

Dump

  • Open UVTools2 in dump mode (or select the Dump Calib tab).
  • Power on your radio in normal mode.
  • Click Dump Calibration Data.

When the process is complete, click Download calibration.dat to save the file on your computer.

Note

A good practice is to rename your calibration file using the serial number of your radio, which is printed on the label on the back of the device (under the battery). This avoids mixing up calibration files if you own multiple units.

Restore

  • Open UVTools2 in restore mode (or select the Restore Calib tab).
  • Power on your radio in normal mode.
  • Select your calibration.dat file on your computer.
  • Click Restore Calibration Data and wait until the process fully completes.

🖥️ About the K5 Viewer feature

You can use K5 Viewer on your PC directly in Chrome-based browser (like Chrome, Edge, Opera, etc.).

Here is a quick tutorial for dummies:

  1. Flash your Quansheng UV-K1 or UV-K5 V3 with F4HWN 🔥 Fusion edition
  2. Keep the K5 connected to your PC via the USB cable (Baofeng/Kenwood like USB serial cable or USB C)
  3. Go to https://armel.github.io/k5viewer/
  4. Click Connect (and select the serial port)

That’s it. Nothing to install. Nothing to configure. Just plug and view 🤭

💾 CHIRP Support

A CHIRP f4hwn.fusion.chirp.v5.2.0.py driver supporting the UV-K1 and UV-K5 V3 is also included in this release. It allows reading and writing the radio’s memory channels, settings and basic parameters directly from CHIRP, just like with the UV-K5 V1.

This driver is provided for convenience and early testing. It may still evolve as feedback comes in, so feel free to open an issue or report any anomaly you notice.

⚙️ Build summary

Memory region         Used Size  Region Size  %age Used
             RAM:       12384 B        16 KB     75.59%
           FLASH:       85344 B       118 KB     70.63%
✅ Done: Fusion

Enjoy,

Armel F4HWN