I am absolutely banging my head against the wall trying to make a script to flash 4 firmwares to more than 1 EM7565 modems connected to the PC at the same time in order to try and speed up production.
Right now I have to disable 1 of the modems USB ports and update that modem then after its finished rebooting I have to disable that port and flash the next.
The fdt2.exe update utility needs some work in windows.
Why does the fdt2.exe process spawn another cmd terminal???
fdt2.exe does not appear to reliably support updating 2 devices at once / having 2 devices in bootloader / QDLoader port mode at the same time
The -usbhub and -usbport switches do not appear to work and have very poor documentation. Some say the values are what is listed in usbdevview, some say it’s just 1,2,3,4, some say it refers to the com port number and not the USB device number. Some say not to add a space between like this -usbhub4, but when I do that the output log looks wrong.
Why does running the fdt2.exe with no command line arguments and no combo_script.txt randomly flash some firmware?
Here are my 2 commands that I am trying to launch in separate processes
fdt2.exe -usbport 18 -usbhub1 -mi -ignswto -a -multi -f SWI9X50C_01.11.00.00.cwe SWI9X50C_01.14.20.00.cwe SWI9X50C_01.14.22.00.cwe SWI9X50C_01.11.00.00_TELSTRA_002.007_002.nvu SWI9X50C_01.14.20.00_VERIZON_002.058_000.nvu SWI9X50C_01.14.22.00_ATT_002.071_001.nvu SWI9X50C_01.14.22.00_GENERIC_002.057_000.nvu -impref SWI9X50C_01.14.22.00.cwe SWI9X50C_01.14.22.00_GENERIC_002.057_000.nvu -log “C:\CellUpdate\out1”
If windows firmware update is not fully supported for production firmware loads I will put together a Linux system.
It seems fdt2.exe has been around for years and I don’t see much support for Linux flashing
It seems there is much confusion on what the -usbport and -usbhub switches refer to. Some say it’s the what is listed in usbdevview, some say it’s just 1,2,3,4, some say it refers to the com port number and not the USB device number.
I am looking for a set of commands that run cleanly every time with a one click of the batch file loading the 4 firmwares for every modem ideally at least 4 connected to a USB hub at a time. After the flash i unplug the hub and replace the 4 LTE modules and repeat.
It seems the parallel use of fdt2 tool is perilous anyways and my best choice is to have to do this unless someone can educate me with a workable set of commands that repeatedly work.
This is what Id really rather not have to do but if that’s what it takes for repeatable good flashing without headaches that is what I will do.
Example cell devices to program on a USB hub ports 1,2,3,4,
disable USB ports 2,3,4
program device on 1
enable USB 2, disable USB 1
program device on 2
enable 3, disable 2
program device on 3
enable 4, disable 3
program device on 4
verify all firmwares here or after every program with the at serial command.
Previously the fdt2 command would not overwrite firmware that was already loaded but when I combine all 4 firmwares in 1 command the tool just overwrites everything. Hopefully the onboard flash on these modems is not of the very limited write cycle type.
Thank you for reading this far to any angels out there trying to help me out.
we are using a dummy port (i.e. /dev/ tty_dummy_USB) in “-d” option. In this case, after module reset, the application cannot find dummy port, it will quit after timeout. (or user can simply kill the application after seeing “Waiting for modem to come up in BOOT and HOLD mode …”)
Check kernel log by dmesg to find out the enumerated download port of EM7511 module. In this example, /dev/ttyUSB0 is enumerated by EM7511.
Thanks for the reply with the huge list of Linux links. Looks like another solid day of setup.
I’d rather not waste another day on something that may not work as these linux commands appear to not verified to work for parallel firmware updates and don’t see the command switches (-multi, etc) I suspect i would need.
Im also not sure the USB ports enumeration will line up with the com port enumeration in Linux as I replace the modules. Aka once /dev/ttyUSB0 lines up with /dev/cdc-wdm0 will it always use that CDC port or vice versa?
I also have 4 firmwares to load on each cell modems, not just the 1 in your example.
Flailing and failing is getting old but I suspect Linux could not be worse than this fdt2.exe windows command from my nightmares.
A one click script that repeatable runs a set of commands that doesn’t need any further config after initial setup is what I’m looking for.
Thanks, I saw this in my sierrawireless.com site scouring and this amazingly seems to work when doing the 4 modem updates sequentially!
The cell modules have to be on the same 4 port usb hub however as the larger 7 port hubs have a different USB numbering scheme in Windows which breaks the fdt2.exe unknown -usbport and -usbhub logic.
It took 12 minutes to update the 4 modems sequentially with the 4 separate firmware’s. Next up to try updating in async mode but I am happy if the sequential mode is stable and works every time.
I also discovered why the fdt2.exe executable was launching a separate cmd window, if my cmd process didn’t have Admin privilege’s the fdt2.exe would launch the separate cmd window, if I did have Admin it executed in the same cmd window.
This also explains why my usbdeview /disable commands were not working as that needs admin as well.