[GH-ISSUE #135] Current support status for Quectel EC200A #107

Open
opened 2026-03-04 11:58:40 +03:00 by kerem · 15 comments
Owner

Originally created by @nafarinha on GitHub (Dec 14, 2025).
Original GitHub issue: https://github.com/4IceG/luci-app-3ginfo-lite/issues/135

Here's my OpenWRT setup.

luci-app-3ginfo-lite` (1.0.76-r20250609)
root@OpenWrt:~# ubus call system board

{
	"kernel": "6.12.50",
	"hostname": "OpenWrt",
	"system": "MediaTek MT7628AN ver:1 eco:2",
	"model": "MERCUSYS MB130-4G v1",
	"board_name": "mercusys,mb130-4g-v1",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "SNAPSHOT",
		"firmware_url": "https://downloads.openwrt.org/",
		"revision": "r31340-ea79b5875a",
		"target": "ramips/mt76x8",
		"description": "OpenWrt SNAPSHOT r31340-ea79b5875a",
		"builddate": "1759695017"
	}
}
root@OpenWrt:~# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  1, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 6.12
S:  Manufacturer=Linux 6.12.50 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=101c0000.ehci
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=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=6005 Rev= 3.18
S:  Manufacturer=Android
S:  Product=Android
S:  SerialNumber=0000
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0b(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=89(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=88(I) Atr=03(Int.) MxPS=  64 Ivl=4096ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Data retrieved by 3ginfo scripts

{
"conn_time":"-",
"conn_time_sec":"-",
"conn_time_since":"-",
"rx":"-",
"tx":"-",
"modem":"-",
"mtemp":"-",
"firmware":"-",
"cport":"/dev/ttyUSB1",
"protocol":"-",
"csq":"17",
"signal":"54",
"operator_name":"NOS",
"operator_mcc":"268",
"operator_mnc":"03",
"location":"Portugal",
"mode":"LTE",
"registration":"1",
"simslot":"-",
"imei":"-",
"imsi":"-",
"iccid":"-",
"lac_dec":"168",
"lac_hex":"A8",
"tac_dec":"-",
"tac_hex":"-",
"tac_h":"-",
"tac_d":"-",
"cid_dec":"87383693",
"cid_hex":"5355E8D",
"pci":"-",
"earfcn":"-",
"pband":"-",
"s1band":"-",
"s1pci":"-",
"s1earfcn":"-",
"s2band":"-",
"s2pci":"-",
"s2earfcn":"-",
"s3band":"-",
"s3pci":"-",
"s3earfcn":"-",
"s4band":"-",
"s4pci":"-",
"s4earfcn":"-",
"rsrp":"-",
"rsrq":"-",
"rssi":"-",
"sinr":"-"
}
+ RES=/usr/share/3ginfo-lite
+ /usr/share/3ginfo-lite/detect.sh
+ DEVICE=/dev/ttyUSB1
+ '[' -z /dev/ttyUSB1 ]
+ O=
+ '[' -e /usr/bin/sms_tool ]
+ sms_tool -D -d /dev/ttyUSB1 at 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?'
+ O='AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
+ CONFIG=modemdefine
+ + uci show modemdefine
+ grep -o '@modemdefine\[[0-9]*\]\.modem'
+ wc -l
xargs
+ MODEMZ=0
+ '[[' 0 -gt 1 ]]
+ '[[' 0 -eq 0 ]]
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SEC=wan
+ '[[' 0 -eq 1 ]]
+ '[' -z wan ]
+ CONN_TIME=-
+ RX=-
+ TX=-
+ + ifstatus wan
grep '"up": true'
+ NETUP=
+ '[' -n  ]
+ + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
awk '-F[, ]' '/^\+CSQ/ {print $2}'
+ CSQ=17
+ '[' x17 '==' x ]
+ '[' 17 -ge 0 -a 17 -le 31 ]
+ CSQ_PER=54
+ COPS=
+ COPS_MCC=
+ COPS_MNC=
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
+ awk '-F["]' '/^\+COPS:\s*.,2/ {print $2}'
+ COPS_NUM=26803
+ '[' -n 26803 ]
+ COPS_MCC=268
+ COPS_MNC=03
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
+ awk '-F["]' '/^\+COPS:\s*.,0/ {print $2}'
+ TCOPS=NOS
+ '[' xNOS '!=' x ]
+ COPS=NOS
+ '[' -z NOS ]
+ '[' -z NOS ]
+ + sed -n 2p
sms_tool -d /dev/ttyUSB1 at 'AT+COPS?'
+ + cut -d '"' -f2
tr -d '\r'
+ isp=26803
+ isp_num='268 03'
+ isp_numws=26803
+ LOCATIONFILE=/tmp/location
+ '[' -e /tmp/location ]
+ touch /tmp/location
+ cat /tmp/location
+ LOC=Portugal
+ '[' -n Portugal ]
+ cat /tmp/location
+ LOC=Portugal
+ '[[' Portugal '==' - ]]
+ awk '-F[;]' '/^26803;/ {print $2}' /usr/share/3ginfo-lite/mccmnc.dat
+ LOC=Portugal
+ '[' -n Portugal ]
+ echo Portugal
+ + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
+ xargsawk
 '-F[, ]' '/^\+CPIN:/ {print $0;exit}'
+ T='+CPIN: READY'
+ '[' -n '+CPIN: READY' ]
+ '[' '+CPIN: READY' '==' '+CPIN: READY' ]
+ + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
awk '-F[, ]' '/^\+CME ERROR:/ {print $0;exit}'
+ T=
+ '[' -n  ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?

+CSQ: 17,99

+CREG: 2,1,"00A8","5355E8D",7

+CPIN: READY

+COPS: 0,0,"NOS",7

+COPS: 0,2,"26803",7

OK
'
+ busybox awk '-F[,]' '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}'
+ eval 'T="1";LAC_HEX="A8";CID_HEX="5355E8D";LAC_DEC="168";CID_DEC="87383693";MODE_NUM="7"'
+ T=1
+ LAC_HEX=A8
+ CID_HEX=5355E8D
+ LAC_DEC=168
+ CID_DEC=87383693
+ MODE_NUM=7
+ REG=1
+ '[' -z 7 ]
+ '[' x7 '==' x0 ]
+ MODE=LTE
+ sms_tool -d /dev/ttyUSB1 at at+cereg
+ OTX='at+cereg

'
+ + echo 'at+cereg

'
+ sed 's/[^A-F0-9]//g'
awk '-F[,]' '/^\+CEREG/ {printf "%s", toupper($3)}'
+ TAC=
+ '[' x '!=' x ]
+ TAC=-
+ TAC_HEX=-
+ uci -q get '3ginfo.@3ginfo[0].device'
+ CONF_DEVICE=/dev/ttyUSB1
+ + grep -q 192.168.
echo x/dev/ttyUSB1
+ '[' -e /usr/bin/sms_tool ]
+ REGOK=0
+ '[' x1 '==' x1 ]
+ REGOK=1
+ getdevicevendorproduct /dev/ttyUSB1
+ basename /dev/ttyUSB1
+ devname=ttyUSB1
+ readlink -f /sys/class/tty/ttyUSB1/device
+ devpath=/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.3/ttyUSB1
+ T=/sys/devices/platform/101c0000.ehci/usb1/1-1
+ cat /sys/devices/platform/101c0000.ehci/usb1/1-1/idVendor
+ cat /sys/devices/platform/101c0000.ehci/usb1/1-1/idProduct
+ echo usb/2c7c6005
+ VIDPID=usb/2c7c6005
+ '[' -e /usr/share/3ginfo-lite/modem/usb/2c7c6005 ]
+ sanitize_string -
+ '[' -z - ]
+ + echo -
tr -d '\r\n'
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number -
+ '[' -z - ]
+ echo -
+ sanitize_number -
+ '[' -z - ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string /dev/ttyUSB1
+ '[' -z /dev/ttyUSB1 ]
+ + tr -d '\r\n'
echo /dev/ttyUSB1
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 17
+ '[' -z 17 ]
+ echo 17
+ sanitize_number 54
+ '[' -z 54 ]
+ echo 54
+ sanitize_string NOS
+ '[' -z NOS ]
+ + echo NOS
tr -d '\r\n'
+ sanitize_string 268
+ '[' -z 268 ]
+ echo 268
+ tr -d '\r\n'
+ sanitize_string 03
+ '[' -z 03 ]
+ echo 03
+ tr -d '\r\n'
+ sanitize_string Portugal
+ '[' -z Portugal ]
+ echo Portugal
+ tr -d '\r\n'
+ sanitize_string LTE
+ '[' -z LTE ]
+ + tr -d '\r\n'
echo LTE
+ sanitize_string 1
+ '[' -z 1 ]
+ + echo 1
tr -d '\r\n'
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 168
+ '[' -z 168 ]
+ echo 168
+ sanitize_string A8
+ '[' -z A8 ]
+ + tr -d '\r\n'
echo A8
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string -
+ '[' -z - ]
+ + echo -
tr -d '\r\n'
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 87383693
+ '[' -z 87383693 ]
+ echo 87383693
+ sanitize_string 5355E8D
+ '[' -z 5355E8D ]
+ echo 5355E8D
+ tr -d '\r\n'
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_string 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ sanitize_number 
+ '[' -z  ]
+ echo -
+ cat
+ exit 0

A screenshot of 3ginfo-lite GUI with what is currently working

Image
Originally created by @nafarinha on GitHub (Dec 14, 2025). Original GitHub issue: https://github.com/4IceG/luci-app-3ginfo-lite/issues/135 Here's my OpenWRT setup. ``` luci-app-3ginfo-lite` (1.0.76-r20250609) ``` ``` root@OpenWrt:~# ubus call system board { "kernel": "6.12.50", "hostname": "OpenWrt", "system": "MediaTek MT7628AN ver:1 eco:2", "model": "MERCUSYS MB130-4G v1", "board_name": "mercusys,mb130-4g-v1", "rootfs_type": "squashfs", "release": { "distribution": "OpenWrt", "version": "SNAPSHOT", "firmware_url": "https://downloads.openwrt.org/", "revision": "r31340-ea79b5875a", "target": "ramips/mt76x8", "description": "OpenWrt SNAPSHOT r31340-ea79b5875a", "builddate": "1759695017" } } ``` ``` root@OpenWrt:~# cat /sys/kernel/debug/usb/devices T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 6.12 S: Manufacturer=Linux 6.12.50 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=101c0000.ehci 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=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=2c7c ProdID=6005 Rev= 3.18 S: Manufacturer=Android S: Product=Android S: SerialNumber=0000 C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0b(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=89(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms ``` Data retrieved by 3ginfo scripts ``` { "conn_time":"-", "conn_time_sec":"-", "conn_time_since":"-", "rx":"-", "tx":"-", "modem":"-", "mtemp":"-", "firmware":"-", "cport":"/dev/ttyUSB1", "protocol":"-", "csq":"17", "signal":"54", "operator_name":"NOS", "operator_mcc":"268", "operator_mnc":"03", "location":"Portugal", "mode":"LTE", "registration":"1", "simslot":"-", "imei":"-", "imsi":"-", "iccid":"-", "lac_dec":"168", "lac_hex":"A8", "tac_dec":"-", "tac_hex":"-", "tac_h":"-", "tac_d":"-", "cid_dec":"87383693", "cid_hex":"5355E8D", "pci":"-", "earfcn":"-", "pband":"-", "s1band":"-", "s1pci":"-", "s1earfcn":"-", "s2band":"-", "s2pci":"-", "s2earfcn":"-", "s3band":"-", "s3pci":"-", "s3earfcn":"-", "s4band":"-", "s4pci":"-", "s4earfcn":"-", "rsrp":"-", "rsrq":"-", "rssi":"-", "sinr":"-" } + RES=/usr/share/3ginfo-lite + /usr/share/3ginfo-lite/detect.sh + DEVICE=/dev/ttyUSB1 + '[' -z /dev/ttyUSB1 ] + O= + '[' -e /usr/bin/sms_tool ] + sms_tool -D -d /dev/ttyUSB1 at 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?' + O='AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' + CONFIG=modemdefine + + uci show modemdefine + grep -o '@modemdefine\[[0-9]*\]\.modem' + wc -l xargs + MODEMZ=0 + '[[' 0 -gt 1 ]] + '[[' 0 -eq 0 ]] + uci -q get '3ginfo.@3ginfo[0].network' + SEC=wan + '[[' 0 -eq 1 ]] + '[' -z wan ] + CONN_TIME=- + RX=- + TX=- + + ifstatus wan grep '"up": true' + NETUP= + '[' -n ] + + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' awk '-F[, ]' '/^\+CSQ/ {print $2}' + CSQ=17 + '[' x17 '==' x ] + '[' 17 -ge 0 -a 17 -le 31 ] + CSQ_PER=54 + COPS= + COPS_MCC= + COPS_MNC= + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' + awk '-F["]' '/^\+COPS:\s*.,2/ {print $2}' + COPS_NUM=26803 + '[' -n 26803 ] + COPS_MCC=268 + COPS_MNC=03 + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' + awk '-F["]' '/^\+COPS:\s*.,0/ {print $2}' + TCOPS=NOS + '[' xNOS '!=' x ] + COPS=NOS + '[' -z NOS ] + '[' -z NOS ] + + sed -n 2p sms_tool -d /dev/ttyUSB1 at 'AT+COPS?' + + cut -d '"' -f2 tr -d '\r' + isp=26803 + isp_num='268 03' + isp_numws=26803 + LOCATIONFILE=/tmp/location + '[' -e /tmp/location ] + touch /tmp/location + cat /tmp/location + LOC=Portugal + '[' -n Portugal ] + cat /tmp/location + LOC=Portugal + '[[' Portugal '==' - ]] + awk '-F[;]' '/^26803;/ {print $2}' /usr/share/3ginfo-lite/mccmnc.dat + LOC=Portugal + '[' -n Portugal ] + echo Portugal + + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' + xargsawk '-F[, ]' '/^\+CPIN:/ {print $0;exit}' + T='+CPIN: READY' + '[' -n '+CPIN: READY' ] + '[' '+CPIN: READY' '==' '+CPIN: READY' ] + + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' awk '-F[, ]' '/^\+CME ERROR:/ {print $0;exit}' + T= + '[' -n ] + echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CREG: 2,1,"00A8","5355E8D",7 +CPIN: READY +COPS: 0,0,"NOS",7 +COPS: 0,2,"26803",7 OK ' + busybox awk '-F[,]' '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}' + eval 'T="1";LAC_HEX="A8";CID_HEX="5355E8D";LAC_DEC="168";CID_DEC="87383693";MODE_NUM="7"' + T=1 + LAC_HEX=A8 + CID_HEX=5355E8D + LAC_DEC=168 + CID_DEC=87383693 + MODE_NUM=7 + REG=1 + '[' -z 7 ] + '[' x7 '==' x0 ] + MODE=LTE + sms_tool -d /dev/ttyUSB1 at at+cereg + OTX='at+cereg ' + + echo 'at+cereg ' + sed 's/[^A-F0-9]//g' awk '-F[,]' '/^\+CEREG/ {printf "%s", toupper($3)}' + TAC= + '[' x '!=' x ] + TAC=- + TAC_HEX=- + uci -q get '3ginfo.@3ginfo[0].device' + CONF_DEVICE=/dev/ttyUSB1 + + grep -q 192.168. echo x/dev/ttyUSB1 + '[' -e /usr/bin/sms_tool ] + REGOK=0 + '[' x1 '==' x1 ] + REGOK=1 + getdevicevendorproduct /dev/ttyUSB1 + basename /dev/ttyUSB1 + devname=ttyUSB1 + readlink -f /sys/class/tty/ttyUSB1/device + devpath=/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.3/ttyUSB1 + T=/sys/devices/platform/101c0000.ehci/usb1/1-1 + cat /sys/devices/platform/101c0000.ehci/usb1/1-1/idVendor + cat /sys/devices/platform/101c0000.ehci/usb1/1-1/idProduct + echo usb/2c7c6005 + VIDPID=usb/2c7c6005 + '[' -e /usr/share/3ginfo-lite/modem/usb/2c7c6005 ] + sanitize_string - + '[' -z - ] + + echo - tr -d '\r\n' + sanitize_number + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number - + '[' -z - ] + echo - + sanitize_number - + '[' -z - ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string /dev/ttyUSB1 + '[' -z /dev/ttyUSB1 ] + + tr -d '\r\n' echo /dev/ttyUSB1 + sanitize_string + '[' -z ] + echo - + sanitize_number 17 + '[' -z 17 ] + echo 17 + sanitize_number 54 + '[' -z 54 ] + echo 54 + sanitize_string NOS + '[' -z NOS ] + + echo NOS tr -d '\r\n' + sanitize_string 268 + '[' -z 268 ] + echo 268 + tr -d '\r\n' + sanitize_string 03 + '[' -z 03 ] + echo 03 + tr -d '\r\n' + sanitize_string Portugal + '[' -z Portugal ] + echo Portugal + tr -d '\r\n' + sanitize_string LTE + '[' -z LTE ] + + tr -d '\r\n' echo LTE + sanitize_string 1 + '[' -z 1 ] + + echo 1 tr -d '\r\n' + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number 168 + '[' -z 168 ] + echo 168 + sanitize_string A8 + '[' -z A8 ] + + tr -d '\r\n' echo A8 + sanitize_number + '[' -z ] + echo - + sanitize_string - + '[' -z - ] + + echo - tr -d '\r\n' + sanitize_string + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number 87383693 + '[' -z 87383693 ] + echo 87383693 + sanitize_string 5355E8D + '[' -z 5355E8D ] + echo 5355E8D + tr -d '\r\n' + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_string + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + sanitize_number + '[' -z ] + echo - + cat + exit 0 ``` A screenshot of 3ginfo-lite GUI with what is currently working <img width="1236" height="1500" alt="Image" src="https://github.com/user-attachments/assets/dae3dd9b-b549-4bfb-8068-b0d859955e22" />
Author
Owner

@4IceG commented on GitHub (Dec 14, 2025):

Hi,
Execute the command in console and refresh page:
ln -s /usr/share/3ginfo-lite/modem/usb/2c7c6026 /usr/share/3ginfo-lite/modem/usb/2c7c6005
and check if anything has improved.

If not, We need to find PDF file with at commands for modem (to read data using the communication port).

<!-- gh-comment-id:3650984684 --> @4IceG commented on GitHub (Dec 14, 2025): Hi, Execute the command in console and refresh page: `ln -s /usr/share/3ginfo-lite/modem/usb/2c7c6026 /usr/share/3ginfo-lite/modem/usb/2c7c6005` and check if anything has improved. If not, We need to find PDF file with at commands for modem (to read data using the communication port).
Author
Owner

@nafarinha commented on GitHub (Dec 14, 2025):

I excuted the command to create the symlink. The only improvement seen in the GUI was the modem info is now populated, except for the protocol:

Modem Information:
Modem type: Quectel  EC200A
Revision / Firmware: EC200AELLAR01A05M16_TP
IP adress / Communication Port: /dev/ttyUSB1
Protocol: -
Chip Temperature: 58 °C

Sorry for misidentifying the actual modem for the SoC. As shown it's the Quectel EC200A

The connection statistics field seems to continue to not work.

Is this the document needed?
https://quectel.com/content/uploads/2024/04/Quectel_EC200xEG912YEG915N_Series_AT_Commands_Manual_V1.2.pdf

Based on chapter 6.3. AT+CSQ Signal Quality Report (pdf page 82) and my limited knowledge on how to use AT commands, I was able to get a RSSI parameter value:

at+csq
+CSQ: 17,99

where,

command: AT+CSQ
response: +CSQ: ,

parameter value between 2–30 = -109 to -53 dBm
parameter value 99 = Not known or not detectable

But the CSQ value reported for the RSSI parameter is already displayed in the CSQ graph, just not a bit below under the RSSI field.

N.B.: I found this document referenced on "Quectel EC200A Series Hardware Design", also available publicly:
https://www.manualslib.com/download/2505629/Quectel-Ec200a-Series.html

<!-- gh-comment-id:3651415359 --> @nafarinha commented on GitHub (Dec 14, 2025): I excuted the command to create the symlink. The only improvement seen in the GUI was the modem info is now populated, except for the protocol: ``` Modem Information: Modem type: Quectel EC200A Revision / Firmware: EC200AELLAR01A05M16_TP IP adress / Communication Port: /dev/ttyUSB1 Protocol: - Chip Temperature: 58 °C ``` Sorry for misidentifying the actual modem for the SoC. As shown it's the Quectel EC200A The connection statistics field seems to continue to not work. Is this the document needed? https://quectel.com/content/uploads/2024/04/Quectel_EC200xEG912YEG915N_Series_AT_Commands_Manual_V1.2.pdf Based on chapter 6.3. AT+CSQ Signal Quality Report (pdf page 82) and my limited knowledge on how to use AT commands, I was able to get a RSSI parameter value: ``` at+csq +CSQ: 17,99 ``` where, command: AT+CSQ response: +CSQ: <rssi>,<ber> <rssi> parameter value between 2–30 = -109 to -53 dBm <ber> parameter value 99 = Not known or not detectable But the CSQ value reported for the RSSI parameter is already displayed in the CSQ graph, just not a bit below under the RSSI field. N.B.: I found this document referenced on "Quectel EC200A Series Hardware Design", also available publicly: https://www.manualslib.com/download/2505629/Quectel-Ec200a-Series.html
Author
Owner

@4IceG commented on GitHub (Dec 14, 2025):

Show command result:
sh -x /usr/share/3ginfo-lite/3ginfo.sh

The connection statistics field seems to continue to not work.

You need to change the interface associated with the modem in the package.

except for the protocol:

The protocol is actually the least of problems.

Have you seen the luci-app-modemdata package? I would prefer to develop that package, ending support for 3ginfo-lite.

Command for the modemdata package:
ln -s /usr/share/modemdata/addon/usb/2c7c6026 /usr/share/modemdata/addon/usb/2c7c6005
and check.

<!-- gh-comment-id:3651507165 --> @4IceG commented on GitHub (Dec 14, 2025): Show command result: `sh -x /usr/share/3ginfo-lite/3ginfo.sh` > The connection statistics field seems to continue to not work. You need to change the interface associated with the modem in the package. > except for the protocol: The protocol is actually the least of problems. Have you seen the [luci-app-modemdata](https://github.com/4IceG/luci-app-modemdata) package? I would prefer to develop that package, ending support for 3ginfo-lite. Command for the modemdata package: `ln -s /usr/share/modemdata/addon/usb/2c7c6026 /usr/share/modemdata/addon/usb/2c7c6005` and check.
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

@nafarinha , any answer for 3ginfo-lite or modemdata?

<!-- gh-comment-id:3659378683 --> @4IceG commented on GitHub (Dec 16, 2025): @nafarinha , any answer for 3ginfo-lite or modemdata?
Author
Owner

@nafarinha commented on GitHub (Dec 16, 2025):

@nafarinha , any answer for 3ginfo-lite or modemdata?

Sorry, been busy with other stuff.
I just uninstalled 3ginfo-lite and installed modemdata, but I don't have access to the Modem menu on LuCI after I installed modemdata.

The steps I followed:

cd /tmp
wget -q https://dl.eko.one.pl/packages/apk/all/modemdata-20251207-r1.apk
apk add modemdata-20251207-r1.apk --allow-untrusted
<!-- gh-comment-id:3659631801 --> @nafarinha commented on GitHub (Dec 16, 2025): > [@nafarinha](https://github.com/nafarinha) , any answer for 3ginfo-lite or modemdata? Sorry, been busy with other stuff. I just uninstalled 3ginfo-lite and installed modemdata, but I don't have access to the Modem menu on LuCI after I installed modemdata. The steps I followed: ``` cd /tmp wget -q https://dl.eko.one.pl/packages/apk/all/modemdata-20251207-r1.apk apk add modemdata-20251207-r1.apk --allow-untrusted ```
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

To have package in LuCI you need to install https://github.com/4IceG/luci-app-modemdata/releases

<!-- gh-comment-id:3659769989 --> @4IceG commented on GitHub (Dec 16, 2025): To have package in LuCI you need to install https://github.com/4IceG/luci-app-modemdata/releases
Author
Owner

@nafarinha commented on GitHub (Dec 16, 2025):

To confirm, I installed both modemdata-20251207-r1.apk and luci-app-modemdata-1.0.24-r20251209.apk.

It seems the issue with the connection details is also present on modemdata. I tested both ports /dev/ttyUSB1 and /dev/ttyUSB2, the only difference I get slightly better signal strength. I have internet in spite of what the connection state shows.

Image Image

Would you prefer I create a new issue in the luci-app-modemdata repo?

<!-- gh-comment-id:3659924446 --> @nafarinha commented on GitHub (Dec 16, 2025): To confirm, I installed both `modemdata-20251207-r1.apk` and `luci-app-modemdata-1.0.24-r20251209.apk`. It seems the issue with the connection details is also present on modemdata. I tested both ports /dev/ttyUSB1 and /dev/ttyUSB2, the only difference I get slightly better signal strength. I have internet in spite of what the connection state shows. <img width="310" height="308" alt="Image" src="https://github.com/user-attachments/assets/df4f8977-3f43-4eb5-bdcd-f44034259517" /> <img width="605" height="425" alt="Image" src="https://github.com/user-attachments/assets/8f86a8f6-b29c-4b4e-8444-a5bc9e6654fe" /> Would you prefer I create a new issue in the luci-app-modemdata repo?
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

Show how you have set/named the interfaces in the router and how you set them in modemdata package.

connection state

This is not a bug in the package, it is a matter of correct settings.

You can create a new topic about adding this modem to package.

Did you execute this command in console?

ln -s /usr/share/modemdata/addon/usb/2c7c6026 /usr/share/modemdata/addon/usb/2c7c6005

<!-- gh-comment-id:3659986005 --> @4IceG commented on GitHub (Dec 16, 2025): Show how you have set/named the interfaces in the router and how you set them in modemdata package. > connection state This is not a bug in the package, it is a matter of correct settings. You can create a new topic about adding this modem to package. Did you execute this command in console? `ln -s /usr/share/modemdata/addon/usb/2c7c6026 /usr/share/modemdata/addon/usb/2c7c6005`
Author
Owner

@nafarinha commented on GitHub (Dec 16, 2025):

Did you execute this command in console?

I didn't but just did it now. Also, the assigned interface under Modem Configuration was wrong (previously had wan instead of wwan).
The connection details are now being populated and showing correct information.

Many thanks for your help!

<!-- gh-comment-id:3661502591 --> @nafarinha commented on GitHub (Dec 16, 2025): > Did you execute this command in console? I didn't but just did it now. Also, the assigned interface under Modem Configuration was wrong (previously had `wan` instead of `wwan`). The connection details are now being populated and showing correct information. Many thanks for your help!
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

Great that the correct interface setup helped.

Are the signal levels also visible, such as RSSI, RSRQ, etc.?

<!-- gh-comment-id:3661859927 --> @4IceG commented on GitHub (Dec 16, 2025): Great that the correct interface setup helped. Are the signal levels also visible, such as RSSI, RSRQ, etc.?
Author
Owner

@nafarinha commented on GitHub (Dec 16, 2025):

Are the signal levels also visible, such as RSSI, RSRQ, etc.?

Yes. Sorry, forgot to mention those.

Image

The only thing I noticed is not being populated is the band number and frequency:

Image

Just one note: in my case, I only get all the signal level parameters working by rebooting the modem after making changes to the Modem Configuration and only using port /dev/ttyUSB1. I couldn't get the data while using /dev/ttyUSB2.

<!-- gh-comment-id:3662498578 --> @nafarinha commented on GitHub (Dec 16, 2025): > Are the signal levels also visible, such as RSSI, RSRQ, etc.? Yes. Sorry, forgot to mention those. <img width="600" height="431" alt="Image" src="https://github.com/user-attachments/assets/02876a6c-1c9f-4d77-a6af-aab1677739d4" /> The only thing I noticed is not being populated is the band number and frequency: <img width="1216" height="157" alt="Image" src="https://github.com/user-attachments/assets/874151bc-ae17-4ae7-824b-a3cf135c5619" /> Just one note: in my case, I only get all the signal level parameters working by rebooting the modem after making changes to the Modem Configuration and only using port `/dev/ttyUSB1`. I couldn't get the data while using `/dev/ttyUSB2`.
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

Strange, it should show band.

OK, show the output of the at command: sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"

<!-- gh-comment-id:3662764126 --> @4IceG commented on GitHub (Dec 16, 2025): Strange, it should show band. OK, show the output of the at command: `sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"`
Author
Owner

@nafarinha commented on GitHub (Dec 16, 2025):

Could only get a reponse to the AT command once and on ttyUSB2:

root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn"

+EEMGINFO : 3, 2

+QSPN: "NOS","NOS","NOS",0,"26803"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"

root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn"

root@OpenWrt:~# 
<!-- gh-comment-id:3662824390 --> @nafarinha commented on GitHub (Dec 16, 2025): Could only get a reponse to the AT command once and on ttyUSB2: ``` root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn" +EEMGINFO : 3, 2 +QSPN: "NOS","NOS","NOS",0,"26803" root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB2 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn" root@OpenWrt:~# sms_tool -d /dev/ttyUSB1 at "at+qnwinfo;+qspn" root@OpenWrt:~# ```
Author
Owner

@4IceG commented on GitHub (Dec 16, 2025):

Unfortunately, I don't know any other commands for reading band:
sms_tool -d /dev/ttyUSB2 at "AT+QNWINFO" sms_tool -d /dev/ttyUSB2 at 'AT+QENG="servingcell"'

<!-- gh-comment-id:3662850975 --> @4IceG commented on GitHub (Dec 16, 2025): Unfortunately, I don't know any other commands for reading band: `sms_tool -d /dev/ttyUSB2 at "AT+QNWINFO" sms_tool -d /dev/ttyUSB2 at 'AT+QENG="servingcell"'`
Author
Owner

@nafarinha commented on GitHub (Dec 17, 2025):

Using picocom and enabling verbose errors (AT+CMEE=2), those two commands return a CMS Error 3 +CME ERROR: operation not allowed. I'll have to live without that information. Thanks for your help!

<!-- gh-comment-id:3667106517 --> @nafarinha commented on GitHub (Dec 17, 2025): Using picocom and enabling verbose errors (`AT+CMEE=2`), those two commands return a CMS Error 3 `+CME ERROR: operation not allowed`. I'll have to live without that information. Thanks for your help!
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/luci-app-3ginfo-lite#107
No description provided.