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
100 stars 39 forks source link

Update 3ginfo.sh #32

Closed HansBorjes closed 1 year ago

HansBorjes commented 1 year ago

Tested with Fibocom FM-150 and telekom.de

AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG? +CSQ: 17,99 +CPIN: READY +COPS: 0,0,"Telekom.de",13 +COPS: 0,2,"26201",13 +CREG: 2,1,"5D4","01BC7511",13

4IceG commented 1 year ago

Hi @HansBorjes , it's nice that you want to help add support to the modem, but that's not how I do it. I downloaded a file with commands for this modem, so I saw that a lot of at commands are universal, which will make it easier to add.

At the beginning of.. Send comment with modem description VID and PID identifier on the USB bus.

HansBorjes commented 1 year ago

@4IceG Just wanted to let you know what I hacked locally on my machine. My proposal is actually independent of any modems. I looked the enumerations up from the ETSI standard. At the moment it is important for me to distinguish between the different flavours of 5G, as networks here are evolving at present and I am testing SIM cards from different providers. So, would be nice if you could incorporate that.

I guess this is what you are looking for:

[ 1.953650] usb 2-3: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd [ 1.986451] usb 2-3: New USB device found, idVendor=2cb7, idProduct=0104, bcdDevice= 4.14 [ 1.994672] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.001831] usb 2-3: Product: Fibocom Modem_SN:854Fxxxx [ 2.007062] usb 2-3: Manufacturer: Fibocom [ 2.011154] usb 2-3: SerialNumber: 854fxxxx [ 2.034417] usb 2-3: Enable of device-initiated U1 failed. [ 2.040702] usb 2-3: Enable of device-initiated U2 failed.

4IceG commented 1 year ago

I understand your reasoning, it is ok in principle, but it differs from what I would like my package to show.

To make my package as universal as possible, I can't show everything. Anyway, I want the package to be pleasing to the eye and easy to read.

Yes, I needed these two data "idVendor=2cb7, idProduct=0104"

After this data, 3ginfo-lite knows what modem it will work with. Now it will be possible to slowly add support for this modem.

4IceG commented 1 year ago

Hi @HansBorjes , could you check if these commands work? I haven't found commands from the signal/network for this modem and I want to check if those from lower models will work.

AT+XCESQ?
AT+XCCINFO?
AT+XLEC?
AT+GTCCINFO?
AT+GTRAT?
AT+GTCAINFO?
AT+XACT?
HansBorjes commented 1 year ago

Hi @4IceG, result as follows:

AT+XCESQ? - no response AT+XCCINFO? - no response AT+XLEC? - no response

AT+GTCCINFO? +GTCCINFO: LTE service cell: 1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,35,35,20 LTE neighbor cell: 2,4,,,,,1900,1B4,,25,25,0 2,4,,,,,514,19D,,26,26,8 2,4,,,,,514,172,,26,26,8

AT+GTRAT? +GTRAT: 10,6,3

AT+GTCAINFO? PCC: 120,461,6400,50,2,1,1,1,34

AT+XACT? - no response

Thanks for working on FM-150!

4IceG commented 1 year ago

It's hard to add anything for this modem, I can't find any documentation/at commands anywhere. It's not helping.

HansBorjes commented 1 year ago

AT+XCESQ? - no response

But this one works.

AT+CESQ +CESQ: 99,99,255,255,18,34,255,255,255

Taken from this document: https://guidessimo.com/document/1509878/fibocom-l860-gl-at-command-user-manual-254.html

4IceG commented 1 year ago

As for the 5G modem, we still know very little.

They should provide documentation to make the modem easy to configure = more popular.

HansBorjes commented 1 year ago

Fibocom states they are according to https://www.etsi.org/deliver/etsi_ts/127000_127099/127007/10.03.00_60/ts_127007v100300p.pdf

In this document is a section 8.69 "Extended signal quality +CESQ" with remark: Implementation Optional.

For me it would be fine to use the commands we have and omit the ones that are not implemented.

Best effort approach?

HansBorjes commented 1 year ago

The documentation is actually online on a chinese website. https://download.csdn.net/download/w659377727/21736838?utm_source=iteye

The document index contains +CLAC, List of all available AT commands

My modem returns

AT+CLAC &C &D &E &F &S &V &W E I L M Q V X Z T P \Q \S \V %V D A H O S0 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S30 S103 S104 +FCLASS +ICF +IFC +IPR +GMI +GMM +GMR +GCAP +GSN +DR +DS +CMEE +WS46 +PACSP +CFUN +CLCC +CBST +CRLP +CV120 +CHSN +CSSN +CREG +CGREG +CEREG +C5GREG +CSCS +CSTA +CR +CEER +CRC +CGDCONT +CGDSCONT +CGTFT +CGEQREQ +CGEQMIN +CGEQOS +CGCONTRDP +CGSCONTRDP +CGTFTRDP +CGEQOSRDP +CGQREQ +CGQMIN +CGEREP +CGPADDR +CGDATA +CGCLASS +CGPIAF +C5GNSSAI +C5GNSSAIRDP +CGSMS +CSMS +CMGF +CSAS +CRES +CSCA +CSMP +CSDH +CSCB +C5GSMS +C5GUSMS +ES +ESA +CMOD +CEMODE +CVHU +QCGEQMIN +QCGEQOS +QCGEQREQ +QCGQMIN +QCGQREQ +QCGTFT +CEMBMSCFG +CEMBMSSRV +CEMBMSDATA +CEMBMSCNT +CEMBMSSAI +CSVM +CSQ +CBC +CPAS +CPIN +CMEC +CIND +CMER +CGATT +CGACT +CGCMOD +CPBS +CPBR +CPBF +CPBW +CPMS +CNMI +CMGL +CMGR +CMGS +CMSS +CMGW +CMGD +CMGC +CNMA +CMMS +CHUP +CCFC +CCUG +COPS +CLCK +CPWD +CUSD +CAOC +CACM +CAMM +CPUC +CCWA +CHLD +CIMI +CGMI +CGMM +CGMR +CGSN +CNUM +CSIM +CRSM +CCLK +COPN +CPOL +CPLS +CTZR +CTZU +CLAC +CLIP +COLP +CDIP +CTFR +CLIR +VTS +ICCID +CUAD +CEAP +CERP +CSTF +CSDF +CVMOD +CEN +CNMPSD +CMCCS +CCMMD +CCFCU +CSUPI +CFSN +GTUSIM +VTD +VTA +RESET +CPWROFF +CFUN +GTOTA +MTSM +GTTHML +GTFMODE +GTUSBMODE +MMAD +CBC +DIAGEN +DUMPEN +SYSCMD $QCSIMSTAT $QCPBMPREF $CREG $CCLK $QCCNMI *CNTI $QCCLR $QCDMR $QCDNSP $QCDNSS $QCTER $QCSIMAPP $QCPINSTAT $QCPDPP $QCPDPLT $QCPWRDN $QCDGEN $QCPDPCFGE $QCANTE $QCRPW $QCSQ $CSQ $QCSYSMODE $QCCTM $QCBANDPREF ^SYSINFO ^SYSCONFIG ^CARDMODE ^DSCI $QCVOLT $QCHWREV $QCBOOTVER $QCDEFPROF $QCMRUE $QCMRUC $QCAPNE $QCPDPIMSCFGE $QCCLAC ^SPN $QCRMCALL $QCDRX $QCRSRP $QCRSRQ $QCACQDBC $QCATMOD $QCCOPS ^MODE $QCSIMT $QCNSP $QCRCIND $QCCSGCOPS $QCPDPCFGEXT $QCPRFCRT $QCPRFMOD $QCRSCP $QCECNO $QCPCOLIST $QCMSISDN $QCPCOMSISDN $QCCALLATTR $QCIMSSRV $QCCCFC

So, that's better than nothing. :-)

4IceG commented 1 year ago

Always something better than nothing. I will try to add what is from the package update, if something new appears, it will be added.

Commands alone without explanations don't help either :).

4IceG commented 1 year ago

Hi @HansBorjes , add this file and see what the modem will show.

/usr/share/3ginfo-lite/3ginfo-addon/2cb70104 2cb70104.zip

HansBorjes commented 1 year ago

@4IceG It shows JSON Parse error: Unexpected EOF.

AT+CGMI?;+CGMM?;+CGMR?;+CIMI?;+ICCID;+CGSN? returns

AT+CGMI?;+CGMM?;+CGMR?;+CIMI?;+ICCID;+CGSN? +CGMI: "Fibocom Wireless Inc."

4IceG commented 1 year ago

Ok.. Show me the result of the command: sh -x /usr/share/3ginfo-lite/3ginfo.sh

HansBorjes commented 1 year ago
+ RES=/usr/share/3ginfo-lite
+ uci -q get '3ginfo.@3ginfo[0].device'
+ DEVICE=/dev/ttyUSB1
+ '[' x/dev/ttyUSB1 '=' x ]
+ echo /dev/ttyUSB1
+ '[' x/dev/ttyUSB1 '=' x ]
+ '[' x/dev/ttyUSB1 '=' x ]
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SECT=@MODEM
+ SUB=@
+ '[[' @MODEM '==' '*@*' ]]
+ echo @MODEM
+ sed s/@//
+ SEC=MODEM
+ '[' -z MODEM ]
+ CONN_TIME=-
+ RX=-
+ TX=-
+ ifstatus+ grep '"up": true'
 MODEM
+ NETUP='   "up": true,'
+ '[' -n '  "up": true,' ]
+ uci -q -P /var/state/ get network.MODEM.connect_time
+ CT=
+ '[' -z ]
+ ifstatus MODEM
+ xargs
+ awk '-F[:,]' '/uptime/ {print $2}'
+ CT=9875
+ '[' '!' -z 9875 ]
+ expr 9875 / 60 / 60 / 24
+ D=0
+ expr 9875 / 60 / 60 '%' 24
+ H=2
+ expr 9875 / 60 '%' 60
+ M=44
+ expr 9875 '%' 60
+ S=35
+ printf '%dd, %02d:%02d:%02d' 0 2 44 35
+ CONN_TIME='0d, 02:44:35'
+ ifstatus MODEM
+ awk '-F"' '/l3_device/ {print $4}'
+ IFACE=wwan0
+ '[' -n wwan0 ]
+ ifconfig wwan0
+ awk '-F[()]' '/bytes/ {printf "%s",$2}'
+ RX='60.2 MiB'
+ ifconfig wwan0
+ awk '-F[()]' '/bytes/ {printf "%s",$4}'
+ TX='6.9 MiB'
+ sms_tool -D -d /dev/ttyUSB1 at 'AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?'
+ O='AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CSQ: 17,99

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

'K
+ echo 'AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CSQ: 17,99

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

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

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

'K
+ awk '-F["]' '/^\+COPS: .,2/ {print $2}'
+ COPS_NUM=26201
+ '[' x26201 '=' x ]
+ COPS_MCCB=262
+ echo 262
+ tr '\n' ' '
+ sed 's/ //g'
+ COPS_MCC=262
+ COPS_MNCB=01
+ echo+ tr '\n' ' '
 01
+ sed 's/ //g'
+ COPS_MNC=01
+ awk '-F[;]' '/26201/ {print $2}' /usr/share/3ginfo-lite/mccmnc.dat
+ COPS=T-mobile/Telekom
+ '[' xT-mobile/Telekom '=' x ]
+ '[' -z  ]
+ echo 'AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CSQ: 17,99

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

'K
+ awk '-F["]' '/^\+COPS: .,0/ {print $2}'
+ T=Telekom.de
+ '[' xTelekom.de '!=' x ]
+ COPS=Telekom.de
+ echo Telekom.de+ sed ':s;s/\(\<\S*\>\)\(.*\)\<\1\>/\1\2/g;ts'

+ COPZ=Telekom.de
+ echo+  Telekom.deawk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1'

+ COPS=Telekom.de
+ echo 'AT+CSQ;+CPIN?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CSQ: 17,99

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

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

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

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

+CPIN: READY

+COPS: 0,0,"Telekom.de",13

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

+CREG: 2,1,"5D4","01BC7511",13

'K
+ 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="5D4";CID_HEX="1BC7511";LAC_DEC="1492";CID_DEC="29127953";MODE_NUM="13"'
+ T=1
+ LAC_HEX=5D4
+ CID_HEX=1BC7511
+ LAC_DEC=1492
+ CID_DEC=29127953
+ MODE_NUM=13
+ REG=1
+ '[' -z 13 ]
+ '[' x13 '=' x0 ]
+ MODE='5G NSA'
+ 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'
+ DEVICE=/dev/ttyUSB1
+ echo x/dev/ttyUSB1
+ grep -q 192.168.
+ awk '/Vendor=/{gsub(/.*Vendor=| ProdID=| Rev.*/,"");print}' /sys/kernel/debug/usb/devices
+ sort -u
+ _DEVS='0bda8153
1d6b0002
1d6b0003
21093431
2cb70104'
+ '[' -e /usr/share/3ginfo-lite/3ginfo-addon/0bda8153 ]
+ '[' -e /usr/share/3ginfo-lite/3ginfo-addon/1d6b0002 ]
+ '[' -e /usr/share/3ginfo-lite/3ginfo-addon/1d6b0003 ]
+ '[' -e /usr/share/3ginfo-lite/3ginfo-addon/21093431 ]
+ '[' -e /usr/share/3ginfo-lite/3ginfo-addon/2cb70104 ]
+ cat /tmp/sysinfo/board_name
+ . /usr/share/3ginfo-lite/3ginfo-addon/2cb70104
+ sms_tool -d /dev/ttyUSB1 at+ xargs
 'AT+GTCCINFO?'
+ QO='AT+GTCCINFO? +GTCCINFO: LTE service cell: 1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22 LTE neighbor cell: 2,4,,,,,514,19D,,23,23,10 2,4,,,,,514,172,,23,23,10'
+ echo+ sed 's/.*LTE service cell://;'
 'AT+GTCCINFO? +GTCCINFO: LTE service cell: 1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22 LTE neighbor cell: 2,4,,,,,514,19D,,23,23,10 2,4,,,,,514,172,,23,23,10'+ xargs

+ S='1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22 LTE neighbor cell: 2,4,,,,,514,19D,,23,23,10 2,4,,,,,514,172,,23,23,10'
+ echo '1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22 LTE neighbor cell: 2,4,,,,,514,19D,,23,23,10 2,4,,,,,514,172,,23,23,10'
+ awk -F 'LTE neighbor cell' '{print $1}'
+ xargs
+ E=1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22
+ echo 'AT+GTCCINFO? +GTCCINFO: LTE service cell: 1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22 LTE neighbor cell: 2,4,,,,,514,19D,,23,23,10 2,4,,,,,514,172,,23,23,10'
+ + awk 'NR ==2{print}'
grep -A2 'service cell'
+ OX=
+ echo 1,4,262,01,5D4,1BC7511,1900,1CD,120,50,12,36,36,22
+ + awk '-F[,:]' '/^\+GTCCINFO:/ {print $6}'
xargs
+ TAC_HEX=
+ '[' -n TAC_HEX ]
/usr/share/3ginfo-lite/3ginfo.sh: /usr/share/3ginfo-lite/3ginfo-addon/2cb70104: line 12: arithmetic syntax error
root@RAN:/usr/share/3ginfo-lite/3ginfo-addon# 
4IceG commented 1 year ago

Another version to test.. 2cb70104.zip

HansBorjes commented 1 year ago

Okay, thanks. We are getting further. I had to do some edits.

> 11c11
> < if [ -n "$TAC_HEX" ]; then
> ---
> > if [ -n "TAC_HEX" ]; then
> 22c22
> < RSSI=$(echo "$OX" | awk -F [,] '{printf "%.0f\n", $14-110}')
> ---
> > RSSI=$(echo "$OX" | awk -F[,] '{printf "%.0f\n", $14-110}')
> 31c31
> < #MODEL="$MODELB "$MODELA
> ---
> > MODEL="$MODELB "$MODELA
> 44c44
> < # edited
> ---
> > 
> 47c47
> < TX=$(echo "$OT" | awk '/\+MTSM:/{print $2}')
> ---
> > TX=$(echo "$OT" | awk '/\+MTSM/{print $2}')
> 49c49
> <     TEMP="$TX &deg;C"
> ---
> >     TEMP="$T &deg;C"
> 
> 

That results in

image
4IceG commented 1 year ago

Right, lots of mistakes on my part. Lack of concentration.

You can check if it's better now. Can you add what's missing?

# Fibocom FM-150

O=$(sms_tool -d $DEVICE at "AT+GTCCINFO?")
T=$(echo $O | tr -s "\n"  | xargs)
MODE=$(echo $T | awk '{print $3}')

TAC_HEX=$(echo "$T" | awk -F[,:] '{print $7}' | xargs)
if [ -n "$TAC_HEX" ]; then
    TAC_DEC=$(( 16#$TAC_HEX ))
fi

if [ "$MODE" = "LTE" ]; then
RSRQ=$(echo "$T" | awk -F [,] '{printf "%.0f\n", -20+($14/2)}')
RSRP=$(echo "$T" | awk -F [,] '{printf "%.0f\n", $13-140}')
SINR=$(echo "$T" | awk -F [,] '{printf "%.0f\n", $11/4+5}')
RSSI=$(echo "$T" | awk -F[,] '{printf "%.0f\n", $14-110}')
fi

# Modem
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{gsub("\"","");print $2}')
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{gsub("\"","");print $2}')
MODEL="$MODELB "$MODELA

OF=$(sms_tool -d $DEVICE at "at+gmr?")
FW=$(echo "$OF" | awk -F[,:] '/^\+GMR:/ {print $2}' | xargs)

# International Mobile Equipment Identity (IMEI)
OAA=$(sms_tool -d $DEVICE at "AT+CGSN?")
NR_IMEI=$(echo "$OAA" | awk -F [:,] '/\+CGSN/{gsub("\"","");print $2}')

# International Mobile Subscriber Identity (IMSI)
OBB=$(sms_tool -d $DEVICE at "AT+CIMI?")
NR_IMSI=$(echo "$OBB" | awk -F [:,] '/\+CIMI/{gsub("\"","");print $2}')

#  Integrated Circuit Card Identifier (ICCID)
OCC=$(sms_tool -d $DEVICE at "AT+ICCID")
NR_ICCID=$(echo "$OCC" | awk -F [:] '/ICCID:/{gsub("\r","");print $2}')

# Temp
OT=$(sms_tool -d $DEVICE at "AT+MTSM=1")
TX=$(echo "$OT" | awk '/\+MTSM/{print $2}')
if [ -n "$TX" ]; then
    TEMP="$TX &deg;C"
fi

# Protocol
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
PV=$(cat /sys/kernel/debug/usb/devices 2>/dev/null)
PVCUT=$(echo $PV | awk -F 'Vendor=2cb7 ProdID=0104' '{print $2}' | cut -c-1290)
if echo "$PVCUT" | grep -q "Driver=qmi_wwan"
then
    PROTO="qmi"
elif echo "$PVCUT" | grep -q "Driver=cdc_mbim"
then
    PROTO="mbim"
elif echo "$PVCUT" | grep -q "Driver=cdc_ether"
then
    PROTO="ecm"
fi
HansBorjes commented 1 year ago

The good news is that I could modify your code and get another step further.

The bad news is that I had to change many lines in order to get them running without JSON parse errors. I am really not a shell guy and it takes me a lot of time to find out which lines fail and why.

Unfortunately you didn't use all my changes from the diff above that I had to apply again.

This time I had to do so many changes that I consider impossible to see them without a diff tool. Can we just use the power of github by adding it as a file here in the repo? I can then propose my changes on a branch.

image
4IceG commented 1 year ago

Nobody said that adding a modem is quick, easy and fun. :) The easiest way to add a modem that you have because you can easily go command by command and then you can see where you made a mistake. I test scripts before adding, but I'm only human and can make mistakes.

I can add what's in the package on the next build. All you have to do is send me the file here.

HansBorjes commented 1 year ago

All you have to do is send me the file here.

Okay, I will fine-tune a little bit and upload my file next days.

Another question upfront: if modem reports mode 13, we will assume 5G Non Standalone, right?

4IceG commented 1 year ago

I'm sorry but I don't know what this message means, maybe the documentation explains something.

FIBOCOM.zip

HansBorjes commented 1 year ago

... maybe the documentation explains something.

Thanks, that helps. It clearly says that if the modem tells

AT+COPS? +COPS: 0,2,"26201",13

it is in 13 E-UTRA-NR dual connectivity (see NOTE 6)

NOTE 6: 3GPP TS 38.331 [160] specifies the information which, if present, indicates that the serving cell is supporting dual connectivity of E-UTRA with NR and is connected to an EPS core.

I will add that in my file version and submit it to you when tested.

HansBorjes commented 1 year ago

Okay, this is my tested version Please include it in the next release.

2cb70104.txt

4IceG commented 1 year ago

Hi @HansBorjes , Ok thanks. Do you have a screenshot? I'm curious what the added support looks like now :).

HansBorjes commented 1 year ago

Sure. What remains open is carrier aggregation info. I couldn't figure out from the document how to read that from the modem. Probably we find out later.

image
4IceG commented 1 year ago

Looks nice :).

The scripts still don't cut as they should. Truncates unit in connection stats.

We can also remove "Wireless Inc." from the modem name.

I don't know if this command is not responsible for aggregation.. we just need to decode it.

AT+GTCAINFO?
PCC: 120,461,6400,50,2,1,1,1,34
HansBorjes commented 1 year ago

I can carefully change single lines in the script to test improvements.

Interesting command that is not mentioned in the doc. In my case it returns:

AT+GTCAINFO?
PCC: 108,196,3749,50,2,1,0,0,40

Would it be helpful to compare with data from cellmapper.net?

4IceG commented 1 year ago

This should work quickly:

# Modem
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
MODEL="$MODELBCUT $MODELA"

Would it be helpful to compare with data from cellmapper.net?

Either way is good to understand what the modem returns.

HansBorjes commented 1 year ago

I can carefully change single lines in the script to test improvements.

Interesting command that is not mentioned in the doc. In my case it returns:

AT+GTCAINFO?
PCC: 108,196,3749,50,2,1,0,0,40

Would it be helpful to compare with data from cellmapper.net?

Yes!

196 = PCI 3749 = EARFCN

image
HansBorjes commented 1 year ago

This should work quickly:

# Modem
OA=$(sms_tool -d $DEVICE at "AT+CGMM?")
MODELA=$(echo "$OA" | awk -F [:,] '/\+CGMM/{print $2}' | xargs)
OB=$(sms_tool -d $DEVICE at "AT+CGMI?")
MODELB=$(echo "$OB" | awk -F [:,] '/\+CGMI/{print $2}' | xargs)
MODELBCUT=$(echo $MODELB | sed s/"Wireless Inc."//)
MODEL="$MODELBCUT $MODELA"

Confirmed.

image
4IceG commented 1 year ago

But we still need to get the band(s) out.

I'll keep looking, I'll ask. Slowly, but forward :).

4IceG commented 1 year ago

Hi @HansBorjes , can you show the result of the commands again:

AT+CSQ
at+CPIN?
at+COPS=3,0;+COPS?
at+COPS=3,2;+COPS?
at+CREG=2;+CREG
AT+GTCCINFO?
AT+GTRAT?
AT+GTCAINFO?
HansBorjes commented 1 year ago

Sure. But at the moment I have switched to my Vodafone simcard. They offer 5G SA which is not available inhouse due to 3,6GHz carrier.

Does it still make sense to run your commands in a different simcard context?

4IceG commented 1 year ago

Hi, you can test on both cards. More examples means a better chance of understanding the commands syntax.

HansBorjes commented 1 year ago

AT+CSQ +CSQ: 21,99

at+CPIN? +CPIN: READY

at+COPS=3,0;+COPS? +COPS: 0,0,"vodafone.de",7

at+COPS=3,2;+COPS? +COPS: 0,2,"26202",7

at+CREG=2;+CREG

AT+GTCCINFO? +GTCCINFO: LTE service cell: 1,4,262,02,BFD3,2D4201,189C,30,120,50,16,42,42,26 LTE neighbor cell: 2,4,,,,,189C,190,,24,24,2 2,4,,,,,189C,DB,,34,34,10 2,4,,,,,189C,165,,28,28,2 2,4,,,,,189C,1A0,,27,27,0 2,4,,,,,189C,CF,,33,33,12 2,4,,,,,64,EA,,12,12,10

AT+GTRAT? +GTRAT: 6,3,2

AT+GTCAINFO? PCC: 120,48,6300,50,0,1,0,0,42

4IceG commented 1 year ago

Hi @HansBorjes , make a copy of the file and test this version if you can.

Still this modem is a mystery, I can't find the syntax for all the commands, so it's hard to get more details. 2cb70104.zip

HansBorjes commented 1 year ago

... make a copy of the file and test this version if you can.

Looks like this. It is only assessing for LTE mode, not yet 5G, right?

image
4IceG commented 1 year ago

Exactly, the scripts read LTE itself. The modem does not return information that it is using 5G (for 5G it should be "NR service cell:"), so LTE is correct here, even there is no band aggregation, which is shown by the command "AT+GTCAINFO?".

Ok, TAC and these connection statistics without a unit remain to be correct.

HansBorjes commented 1 year ago

I would expect band aggregation to be initiated dynamically by the network on a large active download, not by the modem and not in idle.

I am not sure about 5G NR service cell. Isn't that only true for 5G SA? For 5G NSA the control plane is still LTE and the user plane is 5G, i.e. data transmission. And I am speculating that the network will also handle that dynamically.

Isn't that the unpleasant situation that network providers don't want smartphones to display LTE in 5G NSA?

4IceG commented 1 year ago

In my opinion, the modem uses whatever technology it is within range. I have an LTE-A modem and I don't have LTE at the start, I have aggregation right away (4 bands), as much as BTS allows.

You know the commands, you can test yourself by downloading something from the Internet. Will the modem work as you think.

A modem is not a smartphones, here the user sees more data and You can get more information on your phone by installing additional applications. The question is whether the user wants to see more, more precisely.

Shows if there is 5G (for 5G it should be "NR service cell:")
AT+GTCCINFO?
Shows if there is band aggregation ("SCC:" on aggregation, in my opinion)
AT+GTCAINFO?
HansBorjes commented 1 year ago

In Germany we have 4 providers running own networks.

I only have simcards from Telekom and Vodafone at the moment. I have tried to force my modem into mode 12, but no registration possible. That seems to match the limitation of my private customer simcard.

The interesting thing is that my modem is certified by Deutsche Telekom, so I suppose it fulfills all 5G requirements from their network.

I think in the 5G NSA model the modem registers in the LTE network and uses spectrum of a 5G cell for data transmission. In the 5G SA model it registers directly on a 5G cell.

4IceG commented 1 year ago

I do not keep track of what it looks like in Poland. Probably most operators only provide 5G NSA, as far as I know, Plus is developing its 5G SA. Unfortunately, the number of BTSs and the prices of new/sensible modems effectively discourage testing this technology.