There is a nearby cell which supplies low speeds on 3G (HSDPA, HSUPA, HSPA+ supported) still my Sierra Wireless MC8805 prefers it most of the time. 10 Mbit/s for download and 1 Mbit/s for upload. Every time I can somehow make it choose another cell (e.g. carry my laptop around in my room one or more times), the speed boosts up to 30 Mbit/s DL and 5 Mbit/s UL which is considered normal for 3G HSPA+.
I would like to tell my MC8805 to prefer another cell or just ignore / forget about (blacklist) the slow cell of which I can query the exact ID with the following command.
I’m using Ubuntu Bionic with ModemManager 1.10 and libqmi-utils 1.22.0. There isn’t any problem with connection stability or the kernel driver but sadly, I couldn’t find any way to make MC8805 prefer another cell with mmcli or qmicli.
Might there be an AT command for cell ID preference (or blocking). I’m not yet familiar with AT commands. Is there any way to do this?
The 74 series can but you need to use the QMI API (so not AT commands) and talk to your support path directly and the ability is not public given it over rides the operators ability to control the UE which they will not necessarily be happy with.
When the unit is idle and does not have a data connection up then it is free to decide its serving cell, however, when you start a data connection/voice call, the network is able to command the unit onto any EnodeB it wants for any one of a number of reasons i.e. load balancing, etc.
As I have said there are proprietary mechanisms to stop a given unit being pushed onto another cell but if you are strictly operating as per 3GPP and more specifically the way the networks want you to (and as all of our units out of the factory are configured), then you will allow this re allocation.
When I’m using mobile broadband I’m on one of 4-5 different cells and they change during usage. I’m afraid that preventing handover alone would not be enough. Because what if my WWAN modem registers initially to the slow cell, then I won’t be able to get it off that cell if there’s no option for registering to a fixed cell or locking to cell ID. Also it’s okay with me if the provider does load balancing and pushes me to another cell. I only want to avoid one specific cell that has slow speeds. The rest are OK.
Fortunately for me, the slow cell was in the B8 (900MHz) band so I successfully worked it around by disabling that band supplying a modified band mask to the AT!BAND command. All other cells in the same eNB are in the B1 band. Now I have a 3x faster HSDPA download at 25 Mbit/s and a full-speed upload at 5 Mbit/s again. I’ll probably make a shell script that can quickly re-enable B8 when I leave the coverage of the slow cell.
For others, encountering a similar issue
To change bands, first you need to authenticate with AT!ENTERCND command to enable password-protected commands.
The following command creates a custom band with index 10 and a band mask excluding B8.
More information about band mask calculation can be found here.
Don’t forget to activate the band. AT!BAND=10
No modem reset required, the modem will move to another cell seamlessly.
Users of MC8805 should note that they may not be able to add custom bands above band index 08, at least with firmware version SWI9X15C_01.08.16.02. I ran into random issues with that, however after a few tries I could manage to add my custom band with index 10 as described above. In case you can’t, you’ll need to overwrite one of the factory bands using the same name. Be careful with that and always save the original list, available via the AT!BAND=? command, to some good place.