Firmware Upgrades - df8oe/UHSDR GitHub Wiki

Firmware Upgrades

Most of the bits that make the mcHF a radio, are performed in software using DSP techniques. As such, keeping the firmware up to date is critical to getting the most from your radio. The latest code will be found in the git repository started by DF8OE hosting this wiki. At optimal times the releases of testing or stable versions are published. This is done when speed of development has decreased and a version is not changed much for several days. Of course the releases can contain issues - this is natural behaviour for EVERY software or firmware... If you choose testing or stable releases, you can rest there for a while and send issue reports to this GitHub. If you want to test the newest features you can get daily snapshots which are built from every active-devel stage where functional changes have been made. Those familiar with open source projects will be familiar with the mcHF development model.

Currently there are four methods of getting the firmware for first time or as upgrade onto the radio

  1. Recommended for Upgrades: Upgrading via USB Key or USB cable using the UHSDR bootloader.
    This requires the UHSDR bootloader to be installed first. First time firmware installation and firmware upgrade plus upgrade of the bootloader is possible with this method. Bootloader upgrades are only support using a USB cable, not via USB drive! Not suitable for first time bootloader installation!
    See this document for instructions.
  2. First Time Installation or Upgrades: The P6-Jumper Method.
    This method is used to install the bootloader for the first time, same instructions can be used to later upgrade both bootloader and firmware. These require the closing of a jumper called P6 on the UI board. For that reason only recommended to be used if not other method works. I.e. in general only for the first time bootloader install or if a bootloader install was unsuccessful and the machine does not boot.
    See bootloader_install.pdf for instructions.
  3. Development Experts: Uploading using ST-Link Debugger.
    This is for expert use, but once setup very easy to use. See firmware development pages for more details. First Time Install and Upgrade of the firmware and bootloader is possible with this method.
  4. Not recommended: Firmware Upgrade (old version via pc and mchf-manager).
    Requires M0NKA bootloader 0.0.14 to be installed first. Bootloader update not possible with this method.
Method Connection SW Required BL First Install BL Upgrade FW First Install FW Upgrade
P6 - Jumper Mini USB Cable Yes Yes Yes Yes Yes
UHSDR Bootloader Mini USB Cable Yes Yes Yes Yes Yes
UHSDR Bootloader USB Drive No No No Yes Yes
ST-LINK SWD Connector P8 Yes Yes Yes Yes Yes
M0NKA Bootloader Mini USB Cable Yes No No Yes Yes

FAQ

  1. Q: Is my hardware compatible with firmware release x.y.z?

    A: If you have an unmodified Version 0.4 (or 0.3) the firmware should work. If you made the modifications as documented in this wiki, it should work. If you made other modifications, it may or may not work. For 0.5 hardware the answer is more complex, but in general yes. Please see FAQ 0.5. For 0.6 there are many different "0R-configuration possibilities" which may confuse but they cover all recommended modes (touchscreen, LCD in SPI or parallel e.g.).

  2. Q: Do I have to reenter my settings after a firmware upgrade?

    A: In general the answer is no. Currently only when going from 0.219.26.x or older to any newer version, all settings have to be reentered (once). Remember to save the changed settings.

  3. Q: Do I need the newest bootloader to run the newest firmware?

    A: No. All bootloaders can run the newest firmware. This may change in future, but for now, if you like your bootloader, you don't have to upgrade it. However, the UHSDR team recommends to use newer bootloaders since they are much easier to use.

  4. Q: Where can I get the newest firmware or bootloader files?

    A: Here !

Updating via USB Stick or USB cable [Cable requires bootloader 2.2.3 or newer]

The UHSDR bootloader supports two different approaches for updating. The first approach is to use a USB drive holding the firmware, the second approach uses a PC, some standard PC software (Windows, MacOS & Linux) and a USB cable.

The drive approach has certain benefits and limitations:

  • no need of a computer connection
  • no need to use closed source OS specific software
  • you cannot update the bootloader with this method

The cable approach has certain benefits:

  • no need to use closed source OS specific software
  • no need to transfer the firmware or bootloader image to a drive
  • bootloader can be updated as well

Using older bootloaders older than 2.2.3

This is no longer recommended. Older bootloaders have shown issues in detecting certain USB drives, and they don't have the bootloader update capabilities (or any ability to update via USB cable). However, if you have an older bootloader installed and it works fine for you, you can keep using it. Be aware that the development team does not test if these old bootloaders will continue to work in the future.

Initial Install of The UHSDR/DF8OE Bootloader 2.2.3 or Newer

See instructions in the Wiki. This page links to the appropriate documents. If in doubt, it is recommended to use the P6-Jumper method as described in the documents.

Update Procedure

See this document to get the instructions for the most recent bootloader. It is recommended to keep the instructions for the installed bootloader saved to your computer disk (of course you can access the instructions for older bootloaders which are also in the git history, but using the local copy may be faster).

A flashing backlight indicates an error state. Bootloaders from 2.2.3 onwards use a new, simpler error code indication method, please see instructions given above for the error codes.

The USB stick bootloader does not support programming firmware via mcHF-manager! You will need to use DfuSe (Windows) or dfu-util (Linux, MacOS X) to programm the mcHF via a USB cable. Please read the instructions in the document linked above for more information.

⚠️ **GitHub.com Fallback** ⚠️