[GH-ISSUE #11] Sierra Wireless MC7355 (/ EM7355?) #8

Closed
opened 2026-03-04 14:27:02 +03:00 by kerem · 1 comment
Owner

Originally created by @Synergyst on GitHub (Mar 13, 2024).
Original GitHub issue: https://github.com/4IceG/luci-app-3ginfo/issues/11

root@DumbWRT:~# cat /usr/share/3ginfo-lite/modem/usb/11999041
# Sierra Wireless EM7355 (maybe? I do not own one to test with)
# Sierra Wireless MC7355

O=$(sms_tool -d $DEVICE at "at!gstatus?")

T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | grep -oE "\d+\.?\d{0,2}")
[ -n "$T" ] && TEMP="$T °C"

if [ "x$MODE_NUM" = "x7" ]; then
        T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
        if [ -n "$T" ]; then
                T_DEC=$(printf "%d" "0x$T")
                T_HEX=$T
        fi

        T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs)
        [ -n "$T" ] && RSSI="${T// //}"
        T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs)
        [ -n "$T" ] && RSRP="${T// //}"
        T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
        [ -n "$T" ] && RSRQ="$T"
        T=$(echo "$O" | awk '/^SINR/ {print $3}')
        [ -n "$T" ] && SINR="$T"

        T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
        if [ -n "$T" ]; then
                T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
                PBAND="$(band ${T/B/}) @${T1} MHz"
                MODE="$MODE $(band ${T/B/})"
        fi
        T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
#       [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
        T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
#       [ -n "$T" ] && addon 34 "EARFCN UL" "$T"

        T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}')
        if [ -n "$T" ]; then
                T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}')
                if [ -n "$T1" ]; then
                        S1BAND="$(band ${T/B/}) @${T1#bw:} MHz"
                else
                        S1BAND="$(band ${T/B/})"
                fi
                MODE="${MODE/LTE/LTE_A} / $(band ${T/B/})"

                T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}')
                [ -n "$T" ] && S1EARFCN="${T#chan:}"

                T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs)
                [ -n "$T" ] && RSSI="${T// //} dBm"
                T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs)
                [ -n "$T" ] && RSRP="${T// //} dBm"
        fi
fi

MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,')

# Modem
FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs)
FW=$(echo $FWA | sed s/"AT+CGMR "//)

MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs)
MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs)

MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//)
MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",")
MODEL="$MODELBCUT "$MODELACUT

# International Mobile Equipment Identity (IMEI)
O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs)
NR_I=$(echo "$O" | sed s/"AT+CGSN "//)
if [ -n "$NR_I" ]; then
        NR_IMEI="$NR_I"
fi

# International Mobile Subscriber Identity (IMSI)
O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs)
NR_C=$(echo "$O" | sed s/"AT+CIMI "//)
if [ -n "$NR_C" ]; then
        NR_IMSI="$NR_C"
fi

#  Integrated Circuit Card Identifier (ICCID)
O=$(sms_tool -d $DEVICE at "AT+ICCID")
NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs)
if [ -n "$NR_D" ]; then
        NR_ICCID="$NR_D"
fi

# Protocol
# DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER
PV=$(cat /sys/kernel/debug/usb/devices)
PVCUT=$(echo $PV | awk -F 'Vendor=1199 ProdID=9041' '{print $2}' | cut -c-1100)
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
root@DumbWRT:~#

Modem type: Sierra Wireless MC7355
Revision / Firmware: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
IP adress / Communication Port: /dev/ttyUSB2
Protocol: qmi

This seems to be working, though I may've missed something, please let me know if I need to share more information or modify anything for testing's sake. :)

Originally created by @Synergyst on GitHub (Mar 13, 2024). Original GitHub issue: https://github.com/4IceG/luci-app-3ginfo/issues/11 ``` root@DumbWRT:~# cat /usr/share/3ginfo-lite/modem/usb/11999041 # Sierra Wireless EM7355 (maybe? I do not own one to test with) # Sierra Wireless MC7355 O=$(sms_tool -d $DEVICE at "at!gstatus?") T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | grep -oE "\d+\.?\d{0,2}") [ -n "$T" ] && TEMP="$T °C" if [ "x$MODE_NUM" = "x7" ]; then T=$(echo "$O" | awk '/.*TAC:/ {print $5}') if [ -n "$T" ]; then T_DEC=$(printf "%d" "0x$T") T_HEX=$T fi T=$(echo "$O" | awk '/^PCC.*RSSI/ {print $4}' | xargs) [ -n "$T" ] && RSSI="${T// //}" T=$(echo "$O" | awk '/^PCC.*RSRP/ {print $7}' | xargs) [ -n "$T" ] && RSRP="${T// //}" T=$(echo "$O" | awk '/^RSRQ/ {print $3}') [ -n "$T" ] && RSRQ="$T" T=$(echo "$O" | awk '/^SINR/ {print $3}') [ -n "$T" ] && SINR="$T" T=$(echo "$O" | awk '/^LTE band:/ {print $3}') if [ -n "$T" ]; then T1=$(echo "$O" | awk '/^LTE band:/ {print $6}') PBAND="$(band ${T/B/}) @${T1} MHz" MODE="$MODE $(band ${T/B/})" fi T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}') # [ -n "$T" ] && addon 34 "EARFCN DL" "$T" T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}') # [ -n "$T" ] && addon 34 "EARFCN UL" "$T" T=$(echo "$O" | awk -F: '/^LTE CA state:.*ACTIVE/ {print $3}') if [ -n "$T" ]; then T1=$(echo "$O" | awk '/^LTE Scell bw:/ {print $3}') if [ -n "$T1" ]; then S1BAND="$(band ${T/B/}) @${T1#bw:} MHz" else S1BAND="$(band ${T/B/})" fi MODE="${MODE/LTE/LTE_A} / $(band ${T/B/})" T=$(echo "$O" | awk '/.*LTE Scell chan:/ {print $7}') [ -n "$T" ] && S1EARFCN="${T#chan:}" T=$(echo "$O" | awk '/^SCC.*RSSI/ {print $4}' | xargs) [ -n "$T" ] && RSSI="${T// //} dBm" T=$(echo "$O" | awk '/^SCC.*RSRP/ {print $7}' | xargs) [ -n "$T" ] && RSRP="${T// //} dBm" fi fi MODE=$(echo $MODE | sed "s/LTE_A/LTE-A |/g" | sed 's,/,+,') # Modem FWA=$(sms_tool -d $DEVICE at "AT+CGMR" | tr -s "\n" | xargs) FW=$(echo $FWA | sed s/"AT+CGMR "//) MODELA=$(sms_tool -d $DEVICE at "AT+CGMM" | tr -s "\n" | xargs) MODELB=$(sms_tool -d $DEVICE at "AT+CGMI" | tr -s "\n" | xargs) MODELACUT=$(echo $MODELA | sed s/"AT+CGMM "//) MODELBCUT=$(echo $MODELB | sed s/"AT+CGMI "// | cut -f1 -d",") MODEL="$MODELBCUT "$MODELACUT # International Mobile Equipment Identity (IMEI) O=$(sms_tool -d $DEVICE at "AT+CGSN" | xargs) NR_I=$(echo "$O" | sed s/"AT+CGSN "//) if [ -n "$NR_I" ]; then NR_IMEI="$NR_I" fi # International Mobile Subscriber Identity (IMSI) O=$(sms_tool -d $DEVICE at "AT+CIMI" | xargs) NR_C=$(echo "$O" | sed s/"AT+CIMI "//) if [ -n "$NR_C" ]; then NR_IMSI="$NR_C" fi # Integrated Circuit Card Identifier (ICCID) O=$(sms_tool -d $DEVICE at "AT+ICCID") NR_D=$(echo "$O" | awk -F[,:] '/^ICCID: /{print $2}' | xargs) if [ -n "$NR_D" ]; then NR_ICCID="$NR_D" fi # Protocol # DRIVER=QMI_WWAN & DRIVER=CDC_MBIM & DRIVER=CDC_ETHER PV=$(cat /sys/kernel/debug/usb/devices) PVCUT=$(echo $PV | awk -F 'Vendor=1199 ProdID=9041' '{print $2}' | cut -c-1100) 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 root@DumbWRT:~# ``` Modem type: `Sierra Wireless MC7355` Revision / Firmware: `SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23` IP adress / Communication Port: `/dev/ttyUSB2` Protocol: `qmi` This seems to be working, though I may've missed something, please let me know if I need to share more information or modify anything for testing's sake. :)
kerem closed this issue 2026-03-04 14:27:03 +03:00
Author
Owner

@4IceG commented on GitHub (Mar 13, 2024):

Hi,
If it works, I won't doubt it, I will add modem during the next package/repository compilation.

Thanks for supporting 3ginfo-lite package :).

<!-- gh-comment-id:1995797407 --> @4IceG commented on GitHub (Mar 13, 2024): Hi, If it works, I won't doubt it, I will add modem during the next package/repository compilation. Thanks for supporting 3ginfo-lite package :).
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#8
No description provided.