MC7455 crash when LTE channel conditions are bad.

I am using the Sierra Wireless MC7455 Modem with an USB PCIe adapter. Whenever I have bad LTE channel condition, the modem crashes and I receive the error message:

[Thu Jan 25 07:01:03 2018] GobiSerial driver ttyUSB1: usb_serial_generic_write_bulk_callback - nonzero urb status: -71

The device stops working. I am unable to communicate via the serial port with the device (raises more of the above errors). The communication link also stays unresponsive: ifconfig eth0 claims, that the interface still has a valid IP-addresss, but sending only rasies the number of TX errors.

I am currently using the modem for our IoT Platform. This platform may often have bad channel conditions. Our application may also live with the interface not beeing able to send data for a while… but the error disappers only, when the modem is manually unplugged and reattached - which is not acceptable for us :frowning:

Can you please help me?

Last status information before crash: (note the SINR of -16 dB!. however, the modem is able to send ping or perform small HTTP requests)

Current Time:  483              Temperature: 27
Reset Counter: 2                Mode:        ONLINE
System mode:   LTE              PS state:    Attached
LTE band:      B20              LTE bw:      10 MHz
LTE Rx chan:   6300             LTE Tx chan: 24300
LTE CA state:  NOT ASSIGNED
EMM state:     Registered       Normal Service
RRC state:     RRC Idle
IMS reg state: No Srv

PCC RxM RSSI:  -61              RSRP (dBm):  -105
PCC RxD RSSI:  -98              RSRP (dBm):  -140
Tx Power:      0                TAC:         B043 (45123)
RSRQ (dB):     -20.0            Cell ID:     00D9AA02 (14264834)
SINR (dB):     -16.6

Used software/drivers:

  • OS: Linux with 4.9.61 Kernel
  • Hardware: Cortex A15 (armv7 architecture).
  • PCIe to USB Adapter
  • LTE Modem: Sierra Wireless MC7455
  • Firmware: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09
  • Drivers: Gobi Drivers (S2.30N2.48)
  • Network Operator: Vodafone Germany

Modem Information:

ati

Manufacturer: Sierra Wireless, Incorporated
Model: MC7455
Revision: SWI9X30C_02.24.05.06 r7040 CARMD-EV-FRMWR2 2017/05/19 06:23:09
MEID: 35907206082974
IMEI: 359072060829740
IMEI SV: 12
FSN: LQ716600190410
+GCAP: +CGSM

Network Operator: Vodafone Germany

at+cgdcont?
+CGDCONT: 1,"IP","web.vodafone.de","0.0.0.0",0,0,0,0
at+cops?
+cops: 0,0,"Vodafone.de mobilcom-debitel",7

Does the modem reboot at this point? If so, then the driver errors are probably only symptoms of the reboot. The dmesg output should show if there is a USB disconnect/reconnect sequence.

If it does in fact reboot then I’d started checking the power supply. The bad signal conditions can cause the modem to need more power than usual, which might end up with a brownout if the USB PCIe adapter is uable to provide enough. Note that the MC7455 PTS gives a peak current averaged over 100 µs as high as 2.24 A ! Whether you can meet that depends on the USB cable, port and PCIe adapter. And the adpater will probably need a capacitor of some size to be able to guarantee it. It can’t otherwise expect to convert 500 mA (or even 1A at best) at 5V to 2.24 A at 3.3V. If you use a cable between the USB port and the adapter, then you have to consider the voltage drop there too. This can be significant when the adapter draws max current from the port. 5V is not much, and any drop might be a problem depending on the quality of the regulators on the adapter. Note that the modem typically draws 500+ mA, which will casue a significant drop in most USB cables.

So: Use quality USB cables only, and as short as possible. Try another USB PCIe adapter. Preferably one where the regulators and power supply design has been given some thought. If they exist… I cannot recommend any, unfortuately.

Thanks for the fast reply. I tried the following:

  • Soldered additional capacitors onto the power supply to stabilize the power control (both on 3.3V and 5.0V side).
  • Tried to raise the 3.3 V supply voltage in order to counteract minor voltage drops (Datasheet claims that the modem supports input voltage range up to 3.6 V)
  • I detected, that there was a Voltage drop in the USB cables (0.4V over 10 cm!!), which caused the power supply to not work correctly
    -> I soldered an additional, external powersupply onto the Adapter with enough capacity. It should be now more than stable (3 A continous and 4 A peak on 3.3V side).

But, the modem/usb-stack still crashes. Now, when I run the ‘at!scact=1,1’ command. Note, that the SINR is below 0 dB at this point of time. When I unplug the device and reattach, the modem seems NOT to have rebooted due to the external power supply (the Current time still runs and Reset Counter did not increase).
I either receive the nonzero urb -71 error, or the usb device resets.

Modem Status before crash:

!GSTATUS:
Current Time:  1736             Temperature: 26
Reset Counter: 1                Mode:        ONLINE
System mode:   LTE              PS state:    Attached
LTE band:      B20              LTE bw:      10 MHz
LTE Rx chan:   6300             LTE Tx chan: 24300
LTE CA state:  NOT ASSIGNED
EMM state:     Registered       Normal Service
RRC state:     RRC Idle
IMS reg state: No Srv

PCC RxM RSSI:  -66              RSRP (dBm):  -103
PCC RxD RSSI:  -98              RSRP (dBm):  -140
Tx Power:      0                TAC:         B093 (45203)
RSRQ (dB):     -20.0            Cell ID:     00CE7C03 (13532163)
SINR (dB):     -8.2

Dmesg extract of the crash 1:

GobiSerial driver ttyUSB1: usb_serial_generic_write_bulk_callback - nonzero urb status: -71

Dmesg extract of the crash 2:

[Fr Jan 26 11:30:51 2018] GobiNet 2-1:1.8 eth0: register 'GobiNet' at usb-0000:00:14.0-1, GobiNet Ethernet Device, e2:42:62:11:ba:4c   
[Fr Jan 26 11:30:51 2018] USB Speed : USB 3.0                                                                                          
[Fr Jan 26 11:30:51 2018] GobiNet 2-1:1.8 lte0: renamed from eth0                                                                      
[Fr Jan 26 11:30:51 2018] IPv6: ADDRCONF(NETDEV_UP): lte0: link is not ready                                                           
[Fr Jan 26 11:30:51 2018] GobiNet 2-1:1.8 lte0: kevent 12 may have been dropped                                                        
[Fr Jan 26 11:30:51 2018] IPv6: ADDRCONF(NETDEV_UP): lte0: link is not ready                                                           
[Fr Jan 26 11:30:56 2018] creating qcqmi0                                                                                              
[Fr Jan 26 11:30:56 2018] RawIP mode                                                                                                   
[Fr Jan 26 11:31:06 2018] IPv6: ADDRCONF(NETDEV_CHANGE): lte0: link becomes ready                                                      
[Fr Jan 26 11:31:06 2018] GobiNet 2-1:1.8 lte0: kevent 12 may have been dropped                                                        
[Fr Jan 26 11:31:07 2018] usb 2-1: USB disconnect, device number 29                                                                    
[Fr Jan 26 11:31:07 2018] GobiSerial driver ttyUSB0: GobiSerial converter now disconnected from ttyUSB0
[Fr Jan 26 11:31:07 2018] GobiSerial 2-1:1.0: device disconnected
[Fr Jan 26 11:31:07 2018] GobiSerial driver ttyUSB1: GobiSerial converter now disconnected from ttyUSB1
[Fr Jan 26 11:31:07 2018] GobiSerial 2-1:1.3: device disconnected
[Fr Jan 26 11:31:07 2018] GobiNet 2-1:1.8 lte0: unregister 'GobiNet' usb-0000:00:14.0-1, GobiNet Ethernet Device
[Fr Jan 26 11:31:07 2018] usb 2-1: new SuperSpeed USB device number 30 using xhci_hcd
[Fr Jan 26 11:31:07 2018] usb 2-1: config 1 has an invalid interface number: 3 but max is 2
[Fr Jan 26 11:31:07 2018] usb 2-1: config 1 has an invalid interface number: 8 but max is 2
[Fr Jan 26 11:31:07 2018] usb 2-1: config 1 has no interface number 1
[Fr Jan 26 11:31:07 2018] usb 2-1: config 1 has no interface number 2
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] GobiSerial 2-1:1.0: GobiSerial converter detected
[Fr Jan 26 11:31:07 2018] usb 2-1: GobiSerial converter now attached to ttyUSB0
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] GobiSerial 2-1:1.3: GobiSerial converter detected
[Fr Jan 26 11:31:07 2018] usb 2-1: GobiSerial converter now attached to ttyUSB1
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Disable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:07 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:07 2018] GobiNet 2-1:1.8 eth0: register 'GobiNet' at usb-0000:00:14.0-1, GobiNet Ethernet Device, e2:42:62:11:ba:4c
[Fr Jan 26 11:31:07 2018] USB Speed : USB 3.0
[Fr Jan 26 11:31:07 2018] GobiNet 2-1:1.8 lte0: renamed from eth0
[Fr Jan 26 11:31:07 2018] IPv6: ADDRCONF(NETDEV_UP): lte0: link is not ready
[Fr Jan 26 11:31:09 2018] usb 2-1: USB disconnect, device number 30            
[Fr Jan 26 11:31:09 2018] GobiSerial driver ttyUSB0: GobiSerial converter now disconnected from ttyUSB0
[Fr Jan 26 11:31:09 2018] GobiSerial 2-1:1.0: device disconnected        
[Fr Jan 26 11:31:09 2018] GobiSerial driver ttyUSB1: GobiSerial converter now disconnected from ttyUSB1
[Fr Jan 26 11:31:09 2018] GobiSerial 2-1:1.3: device disconnected
[Fr Jan 26 11:31:09 2018] GobiNet 2-1:1.8 lte0: unregister 'GobiNet' usb-0000:00:14.0-1, GobiNet Ethernet Device
[Fr Jan 26 11:31:09 2018] usb 2-1: new SuperSpeed USB device number 31 using xhci_hcd
[Fr Jan 26 11:31:09 2018] usb 2-1: config 1 has an invalid interface number: 3 but max is 2
[Fr Jan 26 11:31:09 2018] usb 2-1: config 1 has an invalid interface number: 8 but max is 2
[Fr Jan 26 11:31:09 2018] usb 2-1: config 1 has no interface number 1
[Fr Jan 26 11:31:09 2018] usb 2-1: config 1 has no interface number 2
[Fr Jan 26 11:31:09 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:09 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:09 2018] usb 2-1: Disable of device-initiated U1 failed.
[Fr Jan 26 11:31:09 2018] usb 2-1: Disable of device-initiated U2 failed.
[Fr Jan 26 11:31:09 2018] usb 2-1: Enable of device-initiated U1 failed.
[Fr Jan 26 11:31:09 2018] usb 2-1: Enable of device-initiated U2 failed.
[Fr Jan 26 11:31:09 2018] GobiNet 2-1:1.8 eth0: register 'GobiNet' at usb-0000:00:14.0-1, GobiNet Ethernet Device, e2:42:62:11:ba:4c
[Fr Jan 26 11:31:09 2018] USB Speed : USB 3.0
[Fr Jan 26 11:31:09 2018] GobiNet 2-1:1.8 lte0: renamed from eth0
[Fr Jan 26 11:31:09 2018] IPv6: ADDRCONF(NETDEV_UP): lte0: link is not ready
[Fr Jan 26 11:31:09 2018] GobiNet 2-1:1.8 lte0: kevent 12 may have been dropped
[Fr Jan 26 11:31:09 2018] IPv6: ADDRCONF(NETDEV_UP): lte0: link is not ready
[Fr Jan 26 11:31:24 2018] creating qcqmi0
[Fr Jan 26 11:31:24 2018] RawIP mode
...