Hello,
I’m experiencing some problems with the Base HAT, maybe interference related.
The product is placed on top of a x86 Raspberry compatible board (ROCK Pi X, RockpiX - Radxa Wiki) and the modem is a Quectel EC25-E.
The modem has been configured to work in ECM mode; the packet switched network is prepared with PDP context, the host network interface is statically configured with IP address, gateway and DNS. Data connection is quite stable and I can reach Internet without any issue.
Everything is fine until the modem have to operate with the circuit switched network: if I start a call with the ATD command, after a couple of seconds, the USB part stops to work: all ttyUSB devices disappear; the system log reports the worrying message “usb usb1-port4: disabled by hub (EMI?), re-enabling…”; the host network interface disappears. The modem however seems to continue working: the remote phone starts ringing, I can see the red led on and the blue one blinking on the HAT, but there is no way to interface with it. At this point the solution is only one: resetting the HAT/modem toggling the power (unplugging the USB or rebooting the system).
The behaviour is exactly the same if the modem receives an incoming call: just before the caller hears the ring tone, the USB part stops to work while the call is still ongoing (the caller continues to hear the ring tone, until he hangs up).
In order to narrow down the possible causes, we tried various actions.
We contacted Quectel support and they suggested a firmware update; so we updated the module.
We used a different modem (a U-Blox TOBY-L210, that works without any issue inside a board with an integrated MiniPCIE slot).
We connected the HAT to the USB port using a cable with a ferrite core.
We changed the antenna and we placed it 2 meters from the board.
We detached the HAT from the ROCK Pi X and we connected directly to a laptop, only with the USB cable.
Thinking it can be the environment, we moved to another office, 15 kilometers away…
Nothing is changed, the results are always the same.
You can find attached some info regarding the system and the logs of AT commands and sys kernel, while reproducing the errors.
Are the Raspberry Pi 3G/4G<E Base HAT not compatible with call?
Is there anyone experiencing the same issue?
Thank you.
System Info
root@simurlab02:/home/simurprobe# uname -sr
Linux 4.9.0-7-amd64
root@simurlab02:/home/simurprobe# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Bus 001 Device 002: ID 03f0:3f40 HP, Inc
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@simurlab02:/home/simurprobe# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 480M
|__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 4: Dev 3, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 3, If 4, Class=Communications, Driver=cdc_ether, 480M
|__ Port 4: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 4: Dev 3, If 5, Class=CDC Data, Driver=cdc_ether, 480M
|__ Port 4: Dev 3, If 3, Class=Vendor Specific Class, Driver=option, 480M
root@simurlab02:/home/simurprobe# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3
root@simurlab02:/home/simurprobe# dmesg | grep tty
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.9.0-7-amd64 root=UUID=49558dae-2e3c-4307-b8a1-e1a8edd768fb ro console=tty1 console=ttyS0,115200 quiet rootdelay=4 cryptopts=target=mmcblk0p4_crypt,source=/dev/disk/by-uuid/fa9cbcf4-baf1-4fab-a9ec-80f4a813097f,keyscript=/lib/cryptsetup/scripts/opendisk.sh
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.9.0-7-amd64 root=UUID=49558dae-2e3c-4307-b8a1-e1a8edd768fb ro console=tty1 console=ttyS0,115200 quiet rootdelay=4 cryptopts=target=mmcblk0p4_crypt,source=/dev/disk/by-uuid/fa9cbcf4-baf1-4fab-a9ec-80f4a813097f,keyscript=/lib/cryptsetup/scripts/opendisk.sh
[ 0.000000] console [tty1] enabled
[ 0.000000] console [ttyS0] enabled
[ 1.290922] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 1.298820] 8086228A:00: ttyS1 at MMIO 0x91921000 (irq = 39, base_baud = 2764800) is a 16550A
[ 1.305568] 8086228A:01: ttyS2 at MMIO 0x9191f000 (irq = 40, base_baud = 2764800) is a 16550A
[ 29.279796] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
[ 29.280101] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1
[ 29.280500] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB2
[ 29.280916] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB3
root@simurlab02:/home/simurprobe# cat /sys/kernel/debug/usb/devices
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 7
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 4.09
S: Manufacturer=Linux 4.9.0-7-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:00:14.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=03f0 ProdID=3f40 Rev=11.00
S: Manufacturer=HP
S: Product=v222w
S: SerialNumber=AA0000000170
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=31875us
T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=2c7c ProdID=0125 Rev= 3.18
S: Manufacturer=Android
S: Product=Android
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E: Ad=89(I) Atr=03(Int.) MxPS= 16 Ivl=32ms
I: If#= 5 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 4.09
S: Manufacturer=Linux 4.9.0-7-amd64 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:00:14.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
root@simurlab02:/home/simurprobe# dmesg
[...]
[ 28.969098] usb 1-4: new high-speed USB device number 3 using xhci_hcd
[ 29.120797] usb 1-4: New USB device found, idVendor=2c7c, idProduct=0125
[ 29.120814] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 29.120825] usb 1-4: Product: Android
[ 29.120834] usb 1-4: Manufacturer: Android
[ 29.214615] usbcore: registered new interface driver usbserial
[ 29.214664] usbcore: registered new interface driver usbserial_generic
[ 29.214704] usbserial: USB Serial support registered for generic
[ 29.216884] cdc_ether 1-4:1.4 usb0: register 'cdc_ether' at usb-0000:00:14.0-4, CDC Ethernet Device, 96:29:c9:63:41:2b
[ 29.216958] usbcore: registered new interface driver cdc_ether
[ 29.224088] usbcore: registered new interface driver cdc_wdm
[ 29.229152] usbcore: registered new interface driver qmi_wwan
[ 29.279216] usbcore: registered new interface driver option
[ 29.279268] usbserial: USB Serial support registered for GSM modem (1-port)
[ 29.279441] option 1-4:1.0: GSM modem (1-port) converter detected
[ 29.279796] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
[ 29.279893] option 1-4:1.1: GSM modem (1-port) converter detected
[ 29.280101] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB1
[ 29.280252] option 1-4:1.2: GSM modem (1-port) converter detected
[ 29.280500] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB2
[ 29.280705] option 1-4:1.3: GSM modem (1-port) converter detected
[ 29.280916] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB3
[ 29.290225] cdc_ether 1-4:1.4 enp0s20u4i4: renamed from usb0
[...]
root@simurlab02:/home/simurprobe# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:e0:4c:88:02:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.88/24 brd 192.168.100.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe88:259/64 scope link
valid_lft forever preferred_lft forever
3: enp0s20u4i4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 96:29:c9:63:41:2b brd ff:ff:ff:ff:ff:ff
inet 192.168.225.40/24 brd 192.168.225.255 scope global enp0s20u4i4
valid_lft forever preferred_lft forever
inet6 fe80::9429:c9ff:fe63:412b/64 scope link
valid_lft forever preferred_lft forever
Modem Info
ATI
Quectel
EC25
Revision: EC25EFAR06A11M4G
OK
AT+CREG?
+CREG: 0,1
OK
AT+CEREG?
+CEREG: 2,1,"8108","1083020",7
AT+CSQ
+CSQ: 20,99
OK
AT+QCFG="usbnet"?
+QCFG: "usbnet",1
OK
AT+QCFG="band"
+QCFG: "band",0xd3,0x1a0000800d5,0x0
OK
AT+QCSQ
+QCSQ: "LTE",72,-106,118,-17
OK
AT+QNWINFO
+QNWINFO: "FDD LTE","22210","LTE BAND 3",1850
CASE 1: OUTGOING CALL
ATD+39347•••••••;
OK
+CGREG: 1,"7934","772F",0
+CEREG: 4
FATAL: term closed {{ picocom exits }}
{{ The called terminal rings }}
root@simurlab02:/home/simurprobe# dmesg
[...]
[ 3826.305185] usb usb1-port4: disabled by hub (EMI?), re-enabling...
[ 3826.312460] usb 1-4: USB disconnect, device number 3
[ 3826.313495] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 3826.313633] option 1-4:1.0: device disconnected
[ 3826.315353] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
[ 3826.315430] option 1-4:1.1: device disconnected
[ 3826.420559] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
[ 3826.420622] option 1-4:1.2: device disconnected
[ 3826.422003] option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
[ 3826.422082] option 1-4:1.3: device disconnected
[ 3826.422579] cdc_ether 1-4:1.4 enp0s20u4i4: unregister 'cdc_ether' usb-0000:00:14.0-4, CDC Ethernet Device
[ 3827.478950] usb usb1-port4: Cannot enable. Maybe the USB cable is bad?
[ 3828.378948] usb usb1-port4: Cannot enable. Maybe the USB cable is bad?
[ 3828.386736] usb usb1-port4: attempt power cycle
[ 3829.594924] usb usb1-port4: Cannot enable. Maybe the USB cable is bad?
[ 3830.494926] usb usb1-port4: Cannot enable. Maybe the USB cable is bad?
[ 3830.502710] usb usb1-port4: unable to enumerate USB device
root@simurlab02:/home/simurprobe# ls /dev/ttyUSB*
ls: impossibile accedere a '/dev/ttyUSB*': File o directory non esistente
root@simurlab02:/home/simurprobe# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 03f0:3f40 HP, Inc
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@simurlab02:/home/simurprobe# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:e0:4c:88:02:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.88/24 brd 192.168.100.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe88:259/64 scope link
valid_lft forever preferred_lft forever
{{ The called terminal continues ringing }}
CASE 2: INCOMING CALL
AT
OK
{{ Caller starts the call }}
+CGREG: 1,"7934","772F",0
+CEREG: 4
FATAL: term closed {{ picocom exits }}
{{ Caller hears the ring tone }}
Like the previous case, all ttyUSB devices are now lost.