How to get your module out of QDL mode

Question

My module is stuck in QDL mode. How do I recover it?

Solution

The recovery of a module from QDL mode can never be guaranteed. However, there are a few steps that can be taken that has proven to work for customers.

What is QDL mode?

QDL stands for Qualcomm (Emergency) Download Loader mode, it is sometimes referred to "boot-and-hold" mode. It's the state the module is set to by the upgrade software when being flashed with a firmware.

A module in QDL mode should still be visible in your host OS, now with PID 9009 or 9008. Check device manager in Windows or lsusb on Linux. Here are a few examples of how a module in QDL can be distinguished on a Linux system:

SimTech HS-USB QDLoader 9009 (VID_1E0E/PID_9009)
Bus 002 Device 002: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

How can I avoid my module ending up in QDL mode?

For a module to enter QDL mode on their own something has had to have gone wrong, for example an incorrect power shutdown sequence. A risk with abrupt power losses without the proper shutdown sequence could be that the modem was writing to a specific memory location during the power loss resulting in a partly corrupted file system. Then the modem will crash every time it tries to access that specific location.

When integrating a modem into your application, it's always of most importance to have read through and be familiar with the modem's HW guide. In these you can find instructions on how a safe power shut down should be handled by the application.

Sierra Wireless modules can end up in QDL because of their SED (Smart Error Detection) functionality. Their modules uses a form of SED that tracks consecutive resets occurring soon after power-on. After a sixth consecutive reset, the module waits in boot-and-hold mode for a firmware download to resolve the power-cycle problem.

How do I recover my module from QDL mode?

Just like the name suggest, when a module is in QDL mode it is waiting to be flashed with a firmware image. Therefore the solution that has proven to work is to try and perform a firmware upgrade on the module. Preferably both on a Linux and Windows system. However, this is not a guarantee to work. Some modules in this state are just impossible to recover.

Sierra Wireless

Sierra Wireless modules show up with PID 9090 when in QDL mode. You can manually set your module to this with the AT command AT!BOOTHOLD which will trigger a restart of the module, loading into the new PID.

Linux Tools

The Sierra Wireless MBPL SampleApps includes the lite-fwdwl-tool. With this tool it is possible to reset a device that is in QDL mode into normal operational mode. Download the package here.

In SDK -> MBPL_SDK_R35_ENG4-fwdwl.bin.tar.gz -> SampleApps -> lite-fw-download you will find a ReadMe and then fwdwl-lite tool in the bin folder.

Run the following command:

sudo ./fwdwl-litehostx86_64 -r -d /dev/ttyUSB0   

If your dev port doesn't match you can query the correct port with:

ls -l /dev/serial/by-id

The module will restart in the correct mode, you can check this with lsusb. If it's still in QDL mode you can try two things (from fwdwl's readme):

  1. Download a FW CWE image to bring the modem back to APP mode. However, the device might be in low power mode due to an image mismatch.

  2. Perform an image switch FW download with both a FW CWE image and a matching carrier PRI image. This step should also bring the modem back to ONLINE mode.

Windows Tools

Another solution is to run the Windows FDT tool once. It will most likely then give an error message, but it will extract files to a temporary FDT folder as well: %temp%/FDT

Navigate with your Windows file browser to this path above.

You should find it containing something like (CWE and NVU file dependent on your FW version):

combo_script.txt

fdt2.exe

GobiApi.dll

SWI9X30C_02.24.05.06.cwe

SWI9X30C_02.24.05.06_GENERIC_002.026_000.nvu

Execute the exe file: fdt2.exe

It will then try to force load the single firmware file SWI9X30C_02.24.05.06.cwe to the module, but no config file.

If this firmware update succeeds, it should bring the module back to operational state mode. Now you should run the firmware updater the normal way to have the config file applied properly also.

Recent FAQ

Shopping cart

No items added yet

Check out our products and product categories

Continue to products