Block or lock to CELL ID with MC8805


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.

qmicli -d /dev/cdc-wdm0 -p --nas-get-cell-location-info

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?



Unfortunately there is no way to black list a cell, if its a valid cell for your operator then the unit will use it.



Are there any other options than blacklisting?

Can I lock my modem to a specific CELL ID? So no blacklisting at all but preferring (or forcibly choosing) another CELL ID of the operator.

What about an explicit handover request? Can I tell my MC8805 to do request a handover to another cell?


This is a really old unit and from memory (as I cannot find the really old maunals) I do not think there was a way to lock onto a single cell.



Are there any other units in the MC series that can lock onto a single cell?


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.



Let me get this clear.

Doesn’t the WWAN module decide itself which cell it registers to?

How does the network provider control the WWAN module regarding cell selection?

Does cell selection depend on both the WWAN module and the provider or just one of them?

How does my MC8805 decide which cell it registers to?

I’m not really familiar with 3GPP cell selection mechanisms. I would like to understand the basics before I start tampering with any device.


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.


I understand your needs but there is no sensible technical way to achieve it as you cannot specifically avoid a single cell.



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.

AT!BAND=10,"Europe 3G w/o B8",0000000000400000,0000000000000000

More information about band mask calculation can be found here.

Don’t forget to activate the band.

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.

Thanks @mlw, for your clarifications & ideas.