Sierra Wireless EM7455: How to enable COM ports
Various EM7455 devices coming from different brands and sale channels are often configured differently. They come with different firmware versions installed, different settings, and some ports can be switched on or off. Sometimes COM ports are off when you get the device, but it is useful to have a COM port enabled in order to do extended diagnostics and alter some settings that are normally not possible.
So what do you need to enable the COM ports for your EM7455?
The instructions below are for Windows users. If you can easily find your way in Linux, just skip it and note that you
only basically need to run ./swi_setusbcomp.pl –-usbcomp=8
to enable COM ports. Follow this link for more
info: https://www.mork.no/~bjorn/MC7455-fix-orig.txt
Download and unpack the following image file: UbuntuLive.7z
Then, download and install UltraISO software. Trial mode is enough for our purposes. UltraISO download link.
Insert a spare empty USB Flash Drive into your laptop. Make sure it’s 8GB or more. Smaller drive won’t work because this image was prepared on a 8GB USB Flash drive.
Launch UltraISO and open the image file “UbuntuLive.ima” you downloaded previously. Use File -> Open menu to do that. Then, navigate to Bootable -> Write Disk Image. You will see the following window:
Make sure that the correct USB Flash drive is selected in Disk Drive field. Make sure it’s not your disk C: or any of your hard drives. Don’t change any other options. Then click “Write” to write the image to the USB Flash drive. After it’s done, close UltraISO.
Now you need to reboot your laptop and enter the BIOS. Make sure that the boot settings in your BIOS is set to “Legacy mode” and not to “UEFI mode”. Also make sure that booting from USB Flash drive is enabled in your BIOS. Then save your BIOS settings and exit from the BIOS. If all is correct, you will see Ubuntu Live boot menu. Select “Try Ubuntu without installing” in the menu and press ENTER. Ubuntu will boot and you should see the Ubuntu desktop:
Now, right-click on the desktop and select “Open Terminal”. Enter the following commands:
sudo -i
and then
./swi_usbcomp.pl
The sample output is shown below:
ubuntu@ubuntu:~$ sudo -i
root@ubuntu:~# ./swi_usbcomp.pl
Running in MBIM mode (driver=cdc_mbim)
MBIM OPEN succeeded
QMI msg '0x0021' returned status = 1
MBIM QMI support verified
supports 33 QMI subsystems:
0x00 (1.5) 'QMI_CTL' - Control service
0x01 (1.67) 'QMI_WDS' - Wireless data service
0x02 (1.14) 'QMI_DMS' - Device management service
0x03 (1.25) 'QMI_NAS' - Network access service
0x04 (1.6) 'QMI_QOS' - Quality of service, err, service
0x05 (1.10) 'QMI_WMS' - Wireless messaging service
0x07 (1.3) 'QMI_AUTH' - Authentication service
0x08 (1.2) 'QMI_AT' - AT command processor service
0x09 (2.1) 'QMI_VOICE' - Voice service
0x0a (2.24) 'QMI_CAT2' - Card application toolkit service (new)
0x0b (1.45) 'QMI_UIM' - UIM service
0x0c (1.4) 'QMI_PBM' - Phonebook service
0x0f (1.0) 'QMI_TEST' - Test service
0x10 (2.0) 'QMI_LOC' - Location service
0x11 (1.0) 'QMI_SAR' - Specific absorption rate service
0x17 (1.0) 'QMI_TS' - Thermal sensors service
0x18 (1.0) 'QMI_TMD' - Thermal mitigation device service
0x1a (1.16) 'QMI_WDA' - Wireless data administrative service
0x1d (1.1) 'QMI_CSVT' - Circuit switched videotelephony service
0x22 (1.0) 'QMI_COEX' - Coexistence service
0x24 (1.0) 'QMI_PDC' - Persistent device configuration service
0x29 (1.0) 'QMI_RFRPE' - RF radiated performance enhancement service
0x2a (1.0) 'QMI_DSD' - Data system determination service
0x2b (1.0) 'QMI_SSCTL' - Subsystem control service
0x2e (1.0) 'unknown' -
0x30 (1.0) 'unknown' -
0x31 (1.0) 'unknown' -
0x36 (1.0) 'unknown' -
0xe1 (1.0) 'QMI_RMS' - Remote management service
0xf0 (1.0) 'unknown' -
0xf3 (1.0) 'unknown' -
0xf5 (1.0) 'unknown' -
0xf6 (1.0) 'unknown' -
QMI msg '0x0022' returned status = 1
Got QMI DMS client ID '3'
QMI msg '0x555b' returned status = 1
Current USB composition: 9
USB compositions:
0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED
1 - HIP DM NMEA AT MDM1 MS NOT SUPPORTED
2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED
3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED
4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED
5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED
6 - DM NMEA AT QMI SUPPORTED
7 - DM NMEA AT RMNET1 RMNET2 RMNET3 NOT SUPPORTED
8 - DM NMEA AT MBIM SUPPORTED
* 9 - MBIM SUPPORTED
10 - NMEA MBIM NOT SUPPORTED
11 - DM MBIM NOT SUPPORTED
12 - DM NMEA MBIM NOT SUPPORTED
13 - Config1: comp6 Config2: comp8 NOT SUPPORTED
14 - Config1: comp6 Config2: comp9 NOT SUPPORTED
15 - Config1: comp6 Config2: comp10 NOT SUPPORTED
16 - Config1: comp6 Config2: comp11 NOT SUPPORTED
17 - Config1: comp6 Config2: comp12 NOT SUPPORTED
18 - Config1: comp7 Config2: comp8 NOT SUPPORTED
19 - Config1: comp7 Config2: comp9 NOT SUPPORTED
20 - Config1: comp7 Config2: comp10 NOT SUPPORTED
21 - Config1: comp7 Config2: comp11 NOT SUPPORTED
22 - Config1: comp7 Config2: comp12 NOT SUPPORTED
QMI msg '0x0023' returned status = 1
root@ubuntu:~#
We can see that the current USB composition for the EM7455 is set to 9, which is MBIM only. We need to have MBIM and also COM ports for the AT commands and NMEA GPS data. So we need the USB composition 8.
Just enter the following command to set the USB composition to 8:
./swi_usbcomp.pl –-usbcomp=8
The output is shown below:
root@ubuntu:~# ./swi_usbcomp.pl --usbcomp=8
Running in MBIM mode (driver=cdc_mbim)
MBIM OPEN succeeded
QMI msg '0x0021' returned status = 1
MBIM QMI support verified
supports 33 QMI subsystems:
0x00 (1.5) 'QMI_CTL' - Control service
0x01 (1.67) 'QMI_WDS' - Wireless data service
0x02 (1.14) 'QMI_DMS' - Device management service
0x03 (1.25) 'QMI_NAS' - Network access service
0x04 (1.6) 'QMI_QOS' - Quality of service, err, service
0x05 (1.10) 'QMI_WMS' - Wireless messaging service
0x07 (1.3) 'QMI_AUTH' - Authentication service
0x08 (1.2) 'QMI_AT' - AT command processor service
0x09 (2.1) 'QMI_VOICE' - Voice service
0x0a (2.24) 'QMI_CAT2' - Card application toolkit service (new)
0x0b (1.45) 'QMI_UIM' - UIM service
0x0c (1.4) 'QMI_PBM' - Phonebook service
0x0f (1.0) 'QMI_TEST' - Test service
0x10 (2.0) 'QMI_LOC' - Location service
0x11 (1.0) 'QMI_SAR' - Specific absorption rate service
0x17 (1.0) 'QMI_TS' - Thermal sensors service
0x18 (1.0) 'QMI_TMD' - Thermal mitigation device service
0x1a (1.16) 'QMI_WDA' - Wireless data administrative service
0x1d (1.1) 'QMI_CSVT' - Circuit switched videotelephony service
0x22 (1.0) 'QMI_COEX' - Coexistence service
0x24 (1.0) 'QMI_PDC' - Persistent device configuration service
0x29 (1.0) 'QMI_RFRPE' - RF radiated performance enhancement service
0x2a (1.0) 'QMI_DSD' - Data system determination service
0x2b (1.0) 'QMI_SSCTL' - Subsystem control service
0x2e (1.0) 'unknown' -
0x30 (1.0) 'unknown' -
0x31 (1.0) 'unknown' -
0x36 (1.0) 'unknown' -
0xe1 (1.0) 'QMI_RMS' - Remote management service
0xf0 (1.0) 'unknown' -
0xf3 (1.0) 'unknown' -
0xf5 (1.0) 'unknown' -
0xf6 (1.0) 'unknown' -
QMI msg '0x0022' returned status = 1
Got QMI DMS client ID '3'
QMI msg '0x555b' returned status = 1
Current USB composition: 9
USB compositions:
0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED
1 - HIP DM NMEA AT MDM1 MS NOT SUPPORTED
2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED
3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED
4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED
5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED
6 - DM NMEA AT QMI SUPPORTED
7 - DM NMEA AT RMNET1 RMNET2 RMNET3 NOT SUPPORTED
8 - DM NMEA AT MBIM SUPPORTED
* 9 - MBIM SUPPORTED
10 - NMEA MBIM NOT SUPPORTED
11 - DM MBIM NOT SUPPORTED
12 - DM NMEA MBIM NOT SUPPORTED
13 - Config1: comp6 Config2: comp8 NOT SUPPORTED
14 - Config1: comp6 Config2: comp9 NOT SUPPORTED
15 - Config1: comp6 Config2: comp10 NOT SUPPORTED
16 - Config1: comp6 Config2: comp11 NOT SUPPORTED
17 - Config1: comp6 Config2: comp12 NOT SUPPORTED
18 - Config1: comp7 Config2: comp8 NOT SUPPORTED
19 - Config1: comp7 Config2: comp9 NOT SUPPORTED
20 - Config1: comp7 Config2: comp10 NOT SUPPORTED
21 - Config1: comp7 Config2: comp11 NOT SUPPORTED
22 - Config1: comp7 Config2: comp12 NOT SUPPORTED
QMI msg '0x555c' returned status = 1
QMI msg '0x0023' returned status = 1
root@ubuntu:~#
Check again if the USB composition switch was successful:
root@ubuntu:~# ./swi_usbcomp.pl
Running in MBIM mode (driver=cdc_mbim)
MBIM OPEN succeeded
QMI msg '0x0021' returned status = 1
MBIM QMI support verified
supports 33 QMI subsystems:
0x00 (1.5) 'QMI_CTL' - Control service
0x01 (1.67) 'QMI_WDS' - Wireless data service
0x02 (1.14) 'QMI_DMS' - Device management service
0x03 (1.25) 'QMI_NAS' - Network access service
0x04 (1.6) 'QMI_QOS' - Quality of service, err, service
0x05 (1.10) 'QMI_WMS' - Wireless messaging service
0x07 (1.3) 'QMI_AUTH' - Authentication service
0x08 (1.2) 'QMI_AT' - AT command processor service
0x09 (2.1) 'QMI_VOICE' - Voice service
0x0a (2.24) 'QMI_CAT2' - Card application toolkit service (new)
0x0b (1.45) 'QMI_UIM' - UIM service
0x0c (1.4) 'QMI_PBM' - Phonebook service
0x0f (1.0) 'QMI_TEST' - Test service
0x10 (2.0) 'QMI_LOC' - Location service
0x11 (1.0) 'QMI_SAR' - Specific absorption rate service
0x17 (1.0) 'QMI_TS' - Thermal sensors service
0x18 (1.0) 'QMI_TMD' - Thermal mitigation device service
0x1a (1.16) 'QMI_WDA' - Wireless data administrative service
0x1d (1.1) 'QMI_CSVT' - Circuit switched videotelephony service
0x22 (1.0) 'QMI_COEX' - Coexistence service
0x24 (1.0) 'QMI_PDC' - Persistent device configuration service
0x29 (1.0) 'QMI_RFRPE' - RF radiated performance enhancement service
0x2a (1.0) 'QMI_DSD' - Data system determination service
0x2b (1.0) 'QMI_SSCTL' - Subsystem control service
0x2e (1.0) 'unknown' -
0x30 (1.0) 'unknown' -
0x31 (1.0) 'unknown' -
0x36 (1.0) 'unknown' -
0xe1 (1.0) 'QMI_RMS' - Remote management service
0xf0 (1.0) 'unknown' -
0xf3 (1.0) 'unknown' -
0xf5 (1.0) 'unknown' -
0xf6 (1.0) 'unknown' -
QMI msg '0x0022' returned status = 1
Got QMI DMS client ID '3'
QMI msg '0x555b' returned status = 1
Current USB composition: 8
USB compositions:
0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED
1 - HIP DM NMEA AT MDM1 MS NOT SUPPORTED
2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED
3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED
4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED
5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED
6 - DM NMEA AT QMI SUPPORTED
7 - DM NMEA AT RMNET1 RMNET2 RMNET3 NOT SUPPORTED
* 8 - DM NMEA AT MBIM SUPPORTED
9 - MBIM SUPPORTED
10 - NMEA MBIM NOT SUPPORTED
11 - DM MBIM NOT SUPPORTED
12 - DM NMEA MBIM NOT SUPPORTED
13 - Config1: comp6 Config2: comp8 NOT SUPPORTED
14 - Config1: comp6 Config2: comp9 NOT SUPPORTED
15 - Config1: comp6 Config2: comp10 NOT SUPPORTED
16 - Config1: comp6 Config2: comp11 NOT SUPPORTED
17 - Config1: comp6 Config2: comp12 NOT SUPPORTED
18 - Config1: comp7 Config2: comp8 NOT SUPPORTED
19 - Config1: comp7 Config2: comp9 NOT SUPPORTED
20 - Config1: comp7 Config2: comp10 NOT SUPPORTED
21 - Config1: comp7 Config2: comp11 NOT SUPPORTED
22 - Config1: comp7 Config2: comp12 NOT SUPPORTED
QMI msg '0x0023' returned status = 1
Nice, it worked! All we need now is to reset the EM7455 in order for the new USB composition to take effect. Enter the following command:
./swi_usbcomp.pl –-reset
root@ubuntu:~# ./swi_usbcomp.pl --reset
Running in MBIM mode (driver=cdc_mbim)
MBIM OPEN succeeded
QMI msg '0x0021' returned status = 1
MBIM QMI support verified
supports 33 QMI subsystems:
0x00 (1.5) 'QMI_CTL' - Control service
0x01 (1.67) 'QMI_WDS' - Wireless data service
0x02 (1.14) 'QMI_DMS' - Device management service
0x03 (1.25) 'QMI_NAS' - Network access service
0x04 (1.6) 'QMI_QOS' - Quality of service, err, service
0x05 (1.10) 'QMI_WMS' - Wireless messaging service
0x07 (1.3) 'QMI_AUTH' - Authentication service
0x08 (1.2) 'QMI_AT' - AT command processor service
0x09 (2.1) 'QMI_VOICE' - Voice service
0x0a (2.24) 'QMI_CAT2' - Card application toolkit service (new)
0x0b (1.45) 'QMI_UIM' - UIM service
0x0c (1.4) 'QMI_PBM' - Phonebook service
0x0f (1.0) 'QMI_TEST' - Test service
0x10 (2.0) 'QMI_LOC' - Location service
0x11 (1.0) 'QMI_SAR' - Specific absorption rate service
0x17 (1.0) 'QMI_TS' - Thermal sensors service
0x18 (1.0) 'QMI_TMD' - Thermal mitigation device service
0x1a (1.16) 'QMI_WDA' - Wireless data administrative service
0x1d (1.1) 'QMI_CSVT' - Circuit switched videotelephony service
0x22 (1.0) 'QMI_COEX' - Coexistence service
0x24 (1.0) 'QMI_PDC' - Persistent device configuration service
0x29 (1.0) 'QMI_RFRPE' - RF radiated performance enhancement service
0x2a (1.0) 'QMI_DSD' - Data system determination service
0x2b (1.0) 'QMI_SSCTL' - Subsystem control service
0x2e (1.0) 'unknown' -
0x30 (1.0) 'unknown' -
0x31 (1.0) 'unknown' -
0x36 (1.0) 'unknown' -
0xe1 (1.0) 'QMI_RMS' - Remote management service
0xf0 (1.0) 'unknown' -
0xf3 (1.0) 'unknown' -
0xf5 (1.0) 'unknown' -
0xf6 (1.0) 'unknown' -
QMI msg '0x0022' returned status = 1
Got QMI DMS client ID '3'
QMI msg '0x555b' returned status = 1
Current USB composition: 8
USB compositions:
0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED
1 - HIP DM NMEA AT MDM1 MS NOT SUPPORTED
2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED
3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED
4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED
5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED
6 - DM NMEA AT QMI SUPPORTED
7 - DM NMEA AT RMNET1 RMNET2 RMNET3 NOT SUPPORTED
* 8 - DM NMEA AT MBIM SUPPORTED
9 - MBIM SUPPORTED
10 - NMEA MBIM NOT SUPPORTED
11 - DM MBIM NOT SUPPORTED
12 - DM NMEA MBIM NOT SUPPORTED
13 - Config1: comp6 Config2: comp8 NOT SUPPORTED
14 - Config1: comp6 Config2: comp9 NOT SUPPORTED
15 - Config1: comp6 Config2: comp10 NOT SUPPORTED
16 - Config1: comp6 Config2: comp11 NOT SUPPORTED
17 - Config1: comp6 Config2: comp12 NOT SUPPORTED
18 - Config1: comp7 Config2: comp8 NOT SUPPORTED
19 - Config1: comp7 Config2: comp9 NOT SUPPORTED
20 - Config1: comp7 Config2: comp10 NOT SUPPORTED
21 - Config1: comp7 Config2: comp11 NOT SUPPORTED
22 - Config1: comp7 Config2: comp12 NOT SUPPORTED
QMI msg '0x002e' returned status = 1
eof
...propagated at ./swi_usbcomp.pl line 251.
root@ubuntu:~#
Now you can close the terminal and reboot the Ubuntu. Remove the USB Flash drive from your laptop and restore the boot settings in your BIOS if you altered it. Now boot back to Windows and you’ll see 3 COM ports appear in the Device Manager: AT port for commands, NMEA port for GPS data and Quallcomm diagnostic port. All of these ports can be very useful and I will describe working with them in one of my next posts.
That was the preferred method of enabling COM ports and you should try it first. There is also another way, which is not recommended, because it requires to install some Windows drivers that potentially can flash your EM7455 automatically without asking any permission. If you still need to do that, proceed with caution!
First, note what brand your device is (look at the sticker) and check the device ID in the Windows Device Manager. There can be the following ID for the EM7455 module:
VID : PID
413C : 81B6 - Dell DW5811e LTE version
413C : 81B8 - Dell DW5811e HSPA only version (do not get this)
1199 : 9071 - EM7455 Generic Sierra Wireless
1199 : 9079 - EM7455 Lenovo version
Then you’ll need to download your device’s corresponding driver:
Download Lenovo drivers Download Dell drivers Sierra Wireless Generic drivers
After downloading, unpack the driver by using 7Zip so you get the following files:
Dell driver:
Sierra Wireless driver:
For the Lenovo driver, it’s a little more complicated as 7Zip won’t recognize the file format to unpack it. To unpack it, first run the downloaded file:
Follow all the steps, including the path where you want the driver to be extracted. After extracting the drivers you will see the following dialog, make sure to untick “Install Sierra Wireless EM7455 Software now”:
After that, you will find the extracted driver at the location you specified:
Now, you need to run the extracted driver EXE file with USBCOMP=8 command line. For example:
Complete the driver installation, then wait for 20 minutes. The driver will install all corresponding files and change the USB composition, and COM ports will appear in your Device Manager. The EM7455 will restart several times during that process, do not reboot Windows before it’s finished. Just wait for 20 minutes after the driver is installed. It’s possible that the drivers will flash your EM7455 automatically with some newer software version during installation. Just allow it to do its work and DO NOT INTERRUPT the process. After the COM ports are enabled, you can uninstall the drivers, because they include a lot of unneeded bloatware, like some Windows services to change the firmware, etc. Well, the latter is up to you, I personally prefer not to have any extra program or service running in my laptop besides vanilla device drivers.
If you prefer to have just vanilla drivers, just run the extracted driver EXE file with EXTRACTDRIVERS=1 command line:
It will extract the drivers to some folder next to the driver EXE file: