-1

Looking for a bit (pardon the pun) of help on this one.

I need to set the various band parameters on an Air724 modem as in the descriptor below for the AT*BAND= syntax.

I am in Australia and looking to use the Telstra FDD-LTE Band 3 only. I am seeking some help as to how to get the syntax correct please? That is the bit operations for bands.

Any help is greatly appreciated.

The solution is for an Arduino C compiler, so any C construct would be useful.

Thank you.

SYNTAX

AT*BAND=[<mode>[<GSMband>,<UMTSband>,<LTEbandH>,<LTEbandL>[,<roamingConfig>,<srvDomain>,<bandPriorityFlag>]]]

Note: <mode>: integer type
0 –GSM network
1 –UMTS network
2 –Dual mode(GSM and UMTS) (auto)
3 –Dual mode(GSM and UMTS) (GSM preferred)
4 –Dual mode(GSM and UMTS) (UMTS preferred)
5 –LTE network
6–Dual mode(GSM and LTE)(auto)
7–Dual mode(GSM and LTE)( GSM preferred)
8–Dual mode(GSM and LTE)(LTE preferred)
9–Dual mode(UMTS and LTE)(auto)
10–Dual mode(UMTS and LTE)(UMTS preferred)
11–Dual mode(UMTS and LTE)(LTE preferred)
12–Trip mode(auto)
13–Trip mode(GSM preferred)
14–Trip mode(TD preferred)
15–Trip mode(LTE preferred) 

<GSMband>: integer type <GSMband> is a sum of integers each representing a GSM band
(in other words bit mask)
1 –PGSM 900 (standard or primary)
2 –DCS GSM 1800
4 –PCS GSM 1900
8 –EGSM 900 (extended)
16 –GSM 450
32 –GSM 480
64 –GSM 850 

<UMTSband>: integer type <UMTSband> is a sum of integers each representing a UMTS
band (in other words bit mask)
1 –UMTS_BAND_1
2 –UMTS_BAND_2
4 –UMTS_BAND_3
8 –UMTS_BAND_4
16 –UMTS_BAND_5
32 –UMTS_BAND_6
64 –UMTS_BAND_7
128 –UMTS_BAND_8
256 –UMTS_BAND_9 

<LTEbandH>: integer type <LTEbandH> is a sum of integers each representing a TDD
LTEband (in other words bit mask)
32 –TDLTE_BAND_38
64 –TDLTE _BAND_39
128 –TDLTE _BAND_40
256 –TDLTE _BAND_41 

<LTEbandL> integer type <LTEbandL>is a sum of integers each representing a FDDers each representing a TDDLTEband (in other words bit mask)
32 –TDLTE_BAND_38
64 –TDLTE _BAND_39
128 –TDLTE _BAND_40
256 –TDLTE _BAND_41 

<LTEbandL> integer type 
<LTEbandL>is a sum of integers each representing a FDD
1 –FDDLTE_BAND_1
4 –FDDLTE _BAND_3
8 –FDDLTE _BAND_4
64– FDDLTE _BAND_7
65536 –FDDLTE _BAND_17
524288 –FDDLTE _BAND_20 

<roamingConfig>: integer value
0 –not support
1 –support
2 –no change 

<srvDomain>: integer value
0 –CS only
1 –PS only
2 –CS and PS
3 –ANY
4 –no change 

<bandPriorityFlag>
0 –default
1 –TD-LTE
2 –FDD-LTE 

  • 1
    Can you add a little more details about your question? I am not sure what you need to achive. Can you link to any documentation? – mame98 Dec 03 '21 at 21:35
  • Absolutely, I'm trying to set the frequency to which the Air724 LTE module operates at: Like to the doco is here: https://2keep.net/wp-content/uploads/2019/06/Luat-LTE-Module-AT-Command-User-Manual-V1.0.pdf – GAVIN BROWN Dec 03 '21 at 21:38
  • The command is AT*BAND= ...... I'm trying to work out how to set the band given that the only band that the Air724 and Telstra operates in the LTE space is Band 3 1800MHZ. GSM (2G) doesnt exist in Australia anymore so I dont need the GSM bands, and band 3 Telstra is FDD-LTE only. So I dont need TDD-LTE. Does this make sense? – GAVIN BROWN Dec 03 '21 at 21:40
  • is the `AT*BAND` "command" send to the module via some sort of serial connection or where is this command used? – mame98 Dec 03 '21 at 21:45
  • Yep, the AT*BAND = command is sent to the module via serial comms. I can get all of the other AT commands working fine, just the bit operators for the BAND command are throwing me. – GAVIN BROWN Dec 03 '21 at 21:56
  • What is the issue with the bit-operators? Is it a specific argument? – mame98 Dec 03 '21 at 21:59
  • Just how to use the bit operators in this context, thats what I am looking for advice on – GAVIN BROWN Dec 03 '21 at 23:22
  • Just add them. `2 + 4 = 6`. I'ts literally there - "**is a sum of integers**". What else could be unclear to you? Shouldn't it be `AT*BAND=[,[...`? Is a comma missing? – KamilCuk Dec 03 '21 at 23:56
  • Why `LTEbandL` is twice in the description? – KamilCuk Dec 04 '21 at 00:02

1 Answers1

1
AT*BAND=6,0,0,0,4

how to get the syntax correct please? That is the bit operations for bands

Ignore bit operations. The text states:

integer type is a sum of integers each representing a GSM band

So for example if you want to support UMTS bands 1. 4 and 9: then you see that 1 –UMTS_BAND_1 with 8 –UMTS_BAND_4 with 256 –UMTS_BAND_9 so you add the numbers 1 + 8 + 256 = 265 and you send the value 265.

Anyway, if you would convert the numbers to binary:

0b000001 –UMTS_BAND_1
0b000010 –UMTS_BAND_2
0b000100 –UMTS_BAND_3
0b001000 –UMTS_BAND_4
... etc. ...

Then you can see that each number has s single bit set. Addition of such numbers is equal to AND bit masking such numbers, as each bit is unqiue..

KamilCuk
  • 120,984
  • 8
  • 59
  • 111
  • Excellent thank you. Yes that works and I dont get an error now. However, now I do have another issue. Has anyone ever used one of these Air724 type modules? https://www.openluat.com/Product/4gcat1/Air724UG.html If so, have you ever got them working outside of China? – GAVIN BROWN Dec 04 '21 at 04:21