Create a new band mask and select it:
at!band=10,"My bands",0002000000600380,0000000000000040
OK
at!band=?
Index, Name, GW Band Mask L Band Mask
00, All bands, 0002000000600380 00000000000800C5
01, Europe 3G, 0002000000400000 0000000000000000
03, Europe 2G, 0000000000000380 0000000000000000
04, North America 2G, 0000000000200000 0000000000000000
05, GSM ALL, 0000000000200380 0000000000000000
06, Europe, 0002000000400380 00000000000800C5
07, North America, 0000000000200000 0000000000000040
08, WCDMA ALL, 0002000000400000 0000000000000000
09, LTE ALL, 0000000000000000 00000000000800C5
10, My bands, 0002000000600380 0000000000000040
0000000000080000 - B20
0000000000000080 - B8
0000000000000040 - B7
0000000000000004 - B3
0000000000000001 - B1
0002000000000000 - B8 (900)
0000000000400000 - B1 (2100)
0000000000200000 - G1900
0000000000000200 - G900P
0000000000000100 - G900E
0000000000000080 - G1800
OK
at!band=10
OK
at!band?
Index, Name, GW Band Mask L Band Mask
10, My bands, 0002000000600380 0000000000000040
OK
This is documented in the “AirPrime UMTS / LTE MC/SL-Series Extended AT Command Reference”, but the examples are maybe not to explanatory…
Anyway, needs like this could be a good reason to go for QMI. There you have access to all sorts of tweaks. Notice how the two band masks I set about is reflected in TLV 0x12 and 0x15 in the QMI output below (although the byte order is reversed here)
[Thu Jul 19 12:50:34 2012] read 74 bytes from /dev/cdc-wdm1
01 49 00 80 03 04 02 02 00 34 00 3d 00 02 04 00 00 00 00 00 10 01 00 00 11 02 00 10 00 12 08 00 80 03 60 00 00 00 02 00 14 02 00 ff 00 15 08 00 40 00 00 00 00 00 00 00 16 01 00 00 18 04 00 02 00 00 00 19 04 00 02 00 00 00
<= QMUX Header:
<= len: 0x0049
<= sender: 0x80
<= svc: 0x03
<= cid: 0x04
<= QMI Header:
<= Flags: 0x02
<= TXN: 0x0002
<= Cmd: 0x0034
<= Size: 0x003d
<= [0x02] ( 4) 00 00 00 00 SUCCESS - QMI_ERR_NONE
<= [0x10] ( 1) 00 Emergency mode: off
<= [0x11] ( 2) 10 00 LTE
<= [0x12] ( 8) 80 03 60 00 00 00 02 00 "GSM DCS 1800" + "GSM Extended GSM (E-GSM) 900" + "GSM Primary GSM (P-GSM) 900" + "GSM PCS 1900" + "WCDMA Europe, Japan, and China IMT 2100" + "WCDMA Europe and Japan 900"
<= [0x14] ( 2) ff 00 Roaming preference: ANY
<= [0x15] ( 8) 40 00 00 00 00 00 00 00 E-UTRA Operating Bands 7
<= [0x16] ( 1) 00 Network Selection: automatic
<= [0x18] ( 4) 02 00 00 00 Circuit-switched and packet-switched
<= [0x19] ( 4) 02 00 00 00 WCDMA then GSM
The SWI AT command interface is very good, but such interfaces will always lack some features compared to management protocols like QMI.
Edit:
It might not be obvious how to delete a custom band set either. Setting the masks to 0 will do:
at!band=10,"My bands",0,0
OK
at!band=?
Index, Name, GW Band Mask L Band Mask
00, All bands, 0002000000600380 00000000000800C5
01, Europe 3G, 0002000000400000 0000000000000000
03, Europe 2G, 0000000000000380 0000000000000000
04, North America 2G, 0000000000200000 0000000000000000
05, GSM ALL, 0000000000200380 0000000000000000
06, Europe, 0002000000400380 00000000000800C5
07, North America, 0000000000200000 0000000000000040
08, WCDMA ALL, 0002000000400000 0000000000000000
09, LTE ALL, 0000000000000000 00000000000800C5
0000000000080000 - B20
0000000000000080 - B8
0000000000000040 - B7
0000000000000004 - B3
0000000000000001 - B1
0002000000000000 - B8 (900)
0000000000400000 - B1 (2100)
0000000000200000 - G1900
0000000000000200 - G900P
0000000000000100 - G900E
0000000000000080 - G1800
OK