Hi everyone! New GL-X3000 user here. I”m very new to the cellular internet world and still coming up to speed. Any patience with my questions is appreciated.
I looked through the forums and had a lot of questions answered but I still have a few I haven’t found answers to.
The speeds I get are all over the place. They peak as high as ~230 down / ~80 up and as low as ~20 down / ~10 up. I’m only a few days in so I’m still looking at potential solutions and learning about signals, towers and everything else. I’m using T-Mobile through Calyx.
Is it possible the slow speeds are due to excessive speed tests?
If so, is there some way to determine if it’s throttling or congestion?
I cobbled together a script I’m running every 5 minutes to check RSRP, SINR and RSQ to try and determine if signal strength changes during peak hours. Is there anything else I should look at?
I read a few people upgraded firmware but I couldn’t find a changelog. Are any available for each version? Should I upgrade from the version I’m running?
I want to optimize performance and throughput. I thought about using a piehole to stop the junk sooner and another rasperry pi as a forward proxy to cache static content might help but I would love to hear any thoughts about this or any other suggestions.
I looked into SQM but cake-autorotate isn’t in 4.8.x. Is there a way to reliably install and use it without too much duct tape?
Today the speed was horrible even though signal strength looked good. Rebooting the router fixed this but is this common with cellular internet connections?
Has anyone seen an improvement using a vanilla version of OpenWRT? Are there any benefits to using a vanilla version vs the version that comes from GL?
I thought about buying a Waveform QuadPro as a last resort. The tower is literally down the street on the next block over but I would like to try and get the lower hanging fruit squared away first.
Thank you for the link to the snapshot firmware and sharing the bit about Contention Radio. It’s a new term for me so down another rabbit hole I go.
Did the Quad Mini improve your speeds?
I ssh’ed into the router and ran it in a loop to confirm it would work as expected.
ssh into the router and paste the script into a text file and save it.
Start a screen session so that it runs after you logout. You may need to install the screen package. The tmux package does the same but I’m not as familiar with it yet. I
Run the script in a loop. Set the to whatever you want. You can also set minutes or hours but the default is seconds.
Press “ctrl+a” and then tap “d” to detach from the screen. If you want to see if it’s still running then “screen -ls” will show you. Please keep in mind that if your router reboots, the screen session will terminate.
It’s better to add this to the crontab but I haven’t looked to see if OpenWrt manages cron any different yet.
# ssh into the router
ssh root@<router-ip>
# change to the directory you want to run the script in. I made a sub-directory in my current working directory
mkdir signal-report
cd signal-report
# open a text file to edit.
vi script-name
# press "i" to change to "insert" mode and paste the script into the file
# press the "esc" key to stop insert mode
# press "ZZ" to save the file
# make the the file executable so it can run
chmod 700 script-name
# create the screen with screen -S <session-name>
# when you create the session you will automtically be put inside of it
screen -S some-session-name
# create the loop. this is for 5 mins
while true ; do ./script-name ; sleep 300 ; done
# to exit the screen session, press "ctrl+a" and then separately press "d" to detach
# if there are no errors you should be able to see the output in the report file
tail -f report.txt
# if you want to exit out of following the report file, press "ctrl+c"
apologies for any typos! please keep in mind you may need to change the bus to your modems bus and for fun you can always change the name of the report file.
Thank you for sharing your script and method for signal detection.
Just to mention, we currently support the feature of historical signal records, and you can find the details in the following document:
Regarding your questions:
The slow cellular network speeds is a complex issue, and typically, it’s hard to pinpoint the exact cause.
In most cases, signal quality determines the upper limit of network speed (i.e., the physical channel limit, similar to how the speed of an Ethernet cable doesn't represent the actual internet speed you can achieve).
Carriers have different priority levels and speed templates.
For example, different priorities based on your plan (higher priority theoretically means better speed) and speed caps.
In crowded areas, carriers may further configure base stations to lower the speed limits for everyone to avoid a few people using up most of the bandwidth.
The base station and cellular core network will dynamically adjust the speed available to different users based on their load.
We don’t recommend upgrading the firmware version of the cellular module. The default firmware version shipped with the device has been validated by us and is stable and suitable for use with our devices.
Please note that when enabling SQM, you must disable the device's hardware acceleration in Admin Panel > Network > Network Acceleration.
Yes, in some cases, the base station the device is currently connected to might be overloaded, causing slower speeds. If you restart the device, it will restart the network search and registration process, which may help the router connect to a base station with a lower load.
For this situation, since whether the device reconnects to another base station is usually controlled by the network (not the router side), there may not be many other good solutions aside from restarting the module/router or manually triggering a network disconnection and reconnection.
Please note that vanilla OpenWRT does not have the GL.iNet custom interface, and all operations must be done through Luci. We welcome others who have used vanilla OpenWRT to share their experiences.
Hi, Will. I did see the historical signal records and it’s possible I missed something, but it only goes back 30 minutes. I would like to eventually graph the history to look for trends and track congestion.
Thank you very much for all of that info. The celluar ISP world seems so much different than what I’ve used before but thankfully much more affordable.
It’s interesting to hear that’s how it works. Is this common among carriers? Are you aware of any sort of load balancing done on their end to better distribute traffic?
I will admit the GL.iNet GUI is very nice. I like that so many more options are open to tweak compared to most other SOHO routers and the OpenWRT interface is still accessible. I would definitely be interested in hearing everyone else’s experience with vanilla OpenWRT. My focus is primarily on performance and maximizing it, if possible. It’s why I don’t use WiFi and many other features built in. I want the CPU to focus on routing packets, especially once the home lab/self-hosting is setup.
Yes, the X3000’s historical signal records are retained for up to 30 minutes only, to avoid excessive logs consuming memory and storage.
If you need longer-term records, using your own script would be a better option.
This is quite common with mobile carriers.
Mobile carriers do use various techniques (such as MLB) to steer or switch user devices (like cellular routers) to different base stations or frequency bands to achieve a certain level of “load balancing.” However, this comes at the cost of additional resource usage and power consumption on both the network side and the user device.
Since the primary goal of mobile carriers is to provide a “usable” connection rather than the best possible speed for every device, they are generally not very proactive or aggressive in triggering handovers simply because a speed has dropped.