Ok, I figured out a bunch of things. I was originally receiving horrible speeds for T-Mobile (circa 0.7Mbps download) by simply plugging in the device. Meanwhile, my MoFi4500 and iPhone X Qualcomm were both achieving 5-6Mbps.
I noticed that the X750 Spitz kept connecting to Band 12. I suspect it kept connecting to Band 12 because it had the stronger signal. To achieve higher speeds, I needed to switch away from Band 12. Typically, 700MHz Band 12 will be more congested because it only has 5MHz of bandwidth available for a wider area. 700MHz penetrates well into buildings, or elevators, but if you’re antennas are right next to a window, it’s unlikely to help. I needed to switch to a higher MHz band, such as LTE Band 4 (1700/2100 MHz aka AWS bands) or LTE Band 2 (1900 MHz). T-Mobile operates these two bands with more bandwidth, 20MHz and 10MHz depending on the geographical market.
To change LTE Bands use the following AT Commands
Bands | AT Commands | Notes |
---|---|---|
2 | AT+QCFG="band",0,2,1 |
|
4 | AT+QCFG="band",0,8,1 |
|
5 | AT+QCFG="band",0,10,1 |
|
2+4 | AT+QCFG="band",0,a,1 |
This will likely be the fastest for urban environments |
2+4+5 | AT+QCFG="band",0,1a,1 |
|
12 | AT+QCFG="band",0,800,1 |
|
2+4+12 | AT+QCFG="band",0,80a,1 |
|
2+4+5+12 | AT+QCFG="band",0,81a,1 |
This covers all T-Mobile bands |
2+12 | AT+QCFG="band",0,802,1 |
|
4+12 | AT+QCFG="band",0,808,1 |
|
5+12 | AT+QCFG="band",0,810,1 |
This will be best for rural deployments as 850MHz Band 5, and 700MHz Band 12 will reach the farthest distance |
Reset to Default (All Bands) | AT+QCFG="band",0,2000000003300185a,1 |
These changes are immediate, and the EP06-A modem will switch without requiring a reset or reboot. You will have to wait 5-10 seconds for the switch over to occur. You should notice the LEDs turn off when the command is issued.
By changing away from Band 12, I was able to achieve significantly better speeds and ping to 8.8.8.8
. Normally in urban environments I’d set my bands to 2+4
to achieve the fastest speeds. But you will have to monitor your ping, speedtest and LTE band throughout the day in order to switch to the fastest band. This is why I would recommend against looking at signal strength (with command AT+CSQ
) since your speed and latency will depend on how congested the tower is, instead of how strong the signal is.
FYI T-Mobile has limited deployment of LTE Band 5.
I’ve yet to figure out if you can bandlock for Carrier Aggregation (CA). Though in my case, since T-Mobile typically CAs with Band 12, I wouldn’t want to allow Spits to touch that band.
To fetch the current band
AT+QNWINFO
This will return LTE BAND 2
, or whichever band you’re connected to.
Set EP06 Modem LTE only
AT+QCFG="nwscanmode",3,1
You can change the above command’s param value 3
to 0
for AUTO
, or 2
for WCDMA only
or 3
for LTE only
. I would recommend leaving it at LTE only
.
Set your TTL to 64 to avoid hotspot bandwidth allocation
If you’re on one of T-Mobile’s unlimited data plans, such as T-Mobile One, then you will want to prevent T-Mobile from restricting your tethering speed by setting your time-to-live (TTL) to 64.
Go to Spits Panel > Advance > log into Luci > Network tab > Firewall > Custom > and Add iptables -t mangle -I POSTROUTING 1 -j TTL --ttl-set 64
to the beginning of the script > click the Restart button.
Suggestions to the Gl.inet team
- Provide an easy way to issue
AT+QNWINFO
- Provide an easy way to change to a specific set of bands via a checkbox similar to MoFi’s interface.
- Provide an easy way through the dropdown to set the
nwscanmode
. - Is there a way to automate picking bands with a script? If you can point me to the right direction, I’ll write one myself. I’m unsure if openwrt has a crontab to run a script at a regular interval. I’m unsure how to issue
AT
commands through the command line. And I’m unsure if there’s a way to run a script when the modem boots up and connects or reconnects.