You are on page 1of 14

Sierra Wireless Modems - Advanced Configuration

Disclaimer

The information here is not supported by Whirlpool or Sierra Wireless. You use it entirely at your own
risk!

Many of these commands are not documented in the official Sierra Supported AT Command Reference.

Using AT Commands

Sierra USB modems present several logical ports to the operating system when they interact with installed
drivers. A terminal program is used to issue AT commands to one or more of these ports.

Typically, 4 ports are added when a modem is plugged in.

In Linux at least, it's the second last port which is used for configuration AT commands, and the last port
that's used to issue the dial command which would open a PPP connection. So if /dev/ttyUSB0 through
/dev/ttyUSB3 get added, the terminal session should be using /dev/ttyUSB2 for configuration commands.

Many Windows systems come with the program Hyperterminal, which is a suitable terminal emulator. If
that's not available, apparently the DC-unlocker program will do the job if downloaded and installed.

Mac Cornflake.

On Linux systems a couple of suitable programs are picocom, minicom and gtkterm. Some Linux
flavours will require special access permission to use these USB ports, so you may need to become root.
On Fedora, adding an ordinary user to group gnokii seems to do the job.
Getting the Region Correct

Sierra modems sold in Australia should already have the region set correctly. Modems imported by
individuals probably don't.

Why is the region important?

Sierra firmware divides the bands the modem services into two band groups. Once a usable band is found,
these modems are extremely reluctant to switch to a band in the other band group.

So it's important to have all the bands which might be available locally in the same band group. And it's
the region which determines which bands are in which group.

The region groups are:

01 Europe (and the rest of the world)

02 North America

03 Australia

04 Japan

Imported modems are often set to region 1 (Europe). The bands in the first European group are:

GSM 900, GSM1800, UMTS 800, UMTS 900 and UMTS 2100

And in the second European group:

GSM 850, GSM 1900, UMTS 850, UMTS 900 and UMTS 1900
With this setting, UMTS 850 is not in the same group as the other Australian bands. This can result in a
modem with a Telstra SIM refusing to switch to NextG 850 once it's discovered 3GIS 2100 (at least until
taken out of a "3" coverage area). Likewise, it prevents useful band-swapping to or from 850 MHz with a
Vodafone SIM.

Sierra modems should be set to region 3, where the first band group is:

GSM 900, GSM 1800, UMTS 800, UMTS 850, UMTS 900 and UMTS 2100

and in the second group:

GSM 850, GSM 1900, UMTS 900 and UMTS 1900

To set the region to Australia, enter these two AT commands in order:

AT!ENTERCND="A710"

AT!CUSTOM="PRLREGION",03

This needs doing once only.

There may be exceptions, but generally a modem set to region 3 will say so in response to the AT
command:

AT!CUSTOM?

by showing "PRLREGION 0x03" among the results. If it doesn't mention "PRLREGION", chances are
that the setting is incorrect for Australia.
Note that the region setting cannot affect which bands the modem supports it affects only the ease of
switching between bands.

GPS Enabling and Disabling

On devices which have onboard GPS, the current status of the facility (enabled or disabled) may or may
not be reported in the results from the command:

AT!CUSTOM?

To enable or disable GPS, use the command:

AT!ENTERCND="A710"

followed by either:

AT!CUSTOM="GPSENABLE",1 and

AT!CUSTOM="GPSREFLOC",1 (required on certain models only)

to enable GPS, or:

AT!CUSTOM="GPSENABLE",0

to disable it.

Modems without GPS facilities may respond with an "OK" to the enable request nevertheless.
When GPS is successfully enabled, an extra logical USB port gets added (on the next modem restart).
This will likely renumber some of the existing ports (and the command port in particular).

To test GPS functionality, wait several minutes for the GPS to acquire satellite data (preferably with the
unit having a clear view of the sky), and try:

AT!GPSFIX=1,30,10

(requests a non-cellular-network-assisted fix to within 10 metres, with a 30 second timeout), followed by:

AT!GPSLOC?

to read the position. Other GPS commands of interest:

AT!GPSSTATUS?

AT!GPSTRACK

AT!GPSSATINFO?

The new USB port that was added can be used by GPS-savvy software for a continuous NMEA 0183
protocol dialogue.

Bands and Bandmasks

It's sometimes very useful to prevent the modem from using certain bands. An example might be to avoid
congestion on 2100 MHz UMTS when there's lightly-loaded 850 or 900 MHz capacity available.

The Sierra watcher software provides some scope for doing that. But Linux users need to dig deeper at an
earlier stage.
There's a documented AT command in the Supported AT Command Reference for setting bands "AT!
BAND". A problem with the documented values is that any particular modem model implements only a
subset of them. Any values not implemented default to band "00" (= all bands = no restriction). To see
which values are implemented on a particular modem, use this command:

AT!BAND=?

There's a further twist. The available values depend on the region so there'll be a different list for
Australia from the list given if the modem is set for Europe.

Let's say that the list from the command immediately above includes the result "0D, WCDMA 850".
Assuming 850 MHz UMTS is all we want, then this command will do:

AT!BAND=0D

But it's also possible to exercise complete and absolute control over band selection by using bandmasks
and a slightly different command "AT!GBAND" (note the difference the "G" in "GBAND").

This allows us to restrict a 319U modem to 850 and 900 MHz UMTS only, for example. That's something
Vodafone users might find very useful to avoid 2100 MHz congestion.

Here are the Australian bandmasks for the "GW Band Mask" (the GSM and UMTS bands):

GSM 900 = 0000000000000300

GSM 1800 = 0000000000000080

UMTS 850 = 0000000004000000

UMTS 900 = 0002000000000000

UMTS 2100 = 0000000000400000


They are expressed and used in hexadecimal format. Just logically bitwise OR them together to make the
bandmask you want. So Optus 900 and 2100 UMTS (with no GSM) becomes:

0002000000400000

That's applied with the commands (in order):

AT!ENTERCND="A710"

AT!GBAND=0002000000000000

Likewise, UMTS 850 plus 900 MHz becomes bandmask:

AT!GBAND=0000000004400000

Add in GSM 900 (but not 1800) for example to get:

AT!GBAND=0000000004400300

If you set a bandmask like this and then use the Sierra Windows watcher program, you may find that any
band setting you enter there will undo your bandmask, although a watcher setting of "Automatic" band
selection seems preserve the desired bandmask indefinitely.

On LTE-capable devices, a second bandmask is required the LTE-specific "L Band Mask". Values for
bands currently implemented on Australian Sierra modems are:

LTE B1 2100 MHz = 0000000000000001

LTE B3 1800 MHz = 0000000000000004

LTE B7 2600 MHz = 0000000000000040

Future models might include:

LTE B8 900 MHz = 0000000000000080


LTE B20 800 MHz = 0000000000080000

To set the bandmask on an LTE device, use the two bandmasks separated by a comma, with the LTE
bandmask second.

So to set a 320U modem up to work on UMTS 850, UMTS 900, UMTS 2100 and LTE 1800, the "AT!
GBAND" command sequence is:

AT!ENTERCND="A710"

AT!GBAND=0002000004400000,0000000000000004

Note that on 320U modems sold by Telstra, the ability to use 900 MHz UMTS is an undocumented
feature, available only by using a bandmask. Ironically, setting the 320U back to all-band mode disables
900 MHz UMTS again on this modem.

The simplest way to undo a bandmask setting is to reset the modem to "all bands" with the command:

AT!BAND=00

Access Technology (GSM, UMTS, LTE)

The Sierra watcher software allows the access technology type to be controlled, and of course this
functionality can also be configured using AT commands.

To list the supported settings for a particular device:

AT!SELRAT=?
(although the list the command returns may include types the modem doesn't have implemented in
hardware). Setting the mandatory or preferred value of your choice is then a matter of substituting its
value for the "?" in the last command.

Roaming

The home network ID of the SIM is the first 5 digits of the SIM's IMSI. That can be read with:

AT+CIMI

To permit roaming onto another network:

AT^SYSCONFIG=16,3,1,4

and to disable:

AT^SYSCONFIG=16,3,0,4

Connection Settings Demystified

There is much confusion about APNs and their relationship to the "magic" dialling numbers like
#99***2#. In fact, none of the values are set in stone, and can be changed around for our convenience.

Like all cellular devices with a GSM heritage (everything we now use in Australia), Sierra modems have
onboard storage for a number of context ID (CID) settings. Typically the available range of CIDs is 1
through 16.

Each CID includes information on an APN, an authentication method and DNS servers to be used. So you
can store many APNs and their associated authentication and DNSs on a modem.
The different stored CIDs are accessed by their number, and connections to the internet are established by
requesting that a particular CID is used.

CID number 1 is a special CID. It often acts as a default. A case in point is the dialling number *99#
commonly used to make a PPP connection. It means make a connection using CID 1. And any
configuration software which allows only a single APN to be entered invariably sets it up on CID 1.
Using a higher number CID in the dialling command subsequent to that will ignore the APN that's just
been entered into CID 1.

PPP connections using higher numbered CIDs get requested by including the CID in the number to be
dialled. The general format is:

*99***<cid>#

with *99***2# being an example where CID 2 is used. It follows that *99# and *99***1# are exactly
equivalent.

If the directIP connection method is used instead of PPP, the CID is specified in the connection request
command:

AT!SCACT=1,<cid>

Different commands are required to configure these separate aspects of CIDs the APN, the
authentication and the DNS servers.

The DNS part can usually be ignored. An exception is where particular DNS settings are put into the
watcher, and the modem is later used on a Linux system for a connection where those DNS settings no
longer apply. They would then need to be undone.

Generally, we will be using dynamic DNS (where the carrier's DNS defaults are accepted). To do this, the
CID being used on the modem should have its DNS servers set to "0.0.0.0". The example command for
setting this on CID 3 is:

AT!SCDNS=3,"0.0.0.0","0.0.0.0"

Moving on to APNs now, the APN list (covering all CIDs) can be read with the command:

AT+CGDCONT?

Any necessary changes to the list can then be made. Setting CID 3 for Vodafone prepaid broadband for
example is done as:

AT+CGDCONT=3,"IP","vfprepaymbb"

The authentication method defaults to NONE in uninitialized CIDs. And this value is appropriate for all
except Virgin, which requires PAP. PAP requires a user ID and password as part of its configuration, and
for Virgin's case those can be any arbitrary non-blank values.

The numeric values <auth> for authentication methods are:

0 = NONE

1 = PAP

2 = CHAP

The authentication reading command is:

AT$QCPDPP?
and writing:

AT$QCPDPP=<cid>,<auth>, <password>, <username>

with the <username> and <password> arguments being dropped except for PAP. So:

AT$QCPDPP=2,1,"dummy","dummy"

will set CID 2 correctly for Virgin, and

AT$QCPDPP=1,0

for Telstra (using CID 1 this time).

All the above takes on special significance where a modem gets swapped between machines or operating
systems, especially if Sierra watcher software is involved. That's because the watcher wants to maintain
its own list (on the modem) of CIDs corresponding to the "profiles" you can set up and maintain in the
watcher. And these might not accord with settings you previously set or expect on a Linux machine which
uses the same modem.

If you do set up contexts using AT commands, and might use the Sierra watcher program later, give each
of the contexts a name. This makes it more likely that the watcher will accept your entries, and not
trample all over them. Name each using:

AT!SCPROF=<cid>,"name",0,0,0,0

eg:

AT!SCPROF=3,"Vodafone",0,0,0,0
Airplane Mode

Sierra modems can be configured to start up in airplane mode (or low power mode). This is a state of
minimum power and minimum functionality the LEDs are unlit and the radio is off (both receiver and
transmitter).

There's an option in the watcher software to enable airplane mode. But Linux users will need to use AT
commands if they want to enable or disable this functionality.

Use the command:

AT!ENTERCND="A710"

and then either:

AT!CUSTOM="STARTLPM",1

to enable, or:

AT!CUSTOM="STARTLPM",0

to disable.

If the modem is starting up in airplane mode and your Linux connection software can't wake it up, add
this initialization command:

AT+CFUN=1
(ideally with several seconds pause afterwards).

You might also like