# Batch Firmware Update Using fdt2.exe

**URL:** <https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066>\
**Category:** MC/EM Series\
**Created:** [January 26, 2022, 1:53am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066 "2022-01-26T01:53:04Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 26, 2022, 1:53am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/1 "2022-01-26T01:53:04Z")

</div>

I have been trying to do a batch LTE module (EM7565) firmware update using **fdt2.exe** (3 modules in one go).

Each of these modules are assembled into individual M.2 NGFF wireless WWAN to USB adapter card and they are all connected to a USB hub and the hub is connected to a Windows 10 computer.

When I tried to perform update simultaneously on all three modules by launching 3 instances of **fdt2.exe** using the following arguments set:-

1st instance: _fdt2.exe -d g5k -usbport20 -a -force -multi -f SWI9X50C\_01.14.02.00.cwe SWI9X50C\_01.14.02.00\_ATT\_002.047\_002.nvu -log C:\fdtlogs_

2nd instance: fdt2 -d g5k -usbport24 -a -force -multi -f SWI9X50C\_01.14.02.00.cwe SWI9X50C\_01.14.02.00\_ATT\_002.047\_002.nvu -log C:\fdtlogs

3rd instance: fdt2.exe -d g5k -usbport26 -a -force -multi -f SWI9X50C\_01.14.02.00.cwe SWI9X50C\_01.14.02.00\_ATT\_002.047\_002.nvu -log C:\fdtlogs

only one of the instances work and other 2 instances would not work and replied with following error(s):

> FDT version: 2.0.2012.0  
> Awaiting adapter …  
> Setting images preference …  
> Disabling selective suspend …  
> Firmware download failed.  
> Primary error code: 51 - Failed to switch device to BOOT&HOLD mode.  
> Secondary error code: 201 - Failed to switch device to QDL mode.  
> Device error code: 0x0 - Unknown device error code.

Is there mistake in my arguments setting on the **fdt2.exe** console?

Similarly, if I just run one instance but specify only the usbhub argument (i.e., usbhub7 since the hub port number is 7) and removed usbport argument, only one modules gets updated while the other 2 modules are not updated.

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [January 26, 2022, 2:58am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/2 "2022-01-26T02:58:47Z")

</div>

how about typing AT!BOOTHOLD first on each module

Also did you miss a space after -usbport ?

> [@Multiple module firmware update](https://forum.sierrawireless.com/t/multiple-module-firmware-update/21744/7):
>
> One more questions please: I am trying to figure out, what should be used as USB port number in this case? I am trying to use either the Loc ID from usbview.exe software or COM port number. None of them is working. Any thoughts please? THanks

---

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 27, 2022, 1:33am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/3 "2022-01-27T01:33:20Z")

</div>

> how about typing AT!BOOTHOLD first on each module

Doing this will disconnect the module from the computer (i.e., WWAN modem under **Modems** disappeared in Device Manager) and set the module into QDLoader mode (which appeared as a COM port device in Device Manager). However when I tried to run the fdt2 using that QDLoader COM port number, it complained about no MBN adapter available.

fdt2 -d g5k -usbport13 -a -force -multi -f SWI9X50C\_01.14.02.00.cwe SWI9X50C\_01.14.02.00\_ATT\_002.047\_002.nvu -log C:\fdtlogs  
FDT version: 2.0.2012.0  
Awaiting adapter …  
Firmware download failed.  
Primary error code: 14 - No MBN adapter available.  
Secondary error code: 0 - Not applicable.  
Device error code: 0x0 - Unknown device error code.

> Also did you miss a space after -usbport ?

Don’t think this is the issue as I used the same usbport setting.

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [January 27, 2022, 1:36am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/4 "2022-01-27T01:36:17Z")

</div>

how about just one module with only one DM port after AT!BOOTHOLD?  
e.g.  
fdt2 SWI9X50C\_01.14.02.00.cwe

---

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 27, 2022, 1:52am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/5 "2022-01-27T01:52:49Z")

</div>

> how about just one module with only one DM port after AT!BOOTHOLD?

That would work (programming a single module) regardless whether I set AT!BOOTHOLD or not. My goal is to program maybe up to 20 modules at one go in parallel.

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [January 27, 2022, 2:03am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/6 "2022-01-27T02:03:55Z")

</div>

That means "-d g5k -usbport13 -a -force -multi -f " is making the NO MBN problem???  
if so, which parameter makes the problem?

---

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 27, 2022, 3:28am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/7 "2022-01-27T03:28:50Z")

</div>

> That means "-d g5k -usbport13 -a -force -multi -f " is making the NO MBN problem???

It’s programming the modules in parallel that’s problematic. It doesn’t work when all instances (i.e. running 3 fdt2.exe at the same time) are run at the same time. Only one of the instances will go through and able to program successfully.

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [January 27, 2022, 3:41am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/8 "2022-01-27T03:41:33Z")

</div>

could it be PC problem?

Here says no problem to upgrade multiple modules:

> [@Multiple module firmware update](https://forum.sierrawireless.com/t/multiple-module-firmware-update/21744/8):
>
> Hi Wiviacom, USB port number is modem port in Sierra Wireless WWAN Modem. For example: usbport is 246 fdt2.exe -f WP76xx\_Release16\_GENERIC.spk -usbport 246 -multi

---

<div class="post-metadata">

**Author:** ![mlw](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/mlw/32/3706_2.png) [@mlw](https://forum.sierrawireless.com/u/mlw)\
**Post date:** [January 28, 2022, 8:35am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/9 "2022-01-28T08:35:21Z")

</div>

@kean-fei.woo

I got this working on my PC, just change the .txt to .bat, its just a text file so you can open it with any text editor.  
[Multipe running.txt](https://forum.sierrawireless.com/uploads/short-url/wkYnkN2O5HpVTXba4gVKGrmYJUZ.txt) (184 Bytes)

Regards

Matt

---

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 28, 2022, 11:19am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/10 "2022-01-28T11:19:03Z")

</div>

@mlw

How is the \*.spk file created? I specify \*.cwe and \*.nvu files instead using -f argument.

---

<div class="post-metadata">

**Author:** ![mlw](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/mlw/32/3706_2.png) [@mlw](https://forum.sierrawireless.com/u/mlw)\
**Post date:** [January 28, 2022, 1:29pm UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/11 "2022-01-28T13:29:24Z")

</div>

@kean-fei.woo

So the spk file is a combined nvu (carrier config files)/cwe (signaling firmware) file, we prefer to push spk files out because it means there is limited scope for customers to pair them incorrectly which can cause nasty side effects.

The spk files are on the source but of you have nvu/cwe files you can create an spk using [swicwe](https://source.sierrawireless.com/resources/airprime/software/swicwe/#sthash.leIBr8HM.dpbs) (which has to be used on Linux and is only for WP units, not for EM/MC but you could try it I guess).

Regards

Matt

---

<div class="post-metadata">

**Author:** ![kean-fei.woo](https://avatars.discourse-cdn.com/v4/letter/k/d6d6ee/32.png) [@kean-fei.woo](https://forum.sierrawireless.com/u/kean-fei.woo)\
**Post date:** [January 31, 2022, 7:53pm UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/12 "2022-01-31T19:53:07Z")

</div>

@mlw

Here’s what I did, I launched two fdt2.exe instances at the same time but somehow only one module gets updated while the other one is stuck in **Awaiting DM Port…**

 ![LTE Module Firmware Update Failure](https://us1.discourse-cdn.com/flex025/uploads/sierrawireless/original/2X/d/dbee8752691dcedd698ff8fedebe85c42beb4c2e.jpeg)

Both of them connected to a Windows computer via a 7 ports USB-hub

---

<div class="post-metadata">

**Author:** ![richey216](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/richey216/32/7426_2.png) [@richey216](https://forum.sierrawireless.com/u/richey216)\
**Post date:** [May 1, 2022, 2:33am UTC](https://forum.sierrawireless.com/t/batch-firmware-update-using-fdt2-exe/26066/13 "2022-05-01T02:33:36Z")

</div>

Try just using -usbport, for each command run:

-usbport 1  
-usbport 2  
-usbport 3  
-usbport 4

Works for me, even though windows reports the usb COM port to be 43, 47, 51, 62, etc. I’ve done this with the EM7565 and flashed 4 at once on Windows 10 with a powered usb hub.  
Make sure there is a space in there in: -usbport 1

Here is an example of one of my commands:

fdt2.exe -d g5k -f fw1.cwe fw2.cwe pri1.nvu pri2.nvu -usbport 1 -multi -mi -impref fw1.cwe pri1.nvu
