4IceG / luci-app-3ginfo-lite

Graphic visualization of the mPCI-E / M.2 and USB 3G / LTE / LTE-A / 5G modem connection status. (LuCI JS) | OpenWrt >= 21.02
96 stars 39 forks source link

Fibocom modem -FM190 5G/4G modem Signals #86

Open ghost opened 1 month ago

ghost commented 1 month ago

Hi Dear Sir IceG

After doing this command (advised by IceG)

root@OpenWrt:~# rm /usr/share/3ginfo-lite/modem/usb/2cb70104

root@OpenWrt:~# cp /usr/share/3ginfo-lite/modem/usb/0e8d7126 /usr/share/3ginfo-lite/modem/usb/2cb70104

When network connected to 4G only the signal appeared . image

Note: its showing only one band 4G , where there are more than 4 bands 4G

image

After I switched the network to 5G NSA (4G+5G) .... The error came again . image

Debug from 3ginfo

{
"conn_time":"0d, 01:12:18",
"conn_time_sec":"4338",
"conn_time_since":"20240724144007",
"rx":"2.9 GiB",
"tx":"301.3 MiB",
"modem":"Fibocom  FM190W-GL",
"mtemp":"",
"firmware":"99103.1000.00.01.06.10",
"cport":"/dev/ttyUSB1",
"protocol":"qmi",
"csq":"21",
"signal":"67",
"operator_name":"stc ksa",
"operator_mcc":"420",
"operator_mnc":"01",
"location":"Saudi Arabia",
"mode":"5G NSA |",
"registration":"1",
"simslot":"",
"imei":"351064272748410",
"imsi":"420012416985880",
"iccid":"8996601240169858806F",
"lac_dec":"65535",
"lac_hex":"FFFF",
"tac_dec":"",
"tac_hex":"-",
"tac_h":"4285",
"tac_d":"17029",
"cid_dec":"7155981",
"cid_hex":"6D310D",
"pci":"78
188",
"earfcn":"4FF
9D0E0",
"pband":"",
"s1band":"",
"s1pci":"",
"s1earfcn":"",
"s2band":"",
"s2pci":"",
"s2earfcn":"",
"s3band":"",
"s3pci":"",
"s3earfcn":"",
"s4band":"",
"s4pci":"",
"s4earfcn":"",
"rsrp":"",
"rsrq":"",
"rssi":"-71",
"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='
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ CONFIG=modemdefine
+ uci show modemdefine
+ grep -o '@modemdefine\[[0-9]*\]\.modem'
+ wc -l
+ xargs
+ MODEMZ=1
+ '[[' 1 ]]
+ uci -q get 'modemdefine.@general[0].main_network'
+ SEC=
+ '[[' 1 '=' 0 ]]
+ '[[' 1 '=' 1 ]]
+ uci -q get 'modemdefine.@modemdefine[0].network'
+ SEC=Modem
+ '[' -z Modem ]
+ CONN_TIME=-
+ RX=-
+ TX=-
+ ifstatus Modem
+ grep '"up": true'
+ NETUP='   "up": true,'
+ '[' -n '  "up": true,' ]
+ uci -q -P /var/state/ get network.Modem.connect_time
+ CT=
+ '[' -z ]
+ ifstatus Modem
+ awk '-F[:,]' '/uptime/ {print $2}'
+ xargs
+ CT=4338
+ '[' '!' -z 4338 ]
+ expr 4338 / 60 / 60 / 24
+ D=0
+ expr 4338 / 60 / 60 '%' 24
+ H=1
+ expr 4338 / 60 '%' 60
+ M=12
+ expr 4338 '%' 60
+ S=18
+ printf '%dd, %02d:%02d:%02d' 0 1 12 18
+ CONN_TIME='0d, 01:12:18'
+ date '+%s'
+ date '+%Y%m%d%H%M%S' -d @1721832007
+ CONN_TIME_SINCE=20240724144007
+ ifstatus Modem
+ awk '-F"' '/l3_device/ {print $4}'
+ IFACE=wwan0
+ '[' -n wwan0 ]
+ ifconfig wwan0
+ awk '-F[()]' '/bytes/ {printf "%s",$2}'
+ RX='2.9 GiB'
+ ifconfig wwan0
+ awk '-F[()]' '/bytes/ {printf "%s",$4}'
+ TX='301.3 MiB'
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ awk '-F[, ]' '/^\+CSQ/ {print $2}'
+ CSQ=21
+ '[' x21 '=' x ]
+ '[' 21 -ge 0 -a 21 -le 31 ]
+ CSQ_PER=67
+ COPS=
+ COPS_MCC=
+ COPS_MNC=
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ awk '-F["]' '/^\+COPS:\s*.,2/ {print $2}'
+ COPS_NUM=42001
+ '[' -n 42001 ]
+ COPS_MCC=420
+ COPS_MNC=01
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ awk '-F["]' '/^\+COPS:\s*.,0/ {print $2}'
+ TCOPS='stc ksa'
+ '[' 'xstc ksa' '!=' x ]
+ COPS='stc ksa'
+ '[' -z 'stc ksa' ]
+ '[' -z 'stc ksa' ]
+ '[[' stc ksa '=~' ' ' ]]
sh: ksa: unknown operand
+ sms_tool -d /dev/ttyUSB1 at 'AT+COPS?'
+ sed -n 2p
+ cut -d '"' -f2
+ tr -d '\r'
+ isp=42001
+ isp_num='420 01'
+ isp_numws=42001
+ '[[' stc ksa '=~' '^[0-9]+$' ]]
sh: ksa: unknown operand
+ LOCATIONFILE=/tmp/location
+ '[' -e /tmp/location ]
+ touch /tmp/location
+ cat /tmp/location
+ LOC='Saudi Arabia'
+ '[' -n 'Saudi Arabia' ]
+ cat /tmp/location
+ LOC='Saudi Arabia'
+ '[[' Saudi Arabia '==' - ]]
sh: Arabia: unknown operand
+ awk '-F[;]' '/^42001;/ {print $2}' /usr/share/3ginfo-lite/mccmnc.dat
+ LOC='Saudi Arabia'
+ '[' -n 'Saudi Arabia' ]
+ echo 'Saudi Arabia'
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ awk '-F[, ]' '/^\+CPIN:/ {print $0;exit}'
+ xargs
+ T='+CPIN: READY'
+ '[' -n '+CPIN: READY' ]
+ '[' '+CPIN: READY' '=' '+CPIN: READY' ]
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ awk '-F[, ]' '/^\+CME ERROR:/ {print $0;exit}'
+ T=
+ '[' -n  ]
+ echo '
+CPIN: READY

+CSQ: 21,99

+COPS: 0,0,"stc ksa",13

+COPS: 0,2,"42001",13

+CREG: 2,1,"FFFF","006D310D",13

OK
'
+ 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="FFFF";CID_HEX="6D310D";LAC_DEC="65535";CID_DEC="7155981";MODE_NUM="13"'
+ T=1
+ LAC_HEX=FFFF
+ CID_HEX=6D310D
+ LAC_DEC=65535
+ CID_DEC=7155981
+ MODE_NUM=13
+ REG=1
+ '[' -z 13 ]
+ '[' x13 '=' x0 ]
+ MODE=-
+ sms_tool -d /dev/ttyUSB1 at at+cereg
+ OTX='
'
+ echo '
'
+ awk '-F[,]' '/^\+CEREG/ {printf "%s", toupper($3)}'+ 
sed 's/[^A-F0-9]//g'
+ TAC=
+ '[' x '!=' x ]
+ TAC=-
+ TAC_HEX=-
+ uci -q get '3ginfo.@3ginfo[0].device'
+ CONF_DEVICE=/dev/ttyUSB1
+ echo x/dev/ttyUSB1
+ grep -q 192.168.
+ '[' -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/soc/11200000.usb/usb2/2-1/2-1.1/2-1.1:1.1/ttyUSB1
+ T=/sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
+ cat /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1/idVendor
+ cat /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1/idProduct
+ echo usb/2cb70104
+ VIDPID=usb/2cb70104
+ '[' -e /usr/share/3ginfo-lite/modem/usb/2cb70104 ]
+ cat /tmp/sysinfo/board_name
+ . /usr/share/3ginfo-lite/modem/usb/2cb70104
+ sms_tool -d /dev/ttyUSB1 at 'AT+GTCCINFO?;+GTCAINFO?'
+ O='
+GTCCINFO: 
LTE-NR EN-DC service cell: 
1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64

+GTCAINFO: 
LTE PCC: 103,120,1279,75,2,1,1,1,71
NR PCC: 5078,392,643296,100,2,,1,3,84
LTE SCC1: 1,0,108,383,3700,50,0,1,1,6,6,56
LTE SCC2: 1,0,101,36,500,100,0,2,1,6,6,69
LTE SCC3: 1,0,140,68,38956,100,0,2,1,6,6,68
LTE SCC4: 1,0,140,68,39154,100,0,2,1,6,6,68

'
+ MODE='5G NSA |'
+ T_MODE=
+ echo '
+GTCCINFO: 
LTE-NR EN-DC service cell: 
1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64

+GTCAINFO: 
LTE PCC: 103,120,1279,75,2,1,1,1,71
NR PCC: 5078,392,643296,100,2,,1,3,84
LTE SCC1: 1,0,108,383,3700,50,0,1,1,6,6,56
LTE SCC2: 1,0,101,36,500,100,0,2,1,6,6,69
LTE SCC3: 1,0,140,68,38956,100,0,2,1,6,6,68
LTE SCC4: 1,0,140,68,39154,100,0,2,1,6,6,68

'
+ grep -A3 +GTCCINFO:
+ grep '1,[49],420'
+ T1='1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ '[' -n '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
' ]
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $2}'
+ T_RAT='4
9'
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $5}'
+ T=4285
+ '[' -n 4285 ]
+ printf '%d' 0x4285
+ T_DEC=17029
+ T_HEX=4285
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $7}'
+ T='4FF
9D0E0'
+ '[' -n '4FF
9D0E0' ]
+ EARFCN='4FF
9D0E0'
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $8}'
+ T='78
188'
+ '[' -n '78
188' ]
+ PCI='78
188'
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $9}'
+ T='103
5078'
+ '[' -n '103
5078' ]
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $11}'
+ T='2
67'
+ '[' -n '2
67' -a '2
67' -ne 255 ]
sh: 2
67: bad number
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $13}'
+ T='71
84'
+ '[' -n '71
84' -a '71
84' -ne 255 ]
sh: 71
84: bad number
+ echo '1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64
'
+ awk -F, '{print $14}'
+ T='16 
64
'
+ '[' -n '16 
64
' -a '16 
64
' -ne 255 ]
sh: 16 
64
: bad number
+ '[' -n 21 ]
+ RSSI=-71
+ IFS='
'
+ IDX=1
+ echo '
+GTCCINFO: 
LTE-NR EN-DC service cell: 
1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64

+GTCAINFO: 
LTE PCC: 103,120,1279,75,2,1,1,1,71
NR PCC: 5078,392,643296,100,2,,1,3,84
LTE SCC1: 1,0,108,383,3700,50,0,1,1,6,6,56
LTE SCC2: 1,0,101,36,500,100,0,2,1,6,6,69
LTE SCC3: 1,0,140,68,38956,100,0,2,1,6,6,68
LTE SCC4: 1,0,140,68,39154,100,0,2,1,6,6,68

'
+ grep -E ^PCC:
+ LINES=
+ '[' -n  ]
+ T_4G_MODE=
+ T_4G_PBAND=
+ T_4G_PCI=
+ T_4G_EARFCN=
+ T_5G_MODE=
+ T_5G_PBAND=
+ T_5G_PCI=
+ T_5G_EARFCN=
+ '[' -n  ]
+ '[' -n  ]
+ IFS='
'
+ IDX=1
+ echo '
+GTCCINFO: 
LTE-NR EN-DC service cell: 
1,4,420,01,4285,6D310D,4FF,78,103,75,2,71,71,16 
1,9,420,01,,,9D0E0,188,5078,100,67,84,84,64

+GTCAINFO: 
LTE PCC: 103,120,1279,75,2,1,1,1,71
NR PCC: 5078,392,643296,100,2,,1,3,84
LTE SCC1: 1,0,108,383,3700,50,0,1,1,6,6,56
LTE SCC2: 1,0,101,36,500,100,0,2,1,6,6,69
LTE SCC3: 1,0,140,68,38956,100,0,2,1,6,6,68
LTE SCC4: 1,0,140,68,39154,100,0,2,1,6,6,68

'
+ grep -E '^SCC\s?[0-9]:2,'
+ LINES=
+ echo 
+ sed 's/ [\/\+] $//'
+ T_4G_MODE=
+ echo 
+ sed 's/ [\/\+] $//'
+ T_5G_MODE=
+ '[' -n  -a -n  ]
+ '[' -z  ]
+ '[' -n  ]
+ '[' -n  ]
+ sms_tool -d /dev/ttyUSB1 at 'AT+CGMM?'
+ OA='
+CGMM: "FM190W-GL","FM190W"

'
+ echo '
+CGMM: "FM190W-GL","FM190W"

'
+ awk -F '[:,]' '/\+CGMM/{print $2}'
+ xargs
+ MODELA=FM190W-GL
+ sms_tool -d /dev/ttyUSB1 at 'AT+CGMI?'
+ OB='
+CGMI: "Fibocom Wireless Inc."

'
+ echo '
+CGMI: "Fibocom Wireless Inc."

'
+ awk -F '[:,]' '/\+CGMI/{print $2}'
+ xargs
+ MODELB='Fibocom Wireless Inc.'
+ echo 'Fibocom Wireless Inc.'
+ sed 's/Wireless Inc.//'
+ MODELBCUT='Fibocom '
+ MODEL='Fibocom  FM190W-GL'
+ sms_tool -d /dev/ttyUSB1 at 'AT+GMR?'
+ OF='
+GMR: "99103.1000.00.01.06.10"

'
+ echo '
+GMR: "99103.1000.00.01.06.10"

'
+ awk '-F[,:]' '/\+GMR:/ {print $2}'
+ xargs
+ FW=99103.1000.00.01.06.10
+ sms_tool -d /dev/ttyUSB1 at 'AT+CGSN?'
+ OAA='
+CGSN: "351064272748410"

'
+ echo '
+CGSN: "351064272748410"

'
+ + awkxargs '-F[,:]'
 '/\+CGSN:/ {print $2}'
+ NR_IMEI=351064272748410
+ sms_tool -d /dev/ttyUSB1 at 'AT+CIMI?'
+ OBB='
+CIMI: 420012416985880

'
+ echo '
+CIMI: 420012416985880

'
+ awk -F '[,:]'+  '/\+CIMI:/ {print $2}'
xargs
+ NR_IMSI=420012416985880
+ sms_tool -d /dev/ttyUSB1 at AT+ICCID
+ OCC='
+ICCID: 8996601240169858806F

'
+ echo '
+ICCID: 8996601240169858806F

'
+ awk -F '[,:]' '/\+ICCID:/ {print $2}'
+ xargs
+ NR_ICCID=8996601240169858806F
+ sms_tool -d /dev/ttyUSB1 at 'AT+GTSENRDTEMP=1'
+ OT='
'
+ echo '
'
+ awk -F, '/\+GTSENRDTEMP:/{printf "%.1f", $2/1000}'
+ xargs
+ TM=
+ '[' -n  ]
+ basename /dev/ttyUSB1
+ TTY=ttyUSB1
+ readlink -f /sys/class/tty/ttyUSB1/device
+ devpath=/sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1/2-1.1:1.1/ttyUSB1
+ readlink -f /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
+ BASE=/sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
+ readlink+  -f /sys/class/net/br-langrep
 /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1
+ readlink -f /sys/class/net/br-wan
+ readlink -f /sys/class/net/eth0
+ readlink -f /sys/class/net/eth1
+ readlink -f /sys/class/net/eth2
+ readlink -f /sys/class/net/lan1
+ readlink -f /sys/class/net/lan2
+ readlink -f /sys/class/net/lan3
+ readlink -f /sys/class/net/lo
+ readlink -f /sys/class/net/wan
+ readlink -f /sys/class/net/wwan0
+ NETIF=/sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1/2-1.1:1.4/net/wwan0
+ readlink -f /sys/devices/platform/soc/11200000.usb/usb2/2-1/2-1.1/2-1.1:1.4/net/wwan0/../../driver
+ basename /sys/bus/usb/drivers/qmi_wwan
+ NETDRV=qmi_wwan
+ PROTO=qmi
+ cat
+ exit 0

Modem Information

"Manufacturer": "QCOM",
"Product": "SDXPINN-IDP _SN:EA9B91F5",
"Vendor": "2cb7",
"ProdID": "0104",
"Bus_speed": "5000",
"Serial_Number": "ea9b91f5"

Subject on OpenWrt https://forum.openwrt.org/t/fibocom-quectel-fm190-5g-4g-modem-signals/204468/8


AT Commands for FM190W (X75)

English - Fibocom_AT Commands_FM190.pdf Fibocom_FM350_AT Commands User Manual_V2.10 (1).pdf Orginal Chiness FibocomAT Commands FM190W.pdf

obsy commented 1 month ago

Your case require new parser for FM190. Response for AT command is not fully compatible with FM150 or FM350, so it require new script.

ghost commented 1 month ago

Your case require new parser for FM190. Response for AT command is not fully compatible with FM150 or FM350, so it require new script.

@4IceG @obsy

I added AT commands file for FM190W and FM350 ..... they are similar (80%)

English - Fibocom_AT Commands_FM190.pdf Fibocom_FM350_AT Commands User Manual_V2.10 (1).pdf Orginal Chiness FibocomAT Commands FM190W.pdf

obsy commented 1 month ago

Similar. Not the same. And that's the difference from a scripting perspective.

ghost commented 1 month ago

Similar. Not the same. And that's the difference from a scripting perspective.

Is there anyway to get it done ? I mean to be added

obsy commented 1 month ago

Be patient. The script needs to be written.

ghost commented 1 month ago

Dear @4IceG @obsy if there is any file or documents you need me to share it let me know ... Really I appreciate for your support

obsy commented 1 day ago

Update script: https://github.com/obsy/packages/commit/6e46db60d611026129f7019b655702d700dd471d @4IceG: please adapt it to your project

For 5G SA in FM150 RSSI is not displayed, only RSRP