================ Firmware Upgrade ================ .. sidebar:: Contents .. contents:: :depth: 3 :local: Firmware upgrades are essential to ensure optimal performance, bug fixes, security patches, and support for new features on all hardware. This chapter explains how to upgrade the firmware of the different hardware components available in OSDx devices, detailing the necessary steps, precautions, and best practices to avoid errors. Quectel LTE and 5G modules ========================== For OSDx devices with Quectel cellular modules installed, OSDx offers an operational command that allows the firmware of these modules to be upgraded. Requirements and precautions ---------------------------- Upgrading the firmware of Quectel cellular modules requires the use of operational command :osdx:op:`controllers cellular * upgrade-firmware *`, only available from OSDx versions 4.2.4.3 and 4.2.5.0 onwards. Furthermore, it is extremely important that the file containing the firmware to be upgraded has been provided by the manufacturer itself or by a trusted source (since the firmware file must be compatible with both the hardware model and the firmware version currently installed on it). Steps in the Upgrade Process ----------------------------- In this section, we will explain all the steps required to upgrade the firmware of Quectel cellular modules. By way of example, we will take the upgrading of the EC25E model from firmware version **EC25EFAR06A01M4G_TEL_01.200.01.200** to version **EC25EFAR06A01M4G_TEL_01.300.01.300** (as provided by Quectel). **Step 1:** Check the model and the firmware version currently installed on the cellular module using operational command :osdx:op:`controllers cellular * show device-info`. .. code-block:: none :emphasize-lines: 6 admin@osdx$ controllers cellular wwan0 show device-info Module Manufacturer = Quectel Module Model = EC25E Module Firmware = EC25EFAR06A01M4G_TEL Hardware Revision = 10000 Modem/App Firmware = EC25EFAR06A01M4G_TEL_01.200.01.200 IMEI = 866308062070222 Radio Interfaces = gsm, umts, lte Data Service Capability = non-simultaneous-cs-ps Maximum TX/RX rate supported = 50000/100000 Kbps **Step 2:** Load the file containing the firmware upgrade onto the OSDx device. We recommend performing this process through a wired network connection to the OSDx device and using SCP to copy the file from an external system. .. code-block:: none $ scp -O ./EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz admin@192.168.1.1: admin@192.168.1.1's password: EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz 100% 71MB 15.5MB/s 00:04 **Step 3:** Locate the file containing the firmware and unzip it. To do this, use the :osdx:op:`file uncompress *` operational command. The process may take several seconds to complete and, when it's finished, a folder containing all the files needed for the firmware upgrade process will appear. .. code-block:: none :emphasize-lines: 5 admin@osdx$ file show running:// ------------------------------------------------------------------------------------------------------- Name Type Size Last modified ------------------------------------------------------------------------------------------------------- EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz application/x-xz 72MB 2026 Jul 15 08:41 auth/ directory 12KB 2024 Jun 6 config.boot regular file, no read permission 940B 2025 Mar 12 coredump/ directory 1.0KB 2026 Jul 15 08:12 kerneldump/ directory 1.0KB 2025 Mar 9 log/ directory 11KB 2026 Jul 15 08:08 qlog/ directory 4.4KB 2024 Oct 12 save-hist/ directory 1.0KB 2019 Feb 14 scripts/ directory 1.0KB 2023 Jun 27 support/ directory 1.0KB 2023 Jun 27 tcn-publisher/ directory 8.7KB 2026 Jul 15 08:07 user-data/ directory 1.0KB 2024 Oct 12 .. code-block:: none admin@osdx$ file uncompress running://EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz .. code-block:: none :emphasize-lines: 6 admin@osdx$ file show running:// ------------------------------------------------------------------------------------------------------- Name Type Size Last modified ------------------------------------------------------------------------------------------------------- EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz application/x-xz 72MB 2026 Jul 15 08:41 EC25EFAR06A01M4G_TEL_01.300.01.300/ directory 111MB 2025 Jul 22 auth/ directory 12KB 2024 Jun 6 config.boot regular file, no read permission 940B 2025 Mar 12 coredump/ directory 1.0KB 2026 Jul 15 08:12 kerneldump/ directory 1.0KB 2025 Mar 9 log/ directory 11KB 2026 Jul 15 08:08 qlog/ directory 4.4KB 2024 Oct 12 save-hist/ directory 1.0KB 2019 Feb 14 scripts/ directory 1.0KB 2023 Jun 27 support/ directory 1.0KB 2023 Jun 27 tcn-publisher/ directory 8.7KB 2026 Jul 15 08:07 user-data/ directory 1.0KB 2024 Oct 12 **Step 4:** Run the firmware upgrade process. To do this, use the :osdx:op:`controllers cellular * upgrade-firmware *` operational command. The module is prepared, the firmware is flashed and the module is then automatically restarted and reconfigured. Only the main milestones are shown on screen (the full output of the flashing tool is saved to the system log). This process may take a while and, when it is finished, the command verifies that the installed firmware matches the one just flashed and message **Firmware upgrade of cellular module wwan0 completed successfully** should appear if the firmware has been duly upgraded. .. code-block:: none :emphasize-lines: 29,30 admin@osdx$ controllers cellular wwan0 upgrade-firmware running://EC25EFAR06A01M4G_TEL_01.300.01.300 [000.069] Preparing cellular module wwan0 for the firmware upgrade... [005.458] Waiting for cellular module wwan0 to be ready... [005.494] Cellular module wwan0 is ready. [005.503] Upgrading firmware of cellular module wwan0... [007.007] -- Totals checking 17 files md5 value, 0 file fail! [008.009] -- switch to 'Emergency download mode' [008.018] -- successful, wait module reboot [009.088] -- Sahara protocol completed [017.627] -- upgrade progress 0% 16384/225479672 [017.723] -- upgrade progress 0% 568028/225479672 [017.757] -- upgrade progress 0% 726684/225479672 [017.827] -- upgrade progress 0% 1133888/225479672 [018.755] -- upgrade progress 3% 7030080/225479672 [019.684] -- upgrade progress 5% 12926272/225479672 [021.372] -- upgrade progress 10% 23674176/225479672 [027.941] -- upgrade progress 29% 65617216/225479672 [029.630] -- upgrade progress 33% 76365120/225479672 [036.207] -- upgrade progress 52% 118308160/225479672 [044.587] -- upgrade progress 76% 171785536/225479672 [052.962] -- upgrade progress 99% 225262912/225479672 [053.003] -- upgrade progress 100% 225479672/225479672 [054.013] -- THE TOTAL DOWNLOAD TIME IS 44.987 s [054.021] -- Upgrade module successfully. [054.032] Firmware of cellular module wwan0 flashed successfully. [054.040] Waiting for cellular module wwan0 to reset... [080.149] Reconfiguring cellular module wwan0... [093.655] Cellular module wwan0 reconfigured. [093.740] Firmware version verified: cellular module wwan0 reports 'EC25EFAR06A01M4G_TEL_01.300.01.300'. [093.748] Firmware upgrade of cellular module wwan0 completed successfully. **Step 5:** Delete all files used for the upgrade from the OSDx device. To do this, use the :osdx:op:`file delete *` operational command. In this case, both the compressed file and the folder generated when it was decompressed must be deleted. .. code-block:: none admin@osdx$ file delete running://EC25EFAR06A01M4G_TEL_01.300.01.300.tar.xz Do you want to delete the file? (y/n): y .. code-block:: none admin@osdx$ file delete running://EC25EFAR06A01M4G_TEL_01.300.01.300 Do you want to delete the directory? (y/n): y .. code-block:: none admin@osdx$ file show running:// ---------------------------------------------------------------------------- Name Type Size Last modified ---------------------------------------------------------------------------- auth/ directory 12KB 2024 Jun 6 config.boot regular file, no read permission 940B 2025 Mar 12 coredump/ directory 1.0KB 2026 Jul 15 08:12 kerneldump/ directory 1.0KB 2025 Mar 9 log/ directory 11KB 2026 Jul 15 08:08 qlog/ directory 4.4KB 2024 Oct 12 save-hist/ directory 1.0KB 2019 Feb 14 scripts/ directory 1.0KB 2023 Jun 27 support/ directory 1.0KB 2023 Jun 27 tcn-publisher/ directory 8.7KB 2026 Jul 15 08:07 user-data/ directory 1.0KB 2024 Oct 12 **Step 6:** The firmware upgrade process already verifies the installed version automatically in Step 4, but you may additionally confirm it manually by checking the firmware version currently installed on the cellular module. .. code-block:: none :emphasize-lines: 6 admin@osdx$ controllers cellular wwan0 show device-info Module Manufacturer = Quectel Module Model = EC25E Module Firmware = EC25EFAR06A01M4G_TEL Hardware Revision = 10000 Modem/App Firmware = EC25EFAR06A01M4G_TEL_01.300.01.300 IMEI = 866308062070222 Radio Interfaces = gsm, umts, lte Data Service Capability = non-simultaneous-cs-ps Maximum TX/RX rate supported = 50000/100000 Kbps .. note:: If, after the upgrade, the cellular module or its service do not work properly, force a restart of the controller with the :osdx:op:`controllers cellular * restart` operational command.