Got one myself, an improvement over the huawei stick:
I’m about 650m from the tower with no line of sight.
Getting stats and locking bands on the stock firmware needs a little bit of effort, pawol over at the eko.one forums has some javascript that apparently works as a chrome bookmark
https://eko.one.pl/forum/viewtopic.php?id=19085&p=11 , but for anyone who wants to use curl etc:
#!/bin/bash
IP="http://192.168.0.1"
COOKIE="zte-cookie"
PASSWORD="xxxxxxxx"
goform_get(){
curl -s -b $COOKIE $IP'/goform/goform_get_cmd_process?isTest=false&cmd='$1'&multi_data=1&_='$(date +%s) -H 'Referer: '$IP'/index.html'
}
set_band_lock(){
curl -b $COOKIE $IP'/goform/goform_set_cmd_process' -X POST -H 'Referer: '$IP'/index.html' --data-raw 'goformId=SET_LTE_BAND_LOCK&'$1'&isTest=false&AD='$AD
}
calc_ad(){
#Get serial numbers
rd0=$(goform_get wa_inner_version | jq -r .wa_inner_version)
rd1=$(goform_get cr_version | jq -r .cr_version)
#Hash numbers together
rdXhash=$(echo -n "$rd0$rd1" | md5sum | awk '{print $1}')
#Get 'RD' string
RD=$(goform_get "RD" | jq -r .RD)
#Hash all together
AD=$(echo -n "$rdXhash$RD" | md5sum | awk '{print $1}')
}
calc_ad
#Login
RES=$(curl -s -c $COOKIE $IP'/goform/goform_set_cmd_process' -X POST -H 'Origin: '$IP -H 'Referer: '$IP'/index.html' --data-raw 'isTest=false&goformId=LOGIN_MULTI_USER&user=admin&password='$(echo -n $PASSWORD | base64)'&AD='$AD)
#Cookied request
goform_get "network_type,lte_ca_pcell_band,lte_ca_scell_band,wan_lte_ca" | jq
echo ""
PRI_BAND=$(goform_get "lte_ca_pcell_band" | jq -r .lte_ca_pcell_band)
SEC_BAND=$(goform_get "lte_ca_scell_band" | jq -r .lte_ca_scell_band)
echo "Current bands: B$PRI_BAND + B$SEC_BAND"
echo ""
echo "Select a band or bands to lock, eg:"
echo " 1+20"
echo " 3"
echo " all"
while :
do
echo "Enter band(s):"
read BAND
case $BAND in
1)
BAND_STRING="B1"
BAND_HEX=1
;;
3)
BAND_STRING="B3"
BAND_HEX=4
;;
7)
BAND_STRING="B7"
BAND_HEX=40
;;
20)
BAND_STRING="B20"
BAND_HEX=80000
;;
32)
BAND_STRING="B32"
BAND_HEX=80000000
;;
1+3 | 3+1)
BAND_STRING="B1 + B3"
BAND_HEX=5
;;
1+7 | 7+1)
BAND_STRING="B1 + B7"
BAND_HEX=41
;;
1+20 | 20+1)
BAND_STRING="B1 + B20"
BAND_HEX=80001
;;
3+20 | 20+3)
BAND_STRING="B3 + B20"
BAND_HEX=80004
;;
7+20 | 20+7)
BAND_STRING="B7 + B20"
BAND_HEX=80040
;;
7+32 | 32+7)
BAND_STRING="B7 + B32"
BAND_HEX=80000040
;;
20+32 | 32+20)
BAND_STRING="B20 + B32"
BAND_HEX=80080000
;;
1+3+7 | 1+7+3 | 7+3+1 | 7+1+3 | 3+7+1 | 3+1+7)
BAND_STRING="B1 + B3 + B7"
BAND_HEX=45
;;
1+3+20 | 1+20+3 | 20+3+1 | 20+1+3 | 3+20+1 | 3+1+20)
BAND_STRING="B1 + B3 + B20"
BAND_HEX=80005
;;
1+7+20 | 1+20+7 | 20+7+1 | 20+1+7 | 7+20+1 | 7+1+20)
BAND_STRING="B1 + B7 + B20"
BAND_HEX=80041
;;
all | ALL | All)
BAND_STRING="All Bands"
BAND_HEX=20880800D7
;;
*)
BAND_STRING="Unknown"
echo "Unknown"
continue
;;
esac
echo "Selected: $BAND_STRING Confirm?"
read CONFIRM
if [ "$CONFIRM" != "${CONFIRM#[Yy]}" ] ;then
echo "ok"
LOCK_PARAM='lte_band_lock=0x'$BAND_HEX
echo $LOCK_PARAM
calc_ad
set_band_lock $LOCK_PARAM
break
fi
done
echo ""
After the login cookie is acquired reading stats:
#!/bin/bash
IP="http://192.168.0.1"
COOKIE=zte-cookie
URI=$IP'/goform/goform_get_cmd_process?isTest=false&cmd=network_type,mcc,mnc,rssi,rsrq,lte_rsrp,wan_lte_ca,lte_ca_pcell_band,lte_ca_pcell_bandwidth,lte_ca_scell_band,lte_ca_scell_bandwidth,lte_ca_pcell_arfcn,lte_ca_scell_arfcn,Z_SINR,Z_CELL_ID,Z_eNB_id,Z_rsrq,lte_ca_scell_info&multi_data=1'
curl -s -b $COOKIE $URI -H 'Referer: '$IP'/index.html' | jq
Anything more requires a serial connection.
The speed test above is with CA on band 1 & 20 with 20 as the primary band, with band 1 I only get 2-5mbit upload, which the modem seems to default to.
I have tried setting 20 as the primary band all the time by locking to that cell, but when I do I the modem stops aggregating with band 1. On the eko.one forums locking to a cell is reported to set that as the primary and still allow CA:
https://eko.one.pl/forum/viewtopic.php?pid=258150#p258150.
I’m thinking about updating the software on the actual modem (the qualcomm based mini pcie card) to see if I can get the behaviour reported in the link. The unit I have is Three branded and shows its firmware version as HGGBMF286DV1.0.0B04, its auto update claims no newer is available, but firmware ending in B06-B11 seems to be around from other providers. Apparently the procedure involves using adb to push sequential updates to the modem card as detailed in the link here
https://eko.one.pl/forum/viewtopic.php?pid=271304#p271304.
Have not tried openwrt yet as without changing software on the actual modem I’d still have the problem of low upload with band 1 as primary.